diff options
| author | omartijn <44672243+omartijn@users.noreply.github.com> | 2021-07-06 23:05:13 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-06 14:05:13 -0700 |
| commit | e1c7c900f90bc9932dcf6d1316179f57ca0cf68b (patch) | |
| tree | 161c790c9f0fed3a1438d4dc62e9876653a8c917 | |
| parent | 8000529d6147f0ab669dbaec60306f52da7241a4 (diff) | |
| download | vcpkg-e1c7c900f90bc9932dcf6d1316179f57ca0cf68b.tar.gz vcpkg-e1c7c900f90bc9932dcf6d1316179f57ca0cf68b.zip | |
[boost-modular-build-helper] Fix boost build toolchain options not being used (#18529)
* Fix boost build toolchain options not being used
The issue was due to the options only being set for the gcc toolchain,
and then only for a specific version. On platforms defaulting to a
different toolchain (e.g. macOS) this didn't work at all.
Additionally, some missing flags were not propagated, in particular the
CMAKE_OSX_DEPLOYMENT_TARGET, CMAKE_OSX_SYSROOT and CMAKE_OSX_ARCHITECTURES
* [boost-modular-build-helper] Apply CR comments
Co-authored-by: Martijn Otto <git@martijnotto.nl>
Co-authored-by: Robert Schumacher <ras0219@outlook.com>
| -rw-r--r-- | ports/boost-modular-build-helper/CMakeLists.txt | 37 | ||||
| -rw-r--r-- | ports/boost-modular-build-helper/boost-modular-build.cmake | 1 | ||||
| -rw-r--r-- | ports/boost-modular-build-helper/user-config.jam | 2 | ||||
| -rw-r--r-- | ports/boost-modular-build-helper/vcpkg.json | 2 | ||||
| -rw-r--r-- | versions/b-/boost-modular-build-helper.json | 5 | ||||
| -rw-r--r-- | versions/baseline.json | 2 |
6 files changed, 41 insertions, 8 deletions
diff --git a/ports/boost-modular-build-helper/CMakeLists.txt b/ports/boost-modular-build-helper/CMakeLists.txt index 043636ee8..b38b0e313 100644 --- a/ports/boost-modular-build-helper/CMakeLists.txt +++ b/ports/boost-modular-build-helper/CMakeLists.txt @@ -46,13 +46,17 @@ else() endif()
if(APPLE)
- list(APPEND B2_OPTIONS target-os=darwin toolset=clang)
+ set(B2_TOOLSET clang)
+ list(APPEND B2_OPTIONS target-os=darwin)
elseif(WIN32)
- list(APPEND B2_OPTIONS target-os=windows toolset=gcc)
+ set(B2_TOOLSET gcc)
+ list(APPEND B2_OPTIONS target-os=windows)
elseif(ANDROID)
- list(APPEND B2_OPTIONS target-os=android toolset=gcc)
+ set(B2_TOOLSET gcc)
+ list(APPEND B2_OPTIONS target-os=android)
else()
- list(APPEND B2_OPTIONS target-os=linux toolset=gcc)
+ set(B2_TOOLSET gcc)
+ list(APPEND B2_OPTIONS target-os=linux)
endif()
if(WIN32)
@@ -80,6 +84,28 @@ elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") endif()
endif()
+if(APPLE)
+ if(CMAKE_OSX_DEPLOYMENT_TARGET)
+ set(CXXFLAGS "-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} ${CXXFLAGS}")
+ set(CFLAGS "-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} ${CFLAGS}")
+ set(LDFLAGS "-mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} ${LDFLAGS}")
+ endif()
+
+ if(CMAKE_OSX_SYSROOT)
+ set(CXXFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} ${CXXFLAGS}")
+ set(CFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} ${CFLAGS}")
+ set(LDFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} ${LDFLAGS}")
+ endif()
+
+ # if specific architectures are set, configure them,
+ # if not set, this will still default to current arch
+ foreach(ARCH IN LISTS CMAKE_OSX_ARCHITECTURES)
+ set(CXXFLAGS "-arch ${ARCH} ${CXXFLAGS}")
+ set(CFLAGS "-arch ${ARCH} ${CFLAGS}")
+ set(LDFLAGS "-arch ${ARCH} ${LDFLAGS}")
+ endforeach()
+endif()
+
string(STRIP "${CXXFLAGS}" CXXFLAGS)
string(STRIP "${CFLAGS}" CFLAGS)
string(STRIP "${LDFLAGS}" LDFLAGS)
@@ -122,7 +148,7 @@ foreach(INCDIR ${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES}) endforeach()
if(APPLE)
- set(CXXFLAGS "${CXXFLAGS} <compileflags>-D_DARWIN_C_SOURCE <compileflags>-std=c++11 <compileflags>-stdlib=libc++")
+ set(CXXFLAGS "${CXXFLAGS} <compileflags>-D_DARWIN_C_SOURCE <cxxflags>-std=c++11 <cxxflags>-stdlib=libc++")
set(LDFLAGS "${LDFLAGS} <linkflags>-stdlib=libc++")
endif()
@@ -157,6 +183,7 @@ endif() add_custom_target(boost ALL
COMMAND "${B2_EXE}"
+ toolset=${B2_TOOLSET}
--user-config=${CMAKE_CURRENT_BINARY_DIR}/user-config.jam
--stagedir=${CMAKE_CURRENT_BINARY_DIR}/stage
--build-dir=${CMAKE_CURRENT_BINARY_DIR}
diff --git a/ports/boost-modular-build-helper/boost-modular-build.cmake b/ports/boost-modular-build-helper/boost-modular-build.cmake index 3acc75afd..69eb899a1 100644 --- a/ports/boost-modular-build-helper/boost-modular-build.cmake +++ b/ports/boost-modular-build-helper/boost-modular-build.cmake @@ -84,6 +84,7 @@ function(boost_modular_build) if(DEFINED _bm_BOOST_CMAKE_FRAGMENT)
list(APPEND configure_option "-DBOOST_CMAKE_FRAGMENT=${_bm_BOOST_CMAKE_FRAGMENT}")
endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${BOOST_BUILD_INSTALLED_DIR}/share/boost-build
PREFER_NINJA
diff --git a/ports/boost-modular-build-helper/user-config.jam b/ports/boost-modular-build-helper/user-config.jam index 550423965..afd1d7dc6 100644 --- a/ports/boost-modular-build-helper/user-config.jam +++ b/ports/boost-modular-build-helper/user-config.jam @@ -10,7 +10,7 @@ if "@VCPKG_PLATFORM_TOOLSET@" != "external" }
else
{
- using gcc : 5.4.1 : @CMAKE_CXX_COMPILER@
+ using @B2_TOOLSET@ : : @CMAKE_CXX_COMPILER@
:
<ranlib>@CMAKE_RANLIB@
<archiver>@CMAKE_AR@
diff --git a/ports/boost-modular-build-helper/vcpkg.json b/ports/boost-modular-build-helper/vcpkg.json index e8475362d..699b93b47 100644 --- a/ports/boost-modular-build-helper/vcpkg.json +++ b/ports/boost-modular-build-helper/vcpkg.json @@ -1,7 +1,7 @@ { "name": "boost-modular-build-helper", "version-string": "1.75.0", - "port-version": 9, + "port-version": 10, "dependencies": [ "boost-build", "boost-uninstall" diff --git a/versions/b-/boost-modular-build-helper.json b/versions/b-/boost-modular-build-helper.json index cdd24d924..67ffb430d 100644 --- a/versions/b-/boost-modular-build-helper.json +++ b/versions/b-/boost-modular-build-helper.json @@ -1,6 +1,11 @@ { "versions": [ { + "git-tree": "95cad6d5f2d9a858aacbb3b2bc0e3a0db4b06b4b", + "version-string": "1.75.0", + "port-version": 10 + }, + { "git-tree": "c475b268ac42e886acfdc783944e1e3a988b0ac8", "version-string": "1.75.0", "port-version": 9 diff --git a/versions/baseline.json b/versions/baseline.json index 39d482f05..c8997539c 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -738,7 +738,7 @@ }, "boost-modular-build-helper": { "baseline": "1.75.0", - "port-version": 9 + "port-version": 10 }, "boost-move": { "baseline": "1.75.0", |
