Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Tests / RunCMake / cmake_language / RunCMakeTest.cmake
1 include(RunCMake)
2
3 run_cmake(no_parameters)
4 run_cmake(unknown_meta_operation)
5 foreach(command IN ITEMS
6     "function" "ENDFUNCTION"
7     "macro" "endMACRO"
8     "if" "elseif" "else" "endif"
9     "while" "endwhile"
10     "foreach" "endforeach"
11     "block" "endblock"
12     )
13   message(STATUS "Running call_invalid_command for ${command}...")
14   run_cmake_with_options(call_invalid_command -Dcommand=${command})
15 endforeach()
16 run_cmake(call_valid_command)
17 run_cmake(call_double_evaluation)
18 run_cmake(call_expanded_command)
19 run_cmake(call_expanded_command_and_arguments)
20 run_cmake(call_expanded_command_with_explicit_argument)
21 run_cmake(call_expand_command_name)
22 run_cmake(call_expand_function_name)
23 run_cmake(call_message)
24 run_cmake(call_message_fatal_error)
25 run_cmake(call_no_parameters)
26 run_cmake(call_preserve_arguments)
27 run_cmake(call_unknown_function)
28 run_cmake(eval_expand_command_name)
29 run_cmake(eval_expanded_command_and_arguments)
30 run_cmake(eval_extra_parameters_between_eval_and_code)
31 run_cmake(eval_message)
32 run_cmake(eval_message_fatal_error)
33 run_cmake(eval_no_code)
34 run_cmake(eval_no_parameters)
35 run_cmake(eval_variable_outside_message)
36 run_cmake(defer_call)
37 run_cmake(defer_call_add_subdirectory)
38 run_cmake(defer_call_enable_language)
39 run_cmake(defer_call_ids)
40 foreach(command IN ITEMS
41     "function" "endfunction"
42     "macro" "endmacro"
43     "if" "elseif" "else" "endif"
44     "while" "endwhile"
45     "foreach" "endforeach"
46     "block" "endblock"
47     "return"
48     )
49   message(STATUS "Running defer_call_invalid_command for ${command}...")
50   run_cmake_with_options(defer_call_invalid_command -Dcommand=${command})
51 endforeach()
52 run_cmake(defer_call_invalid_directory)
53 run_cmake(defer_call_error)
54 run_cmake(defer_call_missing_directory)
55 run_cmake(defer_call_policy_PUSH)
56 run_cmake(defer_call_syntax_error)
57 run_cmake_with_options(defer_call_trace --trace-expand)
58 run_cmake_with_options(defer_call_trace_json --trace --trace-format=json-v1)
59 run_cmake(defer_cancel_call_unknown_argument)
60 run_cmake(defer_cancel_call_invalid_directory)
61 run_cmake(defer_cancel_call_id)
62 run_cmake(defer_cancel_call_id_var)
63 run_cmake(defer_directory_empty)
64 run_cmake(defer_directory_missing)
65 run_cmake(defer_directory_multiple)
66 run_cmake(defer_id_empty)
67 run_cmake(defer_id_missing)
68 run_cmake(defer_id_multiple)
69 run_cmake(defer_id_var_empty)
70 run_cmake(defer_id_var_missing)
71 run_cmake(defer_id_var_multiple)
72 run_cmake(defer_get_call_ids_missing_var)
73 run_cmake(defer_get_call_ids_too_many_args)
74 run_cmake(defer_get_call_ids_invalid_directory)
75 run_cmake(defer_get_call_ids_id)
76 run_cmake(defer_get_call_ids_id_var)
77 run_cmake(defer_get_call_missing_id)
78 run_cmake(defer_get_call_missing_var)
79 run_cmake(defer_get_call_too_many_args)
80 run_cmake(defer_get_call_id_empty)
81 run_cmake(defer_get_call_unknown_argument)
82 run_cmake(defer_get_call_id)
83 run_cmake(defer_get_call_id_var)
84 run_cmake(defer_missing_arg)
85 run_cmake(defer_missing_call)
86 run_cmake(defer_unknown_option)
87
88 # Default log level
89 run_cmake_command(
90     get_message_log_level_none
91     ${CMAKE_COMMAND}
92     -P ${RunCMake_SOURCE_DIR}/get_message_log_level.cmake
93   )
94
95 # Log level from cache
96 run_cmake_command(
97     get_message_log_level_cache
98     ${CMAKE_COMMAND}
99     -DCMAKE_MESSAGE_LOG_LEVEL=TRACE
100     -P ${RunCMake_SOURCE_DIR}/get_message_log_level.cmake
101   )
102
103 # Log level from regular variable
104 run_cmake_command(
105     get_message_log_level_var
106     ${CMAKE_COMMAND}
107     -DNEW_LOG_LEVEL=TRACE
108     -P ${RunCMake_SOURCE_DIR}/get_message_log_level.cmake
109   )
110
111 # Log level from command line
112 run_cmake_command(
113     get_message_log_level_cli
114     ${CMAKE_COMMAND}
115     --log-level=DEBUG
116     -P ${RunCMake_SOURCE_DIR}/get_message_log_level.cmake
117   )
118
119 # Log level from command line, it has higher priority over a cache variable
120 run_cmake_command(
121     get_message_log_level_cli_and_cache
122     ${CMAKE_COMMAND}
123     --log-level=DEBUG
124     -DCMAKE_MESSAGE_LOG_LEVEL=TRACE
125     -P ${RunCMake_SOURCE_DIR}/get_message_log_level.cmake
126   )
127
128 # Log level from command line, it has higher priority over a regular variable
129 run_cmake_command(
130     get_message_log_level_cli_and_var
131     ${CMAKE_COMMAND}
132     --log-level=DEBUG
133     -DNEW_LOG_LEVEL=TRACE
134     -P ${RunCMake_SOURCE_DIR}/get_message_log_level.cmake
135   )
136
137 # Log level from variable, it has higher priority over a cache variable
138 run_cmake_command(
139     get_message_log_level_var_and_cache
140     ${CMAKE_COMMAND}
141     -DNEW_LOG_LEVEL=DEBUG
142     -DCMAKE_MESSAGE_LOG_LEVEL=TRACE
143     -P ${RunCMake_SOURCE_DIR}/get_message_log_level.cmake
144   )