3 # Function called in *-check.cmake scripts to check api files.
4 function(check_api expect)
5 file(GLOB_RECURSE actual
7 RELATIVE ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1
8 ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1/*
10 if(NOT "${actual}" MATCHES "${expect}")
11 set(RunCMake_TEST_FAILED "API files:
13 do not match what we expected:
16 ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1" PARENT_SCOPE)
20 function(check_python case)
21 if(RunCMake_TEST_FAILED OR NOT Python_EXECUTABLE)
24 file(GLOB index ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1/reply/index-*.json)
26 COMMAND ${Python_EXECUTABLE} "${RunCMake_SOURCE_DIR}/${case}-check.py" "${index}" "${CMAKE_CXX_COMPILER_ID}"
27 "${RunCMake_TEST_BINARY_DIR}"
28 RESULT_VARIABLE result
29 OUTPUT_VARIABLE output
32 if(NOT result EQUAL 0)
33 string(REPLACE "\n" "\n " output " ${output}")
34 set(RunCMake_TEST_FAILED "Unexpected index:\n${output}" PARENT_SCOPE)
38 if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
39 set(RunCMake_TEST_OPTIONS "-DCMAKE_CONFIGURATION_TYPES=Debug\\;Release\\;MinSizeRel\\;RelWithDebInfo")
42 if(JsonCpp_VERSION_STRING AND JsonCpp_VERSION_STRING VERSION_LESS 1.7.5)
43 set(ENV{CMake_JSONCPP_PRE_1_7_5} 1)
48 run_cmake(EmptyClient)
50 run_cmake(SharedStateless)
51 run_cmake(ClientStateless)
52 run_cmake(MixedStateless)
53 run_cmake(DuplicateStateless)
54 run_cmake(ClientStateful)
56 function(run_object object)
57 set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${object}-build)
58 list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0118=NEW)
60 list(POP_BACK RunCMake_TEST_OPTIONS)
61 set(RunCMake_TEST_NO_CLEAN 1)
62 run_cmake_command(${object}-SharedStateless ${CMAKE_COMMAND} .)
63 run_cmake_command(${object}-ClientStateless ${CMAKE_COMMAND} .)
64 run_cmake_command(${object}-ClientStateful ${CMAKE_COMMAND} .)
67 run_object(codemodel-v2)
69 run_object(cmakeFiles-v1)
70 run_object(toolchains-v1)