| add_compile_options |
| ------------------- |
| |
| Add options to the compilation of source files. |
| |
| .. code-block:: cmake |
| |
| add_compile_options(<option> ...) |
| |
| Adds options to the :prop_dir:`COMPILE_OPTIONS` directory property. |
| These options are used when compiling targets from the current |
| directory and below. |
| |
| .. note:: |
| |
| These options are not used when linking. |
| See the :command:`add_link_options` command for that. |
| |
| Arguments |
| ^^^^^^^^^ |
| |
| .. |command_name| replace:: ``add_compile_options`` |
| .. include:: GENEX_NOTE.txt |
| |
| .. include:: OPTIONS_SHELL.txt |
| |
| Example |
| ^^^^^^^ |
| |
| Since different compilers support different options, a typical use of |
| this command is in a compiler-specific conditional clause: |
| |
| .. code-block:: cmake |
| |
| if (MSVC) |
| # warning level 4 |
| add_compile_options(/W4) |
| else() |
| # additional warnings |
| add_compile_options(-Wall -Wextra -Wpedantic) |
| endif() |
| |
| To set per-language options, use the :genex:`$<COMPILE_LANGUAGE>` |
| or :genex:`$<COMPILE_LANGUAGE:languages>` generator expressions. |
| |
| See Also |
| ^^^^^^^^ |
| |
| * This command can be used to add any options. However, for |
| adding preprocessor definitions and include directories it is recommended |
| to use the more specific commands :command:`add_compile_definitions` |
| and :command:`include_directories`. |
| |
| * The command :command:`target_compile_options` adds target-specific options. |
| |
| * This command adds compile options for all languages. |
| Use the :genex:`COMPILE_LANGUAGE` generator expression to specify |
| per-language compile options. |
| |
| * The source file property :prop_sf:`COMPILE_OPTIONS` adds options to one |
| source file. |
| |
| * :command:`add_link_options` adds options for linking. |
| |
| * :variable:`CMAKE_<LANG>_FLAGS` and :variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` |
| add language-wide flags passed to all invocations of the compiler. |
| This includes invocations that drive compiling and those that drive linking. |