| # |
| # Copyright Kitware, Inc. |
| # Distributed under the OSI-approved BSD 3-Clause License. |
| # See accompanying file Copyright.txt for details. |
| # |
| if(NOT KWIML_TEST_PREFIX) |
| set(KWIML_TEST_PREFIX kwiml) |
| endif() |
| |
| # Suppress printf/scanf format warnings; we test if the sizes match. |
| foreach(lang C CXX) |
| if(KWIML_LANGUAGE_${lang} AND CMAKE_${lang}_COMPILER_ID STREQUAL "GNU") |
| set(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} -Wno-format -Wno-format-security") |
| endif() |
| endforeach() |
| |
| if(KWIML_LANGUAGE_C) |
| set(test_srcs test.c) |
| else() |
| set(test_srcs test.cxx) |
| endif() |
| if(KWIML_LANGUAGE_C) |
| list(APPEND test_defs KWIML_LANGUAGE_C) |
| list(APPEND test_srcs |
| test_abi_C.c |
| test_int_C.c |
| test_include_C.c |
| ) |
| endif() |
| if(KWIML_LANGUAGE_CXX) |
| list(APPEND test_defs KWIML_LANGUAGE_CXX) |
| list(APPEND test_srcs |
| test_abi_CXX.cxx |
| test_int_CXX.cxx |
| test_include_CXX.cxx |
| ) |
| endif() |
| |
| add_executable(kwiml_test ${test_srcs}) |
| set_property(TARGET kwiml_test PROPERTY COMPILE_DEFINITIONS ${test_defs}) |
| set_property(TARGET kwiml_test PROPERTY C_INCLUDE_WHAT_YOU_USE "") |
| set_property(TARGET kwiml_test PROPERTY CXX_INCLUDE_WHAT_YOU_USE "") |
| set_property(TARGET kwiml_test PROPERTY |
| RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) |
| add_test(NAME ${KWIML_TEST_PREFIX}.test COMMAND kwiml_test) |
| set_property(TEST ${KWIML_TEST_PREFIX}.test PROPERTY LABELS ${KWIML_TEST_LABELS}) |
| |
| # Xcode 2.x forgets to create the output directory before linking |
| # the individual architectures. |
| if(CMAKE_OSX_ARCHITECTURES AND XCODE |
| AND NOT "${XCODE_VERSION}" MATCHES "^[^12]") |
| add_custom_command( |
| TARGET kwiml_test |
| PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CFG_INTDIR}" |
| ) |
| endif() |