comparison cmake/function/IrccdDefineTest.cmake @ 395:f9b4101fa51c

Tests: do not copy resources anymore
author David Demelier <markand@malikania.fr>
date Tue, 10 Jan 2017 15:16:09 +0100
parents c6fbb6e0e06d
children beb6c638b841
comparison
equal deleted inserted replaced
394:c6fbb6e0e06d 395:f9b4101fa51c
22 # 22 #
23 # irccd_define_test( 23 # irccd_define_test(
24 # NAME the test name 24 # NAME the test name
25 # SOURCES the sources files 25 # SOURCES the sources files
26 # LIBRARIES (Optional) libraries to link 26 # LIBRARIES (Optional) libraries to link
27 # RESOURCES (Optional) some resources file to copy
28 # FLAGS (Optional) compilation flags 27 # FLAGS (Optional) compilation flags
29 # ) 28 # )
30 # 29 #
31 # Create a unit test named test-${NAME} 30 # Create a unit test named test-${NAME}
32 # 31 #
33 # Resources files are copied VERBATIM into the same directory. 32 # Resources files are copied VERBATIM into the same directory.
34 # 33 #
35 34
36 function(irccd_define_test) 35 function(irccd_define_test)
37 set(oneValueArgs NAME) 36 set(oneValueArgs NAME)
38 set(multiValueArgs SOURCES LIBRARIES RESOURCES FLAGS) 37 set(multiValueArgs SOURCES LIBRARIES FLAGS)
39 38
40 cmake_parse_arguments(TEST "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) 39 cmake_parse_arguments(TEST "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
41 40
42 if (NOT TEST_NAME) 41 if (NOT TEST_NAME)
43 message(FATAL_ERROR "Please set NAME") 42 message(FATAL_ERROR "Please set NAME")
44 endif () 43 endif ()
45 if (NOT TEST_SOURCES) 44 if (NOT TEST_SOURCES)
46 message(FATAL_ERROR "Please set SOURCES") 45 message(FATAL_ERROR "Please set SOURCES")
47 endif () 46 endif ()
48 47
49 foreach (r ${TEST_RESOURCES})
50 file(RELATIVE_PATH output ${CMAKE_CURRENT_SOURCE_DIR} ${r})
51
52 add_custom_command(
53 OUTPUT ${CMAKE_BINARY_DIR}/tests/${output}
54 COMMAND ${CMAKE_COMMAND} -E copy ${r} ${CMAKE_BINARY_DIR}/tests/${output}
55 DEPENDS ${r}
56 )
57
58 list(APPEND RESOURCES ${CMAKE_BINARY_DIR}/tests/${output})
59 endforeach ()
60
61 # Always link to googletest 48 # Always link to googletest
62 list(APPEND TEST_LIBRARIES libirccd-test) 49 list(APPEND TEST_LIBRARIES libirccd-test)
63 50
64 # Executable 51 # Executable
65 add_executable(test-${TEST_NAME} ${TEST_SOURCES} ${TEST_RESOURCES} ${RESOURCES}) 52 add_executable(test-${TEST_NAME} ${TEST_SOURCES})
66 target_link_libraries(test-${TEST_NAME} ${TEST_LIBRARIES}) 53 target_link_libraries(test-${TEST_NAME} ${TEST_LIBRARIES})
67 source_group(Auto-generated FILES ${RESOURCES})
68 54
69 target_include_directories( 55 target_include_directories(
70 test-${TEST_NAME} 56 test-${TEST_NAME}
71 PRIVATE 57 PRIVATE
72 ${irccd_SOURCE_DIR} 58 ${irccd_SOURCE_DIR}