CMakeLists.txt 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #
  2. # Copyright Kitware, Inc.
  3. # Distributed under the OSI-approved BSD 3-Clause License.
  4. # See accompanying file Copyright.txt for details.
  5. #
  6. if(NOT KWIML_TEST_PREFIX)
  7. set(KWIML_TEST_PREFIX kwiml)
  8. endif()
  9. # Suppress printf/scanf format warnings; we test if the sizes match.
  10. foreach(lang C CXX)
  11. if(KWIML_LANGUAGE_${lang} AND CMAKE_${lang}_COMPILER_ID STREQUAL "GNU")
  12. set(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} -Wno-format -Wno-format-security")
  13. endif()
  14. endforeach()
  15. if(KWIML_LANGUAGE_C)
  16. set(test_srcs test.c)
  17. else()
  18. set(test_srcs test.cxx)
  19. endif()
  20. if(KWIML_LANGUAGE_C)
  21. list(APPEND test_defs KWIML_LANGUAGE_C)
  22. list(APPEND test_srcs
  23. test_abi_C.c
  24. test_int_C.c
  25. test_include_C.c
  26. )
  27. endif()
  28. if(KWIML_LANGUAGE_CXX)
  29. list(APPEND test_defs KWIML_LANGUAGE_CXX)
  30. list(APPEND test_srcs
  31. test_abi_CXX.cxx
  32. test_int_CXX.cxx
  33. test_include_CXX.cxx
  34. )
  35. endif()
  36. add_executable(kwiml_test ${test_srcs})
  37. set_property(TARGET kwiml_test PROPERTY COMPILE_DEFINITIONS ${test_defs})
  38. set_property(TARGET kwiml_test PROPERTY C_INCLUDE_WHAT_YOU_USE "")
  39. set_property(TARGET kwiml_test PROPERTY CXX_INCLUDE_WHAT_YOU_USE "")
  40. set_property(TARGET kwiml_test PROPERTY
  41. RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
  42. add_test(NAME ${KWIML_TEST_PREFIX}.test COMMAND kwiml_test)
  43. set_property(TEST ${KWIML_TEST_PREFIX}.test PROPERTY LABELS ${KWIML_TEST_LABELS})
  44. # Xcode 2.x forgets to create the output directory before linking
  45. # the individual architectures.
  46. if(CMAKE_OSX_ARCHITECTURES AND XCODE
  47. AND NOT "${XCODE_VERSION}" MATCHES "^[^12]")
  48. add_custom_command(
  49. TARGET kwiml_test
  50. PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CFG_INTDIR}"
  51. )
  52. endif()