From 897303206e87db7616b8c5f11b894c94b1047e7c Mon Sep 17 00:00:00 2001 From: open-license-manager <rillf@maildrop.cc> Date: 周一, 08 9月 2014 05:59:02 +0800 Subject: [PATCH] Merge branch 'master' of https://github.com/open-license-manager/open-license-manager.git --- build/modules/add_boost.cmake | 612 +++++++++++++++++++--------------------- src/library/os/os.h | 9 src/license-generator/CMakeLists.txt | 17 build/modules/utilities.cmake | 3 CMakeLists.txt | 27 - test/functional/volid_test.cpp | 3 test/library/CMakeLists.txt | 5 /dev/null | 4 src/license-generator/win/LicenseSigner.cpp | 115 ------- test/functional/CMakeLists.txt | 8 test/license-generator/CMakeLists.txt | 2 src/library/os/win/os-win.c | 65 ++++ test/CMakeLists.txt | 4 13 files changed, 394 insertions(+), 480 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7941aa4..fe14f24 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,14 +17,17 @@ SET(CMAKE_DISABLE_IN_SOURCE_BUILD ON) SET(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "CMake verbose" FORCE) - project (license++ C CXX) SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/build/modules/") include(utilities) -string(TOLOWER ${CMAKE_BUILD_TYPE} _CMAKE_BUILD_TYPE) -EVAL_CONDITION(RELEASE_BUILD ${_CMAKE_BUILD_TYPE} STREQUAL "release") +if(CMAKE_BUILD_TYPE) + string(TOLOWER ${CMAKE_BUILD_TYPE} _CMAKE_BUILD_TYPE) + EVAL_CONDITION(RELEASE_BUILD ${_CMAKE_BUILD_TYPE} STREQUAL "release") +else(CMAKE_BUILD_TYPE) + set(RELEASE_BUILD 0) +endif(CMAKE_BUILD_TYPE) if(WIN32) SET(PLATFORM_LIBS "") @@ -38,8 +41,7 @@ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -fmessage-length=0 -Wall -Wuninitialized -fPIC") #use static libraries in release to make it easier to distribute it #SET(Boost_USE_STATIC_RUNTIME ${RELEASE_BUILD}) - SET(Boost_USE_STATIC_LIBS ${RELEASE_BUILD}) - if(${RELEASE_BUILD}) + if(RELEASE_BUILD) SET(CMAKE_FIND_LIBRARY_SUFFIXES .a) #.so for dynamic libraries else() SET(CMAKE_FIND_LIBRARY_SUFFIXES .a .so) @@ -51,9 +53,7 @@ SET(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Install path prefix" FORCE) 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>:BOOST_TEST_DYN_LINK>) if(CMAKE_SIZEOF_VOID_P EQUAL 8) @@ -62,15 +62,12 @@ SET(HAVE_64BIT_SIZE_T 0) endif(CMAKE_SIZEOF_VOID_P EQUAL 8) -#TODO: determine target arch. -SET( TargetArchitecture "X86_64") - include(add_boost) -# static runtime requires /MT -#SET(Boost_USE_MULTITHREADED ON) #SET(Boost_USE_STATIC_RUNTIME OFF) -#find_package(Boost COMPONENTS thread date_time program_options filesystem system regex unit_test_framework) -#find_package(Boost COMPONENTS date_time program_options filesystem system unit_test_framework) - +add_boost(STATIC MODULES date_time test program_options system filesystem) +#set below in case of dynamic linking in debug. +#set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:Debug>:BOOST_TEST_DYN_LINK>) +add_definitions(-DBOOST_ALL_NO_LIB) #Disable Boost Microsoft magic, all dependencies are handled by cmake +add_definitions(-DBOOST_LIB_DIAGNOSTIC) #Check it is really disabled if(NOT WIN32) #find a static version of openssl crypto library diff --git a/build/modules/add_boost.cmake b/build/modules/add_boost.cmake index c3aa699..7501ae8 100644 --- a/build/modules/add_boost.cmake +++ b/build/modules/add_boost.cmake @@ -1,334 +1,292 @@ -# Boost_INCLUDE_DIRS - Boost include directories -# Boost_LIBRARY_DIRS - Link directories for Boost libraries + +#usage add_boost( [STATIC] , +# [STATIC_RUNTIME], +# [USE_BOOST_CACHE], #If user wants to use a cache copy of Boost, get the path to this location. +# [BOOST_CACHE_DIR path], +# [TARGET_ARCHITECHTURE_32], +# [MODULES module1, module2] ) + +#This module will set the following variables +# Boost_INCLUDE_DIR - Boost include directories +# Boost_LIBRARY_DIR - 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}) - foreach(Part ${Pieces}) - string(SUBSTRING ${Part} 0 1 Initial) - string(SUBSTRING ${Part} 1 -1 Part) - string(TOUPPER ${Initial} Initial) - set(CamelCase ${CamelCase}${Initial}${Part}) - endforeach() - set(${VarOut} ${CamelCase} PARENT_SCOPE) +include (CMakeParseArguments) + +function(add_boost) + set(BoostVersion 1.55.0) + set(BoostSHA1 cef9a0cc7084b1d639e06cd3bc34e4251524c840) + + set(options STATIC STATIC_RUNTIME USE_BOOST_CACHE TARGET_ARCHITECHTURE_32) + set(oneValueArgs BOOST_CACHE_DIR) + set(multiValueArgs MODULES) + cmake_parse_arguments(ADD_BOOST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) + + # Create build folder name derived from version + string(REGEX REPLACE "beta\\.([0-9])$" "beta\\1" BoostFolderName ${BoostVersion}) + string(REPLACE "." "_" BoostFolderName ${BoostFolderName}) + set(BoostFolderName boost_${BoostFolderName}) + + # If user wants to use a cache copy of Boost, get the path to this location. + #ADD_BOOST_USE_BOOST_CACHE is a parsed command line parameter + if(ADD_BOOST_USE_BOOST_CACHE) + if(ADD_BOOST_BOOST_CACHE_DIR) + file(TO_CMAKE_PATH "${BOOST_CACHE_DIR}" BoostCacheDir) + elseif(WIN32) + ms_get_temp_dir() + set(BoostCacheDir "${TempDir}") + elseif(APPLE) + set(BoostCacheDir "$ENV{HOME}/Library/Caches") + else() + set(BoostCacheDir "$ENV{HOME}/.cache") + endif() + endif() + + # If the cache directory doesn't exist, fall back to use the build root. + if(NOT IS_DIRECTORY "${BoostCacheDir}") + if(ADD_BOOST_BOOST_CACHE_DIR) + set(Message "\nThe directory \"${ADD_BOOST_BOOST_CACHE_DIR}\" provided in BOOST_CACHE_DIR doesn't exist.") + set(Message "${Message} Falling back to default path at \"${CMAKE_BINARY_DIR}/license++\"\n") + message(WARNING "${Message}") + endif() + set(BoostCacheDir ${CMAKE_BINARY_DIR}) + else() + if(NOT ADD_BOOST_USE_BOOST_CACHE AND NOT ADD_BOOST_BOOST_CACHE_DIR) + set(BoostCacheDir "${BoostCacheDir}/license++") + endif() + file(MAKE_DIRECTORY "${BoostCacheDir}") + endif() + + # Set up the full path to the source directory + set(BoostSourceDir "${BoostFolderName}_${CMAKE_CXX_COMPILER_ID}_${CMAKE_CXX_COMPILER_VERSION}") + if(HAVE_LIBC++) + set(BoostSourceDir "${BoostSourceDir}_LibCXX") + endif() + if(HAVE_LIBC++ABI) + set(BoostSourceDir "${BoostSourceDir}_LibCXXABI") + endif() + if(CMAKE_CL_64) + set(BoostSourceDir "${BoostSourceDir}_Win64") + endif() + string(REPLACE "." "_" BoostSourceDir ${BoostSourceDir}) + set(BOOST_ROOT "${BoostCacheDir}/${BoostSourceDir}" CACHE PATH "BOOST base dir") + + # Check the full path to the source directory is not too long for Windows. File paths must be less + # than MAX_PATH which is 260. The current longest relative path Boost tries to create is: + # Build\boost\bin.v2\libs\program_options\build\fd41f4c7d882e24faa6837508d6e5384\libboost_program_options-vc120-mt-gd-1_55.lib.rsp + # which along with a leading separator is 129 chars in length. This gives a maximum path available + # for 'BOOST_ROOT' as 130 chars. + if(WIN32) + get_filename_component(BoostSourceDirName "${BOOST_ROOT}" NAME) + string(LENGTH "/${BoostSourceDirName}" BoostSourceDirNameLengthWithSeparator) + math(EXPR AvailableLength 130-${BoostSourceDirNameLengthWithSeparator}) + string(LENGTH "${BOOST_ROOT}" BoostSourceDirLength) + if(${BoostSourceDirLength} GREATER 130) + set(Msg "\n\nThe path to boost's source is too long to handle all the files which will ") + set(Msg "${Msg}be created when boost is built. To avoid this, set the CMake variable ") + set(Msg "${Msg}USE_BOOST_CACHE to ON and set the variable BOOST_CACHE_DIR to a path ") + set(Msg "${Msg}which is at most ${AvailableLength} characters long. For example:\n") + set(Msg "${Msg} mkdir C:\\license_boost\n") + set(Msg "${Msg} cmake . -DUSE_BOOST_CACHE=ON -DBOOST_CACHE_DIR=C:\\license_boost\n\n") + message(FATAL_ERROR "${Msg}") + endif() + endif() + + # Download boost if required + set(ZipFilePath "${BoostCacheDir}/${BoostFolderName}.tar.bz2") + if(NOT EXISTS ${ZipFilePath}) + message(STATUS "Downloading boost ${BoostVersion} to ${BoostCacheDir}") + endif() + file(DOWNLOAD http://sourceforge.net/projects/boost/files/boost/${BoostVersion}/${BoostFolderName}.tar.bz2/download + ${ZipFilePath} + STATUS Status + SHOW_PROGRESS + EXPECTED_HASH SHA1=${BoostSHA1} + ) + + # Extract boost if required + string(FIND "${Status}" "returning early" Found) + if(Found LESS 0 OR NOT IS_DIRECTORY "${BOOST_ROOT}") + set(BoostExtractFolder "${BoostCacheDir}/boost_unzip") + file(REMOVE_RECURSE ${BoostExtractFolder}) + file(MAKE_DIRECTORY ${BoostExtractFolder}) + file(COPY ${ZipFilePath} DESTINATION ${BoostExtractFolder}) + message(STATUS "Extracting boost ${BoostVersion} to ${BoostExtractFolder}") + execute_process(COMMAND ${CMAKE_COMMAND} -E tar xfz ${BoostFolderName}.tar.bz2 + WORKING_DIRECTORY ${BoostExtractFolder} + RESULT_VARIABLE Result + ) + if(NOT Result EQUAL 0) + message(FATAL_ERROR "Failed extracting boost ${BoostVersion} to ${BoostExtractFolder}") + endif() + file(REMOVE ${BoostExtractFolder}/${BoostFolderName}.tar.bz2) + + # Get the path to the extracted folder + file(GLOB ExtractedDir "${BoostExtractFolder}/*") + list(LENGTH ExtractedDir n) + if(NOT n EQUAL 1 OR NOT IS_DIRECTORY ${ExtractedDir}) + message(FATAL_ERROR "Failed extracting boost ${BoostVersion} to ${BoostExtractFolder}") + endif() + file(RENAME ${ExtractedDir} ${BOOST_ROOT}) + file(REMOVE_RECURSE ${BoostExtractFolder}) + endif() + + + # Build b2 (bjam) if required + find_program(b2Path NAMES b2 PATHS ${BOOST_ROOT} NO_DEFAULT_PATH) + if(NOT b2Path) + message(STATUS "Building b2 (bjam)") + if(MSVC) + set(b2Bootstrap "bootstrap.bat") + else() + set(b2Bootstrap "./bootstrap.sh") + if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") + list(APPEND b2Bootstrap --with-toolset=clang) + elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + list(APPEND b2Bootstrap --with-toolset=gcc) + endif() + endif() + execute_process(COMMAND ${b2Bootstrap} WORKING_DIRECTORY ${BOOST_ROOT} + RESULT_VARIABLE Result OUTPUT_VARIABLE Output ERROR_VARIABLE Error) + if(NOT Result EQUAL 0) + message(FATAL_ERROR "Failed running ${b2Bootstrap}:\n${Output}\n${Error}\n") + endif() + endif() + execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${BOOST_ROOT}/Build) + + + #ADD_BOOST_STATIC_RUNTIME is a parsed function parameter + if(ADD_BOOST_STATIC_RUNTIME) + set(RUNTIME_LINK "static") + set(BOOST_LIB_SUFFIX "-s") + set(Boost_USE_STATIC_RUNTIME ON) + else() + set(RUNTIME_LINK "shared") + set(BOOST_LIB_SUFFIX "") + set(Boost_USE_STATIC_RUNTIME OFF) + endif() + #ADD_BOOST_STATIC is a parsed function parameter + if(ADD_BOOST_STATIC) + set(BOOST_LINK "static") + set(LINUX_LIB_EXTENSION "a") + set(WINDOWS_LIB_PREFIX "lib") + set(Boost_USE_STATIC_LIBS ON) + else(ADD_BOOST_STATIC) + set(BOOST_LINK "shared") + set(LINUX_LIB_EXTENSION "so") + set(WINDOWS_LIB_PREFIX "") + set(Boost_USE_STATIC_LIBS OFF) + endif(ADD_BOOST_STATIC) + message(STATUS "Boost linking: libs ${BOOST_LINK} , C++ runtime ${RUNTIME_LINK}") + # Set up general b2 (bjam) command line arguments + set(b2Args ./b2 + link=${BOOST_LINK} + threading=multi + runtime-link=${RUNTIME_LINK} + --build-dir=Build + stage + -d+2 + --hash + ) + if("${CMAKE_BUILD_TYPE}" STREQUAL "ReleaseNoInline") + list(APPEND b2Args cxxflags="${RELEASENOINLINE_FLAGS}") + endif() + if("${CMAKE_BUILD_TYPE}" STREQUAL "DebugLibStdcxx") + list(APPEND b2Args define=_GLIBCXX_DEBUG) + endif() + + # Set up platform-specific b2 (bjam) command line arguments + if(MSVC) + if(MSVC11) + list(APPEND b2Args toolset=msvc-11.0) + elseif(MSVC12) + list(APPEND b2Args toolset=msvc-12.0) + endif() + list(APPEND b2Args + define=_BIND_TO_CURRENT_MFC_VERSION=1 + define=_BIND_TO_CURRENT_CRT_VERSION=1 + --layout=versioned + ) + #command line parameter + if(NOT ADD_BOOST_TARGET_ARCHITECHTURE_32) + list(APPEND b2Args address-model=64) + endif() + elseif(APPLE) + list(APPEND b2Args variant=release toolset=clang cxxflags=-fPIC cxxflags=-std=c++11 cxxflags=-stdlib=libc++ + linkflags=-stdlib=libc++ architecture=combined address-model=32_64 --layout=tagged) + elseif(UNIX) + list(APPEND b2Args variant=release cxxflags=-fPIC cxxflags=-std=c++11 -sNO_BZIP2=1 --layout=tagged) + # Need to configure the toolset based on whatever version CMAKE_CXX_COMPILER is + string(REGEX MATCH "[0-9]+\\.[0-9]+" ToolsetVer "${CMAKE_CXX_COMPILER_VERSION}") + if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") + list(APPEND b2Args toolset=clang-${ToolsetVer}) + if(HAVE_LIBC++) + list(APPEND b2Args cxxflags=-stdlib=libc++ linkflags=-stdlib=libc++) + endif() + elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + list(APPEND b2Args toolset=gcc-${ToolsetVer}) + endif() + endif() + + if(NOT ADD_BOOST_MODULES) + set (ADD_BOOST_MODULES atomic chrono context coroutine date_time exception filesystem + graph iostreams log math program_options python random regex signals system + test thread timer wave) + endif() + + foreach(Component ${ADD_BOOST_MODULES}) + if(${Component} STREQUAL "test") + set(libName "unit_test_framework") + elseif(${Component} STREQUAL "math") + set(libName "math_c99l") + else() + set(libName ${Component}) + endif() + if(MSVC) + if(MSVC11) + set(CompilerName vc110) + elseif(MSVC12) + set(CompilerName vc120) + endif() + string(REGEX MATCH "[0-9]_[0-9][0-9]" Version "${BoostFolderName}") + #http://www.boost.org/doc/libs/1_42_0/more/getting_started/windows.html#library-naming + set(OUTPUT_FILE ${BOOST_ROOT}/stage/lib/${WINDOWS_LIB_PREFIX}boost_${libName}-${CompilerName}-mt-${Version}.lib) + set(OUTPUT_FILE_DEBUG ${BOOST_ROOT}/stage/lib/${WINDOWS_LIB_PREFIX}boost_${libName}-${CompilerName}-mt-gd-${Version}.lib) + else(MSVC) + set(OUTPUT_FILE ${BOOST_ROOT}/stage/lib/libboost_${libName}-mt${BOOST_LIB_SUFFIX}.${LINUX_LIB_EXTENSION}) + endif(MSVC) + if(NOT EXISTS "${OUTPUT_FILE}") + message(STATUS "Building ${Component}") + execute_process(COMMAND ${b2Args} --with-${Component} WORKING_DIRECTORY ${BOOST_ROOT}) + endif() + endforeach() + + + LIST_REPLACE(ADD_BOOST_MODULES "test" "unit_test_framework") + # BOOST_ROOT - Preferred installation prefix + # (or BOOSTROOT) + # BOOST_INCLUDEDIR - Preferred include directory e.g. <prefix>/include + # BOOST_LIBRARYDIR - Preferred library directory e.g. <prefix>/lib + # Boost_NO_SYSTEM_PATHS - Set to ON to disable searching in locations not + # specified by these hint variables. Default is OFF. + set (BOOST_LIBRARYDIR ${BoostSourceDir}/stage/lib CACHE PATH "BOOST library dir") + #set (Boost_NO_SYSTEM_PATHS ON) + find_package(Boost 1.55 REQUIRED COMPONENTS ${ADD_BOOST_MODULES}) + #clean up variables + mark_as_advanced (BOOST_ROOT BOOST_LIBRARYDIR) + unset(b2Path CACHE) + + set(Boost_LIBRARIES ${Boost_LIBRARIES} PARENT_SCOPE) endfunction() -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}) -string(REPLACE "." "_" BoostFolderName ${BoostFolderName}) -set(BoostFolderName boost_${BoostFolderName}) - -# If user wants to use a cache copy of Boost, get the path to this location. -if(USE_BOOST_CACHE) - if(BOOST_CACHE_DIR) - file(TO_CMAKE_PATH "${BOOST_CACHE_DIR}" BoostCacheDir) - elseif(WIN32) - ms_get_temp_dir() - set(BoostCacheDir "${TempDir}") - elseif(APPLE) - set(BoostCacheDir "$ENV{HOME}/Library/Caches") - else() - set(BoostCacheDir "$ENV{HOME}/.cache") - endif() -endif() - -# If the cache directory doesn't exist, fall back to use the build root. -if(NOT IS_DIRECTORY "${BoostCacheDir}") - if(BOOST_CACHE_DIR) - set(Message "\nThe directory \"${BOOST_CACHE_DIR}\" provided in BOOST_CACHE_DIR doesn't exist.") - set(Message "${Message} Falling back to default path at \"${CMAKE_BINARY_DIR}/license++\"\n") - message(WARNING "${Message}") - endif() - set(BoostCacheDir ${CMAKE_BINARY_DIR}) -else() - if(NOT USE_BOOST_CACHE AND NOT BOOST_CACHE_DIR) - set(BoostCacheDir "${BoostCacheDir}/license++") - endif() - file(MAKE_DIRECTORY "${BoostCacheDir}") -endif() - -# Set up the full path to the source directory -set(BoostSourceDir "${BoostFolderName}_${CMAKE_CXX_COMPILER_ID}_${CMAKE_CXX_COMPILER_VERSION}") -if(HAVE_LIBC++) - set(BoostSourceDir "${BoostSourceDir}_LibCXX") -endif() -if(HAVE_LIBC++ABI) - set(BoostSourceDir "${BoostSourceDir}_LibCXXABI") -endif() -if(CMAKE_CL_64) - set(BoostSourceDir "${BoostSourceDir}_Win64") -endif() -string(REPLACE "." "_" BoostSourceDir ${BoostSourceDir}) -set(BoostSourceDir "${BoostCacheDir}/${BoostSourceDir}") - -# Check the full path to the source directory is not too long for Windows. File paths must be less -# than MAX_PATH which is 260. The current longest relative path Boost tries to create is: -# Build\boost\bin.v2\libs\program_options\build\fd41f4c7d882e24faa6837508d6e5384\libboost_program_options-vc120-mt-gd-1_55.lib.rsp -# which along with a leading separator is 129 chars in length. This gives a maximum path available -# for 'BoostSourceDir' as 130 chars. -if(WIN32) - get_filename_component(BoostSourceDirName "${BoostSourceDir}" NAME) - string(LENGTH "/${BoostSourceDirName}" BoostSourceDirNameLengthWithSeparator) - math(EXPR AvailableLength 130-${BoostSourceDirNameLengthWithSeparator}) - string(LENGTH "${BoostSourceDir}" BoostSourceDirLength) - if(${BoostSourceDirLength} GREATER 130) - set(Msg "\n\nThe path to boost's source is too long to handle all the files which will ") - set(Msg "${Msg}be created when boost is built. To avoid this, set the CMake variable ") - set(Msg "${Msg}USE_BOOST_CACHE to ON and set the variable BOOST_CACHE_DIR to a path ") - set(Msg "${Msg}which is at most ${AvailableLength} characters long. For example:\n") - set(Msg "${Msg} mkdir C:\\license_boost\n") - set(Msg "${Msg} cmake . -DUSE_BOOST_CACHE=ON -DBOOST_CACHE_DIR=C:\\license_boost\n\n") - message(FATAL_ERROR "${Msg}") - endif() -endif() - -# Download boost if required -set(ZipFilePath "${BoostCacheDir}/${BoostFolderName}.tar.bz2") -if(NOT EXISTS ${ZipFilePath}) - message(STATUS "Downloading boost ${BoostVersion} to ${BoostCacheDir}") -endif() -file(DOWNLOAD http://sourceforge.net/projects/boost/files/boost/${BoostVersion}/${BoostFolderName}.tar.bz2/download - ${ZipFilePath} - STATUS Status - SHOW_PROGRESS - EXPECTED_HASH SHA1=${BoostSHA1} - ) - -# Extract boost if required -string(FIND "${Status}" "returning early" Found) -if(Found LESS 0 OR NOT IS_DIRECTORY "${BoostSourceDir}") - set(BoostExtractFolder "${BoostCacheDir}/boost_unzip") - file(REMOVE_RECURSE ${BoostExtractFolder}) - file(MAKE_DIRECTORY ${BoostExtractFolder}) - file(COPY ${ZipFilePath} DESTINATION ${BoostExtractFolder}) - message(STATUS "Extracting boost ${BoostVersion} to ${BoostExtractFolder}") - execute_process(COMMAND ${CMAKE_COMMAND} -E tar xfz ${BoostFolderName}.tar.bz2 - WORKING_DIRECTORY ${BoostExtractFolder} - RESULT_VARIABLE Result - ) - if(NOT Result EQUAL 0) - message(FATAL_ERROR "Failed extracting boost ${BoostVersion} to ${BoostExtractFolder}") - endif() - file(REMOVE ${BoostExtractFolder}/${BoostFolderName}.tar.bz2) - - # Get the path to the extracted folder - file(GLOB ExtractedDir "${BoostExtractFolder}/*") - list(LENGTH ExtractedDir n) - if(NOT n EQUAL 1 OR NOT IS_DIRECTORY ${ExtractedDir}) - message(FATAL_ERROR "Failed extracting boost ${BoostVersion} to ${BoostExtractFolder}") - endif() - file(RENAME ${ExtractedDir} ${BoostSourceDir}) - file(REMOVE_RECURSE ${BoostExtractFolder}) -endif() - - -# Build b2 (bjam) if required -unset(b2Path CACHE) -find_program(b2Path NAMES b2 PATHS ${BoostSourceDir} NO_DEFAULT_PATH) -if(NOT b2Path) - message(STATUS "Building b2 (bjam)") - if(MSVC) - set(b2Bootstrap "bootstrap.bat") - else() - set(b2Bootstrap "./bootstrap.sh") - if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") - list(APPEND b2Bootstrap --with-toolset=clang) - elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") - list(APPEND b2Bootstrap --with-toolset=gcc) - endif() - endif() - execute_process(COMMAND ${b2Bootstrap} WORKING_DIRECTORY ${BoostSourceDir} - RESULT_VARIABLE Result OUTPUT_VARIABLE Output ERROR_VARIABLE Error) - if(NOT Result EQUAL 0) - message(FATAL_ERROR "Failed running ${b2Bootstrap}:\n${Output}\n${Error}\n") - endif() -endif() -execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${BoostSourceDir}/Build) - - -# Expose BoostSourceDir to parent scope -#set(BoostSourceDir ${BoostSourceDir} ) #PARENT_SCOPE -if(Boost_USE_STATIC_RUNTIME) - set(RUNTIME_LINK "static") - set(BOOST_LIB_SUFFIX "-s") -else() - set(RUNTIME_LINK "shared") - set(BOOST_LIB_SUFFIX "") -endif() -if(Boost_USE_STATIC_LIBS) - set(BOOST_LINK "static") - set(BOOST_LIB_EXTENSION "a") -else() - set(BOOST_LINK "shared") - set(BOOST_LIB_EXTENSION "so") -endif() - -# Set up general b2 (bjam) command line arguments -set(b2Args ./b2 - link=${BOOST_LINK} - threading=multi - runtime-link=${RUNTIME_LINK} - --build-dir=Build - stage - -d+2 - --hash - ) -if("${CMAKE_BUILD_TYPE}" STREQUAL "ReleaseNoInline") - list(APPEND b2Args cxxflags="${RELEASENOINLINE_FLAGS}") -endif() -if("${CMAKE_BUILD_TYPE}" STREQUAL "DebugLibStdcxx") - list(APPEND b2Args define=_GLIBCXX_DEBUG) -endif() - -# Set up platform-specific b2 (bjam) command line arguments -if(MSVC) - if(MSVC11) - list(APPEND b2Args toolset=msvc-11.0) - elseif(MSVC12) - list(APPEND b2Args toolset=msvc-12.0) - endif() - list(APPEND b2Args - define=_BIND_TO_CURRENT_MFC_VERSION=1 - define=_BIND_TO_CURRENT_CRT_VERSION=1 - --layout=versioned - ) - if("${TargetArchitecture}" STREQUAL "x86_64") - list(APPEND b2Args address-model=64) - endif() -elseif(APPLE) - list(APPEND b2Args variant=release toolset=clang cxxflags=-fPIC cxxflags=-std=c++11 cxxflags=-stdlib=libc++ - linkflags=-stdlib=libc++ architecture=combined address-model=32_64 --layout=tagged) -elseif(UNIX) - list(APPEND b2Args variant=release cxxflags=-fPIC cxxflags=-std=c++11 -sNO_BZIP2=1 --layout=tagged) - # Need to configure the toolset based on whatever version CMAKE_CXX_COMPILER is - string(REGEX MATCH "[0-9]+\\.[0-9]+" ToolsetVer "${CMAKE_CXX_COMPILER_VERSION}") - if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") - list(APPEND b2Args toolset=clang-${ToolsetVer}) - if(HAVE_LIBC++) - list(APPEND b2Args cxxflags=-stdlib=libc++ linkflags=-stdlib=libc++) - endif() - elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") - list(APPEND b2Args toolset=gcc-${ToolsetVer}) - endif() -endif() - -# Get list of components -execute_process(COMMAND ./b2 --show-libraries WORKING_DIRECTORY ${BoostSourceDir} - ERROR_QUIET OUTPUT_VARIABLE Output) -string(REGEX REPLACE "(^[^:]+:|[- ])" "" BoostComponents "${Output}") -string(REGEX REPLACE "\n" ";" BoostComponents "${BoostComponents}") - -# Build each required component -include(ExternalProject) -foreach(Component ${BoostComponents}) - ms_underscores_to_camel_case(${Component} CamelCaseComponent) - 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() - set(LibName ${Component}) - endif() - if(MSVC) - if(MSVC11) - set(CompilerName vc110) - elseif(MSVC12) - set(CompilerName vc120) - endif() - ExternalProject_Add( - Boost${CamelCaseComponent} - PREFIX ${CMAKE_BINARY_DIR}/${BoostFolderName} - SOURCE_DIR ${BoostSourceDir} - BINARY_DIR ${BoostSourceDir} - CONFIGURE_COMMAND "" - BUILD_COMMAND "${b2Args}" --with-${Component} - INSTALL_COMMAND "" - LOG_BUILD ON ) - - string(REGEX MATCH "[0-9]_[0-9][0-9]" Version "${BoostFolderName}") - 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 - IMPORTED_LOCATION_RELWITHDEBINFO ${BoostSourceDir}/stage/lib/libboost_${Component}-${CompilerName}-mt-${Version}.lib - IMPORTED_LOCATION_RELEASENOINLINE ${BoostSourceDir}/stage/lib/libboost_${Component}-${CompilerName}-mt-${Version}.lib - LINKER_LANGUAGE CXX) - else(MSVC) - set(OUTPUT_FILE ${BoostSourceDir}/stage/lib/libboost_${LibName}-mt${BOOST_LIB_SUFFIX}.${BOOST_LIB_EXTENSION}) - add_custom_command(OUTPUT ${OUTPUT_FILE} - COMMAND ${b2Args} --with-${Component} - WORKING_DIRECTORY ${BoostSourceDir} - ) - add_custom_target(Boost${CamelCaseComponent} - DEPENDS ${OUTPUT_FILE} - WORKING_DIRECTORY ${BoostSourceDir}) - set_target_properties(boost_${Component} PROPERTIES - IMPORTED_LOCATION ${OUTPUT_FILE} - #LINK_SEARCH_START_STATIC OFF - LINKER_LANGUAGE CXX - ) - endif(MSVC) - set_target_properties(boost_${Component} Boost${CamelCaseComponent} PROPERTIES - LABELS Boost FOLDER "Boost" EXCLUDE_FROM_ALL TRUE) - 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_${Component}_LIBRARY boost_${Component} ${IconvLib}) - elseif(UNIX) - if(BSD) - find_library(IconvLib libiconv.a) - if(NOT IconvLib) - set(Msg "libiconv.a must be installed to a standard location.") - set(Msg " For ${Msg} on FreeBSD 10 or later, run\n pkg install libiconv") - message(FATAL_ERROR "${Msg}") - endif() - set(Boost_${Component}_LIBRARY boost_${Component} ${IconvLib}) - else() - find_library(Icui18nLib libicui18n.a) - find_library(IcuucLib libicuuc.a) - find_library(IcudataLib libicudata.a) - if(NOT Icui18nLib OR NOT IcuucLib OR NOT IcudataLib) - set(Msg "libicui18n.a, libicuuc.a & licudata.a must be installed to a standard location.") - set(Msg " For ${Msg} on Ubuntu/Debian, run\n sudo apt-get install libicu-dev") - message(FATAL_ERROR "${Msg}") - endif() - set(Boost_${Component}_LIBRARY boost_${Component} ${Icui18nLib} ${IcuucLib} ${IcudataLib}) - endif() - else() - set(Boost_${Component}_LIBRARY boost_${Component}) - endif() - endif() - #set(Boost${CamelCaseComponent}Libs ${Boost${CamelCaseComponent}Libs}) # PARENT_SCOPE - list(APPEND Boost_LIBRARIES Boost_${Component}_LIBRARY) -endforeach() -#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/lib) - - - +macro(LIST_REPLACE LIST OLDVALUE NEWVALUE) + list(FIND ADD_BOOST_MODULES ${OLDVALUE} find_idx) + if(find_idx GREATER -1) + list(INSERT ${LIST} ${find_idx} ${NEWVALUE}) + MATH(EXPR __INDEX "${find_idx} + 1") + list (REMOVE_AT ${LIST} ${__INDEX}) + endif() +endmacro(LIST_REPLACE) diff --git a/build/modules/utilities.cmake b/build/modules/utilities.cmake index 5b5254e..188c90b 100644 --- a/build/modules/utilities.cmake +++ b/build/modules/utilities.cmake @@ -5,4 +5,5 @@ ELSE(${ARGN}) SET(${name} 0) ENDIF(${ARGN}) -ENDMACRO(EVAL_CONDITION) \ No newline at end of file +ENDMACRO(EVAL_CONDITION) + diff --git a/build/win64/init.bat b/build/win64/init.bat deleted file mode 100644 index 4292be4..0000000 --- a/build/win64/init.bat +++ /dev/null @@ -1,4 +0,0 @@ - -call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64 - -echo cmake -G "Visual Studio 12 Win64" -DCMAKE_BUILD_TYPE=Debug ..\.. \ No newline at end of file diff --git a/src/library/os/os.h b/src/library/os/os.h index d61e226..5d0afc0 100644 --- a/src/library/os/os.h +++ b/src/library/os/os.h @@ -20,12 +20,17 @@ NONE, VMWARE } VIRTUALIZATION; +typedef enum { + ETHERNET, WIRELESS +} IFACE_TYPE; + typedef struct { int id; char description[1024]; unsigned char mac_address[6]; unsigned char ipv4_address[4]; -} AdapterInfo; + IFACE_TYPE type; +} OsAdapterInfo; typedef struct { int id; @@ -35,7 +40,7 @@ bool preferred; } DiskInfo; -FUNCTION_RETURN getAdapterInfos(AdapterInfo * adapterInfos, +FUNCTION_RETURN getAdapterInfos(OsAdapterInfo * adapterInfos, size_t * adapter_info_size); FUNCTION_RETURN getDiskInfos(DiskInfo * diskInfos, size_t * disk_info_size); FUNCTION_RETURN getUserHomePath(char[MAX_PATH]); diff --git a/src/library/os/win/os-win.c b/src/library/os/win/os-win.c index 088b97b..7c5c361 100644 --- a/src/library/os/win/os-win.c +++ b/src/library/os/win/os-win.c @@ -1,4 +1,5 @@ #include <Windows.h> +#include <iphlpapi.h> #include"../os.h" FUNCTION_RETURN getOsSpecificIdentifier(unsigned char identifier[6]){ @@ -9,7 +10,7 @@ char* buffer[MAX_COMPUTERNAME_LENGTH + 1]; int bufsize = MAX_COMPUTERNAME_LENGTH + 1; BOOL cmpName = GetComputerName( - buffer,&bufsize); + buffer, &bufsize); strncpy(identifier, buffer, 6); } @@ -23,6 +24,64 @@ FUNCTION_RETURN getDiskInfos(DiskInfo * diskInfos, size_t * disk_info_size) { } -FUNCTION_RETURN getAdapterInfos(AdapterInfo * adapterInfos, - size_t * adapter_info_size) { +//http://stackoverflow.com/questions/18046063/mac-address-using-c +//TODO: count only interfaces with type (MIB_IF_TYPE_ETHERNET IF_TYPE_IEEE80211) +FUNCTION_RETURN getAdapterInfos(OsAdapterInfo * adapterInfos, size_t * adapter_info_size) { + DWORD dwStatus; + unsigned int i; + PIP_ADAPTER_INFO pAdapterInfo, pAdapter = NULL; + //IP_ADAPTER_INFO AdapterInfo[16]; // Allocate information for up to 16 NICs + DWORD dwBufLen = 0; //sizeof(AdapterInfo); // Save the memory size of buffer + + dwStatus = GetAdaptersInfo( // Call GetAdapterInfo + null,// [out] buffer to receive data + &dwBufLen // [in] size of receive data buffer + ); + if (dwStatus != ERROR_BUFFER_OVERFLOW){ + return FUNC_RET_ERROR; + } + if (adapterInfos == null || *adapter_info_size == 0){ + *adapter_info_size = dwBufLen; + return FUNC_RET_BUFFER_TOO_SMALL; + } + else { + memset(adapterInfos, 0, adapter_info_size); + pAdapterInfo = (IP_ADAPTER_INFO*)malloc(dwBufLen*sizeof(IP_ADAPTER_INFO)); + dwStatus = GetAdaptersInfo(pAdapterInfo, &dwBufLen); + if (dwStatus != NO_ERROR){ + free(pAdapterInfo); + return FUNC_RET_ERROR; + } + pAdapter = pAdapterInfo; + for (i = 0; i < min(*adapter_info_size, dwBufLen); i++) { + strncpy(adapterInfos[i].description, pAdapter->Description, min(sizeof(adapterInfos->description), MAX_ADAPTER_DESCRIPTION_LENGTH)); + memcpy(adapterInfos[i].mac_address, pAdapter->Address, 8); + memcpy(adapterInfos[i].ipv4_address, pAdapter->IpAddressList.IpAddress, 8); + + pAdapter = pAdapter->Next; + } + } + +#include <ctype.h> +#include <stdio.h> + int main(void) { + char *str = "192.168.0.1", *str2; + unsigned char value[4] = { 0 }; + size_t index = 0; + + str2 = str; /* save the pointer */ + while (*str) { + if (isdigit((unsigned char)*str)) { + value[index] *= 10; + value[index] += *str - '0'; + } + else { + index++; + } + str++; + } + printf("values in \"%s\": %d %d %d %d\n", str2, + value[0], value[1], value[2], value[3]); + return 0; + } } \ No newline at end of file diff --git a/src/license-generator/CMakeLists.txt b/src/license-generator/CMakeLists.txt index f4dd6c9..3ad19ef 100644 --- a/src/license-generator/CMakeLists.txt +++ b/src/license-generator/CMakeLists.txt @@ -1,4 +1,8 @@ +include_directories(${Boost_INCLUDE_DIR}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +link_directories ( ${Boost_LIBRARY_DIR} ) + if(WIN32) ADD_LIBRARY( license_generator_lib STATIC @@ -13,15 +17,15 @@ ) endif(WIN32) -#link_directories ( ${Boost_LIBRARY_DIRS} ) -#add_dependencies( license_generator_lib boost_filesystem private_key ) - target_link_libraries( license_generator_lib license++_static - ${Boost_filesystem_LIBRARY} - ${Boost_program_options_LIBRARY} - ${Boost_system_LIBRARY} + $<$<CONFIG:Debug>:${Boost_PROGRAM_OPTIONS_LIBRARY_DEBUG}> + $<$<NOT:$<CONFIG:Debug>>:${Boost_PROGRAM_OPTIONS_LIBRARY_RELEASE}> + $<$<CONFIG:Debug>:${Boost_SYSTEM_LIBRARY_DEBUG}> + $<$<NOT:$<CONFIG:Debug>>:${Boost_SYSTEM_LIBRARY_RELEASE}> + $<$<CONFIG:Debug>:${Boost_DATE_TIME_LIBRARY_DEBUG}> + $<$<NOT:$<CONFIG:Debug>>:${Boost_DATE_TIME_LIBRARY_RELEASE}> ${EXTERNAL_LIBS} ) @@ -34,6 +38,7 @@ license_generator license_generator_lib ) +add_dependencies( license_generator private_key ) #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/win/LicenseSigner.cpp b/src/license-generator/win/LicenseSigner.cpp index 53fd2f5..4b104a9 100644 --- a/src/license-generator/win/LicenseSigner.cpp +++ b/src/license-generator/win/LicenseSigner.cpp @@ -1,18 +1,14 @@ /* - * LicenseSigner.cpp + * LicenseSigner.cpp (Windows) * * Created on: Apr 6, 2014 * 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> -#include <openssl/bio.h> -#include <openssl/pem.h> -#include <openssl/err.h> #include <iostream> #include <cmath> @@ -28,111 +24,12 @@ } string LicenseSigner::Opensslb64Encode(size_t slen, unsigned char* signature) { - /* - FILE* stream = fmemopen(*buffer, encodedSize+1, "w"); - */ - //bio = BIO_new_fp(stdout, BIO_NOCLOSE); - /*int encodedSize = 4 * ceil(slen / 3); - char* buffer = (char*) (malloc(encodedSize + 1)); - memset(buffer,0,encodedSize+1);*/ - BIO* mem_bio = BIO_new(BIO_s_mem()); - BIO* b64 = BIO_new(BIO_f_base64()); - BIO* bio1 = BIO_push(b64, mem_bio); - BIO_set_flags(bio1, BIO_FLAGS_BASE64_NO_NL); - BIO_write(bio1, signature, slen); - BIO_flush(bio1); - char* charBuf; - int sz = BIO_get_mem_data(mem_bio, &charBuf); - string signatureStr; - signatureStr.assign(charBuf, sz); - BIO_free_all(bio1); - return signatureStr; + + return NULL; } string LicenseSigner::signString(const string& license) { - - size_t slen; - unsigned char* signature; - signature = NULL; - /* Create the Message Digest Context */ - EVP_MD_CTX* mdctx = EVP_MD_CTX_create(); - if (!mdctx) { - throw logic_error("Message digest creation context"); - } - const char *private_key = PRIVATE_KEY - ; - BIO* bio = BIO_new_mem_buf((void*) (private_key), strlen(private_key)); - EVP_PKEY *pktmp = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL); - BIO_free(bio); - /*Initialise the DigestSign operation - SHA-256 has been selected - * as the message digest function in this example */ - if (1 != EVP_DigestSignInit(mdctx, NULL, EVP_sha256(), NULL, pktmp)) { - EVP_MD_CTX_destroy(mdctx); - } - /* Call update with the message */ - if (EVP_DigestSignUpdate(mdctx, license.c_str(), license.length()) != 1) { - EVP_MD_CTX_destroy(mdctx); - throw logic_error("Message signing exception"); - } - /* Finalise the DigestSign operation */ - /* First call EVP_DigestSignFinal with a NULL sig parameter to obtain the length of the - * signature. Length is returned in slen */ - if (EVP_DigestSignFinal(mdctx, NULL, &slen) != 1) { - EVP_MD_CTX_destroy(mdctx); - throw logic_error("Message signature finalization exception"); - } - /* Allocate memory for the signature based on size in slen */ - if (!(signature = (unsigned char *) OPENSSL_malloc( - sizeof(unsigned char) * slen))) { - EVP_MD_CTX_destroy(mdctx); - throw logic_error("Message signature memory allocation exception"); - } - /* Obtain the signature */ - if (1 != EVP_DigestSignFinal(mdctx, signature, &slen)) { - OPENSSL_free(signature); - EVP_MD_CTX_destroy(mdctx); - throw logic_error("Message signature exception"); - } - /* - FILE* stream = fmemopen(*buffer, encodedSize+1, "w"); - */ - //bio = BIO_new_fp(stdout, BIO_NOCLOSE); - /*int encodedSize = 4 * ceil(slen / 3); - char* buffer = (char*) (malloc(encodedSize + 1)); - memset(buffer,0,encodedSize+1);*/ - string signatureStr = Opensslb64Encode(slen, signature); - /* - * BIO *bio, *b64; - char message[] = "Hello World \n"; - b64 = BIO_new(BIO_f_base64()); - bio = BIO_new_fp(stdout, BIO_NOCLOSE); - bio = BIO_push(b64, bio); - BIO_write(bio, message, strlen(message)); - BIO_flush(bio); - BIO_free_all(bio); - Read Base64 encoded data from standard input and write the decoded data to standard output: - - BIO *bio, *b64, *bio_out; - char inbuf[512]; - int inlen; - b64 = BIO_new(BIO_f_base64()); - bio = BIO_new_fp(stdin, BIO_NOCLOSE); - bio_out = BIO_new_fp(stdout, BIO_NOCLOSE); - bio = BIO_push(b64, bio); - while((inlen = BIO_read(bio, inbuf, 512)) > 0) - BIO_write(bio_out, inbuf, inlen); - BIO_free_all(bio); - */ - /* Clean up */ - //free(buffer); - if (pktmp) - EVP_PKEY_free(pktmp); - if (signature) - OPENSSL_free(signature); - - if (mdctx) - EVP_MD_CTX_destroy(mdctx); - return signatureStr; + return NULL; } void LicenseSigner::signLicense(FullLicenseInfo& licenseInfo) { diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index fc1f859..0fb6853 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,7 +1,7 @@ #if we're here boost has been found -include_directories(${Boost_INCLUDE_DIRS}) +include_directories(${Boost_INCLUDE_DIR}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) -link_directories ( ${Boost_LIBRARY_DIRS} ) +link_directories ( ${Boost_LIBRARY_DIR} ) add_subdirectory(library) add_subdirectory(license-generator) diff --git a/test/functional/CMakeLists.txt b/test/functional/CMakeLists.txt index 242e77b..a3d70ec 100644 --- a/test/functional/CMakeLists.txt +++ b/test/functional/CMakeLists.txt @@ -16,8 +16,7 @@ standard_license_test license++_static license_generator_snippet - ${Boost_filesystem_LIBRARY} - ${Boost_test_LIBRARY} + ${Boost_LIBRARIES} ) #SET_TARGET_PROPERTIES(standard_license_test PROPERTIES LINK_SEARCH_START_STATIC ON) #add_dependencies( standard_license_test boost_test boost_filesystem ) @@ -31,8 +30,7 @@ date_test license++_static license_generator_snippet - ${Boost_filesystem_LIBRARY} - ${Boost_test_LIBRARY} + ${Boost_LIBRARIES} ) #SET_TARGET_PROPERTIES(date_test PROPERTIES LINK_SEARCH_START_STATIC ON) #add_dependencies( date_test boost_test boost_filesystem ) @@ -46,7 +44,7 @@ volid_test license++_static license_generator_snippet - ${Boost_test_LIBRARY} + ${Boost_LIBRARIES} ) #SET_TARGET_PROPERTIES(volid_test PROPERTIES LINK_SEARCH_START_STATIC ON) diff --git a/test/functional/volid_test.cpp b/test/functional/volid_test.cpp index 6aa87d1..aa0ba7d 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 +//#undef BOOST_TEST_DYN_LINK #include <boost/test/unit_test.hpp> #include <fstream> #include <cstring> @@ -11,7 +11,6 @@ #include "../../src/library/ini/SimpleIni.h" #include "generate-license.h" #include "../../src/library/pc-identifiers.h" -#include <dbus-1.0/dbus/dbus.h> namespace fs = boost::filesystem; using namespace license; diff --git a/test/library/CMakeLists.txt b/test/library/CMakeLists.txt index a88aae1..fc1ec78 100644 --- a/test/library/CMakeLists.txt +++ b/test/library/CMakeLists.txt @@ -7,8 +7,7 @@ target_link_libraries( license_reader_test license++_static - boost_filesystem - boost_test + ${Boost_LIBRARIES} ) #SET_TARGET_PROPERTIES(license_reader_test PROPERTIES LINK_SEARCH_START_STATIC ON) @@ -26,7 +25,7 @@ target_link_libraries( os_linux_test os - ${Boost_test_LIBRARY} + ${Boost_LIBRARIES} ) #add_dependencies( os_linux_test ) diff --git a/test/license-generator/CMakeLists.txt b/test/license-generator/CMakeLists.txt index 16db239..df4129e 100644 --- a/test/license-generator/CMakeLists.txt +++ b/test/license-generator/CMakeLists.txt @@ -7,7 +7,7 @@ target_link_libraries( license_generator_test license_generator_lib - ${Boost_test_LIBRARY} + ${Boost_LIBRARIES} ) #add_dependencies( license_generator_test boost_test boost_filesystem ) -- Gitblit v1.9.1