From 2f1b176fe97d23972c197fb9940b05b2aed03e53 Mon Sep 17 00:00:00 2001 From: Richard Roberts Date: Tue, 8 Dec 2009 17:23:06 +0000 Subject: [PATCH] Recreated ISAM2 project and fixed bug in gt.cmake --- buildtools/gt.cmake | 65 ++++++++++++++++++++++++++++++++------------- 1 file changed, 47 insertions(+), 18 deletions(-) diff --git a/buildtools/gt.cmake b/buildtools/gt.cmake index 36a375f0a..58599fd8b 100644 --- a/buildtools/gt.cmake +++ b/buildtools/gt.cmake @@ -107,9 +107,10 @@ function(GT_MAIN_SOURCES) gt_main_sources_helper(${ARGN}) set(GT_COMMON_SOURCES "${GT_COMMON_SOURCES}" PARENT_SCOPE) # Build a "convenience" static library - #add_library(${PROJECT_NAME}-static STATIC ${GT_COMMON_SOURCES}) - #SET_TARGET_PROPERTIES(${PROJECT_NAME}-static PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") - #SET_TARGET_PROPERTIES(${PROJECT_NAME}-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) + message(STATUS "[gt.cmake] Adding convenience library \"${PROJECT_NAME}\" with sources ${GT_COMMON_SOURCES}") + add_library(${PROJECT_NAME}-static STATIC ${GT_COMMON_SOURCES}) + SET_TARGET_PROPERTIES(${PROJECT_NAME}-static PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") + SET_TARGET_PROPERTIES(${PROJECT_NAME}-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) endfunction(GT_MAIN_SOURCES) function(GT_MAIN_SOURCES_HELPER) set(GT_COMMON_SOURCES "") @@ -143,15 +144,15 @@ endfunction(GT_INSTALL_HEADERS) # Define the main shared+static library from the given sources function(GT_MAIN_LIB) - gt_main_sources(${ARGN}) + gt_main_sources_helper(${ARGN}) set(GT_COMMON_SOURCES "${GT_COMMON_SOURCES}" PARENT_SCOPE) message(STATUS "[gt.cmake] Adding main lib \"${PROJECT_NAME}\" with sources ${GT_COMMON_SOURCES}") - add_library(${PROJECT_NAME} SHARED ${GT_COMMON_SOURCES}) + add_library(${PROJECT_NAME}-shared SHARED ${GT_COMMON_SOURCES}) #add_library(${PROJECT_NAME}-static STATIC ${GT_COMMON_SOURCES}) - #SET_TARGET_PROPERTIES(${PROJECT_NAME}-static PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") - SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES CLEAN_DIRECT_OUTPUT 1) + SET_TARGET_PROPERTIES(${PROJECT_NAME}-shared PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") + SET_TARGET_PROPERTIES(${PROJECT_NAME}-shared PROPERTIES CLEAN_DIRECT_OUTPUT 1) #SET_TARGET_PROPERTIES(${PROJECT_NAME}-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) - install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION "lib" ARCHIVE DESTINATION "lib") + install(TARGETS ${PROJECT_NAME}-shared LIBRARY DESTINATION "lib" ARCHIVE DESTINATION "lib") endfunction(GT_MAIN_LIB) # Define the main static library from the given sources @@ -159,22 +160,32 @@ function(GT_MAIN_STLIB) gt_main_sources(${ARGN}) set(GT_COMMON_SOURCES "${GT_COMMON_SOURCES}" PARENT_SCOPE) message(STATUS "[gt.cmake] Adding main stlib \"${PROJECT_NAME}\" with sources ${GT_COMMON_SOURCES}") - add_library(${PROJECT_NAME}-static STATIC ${GT_COMMON_SOURCES}) - SET_TARGET_PROPERTIES(${PROJECT_NAME}-static PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") - SET_TARGET_PROPERTIES(${PROJECT_NAME}-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) + #add_library(${PROJECT_NAME}-static STATIC ${GT_COMMON_SOURCES}) + #SET_TARGET_PROPERTIES(${PROJECT_NAME}-static PROPERTIES OUTPUT_NAME "${PROJECT_NAME}") + #SET_TARGET_PROPERTIES(${PROJECT_NAME}-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) #add_library(${PROJECT_NAME} STATIC ${GT_COMMON_SOURCES}) install(TARGETS ${PROJECT_NAME}-static ARCHIVE DESTINATION "lib") endfunction(GT_MAIN_STLIB) # Set the build version for the main library function(GT_MAIN_VERSION version) - set_target_properties(${PROJECT_NAME} PROPERTIES VERSION "${version}") -endfunction(GT_MAIN_VERSION) + if(TARGET ${PROJECT_NAME}-shared) + set_target_properties(${PROJECT_NAME}-shared PROPERTIES VERSION "${version}") + endif() + if(TARGET ${PROJECT_NAME}-static) + set_target_properties(${PROJECT_NAME}-static PROPERTIES VERSION "${version}") + endif() +endfunction() # Set the API version for the main library function(GT_MAIN_SOVERSION soversion) - set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION "${soversion}") -endfunction(GT_MAIN_SOVERSION) + if(TARGET ${PROJECT_NAME}-shared) + set_target_properties(${PROJECT_NAME}-shared PROPERTIES SOVERSION "${soversion}") + endif() + if(TARGET ${PROJECT_NAME}-static) + set_target_properties(${PROJECT_NAME}-static PROPERTIES SOVERSION "${soversion}") + endif() +endfunction() # Define the main executable from the given sources #function(GT_MAIN_EXE) @@ -198,7 +209,13 @@ function(GT_AUTO_EXES) gt_get_stem(exe ${src}) message(STATUS "[gt.cmake] Adding auto exe \"${exe}\" from ${src}") add_executable(${exe} ${src}) - target_link_libraries(${exe} ${PROJECT_NAME}) + if(TARGET ${PROJECT_NAME}-shared) + target_link_libraries(${exe} ${PROJECT_NAME}-shared) + elseif(TARGET ${PROJECT_NAME}-static) + target_link_libraries(${exe} ${PROJECT_NAME}-static) + else() + message(FATAL_ERROR "[gt.cmake] No common source files specified yet!") + endif() endforeach(src ${srcs}) endforeach(srcpat ${ARGN}) endfunction(GT_AUTO_EXES) @@ -212,7 +229,13 @@ function(GT_AUTO_INSTALLED_EXES) gt_get_stem(exe ${src}) message(STATUS "[gt.cmake] Adding auto installed exe \"${exe}\" from ${src}") add_executable(${exe} ${src}) - target_link_libraries(${exe} ${PROJECT_NAME}) + if(TARGET ${PROJECT_NAME}-shared) + target_link_libraries(${exe} ${PROJECT_NAME}-shared) + elseif(TARGET ${PROJECT_NAME}-static) + target_link_libraries(${exe} ${PROJECT_NAME}-static) + else() + message(FATAL_ERROR "[gt.cmake] No common source files specified yet!") + endif() install(TARGETS ${exe} RUNTIME DESTINATION "bin") endforeach(src ${srcs}) endforeach(srcpat ${ARGN}) @@ -237,7 +260,13 @@ function(GT_AUTO_TESTS) message(STATUS "[gt.cmake] Adding test \"${exe}\" from ${src}") add_executable(${exe} ${src}) target_link_libraries(${exe} "CppUnitLite") - target_link_libraries(${exe} ${PROJECT_NAME}) + if(TARGET ${PROJECT_NAME}-shared) + target_link_libraries(${exe} ${PROJECT_NAME}-shared) + elseif(TARGET ${PROJECT_NAME}-static) + target_link_libraries(${exe} ${PROJECT_NAME}-static) + else() + message(FATAL_ERROR "[gt.cmake] No common source files specified yet!") + endif() add_test(${exe} ${exe}) endforeach(src ${srcs}) endforeach(srcpat ${ARGN})