OXIESEC PANEL
- Current Dir:
/
/
usr
/
local
/
doc
/
cmake
/
html
/
_sources
/
command
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
04/04/2023 07:10:48 PM
rwxr-xr-x
📄
add_compile_definitions.rst.txt
1.04 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
add_compile_options.rst.txt
1.31 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
add_custom_command.rst.txt
20.78 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
add_custom_target.rst.txt
7.4 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
add_definitions.rst.txt
1.38 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
add_dependencies.rst.txt
1 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
add_executable.rst.txt
4.3 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
add_library.rst.txt
11.08 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
add_link_options.rst.txt
1.08 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
add_subdirectory.rst.txt
2.06 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
add_test.rst.txt
3.25 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
aux_source_directory.rst.txt
1.06 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
block.rst.txt
1.81 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
break.rst.txt
208 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
build_command.rst.txt
1.86 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
build_name.rst.txt
430 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
cmake_host_system_information.rst.txt
11.36 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
cmake_language.rst.txt
18.83 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
cmake_minimum_required.rst.txt
3.19 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
cmake_parse_arguments.rst.txt
4.82 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
cmake_path.rst.txt
25.13 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
cmake_policy.rst.txt
5.56 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
configure_file.rst.txt
5.26 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
continue.rst.txt
362 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
create_test_sourcelist.rst.txt
1.52 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_build.rst.txt
3.23 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_configure.rst.txt
1.66 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_coverage.rst.txt
1.62 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_empty_binary_directory.rst.txt
323 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_memcheck.rst.txt
1.49 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_read_custom_files.rst.txt
332 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_run_script.rst.txt
577 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_sleep.rst.txt
265 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_start.rst.txt
3.12 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_submit.rst.txt
4.01 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_test.rst.txt
10.23 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_update.rst.txt
1.34 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
ctest_upload.rst.txt
678 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
define_property.rst.txt
3.3 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
else.rst.txt
129 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
elseif.rst.txt
194 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
enable_language.rst.txt
1.06 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
enable_testing.rst.txt
474 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
endblock.rst.txt
190 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
endforeach.rst.txt
342 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
endfunction.rst.txt
337 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
endif.rst.txt
300 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
endmacro.rst.txt
319 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
endwhile.rst.txt
317 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
exec_program.rst.txt
958 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
execute_process.rst.txt
6.04 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
export.rst.txt
5.6 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
export_library_dependencies.rst.txt
1.13 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
file.rst.txt
45.8 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
find_file.rst.txt
1.55 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
find_library.rst.txt
3.85 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
find_package.rst.txt
32.47 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
find_path.rst.txt
1.84 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
find_program.rst.txt
1.44 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
fltk_wrap_ui.rst.txt
380 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
foreach.rst.txt
3.57 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
function.rst.txt
2.32 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
get_cmake_property.rst.txt
766 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
get_directory_property.rst.txt
1.28 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
get_filename_component.rst.txt
2.54 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
get_property.rst.txt
3.46 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
get_source_file_property.rst.txt
1.96 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
get_target_property.rst.txt
1.15 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
get_test_property.rst.txt
831 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
if.rst.txt
14.6 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
include.rst.txt
1.06 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
include_directories.rst.txt
1.57 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
include_external_msproject.rst.txt
1.09 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
include_guard.rst.txt
1.8 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
include_regular_expression.rst.txt
571 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
install.rst.txt
43.13 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
install_files.rst.txt
1.39 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
install_programs.rst.txt
1.26 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
install_targets.rst.txt
664 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
link_directories.rst.txt
2.53 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
link_libraries.rst.txt
669 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
list.rst.txt
10.1 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
load_cache.rst.txt
1001 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
load_command.rst.txt
686 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
macro.rst.txt
4.77 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
make_directory.rst.txt
306 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
mark_as_advanced.rst.txt
867 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
math.rst.txt
1.19 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
message.rst.txt
8.12 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
option.rst.txt
615 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
output_required_files.rst.txt
680 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
project.rst.txt
6.16 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
qt_wrap_cpp.rst.txt
829 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
qt_wrap_ui.rst.txt
981 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
remove.rst.txt
306 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
remove_definitions.rst.txt
293 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
return.rst.txt
3.21 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
separate_arguments.rst.txt
2.53 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
set.rst.txt
4.39 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
set_directory_properties.rst.txt
630 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
set_property.rst.txt
4.38 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
set_source_files_properties.rst.txt
1.68 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
set_target_properties.rst.txt
758 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
set_tests_properties.rst.txt
624 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
site_name.rst.txt
304 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
source_group.rst.txt
2.18 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
string.rst.txt
18.51 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
subdir_depends.rst.txt
306 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
subdirs.rst.txt
1.05 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
target_compile_definitions.rst.txt
2.15 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
target_compile_features.rst.txt
1.82 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
target_compile_options.rst.txt
2.13 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
target_include_directories.rst.txt
3.57 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
target_link_directories.rst.txt
2.77 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
target_link_libraries.rst.txt
16.66 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
target_link_options.rst.txt
2.14 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
target_precompile_headers.rst.txt
5.6 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
target_sources.rst.txt
7.99 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
try_compile.rst.txt
13.25 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
try_run.rst.txt
5.71 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
unset.rst.txt
1.54 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
use_mangled_mesa.rst.txt
475 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
utility_source.rst.txt
977 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
variable_requires.rst.txt
784 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
variable_watch.rst.txt
1.76 KB
04/04/2023 07:03:28 PM
rw-r--r--
📄
while.rst.txt
891 bytes
04/04/2023 07:03:28 PM
rw-r--r--
📄
write_file.rst.txt
705 bytes
04/04/2023 07:03:28 PM
rw-r--r--
Editing: macro.rst.txt
Close
macro ----- Start recording a macro for later invocation as a command .. code-block:: cmake macro(<name> [<arg1> ...]) <commands> endmacro() Defines a macro named ``<name>`` that takes arguments named ``<arg1>``, ... Commands listed after macro, but before the matching :command:`endmacro()`, are not executed until the macro is invoked. Per legacy, the :command:`endmacro` command admits an optional ``<name>`` argument. If used, it must be a verbatim repeat of the argument of the opening ``macro`` command. See the :command:`cmake_policy()` command documentation for the behavior of policies inside macros. See the :ref:`Macro vs Function` section below for differences between CMake macros and :command:`functions <function>`. Invocation ^^^^^^^^^^ The macro invocation is case-insensitive. A macro defined as .. code-block:: cmake macro(foo) <commands> endmacro() can be invoked through any of .. code-block:: cmake foo() Foo() FOO() cmake_language(CALL foo) and so on. However, it is strongly recommended to stay with the case chosen in the macro definition. Typically macros use all-lowercase names. .. versionadded:: 3.18 The :command:`cmake_language(CALL ...)` command can also be used to invoke the macro. Arguments ^^^^^^^^^ When a macro is invoked, the commands recorded in the macro are first modified by replacing formal parameters (``${arg1}``, ...) with the arguments passed, and then invoked as normal commands. In addition to referencing the formal parameters you can reference the values ``${ARGC}`` which will be set to the number of arguments passed into the function as well as ``${ARGV0}``, ``${ARGV1}``, ``${ARGV2}``, ... which will have the actual values of the arguments passed in. This facilitates creating macros with optional arguments. Furthermore, ``${ARGV}`` holds the list of all arguments given to the macro and ``${ARGN}`` holds the list of arguments past the last expected argument. Referencing to ``${ARGV#}`` arguments beyond ``${ARGC}`` have undefined behavior. Checking that ``${ARGC}`` is greater than ``#`` is the only way to ensure that ``${ARGV#}`` was passed to the function as an extra argument. .. _`Macro vs Function`: Macro vs Function ^^^^^^^^^^^^^^^^^ The ``macro`` command is very similar to the :command:`function` command. Nonetheless, there are a few important differences. In a function, ``ARGN``, ``ARGC``, ``ARGV`` and ``ARGV0``, ``ARGV1``, ... are true variables in the usual CMake sense. In a macro, they are not, they are string replacements much like the C preprocessor would do with a macro. This has a number of consequences, as explained in the :ref:`Argument Caveats` section below. Another difference between macros and functions is the control flow. A function is executed by transferring control from the calling statement to the function body. A macro is executed as if the macro body were pasted in place of the calling statement. This has the consequence that a :command:`return()` in a macro body does not just terminate execution of the macro; rather, control is returned from the scope of the macro call. To avoid confusion, it is recommended to avoid :command:`return()` in macros altogether. Unlike a function, the :variable:`CMAKE_CURRENT_FUNCTION`, :variable:`CMAKE_CURRENT_FUNCTION_LIST_DIR`, :variable:`CMAKE_CURRENT_FUNCTION_LIST_FILE`, :variable:`CMAKE_CURRENT_FUNCTION_LIST_LINE` variables are not set for a macro. .. _`Argument Caveats`: Argument Caveats ^^^^^^^^^^^^^^^^ Since ``ARGN``, ``ARGC``, ``ARGV``, ``ARGV0`` etc. are not variables, you will NOT be able to use commands like .. code-block:: cmake if(ARGV1) # ARGV1 is not a variable if(DEFINED ARGV2) # ARGV2 is not a variable if(ARGC GREATER 2) # ARGC is not a variable foreach(loop_var IN LISTS ARGN) # ARGN is not a variable In the first case, you can use ``if(${ARGV1})``. In the second and third case, the proper way to check if an optional variable was passed to the macro is to use ``if(${ARGC} GREATER 2)``. In the last case, you can use ``foreach(loop_var ${ARGN})`` but this will skip empty arguments. If you need to include them, you can use .. code-block:: cmake set(list_var "${ARGN}") foreach(loop_var IN LISTS list_var) Note that if you have a variable with the same name in the scope from which the macro is called, using unreferenced names will use the existing variable instead of the arguments. For example: .. code-block:: cmake macro(bar) foreach(arg IN LISTS ARGN) <commands> endforeach() endmacro() function(foo) bar(x y z) endfunction() foo(a b c) Will loop over ``a;b;c`` and not over ``x;y;z`` as one might have expected. If you want true CMake variables and/or better CMake scope control you should look at the function command. See Also ^^^^^^^^ * :command:`cmake_parse_arguments` * :command:`endmacro`