mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-04 04:40:56 -06:00
Honor CMAKE_<LANG>_FLAGS[_<CONFIG>]_INIT set in toolchain files
Document these variables.
Change our convention for setting these variables from:
set(CMAKE_C_FLAGS_INIT "...")
to
string(APPEND CMAKE_C_FLAGS_INIT " ...")
so that any value previously set by a toolchain file will be used.
Automate the conversion with:
sed -i 's/set *(\(CMAKE_\(C\|CXX\|Fortran\|RC\|ASM\|${[^}]\+}\)_FLAGS\(_[^_]\+\)\?_INIT \+"\)/string(APPEND \1 /' \
Modules/Compiler/*.cmake Modules/Platform/*.cmake
and follow up with some manual fixes (e.g. to cases that already
meant to append). Also revert the automated changes to contexts
that are not protected from running multiple times.
This commit is contained in:
10
Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
Normal file
10
Help/variable/CMAKE_LANG_FLAGS_DEBUG_INIT.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
CMAKE_<LANG>_FLAGS_DEBUG_INIT
|
||||
-----------------------------
|
||||
|
||||
Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS_DEBUG` cache
|
||||
entry the first time a build tree is configured for language ``<LANG>``.
|
||||
This variable is meant to be set by a :variable:`toolchain file
|
||||
<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
|
||||
the value based on the environment and target platform.
|
||||
|
||||
See also :variable:`CMAKE_<LANG>_FLAGS_INIT`.
|
||||
15
Help/variable/CMAKE_LANG_FLAGS_INIT.rst
Normal file
15
Help/variable/CMAKE_LANG_FLAGS_INIT.rst
Normal file
@@ -0,0 +1,15 @@
|
||||
CMAKE_<LANG>_FLAGS_INIT
|
||||
-----------------------
|
||||
|
||||
Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS` cache entry
|
||||
the first time a build tree is configured for language ``<LANG>``.
|
||||
This variable is meant to be set by a :variable:`toolchain file
|
||||
<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
|
||||
the value based on the environment and target platform.
|
||||
|
||||
See also the configuration-specific variables:
|
||||
|
||||
* :variable:`CMAKE_<LANG>_FLAGS_DEBUG_INIT`
|
||||
* :variable:`CMAKE_<LANG>_FLAGS_RELEASE_INIT`
|
||||
* :variable:`CMAKE_<LANG>_FLAGS_MINSIZEREL_INIT`
|
||||
* :variable:`CMAKE_<LANG>_FLAGS_RELWITHDEBINFO_INIT`
|
||||
10
Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
Normal file
10
Help/variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
CMAKE_<LANG>_FLAGS_MINSIZEREL_INIT
|
||||
----------------------------------
|
||||
|
||||
Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS_MINSIZEREL`
|
||||
cache entry the first time a build tree is configured for language ``<LANG>``.
|
||||
This variable is meant to be set by a :variable:`toolchain file
|
||||
<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
|
||||
the value based on the environment and target platform.
|
||||
|
||||
See also :variable:`CMAKE_<LANG>_FLAGS_INIT`.
|
||||
10
Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
Normal file
10
Help/variable/CMAKE_LANG_FLAGS_RELEASE_INIT.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
CMAKE_<LANG>_FLAGS_RELEASE_INIT
|
||||
-------------------------------
|
||||
|
||||
Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS_RELEASE`
|
||||
cache entry the first time a build tree is configured for language ``<LANG>``.
|
||||
This variable is meant to be set by a :variable:`toolchain file
|
||||
<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
|
||||
the value based on the environment and target platform.
|
||||
|
||||
See also :variable:`CMAKE_<LANG>_FLAGS_INIT`.
|
||||
10
Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
Normal file
10
Help/variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
CMAKE_<LANG>_FLAGS_RELWITHDEBINFO_INIT
|
||||
--------------------------------------
|
||||
|
||||
Value used to initialize the :variable:`CMAKE_<LANG>_FLAGS_RELWITHDEBINFO`
|
||||
cache entry the first time a build tree is configured for language ``<LANG>``.
|
||||
This variable is meant to be set by a :variable:`toolchain file
|
||||
<CMAKE_TOOLCHAIN_FILE>`. CMake may prepend or append content to
|
||||
the value based on the environment and target platform.
|
||||
|
||||
See also :variable:`CMAKE_<LANG>_FLAGS_INIT`.
|
||||
@@ -14,8 +14,10 @@ variables that must be set before CMake builds its first test project
|
||||
to check that the compiler for a language works. It should not be
|
||||
used to load a file in cases that a normal :command:`include` will work. Use
|
||||
it only as a last resort for behavior that cannot be achieved any
|
||||
other way. For example, one may set ``CMAKE_C_FLAGS_INIT`` to change the
|
||||
default value used to initialize :variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>`
|
||||
other way. For example, one may set the
|
||||
:variable:`CMAKE_C_FLAGS_INIT <CMAKE_<LANG>_FLAGS_INIT>` variable
|
||||
to change the default value used to initialize the
|
||||
:variable:`CMAKE_C_FLAGS <CMAKE_<LANG>_FLAGS>` variable
|
||||
before it is cached. The override file should NOT be used to set anything
|
||||
that could be set after languages are enabled, such as variables like
|
||||
:variable:`CMAKE_RUNTIME_OUTPUT_DIRECTORY` that affect the placement of
|
||||
|
||||
Reference in New Issue
Block a user