File: CMakeLists.txt

package info (click to toggle)
ball 1.5.0%2Bgit20180813.37fc53c-11.1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 239,928 kB
  • sloc: cpp: 326,149; ansic: 4,208; python: 2,303; yacc: 1,778; lex: 1,099; xml: 958; sh: 322; javascript: 164; makefile: 88
file content (89 lines) | stat: -rw-r--r-- 2,610 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
### Build rules for BALL's class tests
PROJECT("BALL_tests")

ENABLE_TESTING()

OPTION(BALL_TEST_VERBOSE "Use verbose output for the tests" ON)

SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/TEST)
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR})

## For now, disable optimization for the tests
IF (CXX_COMPILER_ID MATCHES "Intel|GXX")
	SET(CMAKE_CXX_FLAGS_RELEASE_SAVED ${CMAKE_CXX_FLAGS_RELEASE})
	SET(CMAKE_CXX_FLAGS_RELEASE "-O0")
ENDIF()

INCLUDE(cmake/BALLTestExecutables.cmake)
INCLUDE(cmake/VIEWTestExecutables.cmake)

## BASIC
ADD_CUSTOM_TARGET(BASIC_TESTS)
ADD_DEPENDENCIES(BASIC_TESTS ${BALL_BASIC_TESTS})

## MATHS
ADD_CUSTOM_TARGET(MATHS_TESTS)
ADD_DEPENDENCIES(MATHS_TESTS ${BALL_MATHS_TESTS})

## SYSTEM
ADD_CUSTOM_TARGET(SYSTEM_TESTS)
ADD_DEPENDENCIES(SYSTEM_TESTS ${BALL_SYSTEM_TESTS})

## TODO: all of them...

## Restore build flags
IF (CXX_COMPILER_ID MATCHES "Intel|GXX")
	SET(${CMAKE_CXX_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS_RELEASE_SAVED})
ENDIF()

SET(BALLTEST_SUPPORT_LIBRARIES "")
IF (UNIX)
	LIST(APPEND BALLTEST_SUPPORT_LIBRARIES "pthread")
ENDIF ()

# Now, add all tests as targets
SET(ALL_TESTS "")
FOREACH(group ${BALL_TESTS})
	FOREACH(test ${${group}})
		ADD_EXECUTABLE(${test} ${test}.C)
		TARGET_LINK_LIBRARIES(${test} BALL ${BALLTEST_SUPPORT_LIBRARIES} GLEW)
		SET_PROPERTY(TARGET ${test} PROPERTY FOLDER ${group})
		SET_TARGET_PROPERTIES(${test} PROPERTIES COMPILE_FLAGS "${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
		IF (NOT BALL_TEST_VERBOSE)
			ADD_TEST(${test} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test})
		ELSE()
			ADD_TEST(${test} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test} "-v")
		ENDIF()
		LIST(APPEND ALL_TESTS ${test})
	ENDFOREACH()
ENDFOREACH()

# Set the timeout of some tests to 2h
# This is needed for the memcheck running on the CI server
# which takes _very_ long
SET_TESTS_PROPERTIES (
	ScoringFunction_test
	AssignBondOrderProcessor_test1
	AssignBondOrderProcessor_test2
	PROPERTIES TIMEOUT 7200
)

IF (BALL_HAS_VIEW)
	FOREACH(test ${VIEW_TESTS})
		ADD_EXECUTABLE(${test} ${test}.C)
		TARGET_LINK_LIBRARIES(${test} BALL VIEW ${BALLTEST_SUPPORT_LIBRARIES} GLEW)
		SET_TARGET_PROPERTIES(${test} PROPERTIES COMPILE_FLAGS "${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
		SET_PROPERTY(TARGET ${test} PROPERTY FOLDER BALL_VIEW_TESTS)
		IF (NOT BALL_TEST_VERBOSE)
			ADD_TEST(${test} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test})
		ELSE()
			ADD_TEST(${test} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test} "-v")
		ENDIF()
	ENDFOREACH()

	LIST(APPEND ALL_TESTS ${VIEW_TESTS})
ENDIF()

# Create a suitable target
ADD_CUSTOM_TARGET(build_tests)
ADD_DEPENDENCIES(build_tests ${ALL_TESTS})