84d047982c27c9c616c5d3a56656763afd026045
[platform/upstream/cmake.git] / Tests / RunCMake / CompilerLauncher / RunCMakeTest.cmake
1 include(RunCMake)
2
3 function(run_compiler_launcher lang)
4   # Preserve build tree so we can reuse it for the ${lang}-Build subtest below
5   set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${lang}-build)
6   set(RunCMake_TEST_NO_CLEAN 1)
7   file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
8   file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
9   run_cmake(${lang})
10
11   set(RunCMake_TEST_OUTPUT_MERGE 1)
12   if("${RunCMake_GENERATOR}" MATCHES "Ninja")
13     set(verbose_args -- -v)
14   endif()
15   run_cmake_command(${lang}-Build ${CMAKE_COMMAND} --build . ${verbose_args})
16 endfunction()
17
18 function(run_compiler_launcher_env lang)
19   string(REGEX REPLACE "-.*" "" core_lang "${lang}")
20   set(ENV{CMAKE_${core_lang}_COMPILER_LAUNCHER} "${CMAKE_COMMAND};-E;env;USED_LAUNCHER=1")
21   run_compiler_launcher(${lang})
22   unset(ENV{CMAKE_${core_lang}_COMPILER_LAUNCHER})
23 endfunction()
24
25 set(langs C CXX)
26 if(CMake_TEST_CUDA)
27   list(APPEND langs CUDA)
28 endif()
29 if(CMake_TEST_Fortran)
30   list(APPEND langs Fortran)
31 endif()
32 if(CMake_TEST_HIP)
33   list(APPEND langs HIP)
34 endif()
35 if(CMake_TEST_ISPC)
36   list(APPEND langs ISPC)
37 endif()
38 if(CMake_TEST_OBJC)
39   list(APPEND langs OBJC OBJCXX)
40 endif()
41
42 foreach(lang ${langs})
43   run_compiler_launcher(${lang})
44   run_compiler_launcher_env(${lang}-env)
45   if (NOT RunCMake_GENERATOR STREQUAL "Watcom WMake")
46     run_compiler_launcher(${lang}-launch)
47     run_compiler_launcher_env(${lang}-launch-env)
48   endif()
49 endforeach()