Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
# Copyright 2025 Matt Borland
# Generated by `boostdep --cmake safe_numbers`
# Copyright 2020, 2021 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt

cmake_minimum_required(VERSION 3.12...3.20)
cmake_minimum_required(VERSION 3.12...3.31)

project(boost_safe_numbers VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)

add_library(boost_safe_numbers INTERFACE)
add_library(Boost::safe_numbers ALIAS boost_safe_numbers)

target_compile_features(boost_safe_numbers INTERFACE cxx_std_20)

target_include_directories(boost_safe_numbers INTERFACE include)

target_link_libraries(boost_safe_numbers
INTERFACE
Boost::assert
Boost::charconv
Boost::config
Boost::core
Boost::random
Boost::throw_exception
)

if(BUILD_TESTING)
target_compile_features(boost_safe_numbers INTERFACE cxx_std_20)

if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")

add_subdirectory(test)

Expand Down
5 changes: 3 additions & 2 deletions build.jam
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
require-b2 5.2 ;

constant boost_dependencies :
/boost/assert//boost_assert
/boost/charconv//boost_charconv
/boost/config//boost_config
/boost/core//boost_core
/boost/random//boost_random
/boost/throw_exception//boost_throw_exception ;

project /boost/safe_numbers ;
Expand All @@ -19,4 +19,5 @@ explicit
;

call-if : boost-library safe_numbers
: install boost_safe_numbers
;
4 changes: 2 additions & 2 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ if(HAVE_BOOST_TEST)
else()

if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|amd64|i386|i686|x86" AND NOT MINGW)
boost_test_jamfile(FILE Jamfile LINK_LIBRARIES Boost::safe_numbers Boost::charconv Boost::core Boost::random Boost::safe_numerics Boost::multiprecision Boost::exception Boost::stacktrace_from_exception)
boost_test_jamfile(FILE Jamfile LINK_LIBRARIES Boost::safe_numbers Boost::config Boost::multiprecision Boost::safe_numerics Boost::throw_exception Boost::exception Boost::stacktrace_from_exception)
else()
boost_test_jamfile(FILE Jamfile LINK_LIBRARIES Boost::safe_numbers Boost::charconv Boost::core Boost::random Boost::safe_numerics Boost::multiprecision Boost::exception)
boost_test_jamfile(FILE Jamfile LINK_LIBRARIES Boost::safe_numbers Boost::config Boost::multiprecision Boost::safe_numerics Boost::throw_exception Boost::exception)
endif()

endif()
Expand Down
17 changes: 0 additions & 17 deletions test/cmake_install_test/CMakeLists.txt

This file was deleted.

38 changes: 0 additions & 38 deletions test/cmake_subdir_test/CMakeLists.txt

This file was deleted.

80 changes: 80 additions & 0 deletions test/cmake_test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Copyright 2018, 2019 Peter Dimov
# 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

cmake_minimum_required(VERSION 3.5...3.16)

project(cmake_test LANGUAGES CXX)

if(BOOST_CI_INSTALL_TEST)

# Workaround until B2 also installs targets for header-only libs
if(BOOST_CI_INSTALLED_BY STREQUAL "B2")
find_package(Boost COMPONENTS headers charconv random REQUIRED)
add_library(boost_safe_numbers INTERFACE IMPORTED GLOBAL)
target_link_libraries(boost_safe_numbers INTERFACE Boost::headers Boost::charconv Boost::random)
Comment thread
mborland marked this conversation as resolved.
add_library(Boost::safe_numbers ALIAS boost_safe_numbers)
else()
find_package(Boost COMPONENTS safe_numbers REQUIRED)
endif()

else()

add_subdirectory(../.. boostorg/safe_numbers)

set(deps

# Primary dependencies

charconv
config
core
multiprecision
random
safe_numerics
throw_exception

# Secondary dependencies

assert # (from charconv)
compat # (from random)
integer # (from multiprecision)
lexical_cast # (from multiprecision)
math # (from multiprecision)
predef # (from multiprecision)
dynamic_bitset # (from random)
io # (from random)
system # (from random)
type_traits # (from random)
utility # (from random)
concept_check # (from safe_numerics)
logic # (from safe_numerics)
mp11 # (from safe_numerics)
preprocessor # (from concept_check)
container_hash # (from dynamic_bitset)
move # (from dynamic_bitset)
container # (from lexical_cast)
variant2 # (from system)
winapi # (from system)
intrusive # (from container)
describe # (from container_hash)

)

foreach(dep IN LISTS deps)

add_subdirectory(../../../${dep} boostorg/${dep})

endforeach()

endif()

add_executable(quick ../quick.cpp)
target_link_libraries(quick Boost::safe_numbers)
# B2-installed config does not propagate the C++20 requirement, so set it explicitly here.
target_compile_features(quick PRIVATE cxx_std_20)

enable_testing()
add_test(quick quick)

add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
Loading