aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoromartijn <44672243+omartijn@users.noreply.github.com>2021-07-06 23:05:13 +0200
committerGitHub <noreply@github.com>2021-07-06 14:05:13 -0700
commite1c7c900f90bc9932dcf6d1316179f57ca0cf68b (patch)
tree161c790c9f0fed3a1438d4dc62e9876653a8c917
parent8000529d6147f0ab669dbaec60306f52da7241a4 (diff)
downloadvcpkg-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.txt37
-rw-r--r--ports/boost-modular-build-helper/boost-modular-build.cmake1
-rw-r--r--ports/boost-modular-build-helper/user-config.jam2
-rw-r--r--ports/boost-modular-build-helper/vcpkg.json2
-rw-r--r--versions/b-/boost-modular-build-helper.json5
-rw-r--r--versions/baseline.json2
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",