diff options
Diffstat (limited to 'lib/mstch/test/CMakeLists.txt')
| -rw-r--r-- | lib/mstch/test/CMakeLists.txt | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/mstch/test/CMakeLists.txt b/lib/mstch/test/CMakeLists.txt new file mode 100644 index 0000000..061bc2e --- /dev/null +++ b/lib/mstch/test/CMakeLists.txt @@ -0,0 +1,59 @@ +find_package(Boost 1.54 REQUIRED) + +include_directories( + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_SOURCE_DIR}/vendor/Catch/single_include + ${CMAKE_SOURCE_DIR}/vendor/rapidjson/include + ${Boost_INCLUDE_DIR}) + +file(GLOB data_files RELATIVE + "${CMAKE_SOURCE_DIR}/test/data" + "${CMAKE_SOURCE_DIR}/test/data/*.hpp") + +foreach(data_file ${data_files}) + string(REGEX REPLACE "\\.hpp" "" test_name "${data_file}") + list(APPEND tests "${test_name}") +endforeach(data_file) + +file(GLOB string_files RELATIVE + "${CMAKE_SOURCE_DIR}/test/data" + "${CMAKE_SOURCE_DIR}/test/data/*.mustache" + "${CMAKE_SOURCE_DIR}/test/data/*.txt" + "${CMAKE_SOURCE_DIR}/test/data/*.partial") + +foreach(string_file ${string_files}) + list(APPEND genargs "-i${string_file}") +endforeach(string_file) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/test_data.hpp + COMMAND headerize --output ${CMAKE_CURRENT_BINARY_DIR}/test_data.hpp --namespace mstchtest ${genargs} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test/data/) +set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/test_data.hpp PROPERTIES GENERATED TRUE) +add_custom_target(test_data_hpp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/test_data.hpp) + +file(GLOB specs_files RELATIVE + "${CMAKE_SOURCE_DIR}/vendor/spec/specs" + "${CMAKE_SOURCE_DIR}/vendor/spec/specs/*.json") + +foreach(specs_file ${specs_files}) + list(APPEND specsargs "-i${specs_file}") + string(REGEX REPLACE "\\.json" "" test_name "${specs_file}") + string(REGEX REPLACE "~" "" test_name "${test_name}") + list(APPEND tests "specs_${test_name}") +endforeach(specs_file) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/specs_data.hpp + COMMAND headerize --output ${CMAKE_CURRENT_BINARY_DIR}/specs_data.hpp --namespace mstchtest ${specsargs} + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/vendor/spec/specs/) +set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/specs_data.hpp PROPERTIES GENERATED TRUE) +add_custom_target(specs_data_hpp DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/specs_data.hpp) + +add_executable(mstch_test test_main.cpp) +target_link_libraries(mstch_test mstch) +add_dependencies(mstch_test test_data_hpp specs_data_hpp) + +foreach(test ${tests}) + add_test(NAME ${test} COMMAND mstch_test ${test}) +endforeach(test) |
