On Windows with MSVC-like host compilers we must honor the standard
libraries chosen by the `Platform/Windows-MSVC` module. Otherwise C
code linked into the CUDA binary that expects to have these libraries
available may not link.
Add `.clang-format` configuration files for Cuda test directories that
use `Standard: Cpp11`. Otherwise clang-format splits the triple angle
brackets used for CUDA kernels.
Attempting to use AndroidTestUtilities to simply install some local
files on device can result in the following error:
Neither ExternalData_URL_TEMPLATES nor ExternalData_OBJECT_STORES is set
We no longer require these ExternalData-specific variables to be set if
no such remote data files are requested.
Fixes: #16529
This was broken in commit 98e6d1e5e426c491e04faa746c11746002e6a69d
(Tests/Module/WCDH: make it work with only C features defined) when all C tests
were made accessible even if no C++ features are available, but the header was
only created if C++ features are available. Fix it by creating the header
unconditionally before any checks on the available features.
1679fecb CompileFeatures Test: make sure the target "CompileFeatures" is always defined
98e6d1e5 Tests/Module/WCDH: make it work with only C features defined
c8703e9d WCDH: optionally omit error code for unknown compilers or compiler versions
0de9c398 WCDH: add macro to write simple replacement defines
071f8e78 Apple: Add support for static frameworks
d525754e Xcode: Refactor RunCMake.Framework test to prepare for static frameworks
45405f00 Xcode: Ignore Xcode project warning until issue is fixed
50e1c105 Makefile: For static libraries remove only the "real" lib before creating
8643ca75 Makefile: Re-order list of files to clean
Everything in there guards against unsupported compilers already, so no need to
skip the whole file if no features are defined. This in turn allows to have a
simpler fallback in case there is no C++ auto_type feature available.
This allows one to generate a header that will basically always work. In case
an unknown compiler or compiler version is encountered it simply falls back to
the unsupported case.
Fix tests to account for commit 243aed52 (cmTimestamp: Support
SOURCE_DATE_EPOCH to override current time, 2017-01-25).
In openSUSE we are running the test-suite as part of the build and that
failed in these two places when building everything with
`SOURCE_DATE_EPOCH` set.
560574b0 FeatureSummary: Update release notes
3cfde818 FeatureSummary: Refactor to use global properties for package types
f0165eb6 FeatureSummary: Allow lists of dependencies in ADD_FEATURE_INFO
9da7bf08 FeatureSummary: Add QUIET_ON_EMPTY option to feature_summary
4cf4aceb FeatureSummary: Add unit tests
614a97a5 FeatureSummary: Do not force OPTIONAL type in SET_PACKAGE_PROPERTIES
65a0bfd8 FeatureSummary: Add deprecation warnings to deprecated commands
4da3cae9 FeatureSummary: Clean printed output
c3a22518 Tests: Extend GeneratorExpression to work with more configurations
d4911724 Tests: Teach GeneratorExpression to cover spaces in include dirs
1a2a9b0d Tests: Simplify GeneratorExpression imported include directory check
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
These new global properties were added:
* FeatureSummary_PKG_TYPES: Package types accepted by FeatureSummary
(default REQUIRED RECOMMENDED OPTIONAL RUNTIME).
* FeatureSummary_REQUIRED_PKG_TYPES: Package types that will cause
FeatureSummary to abort when called with
FATAL_ON_MISSING_REQUIRED_PACKAGES and a package in these categories
is missing (default REQUIRED).
* FeatureSummary_DEFAULT_PKG_TYPE: Default package type assigned when
not explicitly assigned by the user (default OPTIONAL).
This allows to add and remove new package types that can be printed
selectively using the "WHAT" argument.
e116f2a5 ctest_memcheck: Fix sanitizers when MemoryCheckSanitizerOptions is empty
522e1588 Tests: Use CTEST_MEMORYCHECK_SANITIZER_OPTIONS where appropriate
Create a `<LANG>_CPPLINT` target property (initialized by a
`CMAKE_<LANG>_CPPLINT` variable) to specify a `cpplint` style checker
command line to be run along with the compiler.
When building with multiple SDKs within one project Xcode requires
the usage of ${EFFECTIVE_PLATFORM_NAME} to put temporary and build
outout into separate directories. For example an iOS device and
simulator build use two different SDKs (iphoneos and iphonesimulator).
In the past cmake tries to detect embedded toolchains that could
possibly use simulators and emitted EFFECTIVE_PLATFORM_NAME (EPN)
at the proper locations. In #16253 Mark noticed that if he
uses macosx and iphoneos in combination the necessary EPN is not
emitted. This is because CMake by default assumes macosx SDK which
does not trigger EPN emission.
The fist naive approach - enabling EPN unconditionally revealed that
then the EPN leaks into generator expressions like $<TARGET_FILE:xxx>
which might be a regression and thus is unacceptable.
The next approach was to add an CMake property to enable EPN emission
unconditionally. This solved the reported problem.
But the EPN leakage also happened for the embedded toolchains already
without anyone noticing. So the control property was turned into a
tri-state one:
* No definition: EPN is activated for embedded toolchains like before
* ON: EPN is always emitted
* OFF: EPN is never emitted
That approach gives the user the chance to disable EPN for embedded
toolchains and restores generator expression functionality for those.
Closes: #16253