Skip to content
Snippets Groups Projects
Unverified Commit 29f5050c authored by René Fritze's avatar René Fritze
Browse files

[cmake] adds dxt_exclude_from_headercheck macro

This is now mandatory to use in our modules instead of
```exclude_from_headercheck``` from dune-common. It must be used
_before_ calling ```BEGIN_TESTCASES```
parent 78cb38c2
No related branches found
No related tags found
No related merge requests found
...@@ -37,18 +37,28 @@ endif ( DEFINED dune-xt-common_MODULE_PATH ) ...@@ -37,18 +37,28 @@ endif ( DEFINED dune-xt-common_MODULE_PATH )
enable_testing() enable_testing()
macro(dxt_headercheck_target_name arg)
string(REGEX REPLACE ".*/([^/]*)" "\\1" simple ${arg})
string(REPLACE ${PROJECT_SOURCE_DIR} "" rel ${arg})
string(REGEX REPLACE "(.*)/[^/]*" "\\1" relpath ${rel})
string(REGEX REPLACE "/" "_" targname ${rel})
set(targname "headercheck_${targname}")
endmacro(dxt_headercheck_target_name)
macro(get_headercheck_targets) macro(get_headercheck_targets)
# this is mostly c&p from dune-common, since we need a way to extract # this is mostly c&p from dune-common, since we need a way to extract
# all target names to pass to our load balancing script # all target names to pass to our load balancing script
if(ENABLE_HEADERCHECK) if(ENABLE_HEADERCHECK)
get_property(headerlist GLOBAL PROPERTY headercheck_list) get_property(headerlist GLOBAL PROPERTY headercheck_list)
foreach(header ${headerlist}) foreach(header ${headerlist})
#do some name conversion list (FIND dxt_ignore_header "${header}" _index)
string(REGEX REPLACE ".*/([^/]*)" "\\1" simple ${header}) if (${_index} GREATER -1)
string(REPLACE ${PROJECT_SOURCE_DIR} "" rel ${header}) continue()
string(REGEX REPLACE "(.*)/[^/]*" "\\1" relpath ${rel}) endif()
string(REGEX REPLACE "/" "_" targname ${rel}) #do some name conversion
list(APPEND dxt_headercheck_targets "headercheck_${targname}") set(targname ${header})
dxt_headercheck_target_name(${targname})
list(APPEND dxt_headercheck_targets "${targname}")
endforeach(header ${headerlist}) endforeach(header ${headerlist})
endif(ENABLE_HEADERCHECK) endif(ENABLE_HEADERCHECK)
endmacro(get_headercheck_targets) endmacro(get_headercheck_targets)
...@@ -58,6 +68,7 @@ find_package(LPSolve) ...@@ -58,6 +68,7 @@ find_package(LPSolve)
find_package(LAPACKE) find_package(LAPACKE)
find_package(MatExp) find_package(MatExp)
find_package(LebedevData) find_package(LebedevData)
macro(BEGIN_TESTCASES) macro(BEGIN_TESTCASES)
# https://cmake.org/cmake/help/v3.0/module/FindGTest.html http://purplekarrot.net/blog/cmake-and-test-suites.html # https://cmake.org/cmake/help/v3.0/module/FindGTest.html http://purplekarrot.net/blog/cmake-and-test-suites.html
file( GLOB_RECURSE test_sources "${CMAKE_CURRENT_SOURCE_DIR}/*.cc" ) file( GLOB_RECURSE test_sources "${CMAKE_CURRENT_SOURCE_DIR}/*.cc" )
...@@ -154,6 +165,17 @@ macro(END_TESTCASES) ...@@ -154,6 +165,17 @@ macro(END_TESTCASES)
add_dependencies(refresh_test_timings copy_builders_if_different) add_dependencies(refresh_test_timings copy_builders_if_different)
endmacro(END_TESTCASES) endmacro(END_TESTCASES)
macro(dxt_exclude_from_headercheck)
exclude_from_headercheck(ARGV)
#make this robust to argument being passed with or without ""
string(REGEX REPLACE "[\ \n]+([^\ ])" ";\\1" list ${ARGV0})
set(list "${list};${ARGV}")
foreach(item ${list})
set(item ${CMAKE_CURRENT_SOURCE_DIR}/${item})
list(APPEND dxt_ignore_header ${item})
endforeach()
endmacro(dxt_exclude_from_headercheck)
macro(add_header_listing) macro(add_header_listing)
# header # header
file( GLOB_RECURSE xtcommon "${CMAKE_CURRENT_SOURCE_DIR}/dune/*.hh" "${CMAKE_CURRENT_SOURCE_DIR}/dune/*.pbh") file( GLOB_RECURSE xtcommon "${CMAKE_CURRENT_SOURCE_DIR}/dune/*.hh" "${CMAKE_CURRENT_SOURCE_DIR}/dune/*.pbh")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment