| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Shared library stubs can be used for linking, but not at runtime.
Their role is similar to import libraries on Windows, so represent
their location with the `IMPORTED_IMPLIB` target property.
Fixes: #24940
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
When evaluating the `$<CONFIG>` genex on an imported target has the
`IMPORTED_CONFIGURATIONS` property set, the current project has a config
that does not match any of those, and no explicit configuration mappings
are defined, fall back to the same configuration as `IMPORTED_LOCATION`.
Fixes: #24222
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit ca6ba3fee5 (Genex: Add a SHELL_PATH expression, 2015-09-24,
v3.4.0-rc1~37^2) and commit 21da25d2a8 (Tests: Generalize
GeneratorExpression MSYS path conversion workaround, 2019-03-11,
v3.15.0-rc1~407^2~1) we use a prefix string to prevent the MSYS 1.0
shell from converting absolute paths of the form `/c/...` to
windows-style paths. In the newer `mingw.osdn.io` distribution of MSYS
1.0, the `bash` shell now also converts paths that appear after `:`.
We have no way to add a prefix string in that context, so perform the
test's check of the `SHELL_PATH` genex value at generate time instead.
|
|
|
|
| |
Fixes: #20951
|
|
|
|
|
| |
Instead of having to do $<OR:$<CONFIG:Release>,$<CONFIG:MinSizeRel>>
you can do $<CONFIG:Release,MinSizeRel>
|
|
|
|
|
|
| |
Generator expressions may contain or produce backslashes.
Fixes: #19553
|
| |
|
|
|
|
|
| |
The geneator expression can now be used with static, shared, and
module libraries and executables.
|
|
|
|
|
|
|
| |
Extend the genex added by commit ca6ba3fee5 (Genex: Add a SHELL_PATH
expression, 2015-09-24, v3.4.0-rc1~37^2) to accept a `;`-list of paths,
convert them all, and generate a list separated by the native shell
`PATH``` separator.
|
|
|
|
|
| |
Use MSYS2's `MSYS2_ARG_CONV_EXCL` environment variable to prevent
path conversion where possible.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`. Use `clang-format` version 6.0.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.
|
|
|
|
| |
Implements #17679
|
| |
|
|
|
|
|
|
|
| |
Add the support of per-source property COMPILE_OPTIONS,
including generator expressions support.
Related: #17507
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The set of compile flags used for a target's C and C++ sources is based
on the linker language. By default this is always the C++ flags if any
C++ sources appear in the target, and otherwise the C flags. Therefore
we can define the `COMPILE_LANGUAGE` generator expression in
`COMPILE_DEFINITIONS` to match the selected language.
This is not exactly the same as for other generators, but is the best VS
and Xcode can do. It is also sufficient for many use cases since the
set of definitions for C and C++ is frequently similar but may be
distinct from those for other languages like CUDA.
Issue: #17435
|
|
|
|
| |
Fixes: #17542
|
|
|
|
|
|
| |
This allows users to specify different genex-based compile definitions for each file in a target.
Fixes: #17508
|
|
|
|
|
|
| |
This already worked in other generators. Also add a test case.
Fixes: #17314
|
|
|
|
|
|
|
|
|
| |
Previously the `TARGET_OBJECTS` generator expression was limited
only to use in a buildsystem context so that Xcode's placeholders
in object file paths can be evaluated. Lift this restriction so
that the expression can at least be used in most settings.
Co-Author: Brad King <brad.king@kitware.com>
|
|\
| |
| |
| |
| | |
895f7f16 Genex: Add `IF` generator expression
|
| |
| |
| |
| |
| |
| |
| |
| | |
This allows a single condition to be used to choose between two
alternatives. Without this the condition must be duplicated with
one surrounded by `NOT`.
Closes: #15585
|
| |
| |
| |
| | |
Add missing pieces for RelWithDebInfo and MinSizeRel.
|
| |
| |
| |
| |
| | |
Add a space to the imported include directories used for the test.
This works around funny quoted-`;` interpretation by Visual Studio.
|
|/
|
|
| |
Do not duplicate the list of include directories 4 times.
|
|
|
|
|
|
| |
This allows users to specify different genex-based compile flags for
each file in a target, e.g. compiling just a single file with `Od/Ox` in
release builds on Visual Studio.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Run the `Utilities/Scripts/clang-format.bash` script to update
all our C++ code to a new style defined by `.clang-format`.
Use `clang-format` version 3.8.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.
|
|
|
|
|
|
|
|
|
| |
Some commands on Windows do not understand forward slash paths and
require backslashes. In order to help projects generate shell
invocations of such commands, provide a generator expression to convert
paths to the shell-preferred path format for the current generator.
This will allow custom commands to generate paths the same way CMake
does for compiler command invocations.
|
|
|
|
|
|
| |
Use a function instead of a macro so we do not need an extra layer of
backslashes. Use a bracket argument to avoid another layer of extra
backslashes.
|
|
|
|
|
|
|
|
|
|
| |
The output of this expression may contain macros for IDEs to replace
such as $(Configuration), $(CURRENT_ARCH) etc. To avoid generating
content which is not usable in other contexts, report an error if
there is an attempt to use it in other contexts.
This commit may be reverted in the future if a solution to the
above difference is implemented.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove use of UseObjectLibraries from Makefile and Ninja generators. It
is not needed now because those generators use GetExternalObjects
which already contains the objects from object libraries.
The VS10 generator calls both the UseObjectLibraries and the GetExternalObjects
methods. Ensure that duplicates are not created by skipping objects
from object libraries in handling of GetExternalObjects.
Similarly, fix VS6, VS7 and Xcode object handling by skipping
external objects from OBJECT_LIBRARY usage as appropriate.
The error message in the BadSourceExpression1 test is now reported
by the generator expression evaluator, so it has different text.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is consistent with other similar expressions such as PLATFORM_ID,
and makes the CONFIGURATION expression obsolete.
Fix an off-by-one error in
GeneratorExpressionContent::EvaluateParameters exposed by a unit test.
Remove the test for 'bad' nullary use of $<CONFIG>.
Add a unit test to verify that $<CONFIG> and $<CONFIGURATION> have
the same value.
|
|
|
|
|
|
|
|
| |
As C++11, python, D and java do.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3472.pdf
Add test for uppercase hex literals.
|
|
|
|
| |
Support decimal, hex, octal and binary literals.
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| | |
6a47c37 add_test: Mention generator expressions in old-style add_test docs
d331292 cmTestGenerator: Evaluate generator expressions in test properties
6fe5c4a cmTestGenerator: Separate test properties for each configuration
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is useful for cases like:
add_test(NAME mytest COMMAND mydriver $<TARGET_FILE:myexe>)
set_tests_properties(mytest PROPERTIES
REQUIRED_FILES "$<TARGET_FILE:myexe>"
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>"
)
In this example we require the actual test executable to exist to
run the test in addition to the test driver at argv[0]. Also the
$<CONFIGURATION> expression improves over \${CTEST_CONFIGURATION_TYPE}
because the latter is not normalized for case-sensitive filesystems.
|
|/ |
|
|
|
|
|
|
|
| |
The extendResult method expects a non-empty parameters vector, as
assured by the normal case. Avoid calling the method when the parser
finds an incomplete generator expression, but has already entered
the state of expecting to find parameters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* The ALIAS name must match a validity regex.
* Executables and libraries may be aliased.
* An ALIAS acts immutable. It can not be used as the lhs
of target_link_libraries or other commands.
* An ALIAS can be used with add_custom_command, add_custom_target,
and add_test in the same way regular targets can.
* The target of an ALIAS can be retrieved with the ALIASED_TARGET
target property.
* An ALIAS does not appear in the generated buildsystem. It
is kept separate from cmMakefile::Targets for that reason.
* A target may have multiple aliases.
* An ALIAS target may not itself have an alias.
* An IMPORTED target may not have an alias.
* An ALIAS may not be exported or imported.
|
|
|
|
|
|
|
|
| |
The old code checked only that there was a LOCATION for the
specified config, but did not check whether the config actually
mapped.
Task-number: 14292
|
|
|
|
|
|
|
| |
Avoid command lines beyond NMake limits.
http://open.cdash.org/testDetails.php?test=196577461&build=2949683
expanded command line '...' too long
|
| |
|
|
|
|
|
| |
As the comma is the parameter separator, it needs to be re-added
when evaluating to reconstruct arbitrary content.
|