$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: troy_at_[hidden]
Date: 2008-05-20 13:37:49
Author: troy
Date: 2008-05-20 13:37:48 EDT (Tue, 20 May 2008)
New Revision: 45586
URL: http://svn.boost.org/trac/boost/changeset/45586
Log:
As of cmake 2.6.0 targets must have globally unique names, or you get errors like this:
 CMake Error: Attempt to add link library "boost_unit_test_framework-static"
 to target "test3" which is not built by this project.
 CMake Error at tools/build/CMake/BoostCore.cmake:1080 (add_executable):
   add_executable cannot create target "test4" because another target with the
   same name already exists.  The existing target is an executable created in
   source directory
   "/home/troy/Projects/boost/branches/CMake/Boost_1_35_0/libs/variant/test".
   See documentation for policy CMP0002 for more details.
 Call Stack (most recent call first):
   tools/build/CMake/BoostTesting.cmake:173 (boost_add_executable)
   libs/xpressive/test/CMakeLists.txt:50 (boost_test_run)
This creates logical target names of Projectname/targetname
for executables (which includes tests).
Text files modified: 
   branches/CMake/Boost_1_35_0/tools/build/CMake/BoostCore.cmake |    19 ++++++++++---------                     
   1 files changed, 10 insertions(+), 9 deletions(-)
Modified: branches/CMake/Boost_1_35_0/tools/build/CMake/BoostCore.cmake
==============================================================================
--- branches/CMake/Boost_1_35_0/tools/build/CMake/BoostCore.cmake	(original)
+++ branches/CMake/Boost_1_35_0/tools/build/CMake/BoostCore.cmake	2008-05-20 13:37:48 EDT (Tue, 20 May 2008)
@@ -1077,10 +1077,11 @@
     endforeach(LIB ${THIS_EXE_DEPENDS})
 
     # Build the executable
-    add_executable(${EXENAME} ${THIS_EXE_SOURCES})
+    set(THIS_EXE_NAME ${PROJECT_NAME}/${EXENAME})
+    add_executable(${THIS_EXE_NAME} ${THIS_EXE_SOURCES})
     
     # Set the various compilation and linking flags
-    set_target_properties(${EXENAME}
+    set_target_properties(${THIS_EXE_NAME}
       PROPERTIES
       COMPILE_FLAGS "${THIS_EXE_COMPILE_FLAGS}"
       LINK_FLAGS "${THIS_EXE_LINK_FLAGS}"
@@ -1089,7 +1090,7 @@
     # For IDE generators where we can build both debug and release
     # configurations, pass the configurations along separately.
     if (THIS_EXE_DEBUG_AND_RELEASE)
-      set_target_properties(${EXENAME}
+      set_target_properties(${THIS_EXE_NAME}
         PROPERTIES
         COMPILE_FLAGS_DEBUG "${DEBUG_COMPILE_FLAGS} ${THIS_EXE_COMPILE_FLAGS}"
         COMPILE_FLAGS_RELEASE "${RELEASE_COMPILE_FLAGS} ${THIS_EXE_COMPILE_FLAGS}"
@@ -1100,7 +1101,7 @@
 
     # If the user gave an output name, use it.
     if (THIS_EXE_OUTPUT_NAME)
-      set_target_properties(${EXENAME}
+      set_target_properties(${THIS_EXE_NAME}
         PROPERTIES
         OUTPUT_NAME "${THIS_EXE_OUTPUT_NAME}"
         )
@@ -1109,26 +1110,26 @@
     # Link against the various libraries 
     if (THIS_EXE_DEBUG_AND_RELEASE)
       # Configuration-agnostic libraries
-      target_link_libraries(${EXENAME} ${THIS_EXE_LINK_LIBS})
+      target_link_libraries(${THIS_EXE_NAME} ${THIS_EXE_LINK_LIBS})
       
       # Link against libraries for "release" configuration
       foreach(LIB ${THIS_EXE_RELEASE_ACTUAL_DEPENDS} ${THIS_EXE_RELEASE_LINK_LIBS})     
-        target_link_libraries(${EXENAME} optimized ${LIB})
+        target_link_libraries(${THIS_EXE_NAME} optimized ${LIB})
       endforeach(LIB ${THIS_EXE_RELEASE_ACTUAL_DEPENDS} ${THIS_EXE_RELEASE_LINK_LIBS})     
         
       # Link against libraries for "debug" configuration
       foreach(LIB ${THIS_EXE_DEBUG_ACTUAL_DEPENDS} ${THIS_EXE_DEBUG_LINK_LIBS})     
-        target_link_libraries(${EXENAME} debug ${LIB})
+        target_link_libraries(${THIS_EXE_NAME} debug ${LIB})
       endforeach(LIB ${THIS_EXE_DEBUG_ACTUAL_DEPENDS} ${THIS_EXE_DEBUG_LINK_LIBS})     
     else (THIS_EXE_DEBUG_AND_RELEASE)
-      target_link_libraries(${EXENAME} 
+      target_link_libraries(${THIS_EXE_NAME} 
         ${THIS_EXE_ACTUAL_DEPENDS} 
         ${THIS_EXE_LINK_LIBS})
     endif (THIS_EXE_DEBUG_AND_RELEASE)
 
     # Install the executable, if not suppressed
     if (NOT THIS_EXE_NO_INSTALL)
-      install(TARGETS ${EXENAME} DESTINATION bin)
+      install(TARGETS ${THIS_EXE_NAME} DESTINATION bin)
     endif (NOT THIS_EXE_NO_INSTALL)
   endif (THIS_EXE_OKAY)
 endmacro(boost_add_executable)
\ No newline at end of file