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