CMAKE_MINIMUM_REQUIRED(VERSION 3.10) PROJECT(ElmerIceTests Fortran C) SET(ELMERGRID_BIN "${CMAKE_BINARY_DIR}/elmergrid/src/ElmerGrid") IF(WITH_MPI) SET(ELMERSOLVER_BIN "${CMAKE_BINARY_DIR}/fem/src/ElmerSolver_mpi") ELSE() SET(ELMERSOLVER_BIN "${CMAKE_BINARY_DIR}/fem/src/ElmerSolver") ENDIF() #SET(FINDNORM_BIN "${CMAKE_CURRENT_BINARY_DIR}/findnorm") MACRO(SUBDIRLIST result curdir) FILE(GLOB children RELATIVE ${curdir} ${curdir}/*) SET(dirlist "") FOREACH(child ${children}) IF(IS_DIRECTORY ${curdir}/${child}) LIST(APPEND dirlist ${child}) ENDIF() ENDFOREACH() SET(${result} ${dirlist}) ENDMACRO() SUBDIRLIST(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR}) FOREACH(subdir ${SUBDIRS}) IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/CMakeLists.txt") ADD_SUBDIRECTORY(${subdir}) LIST(APPEND TEST_SUBDIRS ${subdir}) ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/CMakeLists.txt") ENDFOREACH() #SET(INSTALL_OLD_TESTS FALSE CACHE BOOL "(deprecated) Install old test system under build directory.") FOREACH(_subdir ${TEST_SUBDIRS}) FILE(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/${_subdir}/*") FOREACH(_file ${files}) IF(NOT(${_file} MATCHES "CMakeLists.txt$")) IF(NOT(${_file} MATCHES "runTest.cmake$")) LIST(APPEND ELMERICE_TEST_FILES ${_file}) ENDIF() ENDIF() ENDFOREACH() ENDFOREACH() # ElmerTests_package target SET(ELMERICE_TESTS_PACKAGE_FILENAME "elmerice-tests-${ELMER_FEM_REVISION}.tar.gz" CACHE STRING "Filename of test package") MARK_AS_ADVANCED(ELMERICE_TESTS_PACKAGE_FILENAME) ADD_CUSTOM_TARGET(ElmerIceTests "${CMAKE_COMMAND}" "-E" "make_directory" "${CMAKE_BINARY_DIR}/elmerice-tests") ADD_CUSTOM_TARGET(ElmerIceTests_package DEPENDS ElmerIceTests COMMAND "${CMAKE_COMMAND}" "-E" "tar" "cvfz" "${ELMERICE_TESTS_PACKAGE_FILENAME}" "elmerice-tests" WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) # Copy the tests in a cross platform compliant manner FOREACH(_file ${ELMERICE_TEST_FILES}) IF(NOT(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_file})) ADD_CUSTOM_COMMAND(TARGET ElmerIceTests POST_BUILD COMMAND "${CMAKE_COMMAND}" "-E" "copy" "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" "${CMAKE_BINARY_DIR}/elmerice-tests/${_file}") ELSE() ADD_CUSTOM_COMMAND(TARGET ElmerIceTests POST_BUILD COMMAND "${CMAKE_COMMAND}" "-E" "copy_directory" "${CMAKE_CURRENT_SOURCE_DIR}/${_file}" "${CMAKE_BINARY_DIR}/elmerice-tests/${_file}") ENDIF() ENDFOREACH() #IF(NOT(CMAKE_BUILD_TYPE MATCHES "Rel")) #INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/. # # DESTINATION ${CMAKE_BINARY_DIR}/elmericetests# # FILES_MATCHING REGEX # ".+\\.(f90|F90|sif|mif|grd|eg|msh|good|dat|pos|result|in2d|best0|txt)|HB|Makefile|TEST\\.RESULT|ELMERSOLVER_STARTINFO|mesh\\.*|DATA|PROG") # #INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/Compare.f90 # ${CMAKE_CURRENT_SOURCE_DIR}/ElmerIceSolver_test_how-to.txt # DESTINATION ${CMAKE_BINARY_DIR}/elmericetests) #INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runTest.sh # DESTINATION ${CMAKE_BINARY_DIR}/elmericetests) #ENDIF()