-
-
Notifications
You must be signed in to change notification settings - Fork 430
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding option for downloading Boost using CMake FetchContent #6424
Changes from 10 commits
dfe2bbe
2c7a068
2942a74
23c1d49
0b69e30
0287f31
d0f3a32
8a8d6ac
505853d
ecc252e
437f365
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Copyright (c) 2024 Vedant Nimje | ||
# | ||
# SPDX-License-Identifier: BSL-1.0 | ||
# Distributed under the Boost Software License, Version 1.0. (See accompanying | ||
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
|
||
name: Linux CI (Debug) with Boost Fetch | ||
|
||
on: [pull_request] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
container: stellargroup/build_env:14 | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Configure | ||
shell: bash | ||
run: | | ||
cmake \ | ||
. \ | ||
-Bbuild \ | ||
-GNinja \ | ||
-DCMAKE_BUILD_TYPE=Debug \ | ||
-DHPX_WITH_MALLOC=system \ | ||
-DHPX_WITH_FETCH_ASIO=ON \ | ||
-DHPX_WITH_FETCH_BOOST=ON \ | ||
-DHPX_WITH_EXAMPLES=ON \ | ||
-DHPX_WITH_TESTS=ON \ | ||
-DHPX_WITH_TESTS_MAX_THREADS_PER_LOCALITY=2 \ | ||
-DHPX_WITH_CHECK_MODULE_DEPENDENCIES=On | ||
- name: Build | ||
shell: bash | ||
run: | | ||
cmake --build build --target all | ||
cmake --build build --target examples | ||
- name: Test | ||
shell: bash | ||
run: | | ||
cd build | ||
ctest \ | ||
--output-on-failure \ | ||
--tests-regex tests.examples \ | ||
--exclude-regex tests.examples.transpose.transpose_block_numa |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# Copyright (c) 2024 Vedant Nimje | ||
# | ||
# SPDX-License-Identifier: BSL-1.0 | ||
# Distributed under the Boost Software License, Version 1.0. (See accompanying | ||
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
|
||
name: macOS CI (Debug) with Boost Fetch | ||
|
||
on: [pull_request] | ||
|
||
jobs: | ||
build: | ||
runs-on: macos-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Install dependencies | ||
run: | | ||
# Workaround for https://github.com/actions/virtual-environments/issues/2322 | ||
rm -rf /usr/local/bin/2to3* | ||
rm -rf /usr/local/bin/idle3* | ||
rm -rf /usr/local/bin/pydoc3* | ||
rm -rf /usr/local/bin/python3* | ||
brew upgrade | ||
brew update && \ | ||
brew install --overwrite python-tk && \ | ||
brew install --overwrite hwloc gperftools ninja && \ | ||
brew upgrade cmake | ||
- name: Configure | ||
shell: bash | ||
run: | | ||
cmake \ | ||
-H. \ | ||
-Bbuild \ | ||
-GNinja \ | ||
-DCMAKE_BUILD_TYPE=Debug \ | ||
-DHPX_WITH_FETCH_ASIO=ON \ | ||
-DHPX_WITH_FETCH_BOOST=ON \ | ||
-DHPX_WITH_EXAMPLES=ON \ | ||
-DHPX_WITH_TESTS=ON \ | ||
-DHPX_WITH_TESTS_MAX_THREADS_PER_LOCALITY=2 \ | ||
-DHPX_WITH_CHECK_MODULE_DEPENDENCIES=On | ||
- name: Build | ||
shell: bash | ||
run: | | ||
cmake --build build --target all | ||
cmake --build build --target tests | ||
- name: Test | ||
shell: bash | ||
run: | | ||
cd build | ||
ctest --output-on-failure \ | ||
--exclude-regex \ | ||
"tests.examples.quickstart.1d_wave_equation|\ | ||
tests.examples.transpose.transpose_block_numa|\ | ||
tests.performance.local.wait_all_timings|\ | ||
tests.regressions.components.distributed.tcp.bulk_new_3054|\ | ||
tests.regressions.dynamic_counters_loaded_1508|\ | ||
tests.regressions.lcos.wait_all_hang_1946|\ | ||
tests.regressions.modules.async_combinators.wait_all_hang_1946|\ | ||
tests.regressions.modules.collectives.distributed.tcp.broadcast_apply|\ | ||
tests.regressions.modules.collectives.distributed.tcp.broadcast_unwrap_future_2885|\ | ||
tests.regressions.modules.collectives.distributed.tcp.remote_latch|\ | ||
tests.regressions.modules.compute_local.parallel_fill_4132|\ | ||
tests.regressions.util.distributed.tcp.zero_copy_parcels_1001_no_zero_copy_optimization|\ | ||
tests.regressions.modules.performance_counters.dynamic_counters_loaded_1508|\ | ||
tests.regressions.modules.performance_counters.statistics_2666|\ | ||
tests.unit.modules.runtime_components.distributed.tcp.migrate_component|\ | ||
tests.unit.modules.runtime_components.distributed.tcp.migrate_polymorphic_component|\ | ||
tests.unit.modules.algorithms.default_construct|\ | ||
tests.unit.modules.algorithms.destroy|\ | ||
tests.unit.modules.algorithms.foreach_executors|\ | ||
tests.unit.modules.algorithms.max_element|\ | ||
tests.unit.modules.algorithms.replace_copy_if|\ | ||
tests.unit.modules.compute_local.numa_allocator|\ | ||
tests.unit.modules.execution.standalone_thread_pool_executor|\ | ||
tests.unit.modules.resource_partitioner.used_pus|\ | ||
tests.unit.modules.segmented_algorithms.distributed.tcp.partitioned_vector|\ | ||
tests.unit.threads.distributed.tcp.thread_stacksize|\ | ||
tests.unit.topology.numa_allocator|\ | ||
tests.unit.modules.runtime_components.distributed.tcp.migrate_polymorphic_component" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# Copyright (c) 2024 Vedant Nimje | ||
# | ||
# SPDX-License-Identifier: BSL-1.0 | ||
# Distributed under the Boost Software License, Version 1.0. (See accompanying | ||
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
|
||
name: Windows CI (Debug, VS2022 toolset) with Boost Fetch | ||
|
||
on: [pull_request] | ||
|
||
jobs: | ||
build: | ||
runs-on: windows-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: jwlawson/actions-setup-cmake@v1.14 | ||
with: | ||
cmake-version: '3.22.x' | ||
- name: Install dependencies | ||
run: | | ||
md C:\projects | ||
$client = new-object System.Net.WebClient | ||
$client.DownloadFile("https://rostam.cct.lsu.edu/download/builder/vcpkg-export-hpx-dependencies-2022.7z","C:\projects\vcpkg-export-hpx-dependencies.7z") | ||
7z x C:\projects\vcpkg-export-hpx-dependencies.7z -y -oC:\projects\vcpkg | ||
- name: Configure | ||
shell: bash | ||
run: | | ||
cmake . -Bbuild -G'Visual Studio 17 2022' \ | ||
-DCMAKE_BUILD_TYPE=Debug \ | ||
-DCMAKE_TOOLCHAIN_FILE='C:/projects/vcpkg/scripts/buildsystems/vcpkg.cmake' \ | ||
-DHPX_WITH_FETCH_BOOST=ON \ | ||
-DHPX_WITH_FETCH_ASIO=ON \ | ||
-DHPX_WITH_EXAMPLES=ON \ | ||
-DHPX_WITH_TESTS=ON \ | ||
-DHPX_WITH_TESTS_UNIT=ON \ | ||
-DHPX_WITH_DEPRECATION_WARNINGS=OFF \ | ||
-DHPX_WITH_TESTS_MAX_THREADS_PER_LOCALITY=2 \ | ||
-DHPX_COROUTINES_WITH_SWAP_CONTEXT_EMULATION=ON \ | ||
-DHPX_WITH_CHECK_MODULE_DEPENDENCIES=On | ||
- name: Build | ||
shell: bash | ||
run: | | ||
cmake --build build --config Debug \ | ||
--target ALL_BUILD \ | ||
-- -maxcpucount:2 -verbosity:minimal -nologo | ||
- name: Install | ||
shell: bash | ||
run: | | ||
cmake --install build --config Debug | ||
- name: Test | ||
run: | | ||
Set-Alias -Name grep -Value 'C:\Program Files\Git\usr\bin\grep.exe' | ||
Set-Alias -Name sed -Value 'C:\Program Files\Git\usr\bin\sed.exe' | ||
cd build | ||
ctest ` | ||
--output-on-failure ` | ||
--build-config Debug ` | ||
--tests-regex tests.examples ` | ||
--exclude-regex ` | ||
$(grep -v -e ^# -e ^$ D:/a/hpx/hpx/.github/workflows/tests.examples.targets | sed ':b;N;$!bb;s/\n/|/g') |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -5,6 +5,64 @@ | |||||
# Distributed under the Boost Software License, Version 1.0. (See accompanying | ||||||
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||||||
|
||||||
if(HPX_WITH_FETCH_BOOST) | ||||||
set(HPX_WITH_BOOST_VERSION "1.84.0") | ||||||
hpx_info( | ||||||
"HPX_WITH_FETCH_BOOST=${HPX_WITH_FETCH_BOOST}, Boost v${HPX_WITH_BOOST_VERSION} will be fetched using CMake's FetchContent" | ||||||
) | ||||||
include(FetchContent) | ||||||
fetchcontent_declare( | ||||||
Boost | ||||||
URL https://github.com/boostorg/boost/releases/download/boost-${HPX_WITH_BOOST_VERSION}/boost-${HPX_WITH_BOOST_VERSION}.tar.gz | ||||||
TLS_VERIFY true | ||||||
DOWNLOAD_EXTRACT_TIMESTAMP true | ||||||
) | ||||||
fetchcontent_populate(Boost) | ||||||
set(HPX_WITH_EX_PRC | ||||||
"Execute process" | ||||||
CACHE STRING "Used by command line tool." | ||||||
) | ||||||
set(HPX_WITH_EX_PRC_INTERNAL | ||||||
"" | ||||||
CACHE STRING "for internal use only; do not modify" | ||||||
) | ||||||
|
||||||
if(NOT HPX_WITH_EX_PRC STREQUAL HPX_WITH_EX_PRC_INTERNAL) | ||||||
if(WIN32) | ||||||
execute_process( | ||||||
COMMAND | ||||||
cmd /C | ||||||
"cd ${CMAKE_BINARY_DIR}\\_deps\\boost-src && .\\bootstrap.bat && .\\b2 headers cxxflags=/std:c++${HPX_CXX_STANDARD}" | ||||||
) | ||||||
elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") | ||||||
execute_process( | ||||||
COMMAND | ||||||
sh -c | ||||||
"cd ${CMAKE_BINARY_DIR}/_deps/boost-src && ./bootstrap.sh --prefix=${CMAKE_BINARY_DIR}/_deps/boost-installed && ./b2 && ./b2 install --prefix=${CMAKE_BINARY_DIR}/_deps/boost-installed cxxflags=--std=c++${HPX_CXX_STANDARD}" | ||||||
) | ||||||
else() | ||||||
execute_process( | ||||||
COMMAND | ||||||
sh -c | ||||||
"cd ${CMAKE_BINARY_DIR}/_deps/boost-src && ./bootstrap.sh && ./b2 headers cxxflags=--std=c++${HPX_WITH_CXX_STANDARD}" | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
) | ||||||
endif() | ||||||
set(HPX_WITH_EX_PRC_INTERNAL | ||||||
${HPX_WITH_EX_PRC} | ||||||
CACHE INTERNAL "for internal use only; do not modify" | ||||||
) | ||||||
endif() | ||||||
|
||||||
set(Boost_DIR | ||||||
"${CMAKE_BINARY_DIR}/_deps/boost-src" | ||||||
CACHE INTERNAL "" | ||||||
) | ||||||
set(Boost_INCLUDE_DIR | ||||||
"${CMAKE_BINARY_DIR}/_deps/boost-src" | ||||||
CACHE INTERNAL "" | ||||||
) | ||||||
endif() | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should all of the above go into a separate file |
||||||
|
||||||
# In case find_package(HPX) is called multiple times | ||||||
if(NOT TARGET hpx_dependencies_boost) | ||||||
# We first try to find the required minimum set of Boost libraries. This will | ||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would you mind making this variable a bit more self-explanatory?