if(APPLE) # Without this, clang-uml test cases fail with error saying that # clang cannot find stdarg.h set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -I${LLVM_LIBRARY_DIR}/clang/${LLVM_PACKAGE_VERSION}/include") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -I${LLVM_LIBRARY_DIR}/clang/${LLVM_PACKAGE_VERSION}/include") endif(APPLE) file(GLOB_RECURSE TEST_CASE_SOURCES t*/*.cc) file(GLOB_RECURSE TEST_CASE_CONFIGS t*/.clang-uml) file(GLOB_RECURSE TEST_CONFIG_YMLS test_config_data/*.yml) set(CLANG_UML_TEST_LIBRARIES clang-umllib ${YAML_CPP_LIBRARIES} ${LIBTOOLING_LIBS} Threads::Threads) if(MSVC) list(APPEND CLANG_UML_TEST_LIBRARIES "Version.lib") endif(MSVC) set(TEST_CASES test_util test_model test_cases test_decorator_parser test_config test_filters test_thread_pool_executor) foreach(TEST_CASE_NAME ${TEST_CASES}) add_executable(${TEST_CASE_NAME} ${TEST_CASE_NAME}.cc catch.h) target_compile_options(${TEST_CASE_NAME} PRIVATE $<$,$>: -Wno-unused-parameter -Wno-unused-private-field -Wno-unused-variable -Wno-attributes -Wno-nonnull> $<$: /W1 /std:c++17 /bigobj /wd4624>) target_link_libraries(${TEST_CASE_NAME} PRIVATE ${CLANG_UML_TEST_LIBRARIES}) endforeach() foreach(TEST_CASE_CONFIG ${TEST_CASE_CONFIGS}) file(RELATIVE_PATH TEST_CASE_CONFIG_RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${TEST_CASE_CONFIG}) message(DEBUG ${TEST_CASE_CONFIG_RELATIVE}) configure_file( ${TEST_CASE_CONFIG_RELATIVE} ${TEST_CASE_CONFIG_RELATIVE} COPYONLY) endforeach() foreach(TEST_CONFIG_YML ${TEST_CONFIG_YMLS}) file(RELATIVE_PATH TEST_CONFIG_YML_RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${TEST_CONFIG_YML}) message(DEBUG ${TEST_CONFIG_YML_RELATIVE}) configure_file( ${TEST_CONFIG_YML_RELATIVE} ${TEST_CONFIG_YML_RELATIVE} COPYONLY) endforeach() foreach(TEST_CASE_NAME ${TEST_CASES}) add_test(NAME ${TEST_CASE_NAME} COMMAND ${TEST_CASE_NAME}) endforeach()