From 1ae5de2f59799a5d02e64cfa36bd1d3b36827f43 Mon Sep 17 00:00:00 2001 From: open-license-manager <rillf@maildrop.cc> Date: 周三, 13 8月 2014 16:21:41 +0800 Subject: [PATCH] build linux --- test/functional/date_test.cpp | 2 build/modules/add_boost.cmake | 62 +++++++++++--------- test/library/LicenseReader_test.cpp | 2 src/license-generator/CMakeLists.txt | 20 ++++-- build/modules/utilities.cmake | 8 ++ CMakeLists.txt | 2 test/functional/volid_test.cpp | 2 test/library/CMakeLists.txt | 18 +++-- src/license-generator/linux/LicenseSigner.cpp | 4 test/functional/CMakeLists.txt | 18 ++++-- test/license-generator/CMakeLists.txt | 5 + test/functional/standard-license_test.cpp | 2 src/CMakeLists.txt | 6 - test/functional/hijiaking_test.cpp | 2 test/library/Os_Linux_test.cpp | 2 test/license-generator/license-generator_test.cpp | 2 16 files changed, 92 insertions(+), 65 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e8fa35a..7941aa4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,7 +52,7 @@ ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) endif(WIN32) #TODO uncomment: source temporarily broken -#set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:Debug>:_DEBUG>) +set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:Debug>:_DEBUG>) set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:Debug>:BOOST_TEST_DYN_LINK>) diff --git a/build/modules/add_boost.cmake b/build/modules/add_boost.cmake index 9cbace8..c3aa699 100644 --- a/build/modules/add_boost.cmake +++ b/build/modules/add_boost.cmake @@ -1,4 +1,10 @@ +# Boost_INCLUDE_DIRS - Boost include directories +# Boost_LIBRARY_DIRS - Link directories for Boost libraries +# Boost_LIBRARIES - Boost component libraries to be linked +#FIXME: for boost find compatibility C must be upper case +# Boost_<C>_LIBRARY - Libraries to link for component <C> (c is lower-case,may include +# target_link_libraries debug/optimized keywords) function(ms_underscores_to_camel_case VarIn VarOut) string(REPLACE "_" ";" Pieces ${VarIn}) @@ -13,8 +19,6 @@ set(BoostVersion 1.55.0) set(BoostSHA1 cef9a0cc7084b1d639e06cd3bc34e4251524c840) - - # Create build folder name derived from version string(REGEX REPLACE "beta\\.([0-9])$" "beta\\1" BoostFolderName ${BoostVersion}) @@ -225,9 +229,11 @@ include(ExternalProject) foreach(Component ${BoostComponents}) ms_underscores_to_camel_case(${Component} CamelCaseComponent) - add_library(Boost${CamelCaseComponent} SHARED - IMPORTED - GLOBAL) + if(${Boost_USE_STATIC_LIBS}) + add_library(boost_${Component} STATIC IMPORTED GLOBAL) + else(${Boost_USE_STATIC_LIBS}) + add_library(boost_${Component} SHARED IMPORTED GLOBAL) + endif(${Boost_USE_STATIC_LIBS}) if(${Component} STREQUAL "test") set(LibName "unit_test_framework") else() @@ -240,7 +246,7 @@ set(CompilerName vc120) endif() ExternalProject_Add( - boost_${Component} + Boost${CamelCaseComponent} PREFIX ${CMAKE_BINARY_DIR}/${BoostFolderName} SOURCE_DIR ${BoostSourceDir} BINARY_DIR ${BoostSourceDir} @@ -250,7 +256,7 @@ LOG_BUILD ON ) string(REGEX MATCH "[0-9]_[0-9][0-9]" Version "${BoostFolderName}") - set_target_properties(Boost${CamelCaseComponent} PROPERTIES + set_target_properties(boost_${Component} PROPERTIES IMPORTED_LOCATION_DEBUG ${BoostSourceDir}/stage/lib/libboost_${Component}-${CompilerName}-mt-gd-${Version}.lib IMPORTED_LOCATION_MINSIZEREL ${BoostSourceDir}/stage/lib/libboost_${Component}-${CompilerName}-mt-${Version}.lib IMPORTED_LOCATION_RELEASE ${BoostSourceDir}/stage/lib/libboost_${Component}-${CompilerName}-mt-${Version}.lib @@ -263,10 +269,10 @@ COMMAND ${b2Args} --with-${Component} WORKING_DIRECTORY ${BoostSourceDir} ) - add_custom_target(boost_${Component} + add_custom_target(Boost${CamelCaseComponent} DEPENDS ${OUTPUT_FILE} WORKING_DIRECTORY ${BoostSourceDir}) - set_target_properties(Boost${CamelCaseComponent} PROPERTIES + set_target_properties(boost_${Component} PROPERTIES IMPORTED_LOCATION ${OUTPUT_FILE} #LINK_SEARCH_START_STATIC OFF LINKER_LANGUAGE CXX @@ -274,15 +280,15 @@ endif(MSVC) set_target_properties(boost_${Component} Boost${CamelCaseComponent} PROPERTIES LABELS Boost FOLDER "Boost" EXCLUDE_FROM_ALL TRUE) - add_dependencies(Boost${CamelCaseComponent} boost_${Component}) - set(Boost${CamelCaseComponent}Libs Boost${CamelCaseComponent}) + add_dependencies(boost_${Component} Boost${CamelCaseComponent}) + set(Boost_${Component}_LIBRARY boost_${Component}) if("${Component}" STREQUAL "locale") if(APPLE) find_library(IconvLib iconv) if(NOT IconvLib) message(FATAL_ERROR "libiconv.dylib must be installed to a standard location.") endif() - set(Boost${CamelCaseComponent}Libs Boost${CamelCaseComponent} ${IconvLib}) + set(Boost_${Component}_LIBRARY boost_${Component} ${IconvLib}) elseif(UNIX) if(BSD) find_library(IconvLib libiconv.a) @@ -291,7 +297,7 @@ set(Msg " For ${Msg} on FreeBSD 10 or later, run\n pkg install libiconv") message(FATAL_ERROR "${Msg}") endif() - set(Boost${CamelCaseComponent}Libs Boost${CamelCaseComponent} ${IconvLib}) + set(Boost_${Component}_LIBRARY boost_${Component} ${IconvLib}) else() find_library(Icui18nLib libicui18n.a) find_library(IcuucLib libicuuc.a) @@ -301,28 +307,28 @@ set(Msg " For ${Msg} on Ubuntu/Debian, run\n sudo apt-get install libicu-dev") message(FATAL_ERROR "${Msg}") endif() - set(Boost${CamelCaseComponent}Libs Boost${CamelCaseComponent} ${Icui18nLib} ${IcuucLib} ${IcudataLib}) + set(Boost_${Component}_LIBRARY boost_${Component} ${Icui18nLib} ${IcuucLib} ${IcudataLib}) endif() else() - set(Boost${CamelCaseComponent}Libs Boost${CamelCaseComponent}) + set(Boost_${Component}_LIBRARY boost_${Component}) endif() endif() - set(Boost${CamelCaseComponent}Libs ${Boost${CamelCaseComponent}Libs}) # PARENT_SCOPE - list(APPEND AllBoostLibs Boost${CamelCaseComponent}) + #set(Boost${CamelCaseComponent}Libs ${Boost${CamelCaseComponent}Libs}) # PARENT_SCOPE + list(APPEND Boost_LIBRARIES Boost_${Component}_LIBRARY) endforeach() -set(AllBoostLibs ${AllBoostLibs}) # PARENT_SCOPE -add_dependencies(boost_chrono boost_system) -add_dependencies(boost_coroutine boost_context boost_system) -add_dependencies(boost_filesystem boost_system) -add_dependencies(boost_graph boost_regex) -add_dependencies(boost_locale boost_system) -add_dependencies(boost_log boost_chrono boost_date_time boost_filesystem boost_thread) -add_dependencies(boost_thread boost_chrono) -add_dependencies(boost_timer boost_chrono) -add_dependencies(boost_wave boost_chrono boost_date_time boost_filesystem boost_thread) +#set(AllBoostLibs ${AllBoostLibs}) # PARENT_SCOPE +add_dependencies(BoostChrono BoostSystem) +add_dependencies(BoostCoroutine BoostContext BoostSystem) +add_dependencies(BoostFilesystem BoostSystem) +add_dependencies(BoostGraph BoostRegex) +add_dependencies(BoostLocale BoostSystem) +add_dependencies(BoostLog BoostChrono BoostDateTime BoostFilesystem BoostThread) +add_dependencies(BoostThread BoostChrono) +add_dependencies(BoostTimer BoostChrono) +add_dependencies(BoostWave BoostChrono BoostDateTime BoostFilesystem BoostThread) set(Boost_INCLUDE_DIRS ${BoostSourceDir}) -set(Boost_LIBRARY_DIRS ${BoostSourceDir}/stage) +set(Boost_LIBRARY_DIRS ${BoostSourceDir}/stage/lib) diff --git a/build/modules/utilities.cmake b/build/modules/utilities.cmake new file mode 100644 index 0000000..5b5254e --- /dev/null +++ b/build/modules/utilities.cmake @@ -0,0 +1,8 @@ + +MACRO(EVAL_CONDITION name) + IF(${ARGN}) + SET(${name} 1) + ELSE(${ARGN}) + SET(${name} 0) + ENDIF(${ARGN}) +ENDMACRO(EVAL_CONDITION) \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 29994bd..7fb5c49 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,8 +1,6 @@ add_subdirectory("bootstrap") add_subdirectory("library") +add_subdirectory("pc-identifier") +add_subdirectory("license-generator") -IF(Boost_FOUND) - add_subdirectory("pc-identifier") - add_subdirectory("license-generator") -ENDIF(Boost_FOUND) \ No newline at end of file diff --git a/src/license-generator/CMakeLists.txt b/src/license-generator/CMakeLists.txt index 03bc24f..f4dd6c9 100644 --- a/src/license-generator/CMakeLists.txt +++ b/src/license-generator/CMakeLists.txt @@ -1,23 +1,27 @@ if(WIN32) -ADD_LIBRARY(license_generator_lib STATIC +ADD_LIBRARY( + license_generator_lib STATIC license-generator.cpp win/LicenseSigner.cpp ) -else() -ADD_LIBRARY(license_generator_lib STATIC +else(WIN32) +ADD_LIBRARY( + license_generator_lib STATIC license-generator.cpp linux/LicenseSigner.cpp ) -endif() +endif(WIN32) -link_directories ( ${Boost_LIBRARY_DIRS} ) -add_dependencies( license_generator_lib boost_filesystem private_key ) +#link_directories ( ${Boost_LIBRARY_DIRS} ) +#add_dependencies( license_generator_lib boost_filesystem private_key ) target_link_libraries( license_generator_lib license++_static - ${Boost_LIBRARIES} + ${Boost_filesystem_LIBRARY} + ${Boost_program_options_LIBRARY} + ${Boost_system_LIBRARY} ${EXTERNAL_LIBS} ) @@ -31,5 +35,5 @@ license_generator_lib ) -SET_TARGET_PROPERTIES(license_generator PROPERTIES LINK_SEARCH_START_STATIC ON) +#SET_TARGET_PROPERTIES(license_generator PROPERTIES LINK_SEARCH_START_STATIC ON) #SET_TARGET_PROPERTIES(license_generator PROPERTIES LINK_SEARCH_END_STATIC ON) \ No newline at end of file diff --git a/src/license-generator/linux/LicenseSigner.cpp b/src/license-generator/linux/LicenseSigner.cpp index 53fd2f5..69a4357 100644 --- a/src/license-generator/linux/LicenseSigner.cpp +++ b/src/license-generator/linux/LicenseSigner.cpp @@ -5,8 +5,8 @@ * Author: devel */ -#include "LicenseSigner.h" -#include "private-key.h" +#include "../LicenseSigner.h" +#include "../private-key.h" #include <stdexcept> #include <string.h> #include <openssl/evp.h> diff --git a/test/functional/CMakeLists.txt b/test/functional/CMakeLists.txt index 926af63..242e77b 100644 --- a/test/functional/CMakeLists.txt +++ b/test/functional/CMakeLists.txt @@ -1,6 +1,7 @@ ADD_LIBRARY(license_generator_snippet STATIC generate-license.cpp ) + target_link_libraries( license_generator_snippet license_generator_lib @@ -15,9 +16,11 @@ standard_license_test license++_static license_generator_snippet + ${Boost_filesystem_LIBRARY} + ${Boost_test_LIBRARY} ) -SET_TARGET_PROPERTIES(standard_license_test PROPERTIES LINK_SEARCH_START_STATIC ON) -add_dependencies( standard_license_test boost_test boost_filesystem ) +#SET_TARGET_PROPERTIES(standard_license_test PROPERTIES LINK_SEARCH_START_STATIC ON) +#add_dependencies( standard_license_test boost_test boost_filesystem ) add_executable( date_test @@ -28,9 +31,11 @@ date_test license++_static license_generator_snippet + ${Boost_filesystem_LIBRARY} + ${Boost_test_LIBRARY} ) -SET_TARGET_PROPERTIES(date_test PROPERTIES LINK_SEARCH_START_STATIC ON) -add_dependencies( date_test boost_test boost_filesystem ) +#SET_TARGET_PROPERTIES(date_test PROPERTIES LINK_SEARCH_START_STATIC ON) +#add_dependencies( date_test boost_test boost_filesystem ) add_executable( volid_test @@ -41,10 +46,11 @@ volid_test license++_static license_generator_snippet + ${Boost_test_LIBRARY} ) -SET_TARGET_PROPERTIES(volid_test PROPERTIES LINK_SEARCH_START_STATIC ON) -add_dependencies( volid_test boost_test boost_filesystem ) +#SET_TARGET_PROPERTIES(volid_test PROPERTIES LINK_SEARCH_START_STATIC ON) +#add_dependencies( volid_test boost_test boost_filesystem ) ADD_TEST(standard_license_test ${EXECUTABLE_OUTPUT_PATH}/standard_license_test) ADD_TEST(date_test ${EXECUTABLE_OUTPUT_PATH}/date_test) diff --git a/test/functional/date_test.cpp b/test/functional/date_test.cpp index 92b981e..a522a16 100644 --- a/test/functional/date_test.cpp +++ b/test/functional/date_test.cpp @@ -1,6 +1,6 @@ #define BOOST_TEST_MODULE standard_license_test //#define BOOST_TEST_MAIN -#define BOOST_TEST_DYN_LINK +//#define BOOST_TEST_DYN_LINK #include <boost/test/unit_test.hpp> #include "../../../src/license-generator/license-generator.h" #include "../../../src/library/api/license++.h" diff --git a/test/functional/hijiaking_test.cpp b/test/functional/hijiaking_test.cpp index d8317e6..b295796 100644 --- a/test/functional/hijiaking_test.cpp +++ b/test/functional/hijiaking_test.cpp @@ -1,6 +1,6 @@ #define BOOST_TEST_MODULE standard_license_test //#define BOOST_TEST_MAIN -#define BOOST_TEST_DYN_LINK +//#define BOOST_TEST_DYN_LINK #include <boost/test/unit_test.hpp> #include "../../../src/license-generator/license-generator.h" #include "../../../src/library/api/license++.h" diff --git a/test/functional/standard-license_test.cpp b/test/functional/standard-license_test.cpp index 2182e6b..7c3f58e 100644 --- a/test/functional/standard-license_test.cpp +++ b/test/functional/standard-license_test.cpp @@ -1,6 +1,6 @@ #define BOOST_TEST_MODULE standard_license_test //#define BOOST_TEST_MAIN -#define BOOST_TEST_DYN_LINK +//#define BOOST_TEST_DYN_LINK #include <boost/test/unit_test.hpp> #include "../../../src/license-generator/license-generator.h" #include "../../../src/library/api/license++.h" diff --git a/test/functional/volid_test.cpp b/test/functional/volid_test.cpp index f31cca9..6aa87d1 100644 --- a/test/functional/volid_test.cpp +++ b/test/functional/volid_test.cpp @@ -1,6 +1,6 @@ #define BOOST_TEST_MODULE standard_license_test //#define BOOST_TEST_MAIN -#define BOOST_TEST_DYN_LINK +//#define BOOST_TEST_DYN_LINK #include <boost/test/unit_test.hpp> #include <fstream> #include <cstring> diff --git a/test/library/CMakeLists.txt b/test/library/CMakeLists.txt index 3e7ee93..a88aae1 100644 --- a/test/library/CMakeLists.txt +++ b/test/library/CMakeLists.txt @@ -2,19 +2,22 @@ license_reader_test LicenseReader_test.cpp ) +#add_dependencies( license_reader_test boost_filesystem ) target_link_libraries( license_reader_test license++_static + boost_filesystem + boost_test ) -add_dependencies( license_reader_test boost_test boost_filesystem ) -SET_TARGET_PROPERTIES(license_reader_test PROPERTIES LINK_SEARCH_START_STATIC ON) +#SET_TARGET_PROPERTIES(license_reader_test PROPERTIES LINK_SEARCH_START_STATIC ON) +#SET_TARGET_PROPERTIES(license_reader_test PROPERTIES LINK_SEARCH_END_STATIC OFF) ADD_TEST(license_reader_test ${EXECUTABLE_OUTPUT_PATH}/license_reader_test) -#IF(WIN32) +IF(WIN32) #test windows -#ELSE(WIN32) +ELSE(WIN32) add_executable( os_linux_test Os_Linux_test.cpp @@ -23,10 +26,11 @@ target_link_libraries( os_linux_test os + ${Boost_test_LIBRARY} ) - add_dependencies( os_linux_test boost_test ) - SET_TARGET_PROPERTIES(os_linux_test PROPERTIES LINK_SEARCH_START_STATIC ON) + #add_dependencies( os_linux_test ) + #SET_TARGET_PROPERTIES(os_linux_test PROPERTIES LINK_SEARCH_START_STATIC ON) ADD_TEST(os_linux_test ${EXECUTABLE_OUTPUT_PATH}/os_linux_test) -#ENDIF(WIN32) \ No newline at end of file +ENDIF(WIN32) \ No newline at end of file diff --git a/test/library/LicenseReader_test.cpp b/test/library/LicenseReader_test.cpp index 99a5aac..af1b619 100644 --- a/test/library/LicenseReader_test.cpp +++ b/test/library/LicenseReader_test.cpp @@ -1,6 +1,6 @@ #define BOOST_TEST_MODULE license_reader_test //#define BOOST_TEST_MAIN -#define BOOST_TEST_DYN_LINK +//#define BOOST_TEST_DYN_LINK #include <boost/test/unit_test.hpp> #include "../../src/library/LicenseReader.h" #include <build_properties.h> diff --git a/test/library/Os_Linux_test.cpp b/test/library/Os_Linux_test.cpp index 4bda9c4..5d9bd90 100644 --- a/test/library/Os_Linux_test.cpp +++ b/test/library/Os_Linux_test.cpp @@ -1,6 +1,6 @@ #define BOOST_TEST_MODULE os_linux_test //#define BOOST_TEST_MAIN -#define BOOST_TEST_DYN_LINK +//#define BOOST_TEST_DYN_LINK #include <boost/test/unit_test.hpp> #include "../../src/library/os/os.h" #include <build_properties.h> diff --git a/test/license-generator/CMakeLists.txt b/test/license-generator/CMakeLists.txt index 8a88e5d..16db239 100644 --- a/test/license-generator/CMakeLists.txt +++ b/test/license-generator/CMakeLists.txt @@ -7,8 +7,9 @@ target_link_libraries( license_generator_test license_generator_lib + ${Boost_test_LIBRARY} ) -add_dependencies( license_generator_test boost_test boost_filesystem ) -SET_TARGET_PROPERTIES(license_generator_test PROPERTIES LINK_SEARCH_START_STATIC ON) +#add_dependencies( license_generator_test boost_test boost_filesystem ) +#SET_TARGET_PROPERTIES(license_generator_test PROPERTIES LINK_SEARCH_START_STATIC ON) ADD_TEST(license_generator_test ${EXECUTABLE_OUTPUT_PATH}/license_generator_test) diff --git a/test/license-generator/license-generator_test.cpp b/test/license-generator/license-generator_test.cpp index cdfb3ea..05ce78d 100644 --- a/test/license-generator/license-generator_test.cpp +++ b/test/license-generator/license-generator_test.cpp @@ -1,6 +1,6 @@ #define BOOST_TEST_MODULE license_generator_test //#define BOOST_TEST_MAIN -#define BOOST_TEST_DYN_LINK +//#define BOOST_TEST_DYN_LINK #include <boost/test/unit_test.hpp> #include "../../../src/license-generator/license-generator.h" #include <build_properties.h> -- Gitblit v1.9.1