open-license-manager
2014-08-11 ab3e91ded7f8fb69c244231e2d6fe80a92070c37
build/modules/add_boost.cmake
@@ -150,13 +150,27 @@
# Expose BoostSourceDir to parent scope
set(BoostSourceDir ${BoostSourceDir} ) #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 <SOURCE_DIR>/b2
           link=static
set(b2Args ./b2
           link=${BOOST_LINK}
           threading=multi
           runtime-link=shared
           runtime-link=${RUNTIME_LINK}
           --build-dir=Build
           stage
           -d+2
@@ -210,24 +224,31 @@
# Build each required component
include(ExternalProject)
foreach(Component ${BoostComponents})
  ExternalProject_Add(
      boost_${Component}
      PREFIX ${CMAKE_BINARY_DIR}/${BoostFolderName}
      SOURCE_DIR ${BoostSourceDir}
      BINARY_DIR ${BoostSourceDir}
      CONFIGURE_COMMAND ""
      BUILD_COMMAND "${b2Args}" --with-${Component}
      INSTALL_COMMAND ""
      LOG_BUILD ON
      )
  ms_underscores_to_camel_case(${Component} CamelCaseComponent)
  add_library(Boost${CamelCaseComponent} STATIC IMPORTED GLOBAL)
  add_library(Boost${CamelCaseComponent} SHARED
      IMPORTED
      GLOBAL)
  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_${Component}
          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${CamelCaseComponent} PROPERTIES
                          IMPORTED_LOCATION_DEBUG ${BoostSourceDir}/stage/lib/libboost_${Component}-${CompilerName}-mt-gd-${Version}.lib
@@ -236,13 +257,23 @@
                          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()
    set_target_properties(Boost${CamelCaseComponent} PROPERTIES
                          IMPORTED_LOCATION ${BoostSourceDir}/stage/lib/libboost_${Component}-mt.a
                          LINKER_LANGUAGE CXX)
  endif()
  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_${Component}
            DEPENDS ${OUTPUT_FILE}
            WORKING_DIRECTORY ${BoostSourceDir})
        set_target_properties(Boost${CamelCaseComponent} 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 "Third Party/Boost" EXCLUDE_FROM_ALL TRUE)
                        LABELS Boost FOLDER "Boost" EXCLUDE_FROM_ALL TRUE)
  add_dependencies(Boost${CamelCaseComponent} boost_${Component})
  set(Boost${CamelCaseComponent}Libs Boost${CamelCaseComponent})
  if("${Component}" STREQUAL "locale")