| #============================================================================= |
| # Kitware Information Macro Library |
| # Copyright 2010-2011 Kitware, Inc. |
| # |
| # Distributed under the OSI-approved BSD License (the "License"); |
| # see accompanying file Copyright.txt for details. |
| # |
| # This software is distributed WITHOUT ANY WARRANTY; without even the |
| # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| # See the License for more information. |
| #============================================================================= |
| |
| set(test_defs KWIML_NAMESPACE=${KWIML}) |
| |
| # Tell CMake how to follow dependencies of sources in this directory. |
| set_property(DIRECTORY |
| PROPERTY IMPLICIT_DEPENDS_INCLUDE_TRANSFORM |
| "KWIML_HEADER(%)=<${KWIML}/%>" |
| ) |
| |
| # 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") |
| 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() |
| |
| foreach(th test_ABI_endian test_INT_format) |
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${th}.h.in |
| ${CMAKE_CURRENT_BINARY_DIR}/${th}.h @ONLY) |
| endforeach() |
| include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) |
| add_executable(${KWIML}_test ${test_srcs}) |
| set_property(TARGET ${KWIML}_test PROPERTY COMPILE_DEFINITIONS ${test_defs}) |
| set_property(TARGET ${KWIML}_test PROPERTY |
| RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) |
| add_test(${KWIML}.test ${CMAKE_CURRENT_BINARY_DIR}/${KWIML}_test) |
| set_property(TEST ${KWIML}.test PROPERTY LABELS ${KWIML_LABELS_TEST}) |
| |
| # 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() |