# CMake build for xerces-c # # Written by Roger Leigh # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # test macros find_program(DIFF_EXECUTABLE diff) set(xerces_test_dir "${CMAKE_CURRENT_LIST_DIR}") macro(add_generic_xerces_test name) set(options EXPECT_FAIL) set(oneValueArgs WORKING_DIRECTORY OBSERVED_DIR EXPECTED_DIR STDIN) set(multiValueArgs COMMAND) cmake_parse_arguments(AXT "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) list(GET AXT_COMMAND 0 command) list(REMOVE_AT AXT_COMMAND 0) if(NOT AXT_WORKING_DIRECTORY) set(AXT_WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/samples/data") endif() unset(xerces_test_extra_args) if(WIN32) list(APPEND xerces_test_extra_args "-DWIN32=${WIN32}") endif() if(CYGWIN) list(APPEND xerces_test_extra_args "-DCYGWIN=${CYGWIN}") endif() add_test(NAME "${name}" COMMAND "${CMAKE_COMMAND}" "-DNAME=${name}" "-DPROGRAM=$" "-DARGS=${AXT_COMMAND}" "-DLIBXERCES_C=$" "-DWORKDIR=${AXT_WORKING_DIRECTORY}" "-DSTDIN=${AXT_STDIN}" "-DEXPECT_FAIL=${AXT_EXPECT_FAIL}" "-DOBSERVED_DIR=${CMAKE_CURRENT_BINARY_DIR}/observed" "-DEXPECTED_DIR=${CMAKE_CURRENT_SOURCE_DIR}/expected" "-DDIFF=${DIFF_EXECUTABLE}" "-DNLS_HOME=${PROJECT_BINARY_DIR}/src" ${xerces_test_extra_args} -P "${xerces_test_dir}/RunTest.cmake" ) if(AXT_STDIN) set_property(TEST "${name}" PROPERTY RUN_SERIAL 1) endif() endmacro() macro(add_xerces_test name) add_generic_xerces_test( ${name} OBSERVED_DIR "${PROJECT_BINARY_DIR}/tests/observed" EXPECTED_DIR "${PROJECT_SOURCE_DIR}/tests/expected" ${ARGN}) endmacro() macro(add_xerces_sample_test name) add_generic_xerces_test( ${name} OBSERVED_DIR "${PROJECT_BINARY_DIR}/samples/observed" EXPECTED_DIR "${PROJECT_SOURCE_DIR}/samples/expected" ${ARGN}) endmacro()