This code has accidentally not been compiled since commit
v3.0.0-rc1~556^2 (cmake: Split -E command implementation into separate
source file, 2013-10-03) because CMAKE_HAVE_VS_GENERATORS was local to
`cmake.cxx`.
Fixes#16195.
This code has not been compiled since commit v3.0.0-rc1~556^2 (cmake:
Split -E command implementation into separate source file, 2013-10-03).
It appears the code was never used since it was added anyway.
Files generated by `install(EXPORT)` and `export_library_dependencies()`
may be installed with packages and consumed by dependents. In order to
avoid re-building dependents only because the version of CMake changed,
drop the CMake version from the export file content.
In commit v3.6.0-rc1~66^2 (CPack/RPM different package names,
2016-05-15) we forgot the non-uppercased fallback variable name
`CPACK_RPM_<COMPONENT>_FILE_NAME`. Add it now.
The fix in commit commit v3.6.0-rc1~82^2 (Drop find_(library|file|path)
prefixes from PATH on non-Windows, 2016-05-09) aggressively dropped
search of the entries in PATH itself in addition to the prefixes derived
from it. This regresses find modules that (incorrectly) depended on the
behavior, including some of our own modules such as FindImageMagick.
Restore the search of entries in PATH itself. If we want to drop it
later we will need to do so with a policy. Fixes#16192.
Factor the implementation out of cmMakefileLibraryTargetGenerator
into a helper method in cmMakefileTargetGenerator so it can be
re-used elsewhere later.
a66004be Honor CMAKE_<LANG>_FLAGS[_<CONFIG>]_INIT set in toolchain files
cdde77e5 OpenWatcom: Partially modernize platform information modules
f9dbe22c Intel: Do not use GNU-like flags on Windows
5a3ed0d7 Intel: Do not use MSVC-like flags for Fortran
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.
Migrate from the old `<os>-<cc>.cmake` layout to the modern
`<os>-<id>-<lang>.cmake` layout. Keep settings common to C and C++ in a
`Windows-OpenWatcom.cmake` helper module with an include blocker.
For now just add both C and CXX settings in the helper module.
Directives that are legal inside the %files section of an RPM spec may
contain a variety of characters particularly when specifying %caps which
can include +, _, and space. Watch for parenthesis to determine what
forms the prefix vs. path.
Fixes#14362.
Drop our `HaveExportedObjects` check before dumping exports for an
object file. It is possible for only a subset of needed symbols to have
explicit markup, and re-exporting the marked symbols does not hurt.
This leaves no callers of `HaveExportedObjects`, but leave the
method in place anyway because it may be useful in the future.
Fixes#16161.
While at it, refactor logic to consolidate the filename extraction
and verification into a single match.
Inspired-by: Ruslan Baratov <ruslan_baratov@yahoo.com>