From a773c59f05ddfbe3fd68517ed4c91aa179e57f89 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Sun, 11 Mar 2018 23:01:33 -0700 Subject: [boost-build] Split out into boost-modular-build-helper and support non-Windows targets --- ports/boost-atomic/CONTROL | 2 +- ports/boost-build/CONTROL | 2 +- ports/boost-build/Jamroot.jam | 150 ---------- ports/boost-build/boost-modular-build.cmake | 275 ----------------- ports/boost-build/nothing.bat | 0 ports/boost-build/portfile.cmake | 45 ++- ports/boost-build/user-config.jam | 33 --- ports/boost-chrono/CONTROL | 2 +- ports/boost-container/CONTROL | 2 +- ports/boost-context/CONTROL | 2 +- ports/boost-coroutine/CONTROL | 2 +- ports/boost-date-time/CONTROL | 2 +- ports/boost-exception/CONTROL | 2 +- ports/boost-fiber/CONTROL | 2 +- ports/boost-filesystem/CONTROL | 2 +- ports/boost-graph-parallel/CONTROL | 2 +- ports/boost-graph/CONTROL | 2 +- ports/boost-iostreams/CONTROL | 2 +- ports/boost-locale/CONTROL | 2 +- ports/boost-log/CONTROL | 2 +- ports/boost-math/CONTROL | 2 +- ports/boost-modular-build-helper/CMakeLists.txt | 120 ++++++++ ports/boost-modular-build-helper/CONTROL | 2 + ports/boost-modular-build-helper/Jamroot.jam | 150 ++++++++++ .../boost-modular-build.cmake | 329 +++++++++++++++++++++ ports/boost-modular-build-helper/nothing.bat | 0 ports/boost-modular-build-helper/portfile.cmake | 11 + ports/boost-modular-build-helper/user-config.jam | 47 +++ ports/boost-mpi/CONTROL | 2 +- ports/boost-program-options/CONTROL | 2 +- ports/boost-random/CONTROL | 2 +- ports/boost-regex/CONTROL | 2 +- ports/boost-serialization/CONTROL | 2 +- ports/boost-signals/CONTROL | 2 +- ports/boost-stacktrace/CONTROL | 2 +- ports/boost-system/CONTROL | 2 +- ports/boost-test/CONTROL | 2 +- ports/boost-thread/CONTROL | 2 +- ports/boost-timer/CONTROL | 2 +- ports/boost-type-erasure/CONTROL | 2 +- ports/boost-vcpkg-helpers/generate-ports.ps1 | 2 +- ports/boost-wave/CONTROL | 2 +- 42 files changed, 711 insertions(+), 511 deletions(-) delete mode 100644 ports/boost-build/Jamroot.jam delete mode 100644 ports/boost-build/boost-modular-build.cmake delete mode 100644 ports/boost-build/nothing.bat delete mode 100644 ports/boost-build/user-config.jam create mode 100644 ports/boost-modular-build-helper/CMakeLists.txt create mode 100644 ports/boost-modular-build-helper/CONTROL create mode 100644 ports/boost-modular-build-helper/Jamroot.jam create mode 100644 ports/boost-modular-build-helper/boost-modular-build.cmake create mode 100644 ports/boost-modular-build-helper/nothing.bat create mode 100644 ports/boost-modular-build-helper/portfile.cmake create mode 100644 ports/boost-modular-build-helper/user-config.jam diff --git a/ports/boost-atomic/CONTROL b/ports/boost-atomic/CONTROL index 9c84408eb..4a625b6df 100644 --- a/ports/boost-atomic/CONTROL +++ b/ports/boost-atomic/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-atomic Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-config, boost-integer, boost-type-traits, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-integer, boost-type-traits, boost-vcpkg-helpers Description: Boost atomic module diff --git a/ports/boost-build/CONTROL b/ports/boost-build/CONTROL index cf93bfa1e..ef59d386c 100644 --- a/ports/boost-build/CONTROL +++ b/ports/boost-build/CONTROL @@ -1,3 +1,3 @@ Source: boost-build -Version: 1.66.0-5 +Version: 1.66.0-8 Description: Boost.Build diff --git a/ports/boost-build/Jamroot.jam b/ports/boost-build/Jamroot.jam deleted file mode 100644 index 6669b446e..000000000 --- a/ports/boost-build/Jamroot.jam +++ /dev/null @@ -1,150 +0,0 @@ -constant BOOST_VERSION : 1.66.0 ; -constant BOOST_VERSION_ABI_TAG : 1_66 ; -constant BOOST_JAMROOT_MODULE : $(__name__) ; - -import boostcpp ; -import feature ; - -boostcpp.set-version $(BOOST_VERSION) ; - -project boost : requirements - include&&"@CURRENT_INSTALLED_DIR@/include" - BOOST_ALL_NO_LIB=1 - @$(__name__).tag - @REQUIREMENTS@ - ; - -rule boost-install ( libraries * ) -{ - stagedir = [ option.get stagedir ] ; - install stage - : $(libraries) - : $(stagedir)/lib ; -} - -rule tag ( name : type ? : property-set ) -{ - return [ boostcpp.tag $(name) : $(type) : $(property-set) ] ; -} - -rule python-tag ( name : type ? : property-set ) -{ - return [ tag $(name) : $(type) : $(property-set) ] ; -} - -if "@PORT@" != "boost-system" -{ - use-project /boost/system : . ; - - lib boost_system : : "@CURRENT_INSTALLED_DIR@/lib/boost_system-vc140-mt.lib" release ; - lib boost_system : : "@CURRENT_INSTALLED_DIR@/debug/lib/boost_system-vc140-mt-gd.lib" debug ; - explicit boost_system ; -} - -if "@PORT@" != "boost-chrono" -{ - use-project /boost/chrono : . ; - - lib boost_chrono : : "@CURRENT_INSTALLED_DIR@/lib/boost_chrono-vc140-mt.lib" release ; - lib boost_chrono : : "@CURRENT_INSTALLED_DIR@/debug/lib/boost_chrono-vc140-mt-gd.lib" debug ; - explicit boost_chrono ; -} - -if "@PORT@" != "boost-regex" -{ - use-project /boost/regex : . ; - - lib boost_regex : : "@CURRENT_INSTALLED_DIR@/lib/boost_regex-vc140-mt.lib" release ; - lib boost_regex : : "@CURRENT_INSTALLED_DIR@/debug/lib/boost_regex-vc140-mt-gd.lib" debug ; - explicit boost_regex ; -} - -if "@PORT@" != "boost-date-time" -{ - use-project /boost/date_time : . ; - - lib boost_date_time : : "@CURRENT_INSTALLED_DIR@/lib/boost_date_time-vc140-mt.lib" release -/boost/date_time//boost_date_time ; - lib boost_date_time : : "@CURRENT_INSTALLED_DIR@/debug/lib/boost_date_time-vc140-mt-gd.lib" debug -/boost/date_time//boost_date_time ; - explicit boost_date_time ; -} - -if "@PORT@" != "boost-thread" -{ - use-project /boost/thread : . ; - - lib boost_thread : : "@CURRENT_INSTALLED_DIR@/lib/boost_thread-vc140-mt.lib" release : : /boost/date_time//boost_date_time ; - lib boost_thread : : "@CURRENT_INSTALLED_DIR@/debug/lib/boost_thread-vc140-mt-gd.lib" debug : : /boost/date_time//boost_date_time ; - explicit boost_thread ; -} - -if "@PORT@" != "boost-timer" -{ - use-project /boost/timer : . ; - - lib boost_timer : : "@CURRENT_INSTALLED_DIR@/lib/boost_timer-vc140-mt.lib" release ; - lib boost_timer : : "@CURRENT_INSTALLED_DIR@/debug/lib/boost_timer-vc140-mt-gd.lib" debug ; - explicit boost_timer ; -} - -if "@PORT@" != "boost-filesystem" -{ - use-project /boost/filesystem : . ; - - lib boost_filesystem : : "@CURRENT_INSTALLED_DIR@/lib/boost_filesystem-vc140-mt.lib" release : : /boost/system//boost_system ; - lib boost_filesystem : : "@CURRENT_INSTALLED_DIR@/debug/lib/boost_filesystem-vc140-mt-gd.lib" debug : : /boost/system//boost_system ; - explicit boost_filesystem ; -} - -if "@PORT@" != "boost-atomic" -{ - use-project /boost/atomic : . ; - - lib boost_atomic : : "@CURRENT_INSTALLED_DIR@/lib/boost_atomic-vc140-mt.lib" release ; - lib boost_atomic : : "@CURRENT_INSTALLED_DIR@/debug/lib/boost_atomic-vc140-mt-gd.lib" debug ; - explicit boost_atomic ; -} - -if "@PORT@" != "boost-context" -{ - feature.feature segmented-stacks : on : optional propagated composite ; - feature.compose on : BOOST_USE_SEGMENTED_STACKS ; - - use-project /boost/context : . ; - - lib boost_context : : "@CURRENT_INSTALLED_DIR@/lib/boost_context-vc140-mt.lib" release ; - lib boost_context : : "@CURRENT_INSTALLED_DIR@/debug/lib/boost_context-vc140-mt-gd.lib" debug ; - explicit boost_context ; -} - -if "@PORT@" != "boost-test" -{ - use-project /boost/test : . ; - - lib boost_unit_test_framework : : "@CURRENT_INSTALLED_DIR@/lib/boost_unit_test_framework-vc140-mt.lib" release ; - lib boost_unit_test_framework : : "@CURRENT_INSTALLED_DIR@/debug/lib/boost_unit_test_framework-vc140-mt-gd.lib" debug ; - explicit boost_unit_test_framework ; -} - -if "@PORT@" != "boost-serialization" -{ - use-project /boost/serialization : . ; - - lib boost_serialization : : @CURRENT_INSTALLED_DIR@/lib/boost_serialization-vc140-mt.lib release ; - lib boost_serialization : : @CURRENT_INSTALLED_DIR@/debug/lib/boost_serialization-vc140-mt-gd.lib debug ; - explicit boost_serialization ; -} - -rule requires ( foo * ) -{ -} - -rule boost-lib ( name : sources * : requirements * : default-build * : usage-requirements * ) -{ - name = boost_$(name) ; - lib $(name) : $(sources) : $(requirements) : $(default-build) : $(usage-requirements) ; - boost-install $(name) ; -} - -use-project /boost/@PORT@ : build ; - -build-project build ; diff --git a/ports/boost-build/boost-modular-build.cmake b/ports/boost-build/boost-modular-build.cmake deleted file mode 100644 index 57505dbea..000000000 --- a/ports/boost-build/boost-modular-build.cmake +++ /dev/null @@ -1,275 +0,0 @@ -function(boost_modular_build) - cmake_parse_arguments(_bm "" "SOURCE_PATH;REQUIREMENTS" "OPTIONS" ${ARGN}) - - if(NOT DEFINED _bm_SOURCE_PATH) - message(FATAL_ERROR "SOURCE_PATH is a required argument to boost_modular_build.") - endif() - - # Todo: this serves too similar a purpose as vcpkg_find_acquire_program() - if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(BOOST_BUILD_PATH "${CURRENT_INSTALLED_DIR}/tools/boost-build") - else() - get_filename_component(BOOST_BUILD_PATH "${CURRENT_INSTALLED_DIR}/../x86-windows/tools/boost-build" ABSOLUTE) - endif() - - if(NOT EXISTS "${BOOST_BUILD_PATH}") - message(FATAL_ERROR "The x86 boost-build tools must be installed to build for non-x86/x64 platforms. Please run `vcpkg install boost-build:x86-windows`.") - endif() - - if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - list(APPEND _bm_OPTIONS windows-api=store) - endif() - - set(_bm_DIR ${CURRENT_INSTALLED_DIR}/share/boost-build) - - if(EXISTS "${_bm_SOURCE_PATH}/Jamfile.v2") - file(REMOVE_RECURSE "${_bm_SOURCE_PATH}/Jamfile.v2") - endif() - - set(REQUIREMENTS ${_bm_REQUIREMENTS}) - - configure_file(${_bm_DIR}/Jamroot.jam ${_bm_SOURCE_PATH}/Jamroot.jam @ONLY) - - # boost thread superfluously builds has_atomic_flag_lockfree on windows. - if(EXISTS "${_bm_SOURCE_PATH}/build/Jamfile.v2") - file(READ ${_bm_SOURCE_PATH}/build/Jamfile.v2 _contents) - string(REPLACE - "\n\nexe has_atomic_flag_lockfree" - "\n\nexplicit has_atomic_flag_lockfree ;\nexe has_atomic_flag_lockfree" - _contents - "${_contents}" - ) - string(REPLACE "\nimport ../../config/checks/config : requires ;" "\n# import ../../config/checks/config : requires ;" _contents "${_contents}") - string(REGEX REPLACE - "\.\./\.\./([^/ ]+)/build//(boost_[^/ ]+)" - "/boost/\\1//\\2" - _contents - "${_contents}" - ) - string(REGEX REPLACE " /boost//([^/ ]+)" " /boost/\\1//boost_\\1" _contents "${_contents}") - file(WRITE ${_bm_SOURCE_PATH}/build/Jamfile.v2 "${_contents}") - endif() - - if(EXISTS "${_bm_SOURCE_PATH}/build/log-architecture.jam") - file(READ ${_bm_SOURCE_PATH}/build/log-architecture.jam _contents) - string(REPLACE - "\nproject.load [ path.join [ path.make $(here:D) ] ../../config/checks/architecture ] ;" - "\n# project.load [ path.join [ path.make $(here:D) ] ../../config/checks/architecture ] ;" - _contents "${_contents}") - file(WRITE ${_bm_SOURCE_PATH}/build/log-architecture.jam "${_contents}") - endif() - - ##################### - # Cleanup previous builds - ###################### - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - # It is possible for a file in this folder to be locked due to antivirus or vctip - execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1) - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - message(FATAL_ERROR "Unable to remove directory: ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel\n Files are likely in use.") - endif() - endif() - - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - # It is possible for a file in this folder to be locked due to antivirus or vctip - execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1) - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - message(FATAL_ERROR "Unable to remove directory: ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg\n Files are likely in use.") - endif() - endif() - - if(EXISTS ${CURRENT_PACKAGES_DIR}/debug) - message(FATAL_ERROR "Error: directory exists: ${CURRENT_PACKAGES_DIR}/debug\n The previous package was not fully cleared. This is an internal error.") - endif() - file(MAKE_DIRECTORY - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - ) - - ###################### - # Generate configuration - ###################### - list(APPEND _bm_OPTIONS - -j$ENV{NUMBER_OF_PROCESSORS} - --debug-configuration - --debug-building - --debug-generators - --disable-icu - --ignore-site-config - --hash - -q - -sZLIB_INCLUDE="${CURRENT_INSTALLED_DIR}\\include" - -sBZIP2_INCLUDE="${CURRENT_INSTALLED_DIR}\\include" - threadapi=win32 - threading=multi - ) - set(_bm_OPTIONS_DBG - -sZLIB_BINARY=zlibd - -sZLIB_LIBPATH="${CURRENT_INSTALLED_DIR}\\debug\\lib" - -sBZIP2_BINARY=bz2d - -sBZIP2_LIBPATH="${CURRENT_INSTALLED_DIR}\\debug\\lib" - ) - - set(_bm_OPTIONS_REL - -sZLIB_BINARY=zlib - -sZLIB_LIBPATH="${CURRENT_INSTALLED_DIR}\\lib" - -sBZIP2_BINARY=bz2 - -sBZIP2_LIBPATH="${CURRENT_INSTALLED_DIR}\\lib" - ) - - - # Add build type specific options - if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") - list(APPEND _bm_OPTIONS runtime-link=shared) - else() - list(APPEND _bm_OPTIONS runtime-link=static) - endif() - - if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") - list(APPEND _bm_OPTIONS link=shared) - else() - list(APPEND _bm_OPTIONS link=static) - endif() - - if(VCPKG_TARGET_ARCHITECTURE MATCHES "x64") - list(APPEND _bm_OPTIONS address-model=64 architecture=x86) - elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") - list(APPEND _bm_OPTIONS address-model=32 architecture=arm) - else() - list(APPEND _bm_OPTIONS address-model=32 architecture=x86) - endif() - - file(TO_CMAKE_PATH "${_bm_DIR}/nothing.bat" NOTHING_BAT) - set(TOOLSET_OPTIONS " /EHsc -Zm800 -nologo") - if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - if(VCPKG_PLATFORM_TOOLSET MATCHES "v141") - find_path(PATH_TO_CL cl.exe) - find_path(PLATFORM_WINMD_DIR platform.winmd PATHS "${PATH_TO_CL}/../../../lib/x86/store/references" NO_DEFAULT_PATH) - if(PLATFORM_WINMD_DIR MATCHES "NOTFOUND") - message(FATAL_ERROR "Could not find `platform.winmd` in VS2017. Do you have the Universal Windows Platform development workload installed?") - endif() - else() - find_path(PLATFORM_WINMD_DIR platform.winmd PATHS "$ENV{VS140COMNTOOLS}/../../VC/LIB/store/references") - if(PLATFORM_WINMD_DIR MATCHES "NOTFOUND") - message(FATAL_ERROR "Could not find `platform.winmd` in VS2015.") - endif() - endif() - file(TO_NATIVE_PATH "${PLATFORM_WINMD_DIR}" PLATFORM_WINMD_DIR) - string(REPLACE "\\" "\\\\" PLATFORM_WINMD_DIR ${PLATFORM_WINMD_DIR}) # escape backslashes - - set(TOOLSET_OPTIONS "${TOOLSET_OPTIONS} -Zl \"/AI\"${PLATFORM_WINMD_DIR}\"\" WindowsApp.lib /ZW -DVirtualAlloc=VirtualAllocFromApp -D_WIN32_WINNT=0x0A00") - else() - set(TOOLSET_OPTIONS "${TOOLSET_OPTIONS} -D_WIN32_WINNT=0x0602") - endif() - - configure_file(${_bm_DIR}/user-config.jam ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/user-config.jam @ONLY) - configure_file(${_bm_DIR}/user-config.jam ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/user-config.jam @ONLY) - - if(VCPKG_PLATFORM_TOOLSET MATCHES "v141") - list(APPEND _bm_OPTIONS toolset=msvc-14.1) - elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v140") - list(APPEND _bm_OPTIONS toolset=msvc-14.0) - else() - message(FATAL_ERROR "Unsupported value for VCPKG_PLATFORM_TOOLSET: '${VCPKG_PLATFORM_TOOLSET}'") - endif() - - ###################### - # Perform build + Package - ###################### - set(B2_EXE "${BOOST_BUILD_PATH}/b2.exe") - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - message(STATUS "Building ${TARGET_TRIPLET}-rel") - set(ENV{BOOST_BUILD_PATH} "${BOOST_BUILD_PATH}") - vcpkg_execute_required_process( - COMMAND "${B2_EXE}" - --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage - --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - --user-config=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/user-config.jam - ${_bm_OPTIONS} - ${_bm_OPTIONS_REL} - variant=release - debug-symbols=on - WORKING_DIRECTORY ${_bm_SOURCE_PATH} - LOGNAME build-${TARGET_TRIPLET}-rel - ) - message(STATUS "Building ${TARGET_TRIPLET}-rel done") - endif() - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - message(STATUS "Building ${TARGET_TRIPLET}-dbg") - set(ENV{BOOST_BUILD_PATH} "${BOOST_BUILD_PATH}") - vcpkg_execute_required_process( - COMMAND "${B2_EXE}" - --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage - --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - --user-config=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/user-config.jam - ${_bm_OPTIONS} - ${_bm_OPTIONS_DBG} - variant=debug - WORKING_DIRECTORY ${_bm_SOURCE_PATH} - LOGNAME build-${TARGET_TRIPLET}-dbg - ) - message(STATUS "Building ${TARGET_TRIPLET}-dbg done") - endif() - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - message(STATUS "Packaging ${TARGET_TRIPLET}-rel") - file(GLOB REL_LIBS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/boost/build/*/*.lib) - file(COPY ${REL_LIBS} - DESTINATION ${CURRENT_PACKAGES_DIR}/lib - FILES_MATCHING PATTERN "*.lib") - if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - file(GLOB REL_DLLS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/boost/build/*/*.dll) - file(COPY ${REL_DLLS} - DESTINATION ${CURRENT_PACKAGES_DIR}/bin - FILES_MATCHING PATTERN "*.dll") - endif() - message(STATUS "Packaging ${TARGET_TRIPLET}-rel done") - endif() - - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - message(STATUS "Packaging ${TARGET_TRIPLET}-dbg") - file(GLOB DBG_LIBS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/boost/build/*/*.lib) - file(COPY ${DBG_LIBS} - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib - FILES_MATCHING PATTERN "*.lib") - if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - file(GLOB DBG_DLLS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/boost/build/*/*.dll) - file(COPY ${DBG_DLLS} - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin - FILES_MATCHING PATTERN "*.dll") - endif() - message(STATUS "Packaging ${TARGET_TRIPLET}-dbg done") - endif() - - file(GLOB INSTALLED_LIBS ${CURRENT_PACKAGES_DIR}/debug/lib/*.lib ${CURRENT_PACKAGES_DIR}/lib/*.lib) - foreach(LIB ${INSTALLED_LIBS}) - get_filename_component(OLD_FILENAME ${LIB} NAME) - get_filename_component(DIRECTORY_OF_LIB_FILE ${LIB} DIRECTORY) - string(REPLACE "libboost_" "boost_" NEW_FILENAME ${OLD_FILENAME}) - string(REPLACE "-s-" "-" NEW_FILENAME ${NEW_FILENAME}) # For Release libs - string(REPLACE "-vc141-" "-vc140-" NEW_FILENAME ${NEW_FILENAME}) # To merge VS2017 and VS2015 binaries - string(REPLACE "-sgd-" "-gd-" NEW_FILENAME ${NEW_FILENAME}) # For Debug libs - string(REPLACE "-sgyd-" "-gyd-" NEW_FILENAME ${NEW_FILENAME}) # For Debug libs - string(REPLACE "-x32-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries - string(REPLACE "-x64-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries - string(REPLACE "-a32-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries - string(REPLACE "-a64-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries - string(REPLACE "-1_66" "" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake > 3.10 to locate the binaries - string(REPLACE "_python3-" "_python-" NEW_FILENAME ${NEW_FILENAME}) - if("${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME}" STREQUAL "${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME}") - # nothing to do - elseif(EXISTS ${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME}) - file(REMOVE ${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME}) - else() - file(RENAME ${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME} ${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME}) - endif() - endforeach() - - vcpkg_copy_pdbs() -endfunction() diff --git a/ports/boost-build/nothing.bat b/ports/boost-build/nothing.bat deleted file mode 100644 index e69de29bb..000000000 diff --git a/ports/boost-build/portfile.cmake b/ports/boost-build/portfile.cmake index ea2b57261..fdd559ebe 100644 --- a/ports/boost-build/portfile.cmake +++ b/ports/boost-build/portfile.cmake @@ -4,12 +4,10 @@ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" AND NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") return() +elseif(CMAKE_HOST_WIN32 AND VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + return() endif() -# This fixes the lib path to use desktop libs instead of uwp -- TODO: improve this with better "host" compilation -string(REPLACE "\\store\\;" "\\;" LIB "$ENV{LIB}") -set(ENV{LIB} "${LIB}") - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/build @@ -30,6 +28,13 @@ vcpkg_download_distfile(BOOSTCPP_ARCHIVE SHA512 ef2ae1d6a53a7f93654950e2e8e679da6b0359f02baafc03db970801634c1f5d4229633b5b6d74ad96a306e6efe3429d436669dc165b1fa655917e0ec74714e4 ) +file(INSTALL ${ARCHIVE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost-build RENAME copyright) +file(INSTALL ${BOOSTCPP_ARCHIVE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/boost-build RENAME boostcpp.jam) + +# This fixes the lib path to use desktop libs instead of uwp -- TODO: improve this with better "host" compilation +string(REPLACE "\\store\\;" "\\;" LIB "$ENV{LIB}") +set(ENV{LIB} "${LIB}") + file(COPY ${SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/tools/boost-build @@ -44,22 +49,16 @@ string(REPLACE "_WIN32_WINNT=0x0602" "" _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/tools/boost-build/src/tools/msvc.jam" "${_contents}") message(STATUS "Bootstrapping...") -vcpkg_execute_required_process( - COMMAND "${CURRENT_PACKAGES_DIR}/tools/boost-build/bootstrap.bat" msvc - WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/boost-build - LOGNAME bootstrap-${TARGET_TRIPLET} -) - -file(INSTALL ${ARCHIVE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost-build RENAME copyright) -file(INSTALL ${BOOSTCPP_ARCHIVE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/boost-build RENAME boostcpp.jam) - - - -file( - COPY - ${CMAKE_CURRENT_LIST_DIR}/boost-modular-build.cmake - ${CMAKE_CURRENT_LIST_DIR}/Jamroot.jam - ${CMAKE_CURRENT_LIST_DIR}/nothing.bat - ${CMAKE_CURRENT_LIST_DIR}/user-config.jam - DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost-build -) +if(CMAKE_HOST_WIN32) + vcpkg_execute_required_process( + COMMAND "${CURRENT_PACKAGES_DIR}/tools/boost-build/bootstrap.bat" msvc + WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/boost-build + LOGNAME bootstrap-${TARGET_TRIPLET} + ) +else() + vcpkg_execute_required_process( + COMMAND "${CURRENT_PACKAGES_DIR}/tools/boost-build/bootstrap.sh" + WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/boost-build + LOGNAME bootstrap-${TARGET_TRIPLET} + ) +endif() diff --git a/ports/boost-build/user-config.jam b/ports/boost-build/user-config.jam deleted file mode 100644 index 59cc160cc..000000000 --- a/ports/boost-build/user-config.jam +++ /dev/null @@ -1,33 +0,0 @@ -import toolset ; - -using msvc : : cl.exe : -"@NOTHING_BAT@" -@TOOLSET_OPTIONS@ -; - -if "@PORT@" = "boost-python" -{ - using python : @PYTHON_VERSION@ : : "@PYTHON_INCLUDE_PATH@" : "@PYTHONLIBS_RELEASE@" ; - using python : @PYTHON_VERSION@ : : "@PYTHON_INCLUDE_PATH@" : "@PYTHONLIBS_DEBUG@" : on ; -} - -if "@PORT@" = "boost-mpi" -{ - using mpi : : - @CURRENT_INSTALLED_DIR@/lib - @CURRENT_INSTALLED_DIR@/include - msmpi ; -} - -project user-config : ; - -lib advapi32 ; - -lib icuuc : : "@CURRENT_INSTALLED_DIR@/lib/icuuc.lib" release : : advapi32 ; -lib icuuc : : "@CURRENT_INSTALLED_DIR@/debug/lib/icuucd.lib" debug : : advapi32 ; - -lib icuin : : "@CURRENT_INSTALLED_DIR@/lib/icuin.lib" release : : ; -lib icuin : : "@CURRENT_INSTALLED_DIR@/debug/lib/icuind.lib" debug : : ; - -lib icudt : : "@CURRENT_INSTALLED_DIR@/lib/icudt.lib" release : : ; -lib icudt : : "@CURRENT_INSTALLED_DIR@/debug/lib/icudtd.lib" debug : : ; diff --git a/ports/boost-chrono/CONTROL b/ports/boost-chrono/CONTROL index 00ee98871..b5fb892cd 100644 --- a/ports/boost-chrono/CONTROL +++ b/ports/boost-chrono/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-chrono Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-integer, boost-move, boost-mpl, boost-predef, boost-ratio, boost-static-assert, boost-system, boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-detail, boost-integer, boost-move, boost-mpl, boost-predef, boost-ratio, boost-static-assert, boost-system, boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi Description: Boost chrono module diff --git a/ports/boost-container/CONTROL b/ports/boost-container/CONTROL index df2cfe44e..69e641d36 100644 --- a/ports/boost-container/CONTROL +++ b/ports/boost-container/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-container Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-config, boost-core, boost-functional, boost-integer, boost-intrusive, boost-move, boost-static-assert, boost-type-traits, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-core, boost-functional, boost-integer, boost-intrusive, boost-move, boost-static-assert, boost-type-traits, boost-vcpkg-helpers Description: Boost container module diff --git a/ports/boost-context/CONTROL b/ports/boost-context/CONTROL index 37568a50d..22295dddc 100644 --- a/ports/boost-context/CONTROL +++ b/ports/boost-context/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-context Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-integer, boost-pool, boost-predef, boost-smart-ptr, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-detail, boost-integer, boost-pool, boost-predef, boost-smart-ptr, boost-vcpkg-helpers Description: Boost context module diff --git a/ports/boost-coroutine/CONTROL b/ports/boost-coroutine/CONTROL index 227ffe8ef..77683890a 100644 --- a/ports/boost-coroutine/CONTROL +++ b/ports/boost-coroutine/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-coroutine Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-config, boost-context (windows), boost-detail, boost-exception, boost-integer, boost-move, boost-range, boost-system, boost-thread (windows), boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-context (windows), boost-detail, boost-exception, boost-integer, boost-move, boost-range, boost-system, boost-thread (windows), boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers Description: Boost coroutine module diff --git a/ports/boost-date-time/CONTROL b/ports/boost-date-time/CONTROL index 73f8d07ce..8e8738e8d 100644 --- a/ports/boost-date-time/CONTROL +++ b/ports/boost-date-time/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-date-time Version: 1.66.0 -Build-Depends: boost-algorithm, boost-assert, boost-build, boost-compatibility, boost-config, boost-detail, boost-integer, boost-io, boost-lexical-cast, boost-math, boost-mpl, boost-range, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-tokenizer, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi +Build-Depends: boost-algorithm, boost-assert, boost-build, boost-modular-build-helper, boost-compatibility, boost-config, boost-detail, boost-integer, boost-io, boost-lexical-cast, boost-math, boost-mpl, boost-range, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-tokenizer, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi Description: Boost date_time module diff --git a/ports/boost-exception/CONTROL b/ports/boost-exception/CONTROL index 52d316c34..476c53cf4 100644 --- a/ports/boost-exception/CONTROL +++ b/ports/boost-exception/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-exception Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-config, boost-core, boost-smart-ptr, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-core, boost-smart-ptr, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers Description: Boost exception module diff --git a/ports/boost-fiber/CONTROL b/ports/boost-fiber/CONTROL index 776d929a3..b02c94a3b 100644 --- a/ports/boost-fiber/CONTROL +++ b/ports/boost-fiber/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-fiber Version: 1.66.0 -Build-Depends: boost-algorithm, boost-assert, boost-build, boost-config, boost-context (windows), boost-core, boost-detail, boost-filesystem (windows), boost-format, boost-intrusive, boost-predef, boost-smart-ptr, boost-vcpkg-helpers +Build-Depends: boost-algorithm, boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-context (windows), boost-core, boost-detail, boost-filesystem (windows), boost-format, boost-intrusive, boost-predef, boost-smart-ptr, boost-vcpkg-helpers Description: Boost fiber module diff --git a/ports/boost-filesystem/CONTROL b/ports/boost-filesystem/CONTROL index afa6d0e45..4717d608b 100644 --- a/ports/boost-filesystem/CONTROL +++ b/ports/boost-filesystem/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-filesystem Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-functional, boost-integer, boost-io, boost-iterator, boost-range, boost-smart-ptr, boost-static-assert, boost-system, boost-type-traits, boost-utility, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-detail, boost-functional, boost-integer, boost-io, boost-iterator, boost-range, boost-smart-ptr, boost-static-assert, boost-system, boost-type-traits, boost-utility, boost-vcpkg-helpers Description: Boost filesystem module diff --git a/ports/boost-graph-parallel/CONTROL b/ports/boost-graph-parallel/CONTROL index ba7cf38d2..3f1e8e1ed 100644 --- a/ports/boost-graph-parallel/CONTROL +++ b/ports/boost-graph-parallel/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-graph-parallel Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-detail, boost-dynamic-bitset, boost-function, boost-functional, boost-graph, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-optional, boost-property-map, boost-random, boost-serialization, boost-smart-ptr, boost-static-assert, boost-tuple, boost-type-traits, boost-utility, boost-variant, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-compatibility, boost-config, boost-detail, boost-dynamic-bitset, boost-function, boost-functional, boost-graph, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-optional, boost-property-map, boost-random, boost-serialization, boost-smart-ptr, boost-static-assert, boost-tuple, boost-type-traits, boost-utility, boost-variant, boost-vcpkg-helpers Description: Boost graph_parallel module diff --git a/ports/boost-graph/CONTROL b/ports/boost-graph/CONTROL index dc81d1a85..12d74bc1e 100644 --- a/ports/boost-graph/CONTROL +++ b/ports/boost-graph/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-graph Version: 1.66.0 -Build-Depends: boost-algorithm, boost-any, boost-array, boost-assert, boost-bimap, boost-bind, boost-build, boost-compatibility, boost-concept-check, boost-config, boost-conversion, boost-core, boost-detail, boost-foreach, boost-function, boost-functional, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-move, boost-mpl, boost-multi-index, boost-optional, boost-parameter, boost-preprocessor, boost-property-map, boost-property-tree, boost-random, boost-range, boost-regex, boost-serialization, boost-smart-ptr, boost-spirit, boost-static-assert, boost-test (windows), boost-throw-exception, boost-tti, boost-tuple, boost-typeof, boost-type-traits, boost-unordered, boost-utility, boost-vcpkg-helpers, boost-xpressive +Build-Depends: boost-algorithm, boost-any, boost-array, boost-assert, boost-bimap, boost-bind, boost-build, boost-modular-build-helper, boost-compatibility, boost-concept-check, boost-config, boost-conversion, boost-core, boost-detail, boost-foreach, boost-function, boost-functional, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-move, boost-mpl, boost-multi-index, boost-optional, boost-parameter, boost-preprocessor, boost-property-map, boost-property-tree, boost-random, boost-range, boost-regex, boost-serialization, boost-smart-ptr, boost-spirit, boost-static-assert, boost-test (windows), boost-throw-exception, boost-tti, boost-tuple, boost-typeof, boost-type-traits, boost-unordered, boost-utility, boost-vcpkg-helpers, boost-xpressive Description: Boost graph module diff --git a/ports/boost-iostreams/CONTROL b/ports/boost-iostreams/CONTROL index 57301cb18..d48fdfd24 100644 --- a/ports/boost-iostreams/CONTROL +++ b/ports/boost-iostreams/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-iostreams Version: 1.66.0 -Build-Depends: boost-assert, boost-bind, boost-build, boost-config, boost-core, boost-detail, boost-function, boost-integer, boost-iterator, boost-mpl, boost-preprocessor, boost-range, boost-regex, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, bzip2, zlib +Build-Depends: boost-assert, boost-bind, boost-build, boost-modular-build-helper, boost-config, boost-core, boost-detail, boost-function, boost-integer, boost-iterator, boost-mpl, boost-preprocessor, boost-range, boost-regex, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, bzip2, zlib Description: Boost iostreams module diff --git a/ports/boost-locale/CONTROL b/ports/boost-locale/CONTROL index 884c737b4..0a37505b1 100644 --- a/ports/boost-locale/CONTROL +++ b/ports/boost-locale/CONTROL @@ -1,7 +1,7 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-locale Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-config, boost-function, boost-integer, boost-iterator, boost-smart-ptr, boost-static-assert, boost-thread (windows), boost-type-traits, boost-unordered, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-function, boost-integer, boost-iterator, boost-smart-ptr, boost-static-assert, boost-thread (windows), boost-type-traits, boost-unordered, boost-vcpkg-helpers Description: Boost locale module Feature: icu diff --git a/ports/boost-log/CONTROL b/ports/boost-log/CONTROL index 912f771d0..e8ac68f44 100644 --- a/ports/boost-log/CONTROL +++ b/ports/boost-log/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-log Version: 1.66.0 -Build-Depends: boost-align, boost-array, boost-asio, boost-assert, boost-atomic, boost-bind, boost-build, boost-compatibility, boost-config, boost-core, boost-date-time, boost-detail, boost-exception, boost-filesystem (windows), boost-function-types, boost-fusion, boost-integer, boost-interprocess, boost-intrusive, boost-io, boost-iterator, boost-lexical-cast, boost-locale (windows), boost-math, boost-move, boost-mpl, boost-optional, boost-parameter, boost-phoenix, boost-predef, boost-preprocessor, boost-property-tree, boost-proto, boost-random, boost-range, boost-regex, boost-smart-ptr, boost-spirit, boost-static-assert, boost-system, boost-thread (windows), boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi, boost-xpressive +Build-Depends: boost-align, boost-array, boost-asio, boost-assert, boost-atomic, boost-bind, boost-build, boost-modular-build-helper, boost-compatibility, boost-config, boost-core, boost-date-time, boost-detail, boost-exception, boost-filesystem (windows), boost-function-types, boost-fusion, boost-integer, boost-interprocess, boost-intrusive, boost-io, boost-iterator, boost-lexical-cast, boost-locale (windows), boost-math, boost-move, boost-mpl, boost-optional, boost-parameter, boost-phoenix, boost-predef, boost-preprocessor, boost-property-tree, boost-proto, boost-random, boost-range, boost-regex, boost-smart-ptr, boost-spirit, boost-static-assert, boost-system, boost-thread (windows), boost-throw-exception, boost-type-index, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi, boost-xpressive Description: Boost log module diff --git a/ports/boost-math/CONTROL b/ports/boost-math/CONTROL index 8343ab985..33b230a22 100644 --- a/ports/boost-math/CONTROL +++ b/ports/boost-math/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-math Version: 1.66.0 -Build-Depends: boost-array, boost-assert, boost-atomic, boost-build, boost-compatibility, boost-concept-check, boost-config, boost-core, boost-detail, boost-fusion, boost-integer, boost-lambda, boost-lexical-cast, boost-mpl, boost-predef, boost-range, boost-static-assert, boost-throw-exception, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers +Build-Depends: boost-array, boost-assert, boost-atomic, boost-build, boost-modular-build-helper, boost-compatibility, boost-concept-check, boost-config, boost-core, boost-detail, boost-fusion, boost-integer, boost-lambda, boost-lexical-cast, boost-mpl, boost-predef, boost-range, boost-static-assert, boost-throw-exception, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers Description: Boost math module diff --git a/ports/boost-modular-build-helper/CMakeLists.txt b/ports/boost-modular-build-helper/CMakeLists.txt new file mode 100644 index 000000000..20306e7ed --- /dev/null +++ b/ports/boost-modular-build-helper/CMakeLists.txt @@ -0,0 +1,120 @@ +cmake_minimum_required(VERSION 3.9) +project(boost CXX) + +find_path(ZLIB_INCLUDE zlib.h) +find_path(BZIP2_INCLUDE bzlib.h) +find_path(ICU_PATH include/unicode/utf.h) + +set(VCPKG_PLATFORM_TOOLSET external) + +set(B2_OPTIONS) + +# Add build type specific options +if(BUILD_SHARED_LIBS) + list(APPEND B2_OPTIONS runtime-link=shared) + set(LIB_RUNTIME_LINK "shared") +else() + list(APPEND B2_OPTIONS runtime-link=static) + set(LIB_RUNTIME_LINK "static") +endif() + +if(BUILD_SHARED_LIBS) + list(APPEND B2_OPTIONS link=shared) +else() + list(APPEND B2_OPTIONS link=static) +endif() + +if(CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64") + list(APPEND B2_OPTIONS address-model=64) +endif() + +list(APPEND B2_OPTIONS target-os=linux toolset=gcc) + +string(REPLACE " " " " CXXFLAGS "${CMAKE_CXX_FLAGS}") +#set(CXXFLAGS "${CXXFLAGS} -Wno-error=unused-command-line-argument") +if(CMAKE_CXX_COMPILER_TARGET) + set(CXXFLAGS "${CXXFLAGS} ${CMAKE_CXX_COMPILE_OPTIONS_TARGET} ${CMAKE_CXX_COMPILER_TARGET}") +endif() +if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN) + set(CXXFLAGS "${CXXFLAGS} ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}") +endif() +if(CMAKE_SYSROOT AND CMAKE_CXX_COMPILE_OPTIONS_SYSROOT) + set(CXXFLAGS "${CXXFLAGS} ${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") +endif() +foreach(INCDIR ${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES}) + set(CXXFLAGS "${CXXFLAGS} ${CMAKE_INCLUDE_FLAG_C}${CMAKE_INCLUDE_FLAG_C_SEP}${INCDIR}") +endforeach() + +find_library(ZLIB_LIBPATH z) +list(APPEND B2_OPTIONS + -sZLIB_BINARY=z + -sZLIB_LIBPATH="${ZLIB_LIBPATH}" +) +if(CMAKE_BUILD_TYPE STREQUAL "Release") + find_library(BZIP2_LIBPATH bz2) + list(APPEND B2_OPTIONS + -sBZIP2_BINARY=bz2 + -sBZIP2_LIBPATH="${BZIP2_LIBPATH}" + variant=release + ) +elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") + find_library(BZIP2_LIBPATH bz2d) + list(APPEND B2_OPTIONS + -sBZIP2_BINARY=bz2d + -sBZIP2_LIBPATH="${BZIP2_LIBPATH}" + variant=debug + ) +endif() + +configure_file(${CMAKE_CURRENT_LIST_DIR}/user-config.jam ${CMAKE_CURRENT_BINARY_DIR}/user-config.jam @ONLY) + +set(NUMBER_OF_PROCESSORS 1) +if(DEFINED ENV{NUMBER_OF_PROCESSORS}) + set(NUMBER_OF_PROCESSORS $ENV{NUMBER_OF_PROCESSORS}) +elseif(CMAKE_HOST_LINUX) + execute_process( + COMMAND nproc + OUTPUT_VARIABLE NUMBER_OF_PROCESSORS + ) + string(REPLACE "\n" "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}") + string(REPLACE " " "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}") +endif() +if(NOT NUMBER_OF_PROCESSORS) + set(NUMBER_OF_PROCESSORS 1) +endif() + +add_custom_target(boost ALL + COMMAND "${B2_EXE}" + --user-config=${CMAKE_CURRENT_BINARY_DIR}/user-config.jam + --stagedir=${CMAKE_CURRENT_BINARY_DIR}/stage + --build-dir=${CMAKE_CURRENT_BINARY_DIR} + ${B2_OPTIONS} + --layout=system + --with-atomic + --with-random + --with-date_time + --with-filesystem + --with-system + --with-thread + --with-chrono + -sZLIB_INCLUDE="${ZLIB_INCLUDE}" + -sBZIP2_INCLUDE="${BZIP2_INCLUDE}" + -sICU_PATH="${ICU_PATH}" + -j${NUMBER_OF_PROCESSORS} + -sBOOST_ROOT=${BOOST_BUILD_PATH} + -sBOOST_BUILD_PATH=${BOOST_BUILD_PATH} + --debug-configuration + --ignore-site-config + --hash + -q + + architecture=x86 + threading=multi + threadapi=pthread + debug-symbols=on + WORKING_DIRECTORY ${SOURCE_PATH} +) + +install( + CODE "file(GLOB LIBS ${CMAKE_CURRENT_BINARY_DIR}/boost/build/*/*.a)\nif(LIBS)\nfile(INSTALL \${LIBS} DESTINATION \"\${CMAKE_INSTALL_PREFIX}/lib\")\nendif()" +) diff --git a/ports/boost-modular-build-helper/CONTROL b/ports/boost-modular-build-helper/CONTROL new file mode 100644 index 000000000..eb2257a01 --- /dev/null +++ b/ports/boost-modular-build-helper/CONTROL @@ -0,0 +1,2 @@ +Source: boost-modular-build-helper +Version: 1 diff --git a/ports/boost-modular-build-helper/Jamroot.jam b/ports/boost-modular-build-helper/Jamroot.jam new file mode 100644 index 000000000..e498483c3 --- /dev/null +++ b/ports/boost-modular-build-helper/Jamroot.jam @@ -0,0 +1,150 @@ +constant BOOST_VERSION : 1.66.0 ; +constant BOOST_VERSION_ABI_TAG : 1_66 ; +constant BOOST_JAMROOT_MODULE : $(__name__) ; + +import boostcpp ; +import feature ; + +boostcpp.set-version $(BOOST_VERSION) ; + +project boost : requirements + include&&"@CURRENT_INSTALLED_DIR@/include" + BOOST_ALL_NO_LIB=1 + @$(__name__).tag + @REQUIREMENTS@ + ; + +rule boost-install ( libraries * ) +{ + stagedir = [ option.get stagedir ] ; + install stage + : $(libraries) + : $(stagedir)/lib ; +} + +rule tag ( name : type ? : property-set ) +{ + return [ boostcpp.tag $(name) : $(type) : $(property-set) ] ; +} + +rule python-tag ( name : type ? : property-set ) +{ + return [ tag $(name) : $(type) : $(property-set) ] ; +} + +if "@PORT@" != "boost-system" +{ + use-project /boost/system : . ; + + lib boost_system : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_system@BOOST_LIB_RELEASE_SUFFIX@" release ; + lib boost_system : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_system@BOOST_LIB_DEBUG_SUFFIX@" debug ; + explicit boost_system ; +} + +if "@PORT@" != "boost-chrono" +{ + use-project /boost/chrono : . ; + + lib boost_chrono : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_chrono@BOOST_LIB_RELEASE_SUFFIX@" release ; + lib boost_chrono : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_chrono@BOOST_LIB_DEBUG_SUFFIX@" debug ; + explicit boost_chrono ; +} + +if "@PORT@" != "boost-regex" +{ + use-project /boost/regex : . ; + + lib boost_regex : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_regex@BOOST_LIB_RELEASE_SUFFIX@" release ; + lib boost_regex : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_regex@BOOST_LIB_DEBUG_SUFFIX@" debug ; + explicit boost_regex ; +} + +if "@PORT@" != "boost-date-time" +{ + use-project /boost/date_time : . ; + + lib boost_date_time : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_date_time@BOOST_LIB_RELEASE_SUFFIX@" release -/boost/date_time//boost_date_time ; + lib boost_date_time : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_date_time@BOOST_LIB_DEBUG_SUFFIX@" debug -/boost/date_time//boost_date_time ; + explicit boost_date_time ; +} + +if "@PORT@" != "boost-thread" +{ + use-project /boost/thread : . ; + + lib boost_thread : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_thread@BOOST_LIB_RELEASE_SUFFIX@" release : : /boost/date_time//boost_date_time ; + lib boost_thread : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_thread@BOOST_LIB_DEBUG_SUFFIX@" debug : : /boost/date_time//boost_date_time ; + explicit boost_thread ; +} + +if "@PORT@" != "boost-timer" +{ + use-project /boost/timer : . ; + + lib boost_timer : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_timer@BOOST_LIB_RELEASE_SUFFIX@" release ; + lib boost_timer : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_timer@BOOST_LIB_DEBUG_SUFFIX@" debug ; + explicit boost_timer ; +} + +if "@PORT@" != "boost-filesystem" +{ + use-project /boost/filesystem : . ; + + lib boost_filesystem : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_filesystem@BOOST_LIB_RELEASE_SUFFIX@" release : : /boost/system//boost_system ; + lib boost_filesystem : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_filesystem@BOOST_LIB_DEBUG_SUFFIX@" debug : : /boost/system//boost_system ; + explicit boost_filesystem ; +} + +if "@PORT@" != "boost-atomic" +{ + use-project /boost/atomic : . ; + + lib boost_atomic : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_atomic@BOOST_LIB_RELEASE_SUFFIX@" release ; + lib boost_atomic : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_atomic@BOOST_LIB_DEBUG_SUFFIX@" debug ; + explicit boost_atomic ; +} + +if "@PORT@" != "boost-context" +{ + feature.feature segmented-stacks : on : optional propagated composite ; + feature.compose on : BOOST_USE_SEGMENTED_STACKS ; + + use-project /boost/context : . ; + + lib boost_context : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_context@BOOST_LIB_RELEASE_SUFFIX@" release ; + lib boost_context : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_context@BOOST_LIB_DEBUG_SUFFIX@" debug ; + explicit boost_context ; +} + +if "@PORT@" != "boost-test" +{ + use-project /boost/test : . ; + + lib boost_unit_test_framework : : "@CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_unit_test_framework@BOOST_LIB_RELEASE_SUFFIX@" release ; + lib boost_unit_test_framework : : "@CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_unit_test_framework@BOOST_LIB_DEBUG_SUFFIX@" debug ; + explicit boost_unit_test_framework ; +} + +if "@PORT@" != "boost-serialization" +{ + use-project /boost/serialization : . ; + + lib boost_serialization : : @CURRENT_INSTALLED_DIR@/lib/@BOOST_LIB_PREFIX@boost_serialization@BOOST_LIB_RELEASE_SUFFIX@ release ; + lib boost_serialization : : @CURRENT_INSTALLED_DIR@/debug/lib/@BOOST_LIB_PREFIX@boost_serialization@BOOST_LIB_DEBUG_SUFFIX@ debug ; + explicit boost_serialization ; +} + +rule requires ( foo * ) +{ +} + +rule boost-lib ( name : sources * : requirements * : default-build * : usage-requirements * ) +{ + name = boost_$(name) ; + lib $(name) : $(sources) : $(requirements) : $(default-build) : $(usage-requirements) ; + boost-install $(name) ; +} + +use-project /boost/@PORT@ : build ; + +build-project build ; diff --git a/ports/boost-modular-build-helper/boost-modular-build.cmake b/ports/boost-modular-build-helper/boost-modular-build.cmake new file mode 100644 index 000000000..557e089dd --- /dev/null +++ b/ports/boost-modular-build-helper/boost-modular-build.cmake @@ -0,0 +1,329 @@ +function(boost_modular_build) + cmake_parse_arguments(_bm "" "SOURCE_PATH;REQUIREMENTS" "OPTIONS" ${ARGN}) + + if(NOT DEFINED _bm_SOURCE_PATH) + message(FATAL_ERROR "SOURCE_PATH is a required argument to boost_modular_build.") + endif() + + # Todo: this serves too similar a purpose as vcpkg_find_acquire_program() + if(CMAKE_HOST_WIN32 AND VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + get_filename_component(BOOST_BUILD_PATH "${CURRENT_INSTALLED_DIR}/../x86-windows/tools/boost-build" ABSOLUTE) + elseif(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" AND NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + get_filename_component(BOOST_BUILD_PATH "${CURRENT_INSTALLED_DIR}/../x86-windows/tools/boost-build" ABSOLUTE) + else() + set(BOOST_BUILD_PATH "${CURRENT_INSTALLED_DIR}/tools/boost-build") + endif() + + if(NOT EXISTS "${BOOST_BUILD_PATH}") + message(FATAL_ERROR "The x86 boost-build tools must be installed to build for non-x86/x64 platforms. Please run `vcpkg install boost-build:x86-windows`.") + endif() + + if(EXISTS "${BOOST_BUILD_PATH}/b2.exe") + set(B2_EXE "${BOOST_BUILD_PATH}/b2.exe") + elseif(EXISTS "${BOOST_BUILD_PATH}/b2") + set(B2_EXE "${BOOST_BUILD_PATH}/b2") + else() + message(FATAL_ERROR "Could not find b2 in ${BOOST_BUILD_PATH}") + endif() + + if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + list(APPEND _bm_OPTIONS windows-api=store) + endif() + + set(_bm_DIR ${CURRENT_INSTALLED_DIR}/share/boost-build) + + if(EXISTS "${_bm_SOURCE_PATH}/Jamfile.v2") + file(REMOVE_RECURSE "${_bm_SOURCE_PATH}/Jamfile.v2") + endif() + + set(REQUIREMENTS ${_bm_REQUIREMENTS}) + + if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(BOOST_LIB_PREFIX) + set(BOOST_LIB_RELEASE_SUFFIX -vc140-mt.lib) + set(BOOST_LIB_DEBUG_SUFFIX -vc140-mt-gd.lib) + else() + set(BOOST_LIB_PREFIX lib) + set(BOOST_LIB_RELEASE_SUFFIX .a) + set(BOOST_LIB_DEBUG_SUFFIX .a) + endif() + + # boost thread superfluously builds has_atomic_flag_lockfree on windows. + if(EXISTS "${_bm_SOURCE_PATH}/build/Jamfile.v2") + file(READ ${_bm_SOURCE_PATH}/build/Jamfile.v2 _contents) + string(REPLACE + "\n\nexe has_atomic_flag_lockfree" + "\n\nexplicit has_atomic_flag_lockfree ;\nexe has_atomic_flag_lockfree" + _contents + "${_contents}" + ) + string(REPLACE "\nimport ../../config/checks/config : requires ;" "\n# import ../../config/checks/config : requires ;" _contents "${_contents}") + string(REGEX REPLACE + "\.\./\.\./([^/ ]+)/build//(boost_[^/ ]+)" + "/boost/\\1//\\2" + _contents + "${_contents}" + ) + string(REGEX REPLACE " /boost//([^/ ]+)" " /boost/\\1//boost_\\1" _contents "${_contents}") + file(WRITE ${_bm_SOURCE_PATH}/build/Jamfile.v2 "${_contents}") + endif() + + if(EXISTS "${_bm_SOURCE_PATH}/build/log-architecture.jam") + file(READ ${_bm_SOURCE_PATH}/build/log-architecture.jam _contents) + string(REPLACE + "\nproject.load [ path.join [ path.make $(here:D) ] ../../config/checks/architecture ] ;" + "\n# project.load [ path.join [ path.make $(here:D) ] ../../config/checks/architecture ] ;" + _contents "${_contents}") + file(WRITE ${_bm_SOURCE_PATH}/build/log-architecture.jam "${_contents}") + endif() + + configure_file(${_bm_DIR}/Jamroot.jam ${_bm_SOURCE_PATH}/Jamroot.jam @ONLY) + + if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Android" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") + vcpkg_configure_cmake( + SOURCE_PATH ${CURRENT_INSTALLED_DIR}/share/boost-build + PREFER_NINJA + OPTIONS + "-DB2_EXE=${B2_EXE}" + "-DSOURCE_PATH=${_bm_SOURCE_PATH}" + "-DBOOST_BUILD_PATH=${BOOST_BUILD_PATH}" + ) + vcpkg_install_cmake() + return() + endif() + + ##################### + # Cleanup previous builds + ###################### + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + # It is possible for a file in this folder to be locked due to antivirus or vctip + execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1) + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + message(FATAL_ERROR "Unable to remove directory: ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel\n Files are likely in use.") + endif() + endif() + + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + # It is possible for a file in this folder to be locked due to antivirus or vctip + execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1) + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + if(EXISTS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + message(FATAL_ERROR "Unable to remove directory: ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg\n Files are likely in use.") + endif() + endif() + + if(EXISTS ${CURRENT_PACKAGES_DIR}/debug) + message(FATAL_ERROR "Error: directory exists: ${CURRENT_PACKAGES_DIR}/debug\n The previous package was not fully cleared. This is an internal error.") + endif() + file(MAKE_DIRECTORY + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + ) + + if(DEFINED ENV{NUMBER_OF_PROCESSORS}) + set(NUMBER_OF_PROCESSORS $ENV{NUMBER_OF_PROCESSORS}) + else() + execute_process( + COMMAND nproc + OUTPUT_VARIABLE NUMBER_OF_PROCESSORS + ) + string(REPLACE "\n" "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}") + string(REPLACE " " "" NUMBER_OF_PROCESSORS "${NUMBER_OF_PROCESSORS}") + endif() + + ###################### + # Generate configuration + ###################### + list(APPEND _bm_OPTIONS + -j${NUMBER_OF_PROCESSORS} + --debug-configuration + --debug-building + --debug-generators + --disable-icu + --ignore-site-config + --hash + -q + -sZLIB_INCLUDE="${CURRENT_INSTALLED_DIR}/include" + -sBZIP2_INCLUDE="${CURRENT_INSTALLED_DIR}/include" + threading=multi + ) + if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + list(APPEND _bm_OPTIONS threadapi=win32) + else() + list(APPEND _bm_OPTIONS threadapi=pthread) + endif() + set(_bm_OPTIONS_DBG + -sZLIB_BINARY=zlibd + -sZLIB_LIBPATH="${CURRENT_INSTALLED_DIR}/debug/lib" + -sBZIP2_BINARY=bz2d + -sBZIP2_LIBPATH="${CURRENT_INSTALLED_DIR}/debug/lib" + ) + + set(_bm_OPTIONS_REL + -sZLIB_BINARY=zlib + -sZLIB_LIBPATH="${CURRENT_INSTALLED_DIR}/lib" + -sBZIP2_BINARY=bz2 + -sBZIP2_LIBPATH="${CURRENT_INSTALLED_DIR}/lib" + ) + + + # Add build type specific options + if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") + list(APPEND _bm_OPTIONS runtime-link=shared) + else() + list(APPEND _bm_OPTIONS runtime-link=static) + endif() + + if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + list(APPEND _bm_OPTIONS link=shared) + else() + list(APPEND _bm_OPTIONS link=static) + endif() + + if(VCPKG_TARGET_ARCHITECTURE MATCHES "x64") + list(APPEND _bm_OPTIONS address-model=64 architecture=x86) + elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") + list(APPEND _bm_OPTIONS address-model=32 architecture=arm) + else() + list(APPEND _bm_OPTIONS address-model=32 architecture=x86) + endif() + + file(TO_CMAKE_PATH "${_bm_DIR}/nothing.bat" NOTHING_BAT) + set(TOOLSET_OPTIONS " /EHsc -Zm800 -nologo") + if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + if(VCPKG_PLATFORM_TOOLSET MATCHES "v141") + find_path(PATH_TO_CL cl.exe) + find_path(PLATFORM_WINMD_DIR platform.winmd PATHS "${PATH_TO_CL}/../../../lib/x86/store/references" NO_DEFAULT_PATH) + if(PLATFORM_WINMD_DIR MATCHES "NOTFOUND") + message(FATAL_ERROR "Could not find `platform.winmd` in VS2017. Do you have the Universal Windows Platform development workload installed?") + endif() + else() + find_path(PLATFORM_WINMD_DIR platform.winmd PATHS "$ENV{VS140COMNTOOLS}/../../VC/LIB/store/references") + if(PLATFORM_WINMD_DIR MATCHES "NOTFOUND") + message(FATAL_ERROR "Could not find `platform.winmd` in VS2015.") + endif() + endif() + file(TO_NATIVE_PATH "${PLATFORM_WINMD_DIR}" PLATFORM_WINMD_DIR) + string(REPLACE "\\" "\\\\" PLATFORM_WINMD_DIR ${PLATFORM_WINMD_DIR}) # escape backslashes + + set(TOOLSET_OPTIONS "${TOOLSET_OPTIONS} -Zl \"/AI\"${PLATFORM_WINMD_DIR}\"\" WindowsApp.lib /ZW -DVirtualAlloc=VirtualAllocFromApp -D_WIN32_WINNT=0x0A00") + else() + set(TOOLSET_OPTIONS "${TOOLSET_OPTIONS} -D_WIN32_WINNT=0x0602") + endif() + + configure_file(${_bm_DIR}/user-config.jam ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/user-config.jam @ONLY) + configure_file(${_bm_DIR}/user-config.jam ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/user-config.jam @ONLY) + + if(VCPKG_PLATFORM_TOOLSET MATCHES "v141") + list(APPEND _bm_OPTIONS toolset=msvc-14.1) + elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v140") + list(APPEND _bm_OPTIONS toolset=msvc-14.0) + elseif(VCPKG_PLATFORM_TOOLSET MATCHES "external") + list(APPEND _bm_OPTIONS toolset=gcc) + else() + message(FATAL_ERROR "Unsupported value for VCPKG_PLATFORM_TOOLSET: '${VCPKG_PLATFORM_TOOLSET}'") + endif() + + ###################### + # Perform build + Package + ###################### + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + message(STATUS "Building ${TARGET_TRIPLET}-rel") + set(ENV{BOOST_BUILD_PATH} "${BOOST_BUILD_PATH}") + vcpkg_execute_required_process( + COMMAND "${B2_EXE}" + --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/stage + --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel + --user-config=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/user-config.jam + ${_bm_OPTIONS} + ${_bm_OPTIONS_REL} + variant=release + debug-symbols=on + WORKING_DIRECTORY ${_bm_SOURCE_PATH} + LOGNAME build-${TARGET_TRIPLET}-rel + ) + message(STATUS "Building ${TARGET_TRIPLET}-rel done") + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + set(ENV{BOOST_BUILD_PATH} "${BOOST_BUILD_PATH}") + vcpkg_execute_required_process( + COMMAND "${B2_EXE}" + --stagedir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/stage + --build-dir=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg + --user-config=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/user-config.jam + ${_bm_OPTIONS} + ${_bm_OPTIONS_DBG} + variant=debug + WORKING_DIRECTORY ${_bm_SOURCE_PATH} + LOGNAME build-${TARGET_TRIPLET}-dbg + ) + message(STATUS "Building ${TARGET_TRIPLET}-dbg done") + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + message(STATUS "Packaging ${TARGET_TRIPLET}-rel") + file(GLOB REL_LIBS + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/boost/build/*/*.lib + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/boost/build/*/*.a + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/boost/build/*/*.so + ) + file(COPY ${REL_LIBS} + DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(GLOB REL_DLLS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/boost/build/*/*.dll) + file(COPY ${REL_DLLS} + DESTINATION ${CURRENT_PACKAGES_DIR}/bin + FILES_MATCHING PATTERN "*.dll") + endif() + message(STATUS "Packaging ${TARGET_TRIPLET}-rel done") + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + message(STATUS "Packaging ${TARGET_TRIPLET}-dbg") + file(GLOB DBG_LIBS + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/boost/build/*/*.lib + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/boost/build/*/*.a + ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/boost/build/*/*.so + ) + file(COPY ${DBG_LIBS} + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(GLOB DBG_DLLS ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/boost/build/*/*.dll) + file(COPY ${DBG_DLLS} + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin + FILES_MATCHING PATTERN "*.dll") + endif() + message(STATUS "Packaging ${TARGET_TRIPLET}-dbg done") + endif() + + file(GLOB INSTALLED_LIBS ${CURRENT_PACKAGES_DIR}/debug/lib/*.lib ${CURRENT_PACKAGES_DIR}/lib/*.lib) + foreach(LIB ${INSTALLED_LIBS}) + get_filename_component(OLD_FILENAME ${LIB} NAME) + get_filename_component(DIRECTORY_OF_LIB_FILE ${LIB} DIRECTORY) + string(REPLACE "libboost_" "boost_" NEW_FILENAME ${OLD_FILENAME}) + string(REPLACE "-s-" "-" NEW_FILENAME ${NEW_FILENAME}) # For Release libs + string(REPLACE "-vc141-" "-vc140-" NEW_FILENAME ${NEW_FILENAME}) # To merge VS2017 and VS2015 binaries + string(REPLACE "-sgd-" "-gd-" NEW_FILENAME ${NEW_FILENAME}) # For Debug libs + string(REPLACE "-sgyd-" "-gyd-" NEW_FILENAME ${NEW_FILENAME}) # For Debug libs + string(REPLACE "-x32-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries + string(REPLACE "-x64-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries + string(REPLACE "-a32-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries + string(REPLACE "-a64-" "-" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake 3.10 and earlier to locate the binaries + string(REPLACE "-1_66" "" NEW_FILENAME ${NEW_FILENAME}) # To enable CMake > 3.10 to locate the binaries + string(REPLACE "_python3-" "_python-" NEW_FILENAME ${NEW_FILENAME}) + if("${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME}" STREQUAL "${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME}") + # nothing to do + elseif(EXISTS ${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME}) + file(REMOVE ${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME}) + else() + file(RENAME ${DIRECTORY_OF_LIB_FILE}/${OLD_FILENAME} ${DIRECTORY_OF_LIB_FILE}/${NEW_FILENAME}) + endif() + endforeach() + + vcpkg_copy_pdbs() +endfunction() diff --git a/ports/boost-modular-build-helper/nothing.bat b/ports/boost-modular-build-helper/nothing.bat new file mode 100644 index 000000000..e69de29bb diff --git a/ports/boost-modular-build-helper/portfile.cmake b/ports/boost-modular-build-helper/portfile.cmake new file mode 100644 index 000000000..1c34f2fec --- /dev/null +++ b/ports/boost-modular-build-helper/portfile.cmake @@ -0,0 +1,11 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +file( + COPY + ${CMAKE_CURRENT_LIST_DIR}/boost-modular-build.cmake + ${CMAKE_CURRENT_LIST_DIR}/Jamroot.jam + ${CMAKE_CURRENT_LIST_DIR}/nothing.bat + ${CMAKE_CURRENT_LIST_DIR}/user-config.jam + ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt + DESTINATION ${CURRENT_PACKAGES_DIR}/share/boost-build +) diff --git a/ports/boost-modular-build-helper/user-config.jam b/ports/boost-modular-build-helper/user-config.jam new file mode 100644 index 000000000..e045d622b --- /dev/null +++ b/ports/boost-modular-build-helper/user-config.jam @@ -0,0 +1,47 @@ +import toolset ; + +if "@VCPKG_PLATFORM_TOOLSET@" != "external" +{ + using msvc : : cl.exe : + "@NOTHING_BAT@" + @TOOLSET_OPTIONS@ + ; +} +else +{ + using gcc : 5.4.1 : @CMAKE_CXX_COMPILER@ + : + @CMAKE_RANLIB@ + @CMAKE_AR@ + @CXXFLAGS@ + # MINGW here causes b2 to not run cygpath + mingw + ; +} + +if "@PORT@" = "boost-python" +{ + using python : @PYTHON_VERSION@ : : "@PYTHON_INCLUDE_PATH@" : "@PYTHONLIBS_RELEASE@" ; + using python : @PYTHON_VERSION@ : : "@PYTHON_INCLUDE_PATH@" : "@PYTHONLIBS_DEBUG@" : on ; +} + +if "@PORT@" = "boost-mpi" +{ + using mpi : : + @CURRENT_INSTALLED_DIR@/lib + @CURRENT_INSTALLED_DIR@/include + msmpi ; +} + +project user-config : ; + +lib advapi32 ; + +lib icuuc : : "@CURRENT_INSTALLED_DIR@/lib/icuuc.lib" release : : advapi32 ; +lib icuuc : : "@CURRENT_INSTALLED_DIR@/debug/lib/icuucd.lib" debug : : advapi32 ; + +lib icuin : : "@CURRENT_INSTALLED_DIR@/lib/icuin.lib" release : : ; +lib icuin : : "@CURRENT_INSTALLED_DIR@/debug/lib/icuind.lib" debug : : ; + +lib icudt : : "@CURRENT_INSTALLED_DIR@/lib/icudt.lib" release : : ; +lib icudt : : "@CURRENT_INSTALLED_DIR@/debug/lib/icudtd.lib" debug : : ; diff --git a/ports/boost-mpi/CONTROL b/ports/boost-mpi/CONTROL index 7d17fedec..30ce81a1d 100644 --- a/ports/boost-mpi/CONTROL +++ b/ports/boost-mpi/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-mpi Version: 1.66.0-1 -Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-optional, boost-property-map, boost-python (windows), boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, msmpi +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-compatibility, boost-config, boost-core, boost-function, boost-graph, boost-integer, boost-iterator, boost-lexical-cast, boost-math, boost-mpl, boost-optional, boost-property-map, boost-python (windows), boost-serialization, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers, msmpi Description: Boost mpi module diff --git a/ports/boost-program-options/CONTROL b/ports/boost-program-options/CONTROL index 3a1ff727e..b43937e55 100644 --- a/ports/boost-program-options/CONTROL +++ b/ports/boost-program-options/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-program-options Version: 1.66.0 -Build-Depends: boost-any, boost-bind, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-function, boost-iterator, boost-lexical-cast, boost-math, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-tokenizer, boost-type-traits, boost-vcpkg-helpers +Build-Depends: boost-any, boost-bind, boost-build, boost-modular-build-helper, boost-compatibility, boost-config, boost-core, boost-detail, boost-function, boost-iterator, boost-lexical-cast, boost-math, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-tokenizer, boost-type-traits, boost-vcpkg-helpers Description: Boost program_options module diff --git a/ports/boost-random/CONTROL b/ports/boost-random/CONTROL index fee15c891..1efeeaafa 100644 --- a/ports/boost-random/CONTROL +++ b/ports/boost-random/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-random Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-integer, boost-math, boost-mpl, boost-range, boost-static-assert, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-compatibility, boost-config, boost-core, boost-detail, boost-integer, boost-math, boost-mpl, boost-range, boost-static-assert, boost-system, boost-throw-exception, boost-type-traits, boost-utility, boost-vcpkg-helpers Description: Boost random module diff --git a/ports/boost-regex/CONTROL b/ports/boost-regex/CONTROL index 24e5014d4..efd3e7f7e 100644 --- a/ports/boost-regex/CONTROL +++ b/ports/boost-regex/CONTROL @@ -1,7 +1,7 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-regex Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-compatibility, boost-concept-check, boost-config, boost-core, boost-detail, boost-functional, boost-integer, boost-iterator, boost-mpl, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-compatibility, boost-concept-check, boost-config, boost-core, boost-detail, boost-functional, boost-integer, boost-iterator, boost-mpl, boost-smart-ptr, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers Description: Boost regex module Feature: icu diff --git a/ports/boost-serialization/CONTROL b/ports/boost-serialization/CONTROL index 146c618bd..ae97a8c30 100644 --- a/ports/boost-serialization/CONTROL +++ b/ports/boost-serialization/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-serialization Version: 1.66.0 -Build-Depends: boost-array, boost-assert, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-function, boost-integer, boost-io, boost-iterator, boost-move, boost-mpl, boost-optional, boost-preprocessor, boost-smart-ptr, boost-spirit, boost-static-assert, boost-type-traits, boost-unordered, boost-utility, boost-variant, boost-vcpkg-helpers +Build-Depends: boost-array, boost-assert, boost-build, boost-modular-build-helper, boost-compatibility, boost-config, boost-core, boost-detail, boost-function, boost-integer, boost-io, boost-iterator, boost-move, boost-mpl, boost-optional, boost-preprocessor, boost-smart-ptr, boost-spirit, boost-static-assert, boost-type-traits, boost-unordered, boost-utility, boost-variant, boost-vcpkg-helpers Description: Boost serialization module diff --git a/ports/boost-signals/CONTROL b/ports/boost-signals/CONTROL index e612f3415..160f73c51 100644 --- a/ports/boost-signals/CONTROL +++ b/ports/boost-signals/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-signals Version: 1.66.0 -Build-Depends: boost-any, boost-build, boost-config, boost-core, boost-function, boost-iterator, boost-optional, boost-smart-ptr, boost-type-traits, boost-utility, boost-vcpkg-helpers +Build-Depends: boost-any, boost-build, boost-modular-build-helper, boost-config, boost-core, boost-function, boost-iterator, boost-optional, boost-smart-ptr, boost-type-traits, boost-utility, boost-vcpkg-helpers Description: Boost signals module diff --git a/ports/boost-stacktrace/CONTROL b/ports/boost-stacktrace/CONTROL index b6c11e8f3..9979ef4e1 100644 --- a/ports/boost-stacktrace/CONTROL +++ b/ports/boost-stacktrace/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-stacktrace Version: 1.66.0 -Build-Depends: boost-array, boost-build, boost-config, boost-core, boost-lexical-cast, boost-math, boost-static-assert, boost-type-traits, boost-vcpkg-helpers, boost-winapi +Build-Depends: boost-array, boost-build, boost-modular-build-helper, boost-config, boost-core, boost-lexical-cast, boost-math, boost-static-assert, boost-type-traits, boost-vcpkg-helpers, boost-winapi Description: Boost stacktrace module diff --git a/ports/boost-system/CONTROL b/ports/boost-system/CONTROL index 92d43608f..953782bfb 100644 --- a/ports/boost-system/CONTROL +++ b/ports/boost-system/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-system Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-config, boost-core, boost-integer, boost-predef, boost-utility, boost-vcpkg-helpers, boost-winapi +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-core, boost-integer, boost-predef, boost-utility, boost-vcpkg-helpers, boost-winapi Description: Boost system module diff --git a/ports/boost-test/CONTROL b/ports/boost-test/CONTROL index 52dac99e2..95b0d8fe9 100644 --- a/ports/boost-test/CONTROL +++ b/ports/boost-test/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-test Version: 1.66.0-2 -Build-Depends: boost-algorithm, boost-assert, boost-bind, boost-build, boost-compatibility, boost-config, boost-core, boost-detail, boost-exception, boost-function, boost-io, boost-iterator, boost-mpl, boost-numeric-conversion, boost-optional, boost-preprocessor, boost-range, boost-smart-ptr, boost-static-assert, boost-timer, boost-type-traits, boost-utility, boost-vcpkg-helpers +Build-Depends: boost-algorithm, boost-assert, boost-bind, boost-build, boost-modular-build-helper, boost-compatibility, boost-config, boost-core, boost-detail, boost-exception, boost-function, boost-io, boost-iterator, boost-mpl, boost-numeric-conversion, boost-optional, boost-preprocessor, boost-range, boost-smart-ptr, boost-static-assert, boost-timer, boost-type-traits, boost-utility, boost-vcpkg-helpers Description: Boost test module diff --git a/ports/boost-thread/CONTROL b/ports/boost-thread/CONTROL index 772f1a450..33bc787a1 100644 --- a/ports/boost-thread/CONTROL +++ b/ports/boost-thread/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-thread Version: 1.66.0 -Build-Depends: boost-algorithm, boost-assert, boost-atomic, boost-bind, boost-build, boost-chrono, boost-concept-check, boost-config, boost-container, boost-core, boost-date-time, boost-detail, boost-exception, boost-function, boost-functional, boost-integer, boost-intrusive, boost-io, boost-lexical-cast, boost-math, boost-move, boost-mpl, boost-optional, boost-predef, boost-preprocessor, boost-smart-ptr, boost-static-assert, boost-system, boost-throw-exception, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi +Build-Depends: boost-algorithm, boost-assert, boost-atomic, boost-bind, boost-build, boost-modular-build-helper, boost-chrono, boost-concept-check, boost-config, boost-container, boost-core, boost-date-time, boost-detail, boost-exception, boost-function, boost-functional, boost-integer, boost-intrusive, boost-io, boost-lexical-cast, boost-math, boost-move, boost-mpl, boost-optional, boost-predef, boost-preprocessor, boost-smart-ptr, boost-static-assert, boost-system, boost-throw-exception, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers, boost-winapi Description: Boost thread module diff --git a/ports/boost-timer/CONTROL b/ports/boost-timer/CONTROL index be8b0c18a..b24137fbb 100644 --- a/ports/boost-timer/CONTROL +++ b/ports/boost-timer/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-timer Version: 1.66.0 -Build-Depends: boost-build, boost-chrono, boost-compatibility, boost-config, boost-core, boost-integer, boost-io, boost-system, boost-throw-exception, boost-vcpkg-helpers +Build-Depends: boost-build, boost-modular-build-helper, boost-chrono, boost-compatibility, boost-config, boost-core, boost-integer, boost-io, boost-system, boost-throw-exception, boost-vcpkg-helpers Description: Boost timer module diff --git a/ports/boost-type-erasure/CONTROL b/ports/boost-type-erasure/CONTROL index 79a8697a3..786acf596 100644 --- a/ports/boost-type-erasure/CONTROL +++ b/ports/boost-type-erasure/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-type-erasure Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-config, boost-detail, boost-fusion, boost-iterator, boost-mpl, boost-preprocessor, boost-smart-ptr, boost-thread (windows), boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-config, boost-detail, boost-fusion, boost-iterator, boost-mpl, boost-preprocessor, boost-smart-ptr, boost-thread (windows), boost-throw-exception, boost-typeof, boost-type-traits, boost-utility, boost-vcpkg-helpers Description: Boost type_erasure module diff --git a/ports/boost-vcpkg-helpers/generate-ports.ps1 b/ports/boost-vcpkg-helpers/generate-ports.ps1 index 8b79826e2..55fa476f4 100644 --- a/ports/boost-vcpkg-helpers/generate-ports.ps1 +++ b/ports/boost-vcpkg-helpers/generate-ports.ps1 @@ -322,7 +322,7 @@ foreach ($library in $libraries) $needsBuild = $false if ((Test-Path $unpacked/build/Jamfile.v2) -and $library -ne "metaparse") { - $deps += @("boost-build") + $deps += @("boost-build", "boost-modular-build-helper") $needsBuild = $true } diff --git a/ports/boost-wave/CONTROL b/ports/boost-wave/CONTROL index 99aa3d8be..4fffc2e71 100644 --- a/ports/boost-wave/CONTROL +++ b/ports/boost-wave/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-wave Version: 1.66.0 -Build-Depends: boost-assert, boost-build, boost-concept-check, boost-config, boost-core, boost-detail, boost-filesystem (windows), boost-integer, boost-iterator, boost-mpl, boost-multi-index, boost-pool, boost-preprocessor, boost-serialization, boost-smart-ptr, boost-spirit, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers +Build-Depends: boost-assert, boost-build, boost-modular-build-helper, boost-concept-check, boost-config, boost-core, boost-detail, boost-filesystem (windows), boost-integer, boost-iterator, boost-mpl, boost-multi-index, boost-pool, boost-preprocessor, boost-serialization, boost-smart-ptr, boost-spirit, boost-static-assert, boost-throw-exception, boost-type-traits, boost-vcpkg-helpers Description: Boost wave module -- cgit v1.2.3