75 lines
2.3 KiB
CMake
75 lines
2.3 KiB
CMake
|
|
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
|
|
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:
|
|
-Wno-unused-parameter -Wno-unused-private-field -Wno-unused-variable
|
|
-Wno-attributes -Wno-nonnull>
|
|
$<$<CXX_COMPILER_ID:MSVC>:
|
|
/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()
|