Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/fem/tests/CMakeLists.txt
3203 views
1
CMAKE_MINIMUM_REQUIRED(VERSION 3.10)
2
PROJECT(ElmerTests Fortran C)
3
4
#ADD_EXECUTABLE(findnorm findnorm_cmake.c)
5
6
SET(ELMERGRID_BIN "${CMAKE_BINARY_DIR}/elmergrid/src/ElmerGrid")
7
SET(VIEWFACTORS_BIN "${CMAKE_BINARY_DIR}/fem/src/ViewFactors")
8
SET(RADIATORS_BIN "${CMAKE_BINARY_DIR}/fem/src/Radiators")
9
IF(WITH_MPI)
10
SET(ELMERSOLVER_BIN "${CMAKE_BINARY_DIR}/fem/src/ElmerSolver_mpi")
11
ELSE()
12
SET(ELMERSOLVER_BIN "${CMAKE_BINARY_DIR}/fem/src/ElmerSolver")
13
ENDIF()
14
SET(FINDNORM_BIN "${CMAKE_CURRENT_BINARY_DIR}/findnorm")
15
SET(MESH2D_BIN "${CMAKE_BINARY_DIR}/meshgen2d/src/Mesh2D")
16
17
MACRO(SUBDIRLIST result curdir depth)
18
set(glob_pattern "*")
19
FOREACH(D RANGE 1 ${depth})
20
FILE(GLOB children RELATIVE ${curdir} ${glob_pattern})
21
FOREACH(child ${children})
22
IF(IS_DIRECTORY ${curdir}/${child})
23
LIST(APPEND dirlist ${child})
24
ENDIF()
25
ENDFOREACH()
26
set(glob_pattern "${glob_pattern}/*")
27
ENDFOREACH()
28
SET(${result} ${dirlist})
29
ENDMACRO()
30
31
SUBDIRLIST(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR} 2)
32
33
SET(_test_counter 0)
34
FOREACH(subdir ${SUBDIRS})
35
IF(NOT ${subdir} MATCHES "^contrib/"
36
OR WITH_CONTRIB)
37
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/CMakeLists.txt")
38
MATH(EXPR _test_counter "${_test_counter}+1")
39
ADD_SUBDIRECTORY(${subdir})
40
LIST(APPEND TEST_SUBDIRS ${subdir})
41
ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/CMakeLists.txt")
42
ENDIF()
43
ENDFOREACH()
44
MESSAGE(STATUS "Found ${_test_counter} tests")
45
46
SET(INSTALL_OLD_TESTS FALSE CACHE BOOL "(deprecated) Install old test system under build directory.")
47
48
FOREACH(_subdir ${TEST_SUBDIRS})
49
FILE(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/${_subdir}/*")
50
FOREACH(_file ${files})
51
IF(NOT(${_file} MATCHES "CMakeLists.txt$"))
52
IF(NOT(${_file} MATCHES "runtest.cmake$"))
53
LIST(APPEND ELMER_TEST_FILES ${_file})
54
ENDIF()
55
ENDIF()
56
ENDFOREACH()
57
ENDFOREACH()
58
59
IF(INSTALL_OLD_TESTS)
60
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.
61
DESTINATION ${CMAKE_BINARY_DIR}/elmertests
62
FILES_MATCHING REGEX
63
".+\\.(f90|F90|sif|mif|grd|eg|msh|good|dat|pos|result|in2d|best0)|HB|Makefile|TEST\\.RESULT|ELMERSOLVER_STARTINFO|mesh\\.*")
64
65
# Misc. directories for meshes etc.
66
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/diffuser_sa/diffuser/.
67
DESTINATION ${CMAKE_BINARY_DIR}/elmertests/diffuser_sa/diffuser)
68
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/diffuser_sst/diffuser/.
69
DESTINATION ${CMAKE_BINARY_DIR}/elmertests/diffuser_sst/diffuser)
70
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/diffuser_v2f/diffuser/.
71
DESTINATION ${CMAKE_BINARY_DIR}/elmertests/diffuser_v2f/diffuser)
72
73
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/findnorm.c
74
${CMAKE_CURRENT_SOURCE_DIR}/ElmerSolver_test_how-to.txt
75
DESTINATION ${CMAKE_BINARY_DIR}/elmertests)
76
INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runtests
77
DESTINATION ${CMAKE_BINARY_DIR}/elmertests)
78
ENDIF(INSTALL_OLD_TESTS)
79
80
# ElmerTests_package target
81
SET(ELMER_TESTS_PACKAGE_FILENAME "elmerfem-tests-${ELMER_FEM_REVISION}.tar.gz" CACHE STRING "Filename of test package")
82
MARK_AS_ADVANCED(ELMER_TESTS_PACKAGE_FILENAME)
83
84
ADD_CUSTOM_TARGET(ElmerTests
85
"${CMAKE_COMMAND}" "-E" "make_directory" "${CMAKE_BINARY_DIR}/elmerfem-tests")
86
ADD_CUSTOM_TARGET(ElmerTests_package
87
DEPENDS ElmerTests
88
COMMAND "${CMAKE_COMMAND}" "-E" "tar" "cvfz" "${ELMER_TESTS_PACKAGE_FILENAME}" "elmerfem-tests"
89
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
90
91
# Copy the tests in a cross platform compliant manner
92
FOREACH(_file ${ELMER_TEST_FILES})
93
IF(NOT(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_file}))
94
ADD_CUSTOM_COMMAND(TARGET ElmerTests
95
POST_BUILD
96
COMMAND "${CMAKE_COMMAND}" "-E" "copy"
97
"${CMAKE_CURRENT_SOURCE_DIR}/${_file}"
98
"${CMAKE_BINARY_DIR}/elmerfem-tests/${_file}")
99
ELSE()
100
ADD_CUSTOM_COMMAND(TARGET ElmerTests
101
POST_BUILD
102
COMMAND "${CMAKE_COMMAND}" "-E" "copy_directory"
103
"${CMAKE_CURRENT_SOURCE_DIR}/${_file}"
104
"${CMAKE_BINARY_DIR}/elmerfem-tests/${_file}")
105
ENDIF()
106
ENDFOREACH()
107
108