Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/elmerice/Tests/CMakeLists.txt
3203 views
1
CMAKE_MINIMUM_REQUIRED(VERSION 3.10)
2
PROJECT(ElmerIceTests Fortran C)
3
4
SET(ELMERGRID_BIN "${CMAKE_BINARY_DIR}/elmergrid/src/ElmerGrid")
5
IF(WITH_MPI)
6
SET(ELMERSOLVER_BIN "${CMAKE_BINARY_DIR}/fem/src/ElmerSolver_mpi")
7
ELSE()
8
SET(ELMERSOLVER_BIN "${CMAKE_BINARY_DIR}/fem/src/ElmerSolver")
9
ENDIF()
10
#SET(FINDNORM_BIN "${CMAKE_CURRENT_BINARY_DIR}/findnorm")
11
12
MACRO(SUBDIRLIST result curdir)
13
FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
14
SET(dirlist "")
15
FOREACH(child ${children})
16
IF(IS_DIRECTORY ${curdir}/${child})
17
LIST(APPEND dirlist ${child})
18
ENDIF()
19
ENDFOREACH()
20
SET(${result} ${dirlist})
21
ENDMACRO()
22
23
SUBDIRLIST(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR})
24
25
FOREACH(subdir ${SUBDIRS})
26
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/CMakeLists.txt")
27
ADD_SUBDIRECTORY(${subdir})
28
LIST(APPEND TEST_SUBDIRS ${subdir})
29
ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/CMakeLists.txt")
30
ENDFOREACH()
31
32
#SET(INSTALL_OLD_TESTS FALSE CACHE BOOL "(deprecated) Install old test system under build directory.")
33
34
FOREACH(_subdir ${TEST_SUBDIRS})
35
FILE(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/${_subdir}/*")
36
FOREACH(_file ${files})
37
IF(NOT(${_file} MATCHES "CMakeLists.txt$"))
38
IF(NOT(${_file} MATCHES "runTest.cmake$"))
39
LIST(APPEND ELMERICE_TEST_FILES ${_file})
40
ENDIF()
41
ENDIF()
42
ENDFOREACH()
43
ENDFOREACH()
44
45
# ElmerTests_package target
46
SET(ELMERICE_TESTS_PACKAGE_FILENAME "elmerice-tests-${ELMER_FEM_REVISION}.tar.gz" CACHE STRING "Filename of test package")
47
MARK_AS_ADVANCED(ELMERICE_TESTS_PACKAGE_FILENAME)
48
49
ADD_CUSTOM_TARGET(ElmerIceTests
50
"${CMAKE_COMMAND}" "-E" "make_directory" "${CMAKE_BINARY_DIR}/elmerice-tests")
51
ADD_CUSTOM_TARGET(ElmerIceTests_package
52
DEPENDS ElmerIceTests
53
COMMAND "${CMAKE_COMMAND}" "-E" "tar" "cvfz" "${ELMERICE_TESTS_PACKAGE_FILENAME}" "elmerice-tests"
54
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
55
56
# Copy the tests in a cross platform compliant manner
57
FOREACH(_file ${ELMERICE_TEST_FILES})
58
IF(NOT(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_file}))
59
ADD_CUSTOM_COMMAND(TARGET ElmerIceTests
60
POST_BUILD
61
COMMAND "${CMAKE_COMMAND}" "-E" "copy"
62
"${CMAKE_CURRENT_SOURCE_DIR}/${_file}"
63
"${CMAKE_BINARY_DIR}/elmerice-tests/${_file}")
64
ELSE()
65
ADD_CUSTOM_COMMAND(TARGET ElmerIceTests
66
POST_BUILD
67
COMMAND "${CMAKE_COMMAND}" "-E" "copy_directory"
68
"${CMAKE_CURRENT_SOURCE_DIR}/${_file}"
69
"${CMAKE_BINARY_DIR}/elmerice-tests/${_file}")
70
ENDIF()
71
ENDFOREACH()
72
73
74
75
#IF(NOT(CMAKE_BUILD_TYPE MATCHES "Rel"))
76
#INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/. #
77
# DESTINATION ${CMAKE_BINARY_DIR}/elmericetests#
78
# FILES_MATCHING REGEX
79
# ".+\\.(f90|F90|sif|mif|grd|eg|msh|good|dat|pos|result|in2d|best0|txt)|HB|Makefile|TEST\\.RESULT|ELMERSOLVER_STARTINFO|mesh\\.*|DATA|PROG")
80
#
81
#INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/Compare.f90
82
# ${CMAKE_CURRENT_SOURCE_DIR}/ElmerIceSolver_test_how-to.txt
83
# DESTINATION ${CMAKE_BINARY_DIR}/elmericetests)
84
#INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runTest.sh
85
# DESTINATION ${CMAKE_BINARY_DIR}/elmericetests)
86
#ENDIF()
87
88