This changes the behaviour of the generators to use a per-language
library search path flag. This is needed for multi-language projects
with different compilers (e.g. cl + gfortran). Since the adjusted
variable has been part of the user settings, we control this based on a
policy.
Fixes: #19307
0e4493ec67 cmOutputConverter: Initialize static std::set on construction
f1bdfdf242 cmAddCustomCommand: Initialize static std::unordered_set on construction
8af4b31b8a cmTargetPropertyComputer: Initialize static std::unordered_set on construction
537ea119b9 cmTarget: Initialize static std::unordered_set on construction
c4826787d5 cmTarget: Property initialization cleanup
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3416
162555d7ec Help: Add release notes for updated generator expressions
808b818063 Genex: CompileLang and CompileLangAndId now match against a list of ids
9fd602bfd3 Genex: PlatformId now can match against a list of ids.
ec66af2026 Genex: CompilerId now can match against a list of ids.
2d4787fc4d Genex: Add more extensive support for an unbounded number of parameters
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3405
3475e2728b cmListFileCache: When missing ending ) print starting line instead of last one
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3398
Currently, the compiler does not synthesize the correct entry point for
the application and passing the subsystem flag does not work the same
way with the Swift linker language. Add a check to prevent the
application of `WIN32_EXECUTABLE` to Swift executables until they can be
properly supported. This will prevent the need for a future policy
change.
Closes: #19325
7d9e66a405 Ninja: Remove non cmNinjaBuild based WriteBuild method
ccf9507956 Ninja: Use cmNinjaBuild class for WriteBuild
df06c8d792 Ninja: Use cmNinjaBuild class for WriteBuild
409922f695 Ninja: Use cmNinjaBuild class for WriteBuild
7fd3811400 Ninja: Use cmNinjaBuild class for WriteBuild
834ec4ebfe Ninja: Use cmNinjaBuild class for WriteBuild
465d6d7f9b Ninja: Use cmNinjaBuild class for WriteBuild
4c9e99e1f9 Ninja: Use cmNinjaBuild class for WriteBuild
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3403
Previously genex support for unbounded number of parameters required
at least 1 parameter. We now support zero or more parameters, and two
or more parameters.
Avoid the use of `CMAKE_{EXE,SHARED}_LINKER_FLAGS` when linking with the
Swift language. This required hoisting the executable flags of
`CMAKE_CREATE_WIN32_EXE`, `CMAKE_CREATE_CONSOLE_EXE`, and
`CMAKE_EXE_EXPORTS_*_FLAG` earlier to avoid a second clause which checks
the language. This allows for mixed-language Swift projects to properly
link on Windows.
Fixes#19298
Avoid listing the same input more than once in custom commands generated
in `.vcxproj` and `.csproj` files. In the case of a `.vcxproj` file
additionally avoid listing the source to which the command is attached
since it is already implicitly a dependency.
This is a nice cleanup and also works around a VS 2019 16.1 regression
in MSBuild dependency checking. Starting with that version, MSBuild now
re-builds custom commands when the list of dependencies has changed.
However, its check is confused by duplicate dependencies.
De-duplicating them avoids this problem.
Co-Author: Brad King <brad.king@kitware.com>
Fixes: #19303