From 8eb17b388e1be1d5300853c7d6b88558deaae758 Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Thu, 26 Mar 2015 14:48:25 +0100 Subject: [PATCH] CMake: Relocate testsuite macros and scripts to ./cmake/macros This commit relocates all testsuite macros back to cmake/macros and the run_test.cmake and normalize.pl script to cmake/scripts. Further, all of those are copied to the build directory and installed appropriately. --- cmake/config/CMakeLists.txt | 8 +++++--- cmake/config/Config.cmake.in | 7 +++---- cmake/config/Make.global_options.in | 1 - .../macros/macro_deal_ii_add_test.cmake | 12 ++++++------ .../macros/macro_deal_ii_pickup_tests.cmake | 0 cmake/scripts/CMakeLists.txt | 12 ++++++++++++ {tests => cmake/scripts}/normalize.pl | 0 {tests => cmake/scripts}/run_test.cmake | 0 cmake/setup_deal_ii.cmake | 2 -- doc/news/changes.h | 7 +++++++ doc/users/cmake.html | 1 - doc/users/cmakelists.html | 1 - doc/users/config.sample | 4 ---- tests/a-framework/CMakeLists.txt | 2 +- tests/all-headers/CMakeLists.txt | 4 ++-- tests/build_tests/CMakeLists.txt | 4 ++-- tests/quick_tests/CMakeLists.txt | 4 ++-- tests/setup_testsubproject.cmake | 4 ---- 18 files changed, 40 insertions(+), 33 deletions(-) rename tests/macro_add_test.cmake => cmake/macros/macro_deal_ii_add_test.cmake (96%) rename tests/macro_pickup_tests.cmake => cmake/macros/macro_deal_ii_pickup_tests.cmake (100%) rename {tests => cmake/scripts}/normalize.pl (100%) rename {tests => cmake/scripts}/run_test.cmake (100%) diff --git a/cmake/config/CMakeLists.txt b/cmake/config/CMakeLists.txt index 96971a4ea7..534267b88c 100644 --- a/cmake/config/CMakeLists.txt +++ b/cmake/config/CMakeLists.txt @@ -38,7 +38,7 @@ CONFIGURE_FILE( # for binary dir: ######################################################################## # # -# Setup and install the convenience macros: # +# Setup and install cmake macros: # # # ######################################################################## @@ -47,12 +47,14 @@ SET(_macros ${CMAKE_SOURCE_DIR}/cmake/macros/macro_deal_ii_invoke_autopilot.cmake ${CMAKE_SOURCE_DIR}/cmake/macros/macro_deal_ii_setup_target.cmake ${CMAKE_SOURCE_DIR}/cmake/macros/macro_deal_ii_query_git_information.cmake + ${CMAKE_SOURCE_DIR}/cmake/macros/macro_deal_ii_add_test.cmake + ${CMAKE_SOURCE_DIR}/cmake/macros/macro_deal_ii_pickup_tests.cmake ) FILE(COPY ${_macros} - DESTINATION ${CMAKE_BINARY_DIR}/${DEAL_II_CMAKE_MACROS_RELDIR} + DESTINATION ${CMAKE_BINARY_DIR}/${DEAL_II_SHARE_RELDIR}/macros ) INSTALL(FILES ${_macros} - DESTINATION ${DEAL_II_CMAKE_MACROS_RELDIR} + DESTINATION ${DEAL_II_SHARE_RELDIR}/macros COMPONENT library ) diff --git a/cmake/config/Config.cmake.in b/cmake/config/Config.cmake.in index a80aeee0d2..a1696dd3d3 100644 --- a/cmake/config/Config.cmake.in +++ b/cmake/config/Config.cmake.in @@ -49,15 +49,14 @@ SET(DEAL_II_BUILD_TYPES "@DEAL_II_BUILD_TYPES@") # Information about the project location # -SET(DEAL_II_CMAKE_MACROS_RELDIR "@DEAL_II_CMAKE_MACROS_RELDIR@") -SET(DEAL_II_SHARE_RELDIR "@DEAL_II_SHARE_RELDIR@") -SET(DEAL_II_DOCREADME_RELDIR "@DEAL_II_DOCREADME_RELDIR@") SET(DEAL_II_DOCHTML_RELDIR "@DEAL_II_DOCHTML_RELDIR@") +SET(DEAL_II_DOCREADME_RELDIR "@DEAL_II_DOCREADME_RELDIR@") SET(DEAL_II_EXAMPLES_RELDIR "@DEAL_II_EXAMPLES_RELDIR@") SET(DEAL_II_EXECUTABLE_RELDIR "@DEAL_II_EXECUTABLE_RELDIR@") SET(DEAL_II_INCLUDE_RELDIR "@DEAL_II_INCLUDE_RELDIR@") SET(DEAL_II_LIBRARY_RELDIR "@DEAL_II_LIBRARY_RELDIR@") SET(DEAL_II_PROJECT_CONFIG_RELDIR "@DEAL_II_PROJECT_CONFIG_RELDIR@") +SET(DEAL_II_SHARE_RELDIR "@DEAL_II_SHARE_RELDIR@") # # Determine DEAL_II_PATH from CMAKE_CURRENT_LIST_DIR: @@ -96,7 +95,7 @@ ENDIF() # FILE(GLOB _macro_files - "${DEAL_II_PATH}/${DEAL_II_CMAKE_MACROS_RELDIR}/macro_deal_ii*.cmake" + "${DEAL_II_PATH}/${DEAL_II_SHARE_RELDIR}/macros/*.cmake" ) FOREACH(file ${_macro_files}) IF(NOT ${DEAL_II_PACKAGE_NAME}_FIND_QUIETLY) diff --git a/cmake/config/Make.global_options.in b/cmake/config/Make.global_options.in index 697b0faaea..86b7616989 100644 --- a/cmake/config/Make.global_options.in +++ b/cmake/config/Make.global_options.in @@ -48,7 +48,6 @@ DEAL_II_BUILD_TYPES = @MAKEFILE_BUILD_TYPES@ # Information about the project location # -DEAL_II_CMAKE_MACROS_RELDIR = @DEAL_II_CMAKE_MACROS_RELDIR@ DEAL_II_SHARE_RELDIR = @DEAL_II_SHARE_RELDIR@ DEAL_II_DOCREADME_RELDIR = @DEAL_II_DOCREADME_RELDIR@ DEAL_II_DOCHTML_RELDIR = @DEAL_II_DOCHTML_RELDIR@ diff --git a/tests/macro_add_test.cmake b/cmake/macros/macro_deal_ii_add_test.cmake similarity index 96% rename from tests/macro_add_test.cmake rename to cmake/macros/macro_deal_ii_add_test.cmake index 654897969a..8862908f46 100644 --- a/tests/macro_add_test.cmake +++ b/cmake/macros/macro_deal_ii_add_test.cmake @@ -45,7 +45,7 @@ MACRO(DEAL_II_ADD_TEST _category _test_name _comparison_file) IF(NOT DEAL_II_PROJECT_CONFIG_INCLUDED) MESSAGE(FATAL_ERROR - "\nDEAL_II_ADD_TEST can only be called in external test subprojects after " + "\nDEAL_II_ADD_TEST can only be called in external (test sub-) projects after " "the inclusion of deal.IIConfig.cmake. It is not intended for " "internal use.\n\n" ) @@ -191,14 +191,14 @@ MACRO(DEAL_II_ADD_TEST _category _test_name _comparison_file) && echo "${_test_full}: RUN failed. ------ Partial output:" && cat ${_test_directory}/failing_output && exit 1) - COMMAND - ${PERL_EXECUTABLE} -pi ${DEAL_II_SOURCE_DIR}/tests/normalize.pl - ${_test_directory}/output + COMMAND ${PERL_EXECUTABLE} + -pi ${DEAL_II_PATH}/${DEAL_II_SHARE_RELDIR}/scripts/normalize.pl + ${_test_directory}/output WORKING_DIRECTORY ${_test_directory} DEPENDS ${_target} - ${DEAL_II_SOURCE_DIR}/tests/normalize.pl + ${DEAL_II_PATH}/${DEAL_II_SHARE_RELDIR}/scripts/normalize.pl ) ADD_CUSTOM_COMMAND(OUTPUT ${_test_directory}/diff COMMAND @@ -256,7 +256,7 @@ MACRO(DEAL_II_ADD_TEST _category _test_name _comparison_file) -DEXPECT=${_expect} -DDEAL_II_BINARY_DIR=${CMAKE_BINARY_DIR} -DGUARD_FILE=${CMAKE_CURRENT_BINARY_DIR}/${_target}/interrupt_guard.cc - -P ${DEAL_II_SOURCE_DIR}/tests/run_test.cmake + -P ${DEAL_II_PATH}/${DEAL_II_SHARE_RELDIR}/scripts/run_test.cmake WORKING_DIRECTORY ${_test_directory} ) SET_TESTS_PROPERTIES(${_test_full} PROPERTIES diff --git a/tests/macro_pickup_tests.cmake b/cmake/macros/macro_deal_ii_pickup_tests.cmake similarity index 100% rename from tests/macro_pickup_tests.cmake rename to cmake/macros/macro_deal_ii_pickup_tests.cmake diff --git a/cmake/scripts/CMakeLists.txt b/cmake/scripts/CMakeLists.txt index 03f5bfbddd..3feceadd95 100644 --- a/cmake/scripts/CMakeLists.txt +++ b/cmake/scripts/CMakeLists.txt @@ -18,3 +18,15 @@ SET_TARGET_PROPERTIES(expand_instantiations_exe PROPERTIES OUTPUT_NAME expand_instantiations RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${DEAL_II_EXECUTABLE_RELDIR} ) + +SET(_scripts + ${CMAKE_CURRENT_SOURCE_DIR}/normalize.pl + ${CMAKE_CURRENT_SOURCE_DIR}/run_test.cmake + ) +FILE(COPY ${_scripts} + DESTINATION ${CMAKE_BINARY_DIR}/${DEAL_II_SHARE_RELDIR}/scripts + ) +INSTALL(FILES ${_scripts} + DESTINATION ${DEAL_II_SHARE_RELDIR}/scripts + COMPONENT library + ) diff --git a/tests/normalize.pl b/cmake/scripts/normalize.pl similarity index 100% rename from tests/normalize.pl rename to cmake/scripts/normalize.pl diff --git a/tests/run_test.cmake b/cmake/scripts/run_test.cmake similarity index 100% rename from tests/run_test.cmake rename to cmake/scripts/run_test.cmake diff --git a/cmake/setup_deal_ii.cmake b/cmake/setup_deal_ii.cmake index 30c5889cb5..1450a76cd8 100644 --- a/cmake/setup_deal_ii.cmake +++ b/cmake/setup_deal_ii.cmake @@ -47,7 +47,6 @@ # DEAL_II_LIBRARY_RELDIR *) # DEAL_II_PROJECT_CONFIG_RELDIR *) # DEAL_II_SHARE_RELDIR *) -# DEAL_II_CMAKE_MACROS_RELDIR *) # DEAL_II_DOCREADME_RELDIR *) # DEAL_II_DOCHTML_RELDIR *) # DEAL_II_EXAMPLES_RELDIR *) @@ -124,7 +123,6 @@ SET_IF_EMPTY(DEAL_II_INCLUDE_RELDIR "include") SET_IF_EMPTY(DEAL_II_LIBRARY_RELDIR "lib${LIB_SUFFIX}") SET_IF_EMPTY(DEAL_II_PROJECT_CONFIG_RELDIR "${DEAL_II_LIBRARY_RELDIR}/cmake/${DEAL_II_PROJECT_CONFIG_NAME}") SET_IF_EMPTY(DEAL_II_SHARE_RELDIR "share/${DEAL_II_PACKAGE_NAME}") -SET_IF_EMPTY(DEAL_II_CMAKE_MACROS_RELDIR "${DEAL_II_SHARE_RELDIR}/cmake") # # ... but install the documentation into prominent places: # diff --git a/doc/news/changes.h b/doc/news/changes.h index aca830aecd..e5c6a862aa 100644 --- a/doc/news/changes.h +++ b/doc/news/changes.h @@ -38,6 +38,13 @@ inconvenience this causes.

    +
  1. Removed: The CMake configuration does not use the variable + DEAL_II_CMAKE_MACROS_RELDIR any more. Instead, the fixed + location ${DEAL_II_SHARE_RELDIR}/macros is used + unconditionally +
    + (Matthias Maier, 2015/03/26) +
  2. Changed: The TrilinosWrappers::SparseMatrix::clear_row() function used to call TrilinosWrappers::SparseMatrix::compress() before doing its work, but this is neither efficient nor safe. You will now have to do this diff --git a/doc/users/cmake.html b/doc/users/cmake.html index abe200fdb7..113aa28f7c 100644 --- a/doc/users/cmake.html +++ b/doc/users/cmake.html @@ -921,7 +921,6 @@ DEAL_II_INCLUDE_RELDIR DEAL_II_LIBRARY_RELDIR DEAL_II_PROJECT_CONFIG_RELDIR DEAL_II_SHARE_RELDIR -DEAL_II_CMAKE_MACROS_RELDIR DEAL_II_DOCREADME_RELDIR DEAL_II_DOCHTML_RELDIR DEAL_II_EXAMPLES_RELDIR diff --git a/doc/users/cmakelists.html b/doc/users/cmakelists.html index 0a9869971a..1beb81588d 100644 --- a/doc/users/cmakelists.html +++ b/doc/users/cmakelists.html @@ -731,7 +731,6 @@ DEAL_II_BUILD_TYPES - an all caps list of available configurations, # DEAL_II_PATH -DEAL_II_CMAKE_MACROS_RELDIR DEAL_II_SHARE_RELDIR DEAL_II_DOCREADME_RELDIR DEAL_II_DOCHTML_RELDIR diff --git a/doc/users/config.sample b/doc/users/config.sample index fd45b09d1e..d45cac19f0 100644 --- a/doc/users/config.sample +++ b/doc/users/config.sample @@ -626,10 +626,6 @@ # "Library suffix for the release library" # ) # -# SET(DEAL_II_CMAKE_MACROS_RELDIR "cmake/macros" CACHE STRING -# "Relative installation directory for macros" -# ) -# # SET(DEAL_II_DOCHTML_RELDIR "doc" CACHE STRING # "Relative installation directory for html documentation" # ) diff --git a/tests/a-framework/CMakeLists.txt b/tests/a-framework/CMakeLists.txt index 3f4f7fa5ac..73bbb73385 100644 --- a/tests/a-framework/CMakeLists.txt +++ b/tests/a-framework/CMakeLists.txt @@ -23,7 +23,7 @@ FOREACH(_build ${DEAL_II_BUILD_TYPES}) ADD_TEST(NAME ${_test} COMMAND ${CMAKE_COMMAND} -DTRGT=${_target} -DTEST=${_test} -DDEAL_II_BINARY_DIR=${CMAKE_BINARY_DIR} -DEXPECT=CONFIGURE - -P ${DEAL_II_SOURCE_DIR}/tests/run_test.cmake + -P ${DEAL_II_PATH}/${DEAL_II_SHARE_RELDIR}/scripts/run_test.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) SET_TESTS_PROPERTIES(${_test} PROPERTIES diff --git a/tests/all-headers/CMakeLists.txt b/tests/all-headers/CMakeLists.txt index b29d103c71..0597365743 100644 --- a/tests/all-headers/CMakeLists.txt +++ b/tests/all-headers/CMakeLists.txt @@ -1,6 +1,6 @@ ## --------------------------------------------------------------------- ## -## Copyright (C) 2013 - 2014 by the deal.II authors +## Copyright (C) 2013 - 2015 by the deal.II authors ## ## This file is part of the deal.II library. ## @@ -87,7 +87,7 @@ FOREACH(_header ${_headers}) COMMAND ${CMAKE_COMMAND} -DTRGT=${_target}.build -DTEST=${_test} -DDEAL_II_BINARY_DIR=${CMAKE_BINARY_DIR} -DGUARD_FILE=${CMAKE_CURRENT_BINARY_DIR}/${_target}_interrupt_guard.cc - -P ${DEAL_II_SOURCE_DIR}/tests/run_test.cmake + -P ${DEAL_II_PATH}/${DEAL_II_SHARE_RELDIR}/scripts/run_test.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) SET_TESTS_PROPERTIES(${_test} PROPERTIES diff --git a/tests/build_tests/CMakeLists.txt b/tests/build_tests/CMakeLists.txt index 867985d49c..04cce5bc90 100644 --- a/tests/build_tests/CMakeLists.txt +++ b/tests/build_tests/CMakeLists.txt @@ -1,6 +1,6 @@ ## --------------------------------------------------------------------- ## -## Copyright (C) 2013 - 2014 by the deal.II authors +## Copyright (C) 2013 - 2015 by the deal.II authors ## ## This file is part of the deal.II library. ## @@ -181,7 +181,7 @@ FOREACH(_step_full ${_steps}) COMMAND ${CMAKE_COMMAND} -DTRGT=${_target} -DTEST=${_test} -DDEAL_II_BINARY_DIR=${CMAKE_BINARY_DIR} -DGUARD_FILE=${_step_dir}/interrupt_guard - -P ${DEAL_II_SOURCE_DIR}/tests/run_test.cmake + -P ${DEAL_II_PATH}/${DEAL_II_SHARE_RELDIR}/scripts/run_test.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) SET_TESTS_PROPERTIES(${_test} PROPERTIES diff --git a/tests/quick_tests/CMakeLists.txt b/tests/quick_tests/CMakeLists.txt index 3b70b91423..33e256cd6e 100644 --- a/tests/quick_tests/CMakeLists.txt +++ b/tests/quick_tests/CMakeLists.txt @@ -1,6 +1,6 @@ ## --------------------------------------------------------------------- ## -## Copyright (C) 2013 - 2014 by the deal.II authors +## Copyright (C) 2013 - 2015 by the deal.II authors ## ## This file is part of the deal.II library. ## @@ -67,7 +67,7 @@ MACRO(make_quicktest test_basename build_name mpi_run) ADD_TEST(NAME ${_target} COMMAND ${CMAKE_COMMAND} -DTRGT=${_target}.run -DTEST=${_target} -DDEAL_II_BINARY_DIR=${CMAKE_BINARY_DIR} - -P ${CMAKE_SOURCE_DIR}/tests/run_test.cmake + -P ${CMAKE_SOURCE_DIR}/cmake/scripts/run_test.cmake WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) SET_TESTS_PROPERTIES(${_target} PROPERTIES LABEL "sanity checks") diff --git a/tests/setup_testsubproject.cmake b/tests/setup_testsubproject.cmake index d1c63d07ba..4488e3d4af 100644 --- a/tests/setup_testsubproject.cmake +++ b/tests/setup_testsubproject.cmake @@ -41,7 +41,6 @@ FOREACH(_var SET(${_var} ${${_var}}) ENDFOREACH() - # # Load all macros: # @@ -50,9 +49,6 @@ FOREACH(_file ${_macro_files}) INCLUDE(${_file}) ENDFOREACH() -INCLUDE(${DEAL_II_SOURCE_DIR}/tests/macro_add_test.cmake) -INCLUDE(${DEAL_II_SOURCE_DIR}/tests/macro_pickup_tests.cmake) - # # Pick up values from environment: # -- 2.39.5