Commit Graph

8 Commits

Author SHA1 Message Date
Brad King 264dcae5e4 Tests: Fix clang -Wstrict-prototypes warnings 2023-10-26 09:20:45 -04:00
Craig Scott dd3482f675 cmTargetPropCommandBase: Restore ArgumentFlags enum value bool logic
The values of the cmTargetPropCommandBase::ArgumentFlags enum
are combined in boolean OR and AND operations in various places.
That used to be valid, but some values were added over time which did
not preserve support for such boolean logic. Update the enum values
such that they are increasing powers of 2 to restore that capability.

Fixes: #24199
2022-11-27 20:17:32 +11:00
Brad King 5c8b776ca3 Add deprecation warnings for policies CMP0102 and below
The OLD behaviors of all policies are deprecated, but only by
documentation.  Add an explicit deprecation diagnostic for policies
introduced in CMake 3.17 and below to encourage projects to port
away from setting policies to OLD.
2022-06-14 15:05:03 -04:00
makise-homura e5d9fce03f LCC: Add dedicated support for MCST LCC compiler
Divert LCC compiler as a new one, instead of treating it as GNU.

Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been
passing checks for GNU compilers, so it has been identified as GNU.
Now, with intent of seriously upstreaming its support, it has been
added as a separate LCC compiler, and its version displays not a
supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead
of GNU 7.3.0).

This commit adds its support for detection, and also converts basically
every check like 'is this compiler GNU?' to 'is this compiler GNU or
LCC?'. The only places where this check is untouched, is where it
regards other platforms where LCC is unavailable (primarily non-Linux),
and where it REALLY differs from GNU compiler.

Note: this transition may break software that are already ported to
Elbrus, but hardly relies that LCC will be detected as GNU; still such
software is not known.
2021-10-15 05:05:19 +03:00
Brad King 8f68bcad8f Tests: Add cases verifying flag ordering rules 2021-06-07 13:39:21 -04:00
Marc Chevrier 2678e31053 target_compile_options: ensure BEFORE keyword is handled in all scopes
Fixes: #20200
2020-01-11 01:25:25 +01:00
Ben Boeckel 4babc9058a cmTargetPropCommandBase: check keywords after parsing
The following was disallowed:

   add_library(iface INTERFACE)
   target_link_libraries(iface PUBLIC)

just due to the mention of the `PUBLIC` keyword. Instead, only error if
there are actually `PUBLIC` dependencies specified (and analogously for
other restrictions).

Update tests to expect this new behavior.
2018-10-26 12:09:41 -04:00
Ben Boeckel 4201a11c2b Tests: add tests for empty-value keyword arguments in target_*
Not all of these commands accept non-compilable (i.e., IMPORTED)
targets, so those calls are currently just commented out. If they ever
do start to accept them, the tests should be enabled.
2018-10-26 12:08:05 -04:00