Skip to content

Commit

Permalink
Add support for INCLUDE_DIRECTORIES to BoostTest. Fixes #48.
Browse files Browse the repository at this point in the history
  • Loading branch information
pdimov committed Dec 22, 2023
1 parent 3e81b4a commit a00da7e
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 1 deletion.
15 changes: 14 additions & 1 deletion include/BoostTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ set(BOOST_TEST_LINK_LIBRARIES "")
set(BOOST_TEST_COMPILE_DEFINITIONS "")
set(BOOST_TEST_COMPILE_OPTIONS "")
set(BOOST_TEST_COMPILE_FEATURES "")
set(BOOST_TEST_INCLUDE_DIRECTORIES "")
set(BOOST_TEST_SOURCES "")
set(BOOST_TEST_WORKING_DIRECTORY "")

Expand Down Expand Up @@ -46,11 +47,16 @@ endfunction()
# COMPILE_DEFINITIONS defs...
# COMPILE_OPTIONS opts...
# COMPILE_FEATURES features...
# INCLUDE_DIRECTORIES dirs...
# )

function(boost_test)

cmake_parse_arguments(_ "IGNORE_TEST_GLOBALS" "TYPE;PREFIX;NAME;WORKING_DIRECTORY" "SOURCES;ARGUMENTS;LIBRARIES;LINK_LIBRARIES;COMPILE_DEFINITIONS;COMPILE_OPTIONS;COMPILE_FEATURES" ${ARGN})
cmake_parse_arguments(_
"IGNORE_TEST_GLOBALS"
"TYPE;PREFIX;NAME;WORKING_DIRECTORY"
"SOURCES;ARGUMENTS;LIBRARIES;LINK_LIBRARIES;COMPILE_DEFINITIONS;COMPILE_OPTIONS;COMPILE_FEATURES;INCLUDE_DIRECTORIES"
${ARGN})

if(NOT __TYPE)
set(__TYPE run)
Expand Down Expand Up @@ -95,6 +101,7 @@ function(boost_test)
list(APPEND BOOST_TEST_COMPILE_DEFINITIONS ${__COMPILE_DEFINITIONS})
list(APPEND BOOST_TEST_COMPILE_OPTIONS ${__COMPILE_OPTIONS})
list(APPEND BOOST_TEST_COMPILE_FEATURES ${__COMPILE_FEATURES})
list(APPEND BOOST_TEST_INCLUDE_DIRECTORIES ${__INCLUDE_DIRECTORIES})
list(APPEND BOOST_TEST_SOURCES ${__SOURCES})

if(__WORKING_DIRECTORY)
Expand Down Expand Up @@ -162,6 +169,7 @@ function(boost_test)
target_compile_definitions(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_DEFINITIONS})
target_compile_options(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_OPTIONS})
target_compile_features(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_FEATURES})
target_include_directories(${__NAME} PRIVATE ${BOOST_TEST_INCLUDE_DIRECTORIES})

add_dependencies(tests ${__NAME})

Expand All @@ -176,6 +184,7 @@ function(boost_test)
target_compile_definitions(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_DEFINITIONS})
target_compile_options(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_OPTIONS})
target_compile_features(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_FEATURES})
target_include_directories(${__NAME} PRIVATE ${BOOST_TEST_INCLUDE_DIRECTORIES})

add_test(NAME ${__TYPE}-${__NAME} COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target ${__NAME} --config $<CONFIG>)

Expand All @@ -188,6 +197,7 @@ function(boost_test)
target_compile_definitions(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_DEFINITIONS})
target_compile_options(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_OPTIONS})
target_compile_features(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_FEATURES})
target_include_directories(${__NAME} PRIVATE ${BOOST_TEST_INCLUDE_DIRECTORIES})

add_dependencies(tests ${__NAME})

Expand All @@ -202,6 +212,7 @@ function(boost_test)
target_compile_definitions(compile-${__NAME} PRIVATE ${BOOST_TEST_COMPILE_DEFINITIONS})
target_compile_options(compile-${__NAME} PRIVATE ${BOOST_TEST_COMPILE_OPTIONS})
target_compile_features(compile-${__NAME} PRIVATE ${BOOST_TEST_COMPILE_FEATURES})
target_include_directories(compile-${__NAME} PRIVATE ${BOOST_TEST_INCLUDE_DIRECTORIES})

add_dependencies(tests compile-${__NAME})

Expand All @@ -214,6 +225,7 @@ function(boost_test)
target_compile_definitions(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_DEFINITIONS})
target_compile_options(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_OPTIONS})
target_compile_features(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_FEATURES})
target_include_directories(${__NAME} PRIVATE ${BOOST_TEST_INCLUDE_DIRECTORIES})

add_test(NAME ${__TYPE}-${__NAME} COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target ${__NAME} --config $<CONFIG>)
set_tests_properties(${__TYPE}-${__NAME} PROPERTIES WILL_FAIL TRUE RUN_SERIAL TRUE)
Expand All @@ -225,6 +237,7 @@ function(boost_test)
target_compile_definitions(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_DEFINITIONS})
target_compile_options(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_OPTIONS})
target_compile_features(${__NAME} PRIVATE ${BOOST_TEST_COMPILE_FEATURES})
target_include_directories(${__NAME} PRIVATE ${BOOST_TEST_INCLUDE_DIRECTORIES})

add_dependencies(tests ${__NAME})

Expand Down
6 changes: 6 additions & 0 deletions test/boost_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,19 @@ boost_test(TYPE run SOURCES requires_no_exceptions.cpp COMPILE_OPTIONS -fno-exce

boost_test(TYPE compile-fail SOURCES emits_warning.cpp COMPILE_OPTIONS -Wall -Werror)

boost_test(TYPE compile NAME compile_subdir SOURCES include_subdir.cpp INCLUDE_DIRECTORIES subdir)
boost_test(TYPE link NAME link_subdir SOURCES include_subdir.cpp INCLUDE_DIRECTORIES subdir)
boost_test(TYPE run NAME run_subdir SOURCES include_subdir.cpp INCLUDE_DIRECTORIES subdir)

# boost_test, w/ globals

set(BOOST_TEST_COMPILE_OPTIONS -fno-rtti -fno-exceptions)
set(BOOST_TEST_LINK_LIBRARIES Boost::config)
set(BOOST_TEST_INCLUDE_DIRECTORIES subdir)

boost_test(SOURCES requires_no_rtti.cpp PREFIX boost_cmake_test_globals)
boost_test(SOURCES requires_no_exceptions.cpp PREFIX boost_cmake_test_globals)
boost_test(SOURCES include_subdir.cpp PREFIX boost_cmake_test_globals)

# boost_test_jamfile

Expand Down
10 changes: 10 additions & 0 deletions test/boost_test/include_subdir.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// Copyright 2023 Peter Dimov
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt

#include "header.hpp"

int main()
{
return f();
}
13 changes: 13 additions & 0 deletions test/boost_test/subdir/header.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#ifndef HEADER_HPP_INCLUDED
#defint HEADER_HPP_INCLUDED

// Copyright 2023 Peter Dimov
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt

inline int f()
{
return 0;
}

#endif // #ifndef HEADER_HPP_INCLUDED

0 comments on commit a00da7e

Please sign in to comment.