Mercurial > irccd
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} |