mirror of
https://github.com/boostorg/ratio.git
synced 2026-02-23 16:02:12 +00:00
Merge pull request #5 from Mike-Devel/min_cmake
[CMake] Add minimal cmake support
This commit is contained in:
37
CMakeLists.txt
Normal file
37
CMakeLists.txt
Normal file
@@ -0,0 +1,37 @@
|
||||
# Copyright 2019 Mike Dev
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt
|
||||
#
|
||||
# NOTE: CMake support for Boost.Ratio is currently experimental at best
|
||||
# and the interface is likely to change in the future
|
||||
|
||||
cmake_minimum_required( VERSION 3.5 )
|
||||
project( BoostRatio LANGUAGES CXX)
|
||||
option( BOOST_RATIO_INCLUDE_TESTS "Add boost ratio tests" OFF )
|
||||
|
||||
add_library( boost_ratio INTERFACE )
|
||||
add_library( Boost::ratio ALIAS boost_ratio )
|
||||
|
||||
target_include_directories( boost_ratio INTERFACE include )
|
||||
|
||||
target_link_libraries( boost_ratio
|
||||
INTERFACE
|
||||
Boost::config
|
||||
Boost::core
|
||||
Boost::integer
|
||||
Boost::mpl
|
||||
Boost::static_assert
|
||||
Boost::type_traits
|
||||
|
||||
# NOTE: As of Boost 1.70, the dependency on rational is only
|
||||
# necessary, if BOOST_RATIO_EXTENSIONS is defined.
|
||||
# Maybe consuming libraries that do so should add
|
||||
# Boost::rational as a dependency themselves,
|
||||
# instead of doing it here for everyone?
|
||||
Boost::rational
|
||||
)
|
||||
|
||||
if( BOOST_RATIO_INCLUDE_TESTS )
|
||||
enable_testing()
|
||||
add_subdirectory( test )
|
||||
endif()
|
||||
31
test/CMakeLists.txt
Normal file
31
test/CMakeLists.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
# Copyright 2019 Mike Dev
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt
|
||||
#
|
||||
# NOTE: CMake support for Boost.Ratio is currently experimental at best
|
||||
# and this file runs only a subset of the unit tests
|
||||
# (in particular none of the fail tests)
|
||||
|
||||
# list of tests that contain a main function
|
||||
set( exec_test_files ratio_ext_pass;ratio_io_pass;ratio_pass )
|
||||
|
||||
file( GLOB_RECURSE test_files *_pass.cpp )
|
||||
foreach( file IN LISTS test_files )
|
||||
|
||||
get_filename_component( core_name ${file} NAME_WE )
|
||||
set( test_name test_boost_ratio_${core_name} )
|
||||
|
||||
if( ${core_name} IN_LIST exec_test_files )
|
||||
add_executable( ${test_name} ${file} )
|
||||
add_test( NAME ${test_name} COMMAND ${test_name} )
|
||||
else()
|
||||
# most tests are compile only, so we just need to create a object file
|
||||
# in order to see, if it compiles
|
||||
add_library( ${test_name} OBJECT ${file})
|
||||
endif()
|
||||
|
||||
target_link_libraries( ${test_name} PUBLIC
|
||||
Boost::ratio
|
||||
)
|
||||
|
||||
endforeach()
|
||||
Reference in New Issue
Block a user