summaryrefslogtreecommitdiffstats
path: root/Source/Checks/cm_cxx_features.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Source: Link libatomic when needed on any Linux architectureBrad King2023-08-241-1/+1
| | | | | | | | Extend commit 78bbd58545 (Source: Link libatomic when needed on Linux 32-bit ARM, 2023-07-27, v3.27.2~10^2) to check for libatomic on more architectures. Fixes: #25204
* Source: Link libatomic when needed on Linux 32-bit ARMBrad King2023-07-271-0/+11
| | | | Fixes: #25114
* cm_cxx_features: Ignore MSVC command-line warnings (Dxxxx)Roffild2023-03-021-0/+2
| | | | | | | The Dxxxx warning range is for command-line warnings [1]. These are incidental and should not affect the result of the feature check. [1] https://learn.microsoft.com/en-us/cpp/error-messages/tool-errors/command-line-errors-d8000-through-d9999
* Merge topic 'filesystem-path-c++03-abi'Brad King2022-10-211-3/+1
|\ | | | | | | | | | | | | | | ee9805ccd1 cm/filesystem: Fix crash with pre-C++11 std::string GNU ABI in C++17 Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7813
| * cm/filesystem: Fix crash with pre-C++11 std::string GNU ABI in C++17Brad King2022-10-201-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `remove_filename` and `replace_extension` methods compute an offset between the whole path in a `std::string` and a part of a path in a `std::string_view`. This is done by subtracting their `.data()` pointers. However, C++17 adds a non-const `.data()` through which modification of the string is allowed. This means the copy-on-write implementation used by the pre-C++11 std::string GNU ABI must reallocate if the string has been copied. Our subtraction then computes an offset between two different allocations, which is undefined behavior. The workaround in commit b3ca4f9ad1 (cm/filesystem: Work around crash when compiled for CYGWIN/MSYS runtime, 2021-04-22, v3.21.0-rc1~271^2~2) avoided the problem by calling the non-const `.data()` to reallocate before constructing the `string_view`. Instead, explicitly call the const `.data()` method on the string, which does not reallocate. Fixes: #22090, #23328
* | cm_cxx_features: filter out warnings from Xcode 14Gregor Jasny2022-06-211-1/+1
|/ | | | | | ``` xcodebuild[13070:54426] [MT] DVTSDK: Warning: SDK path collision for path ```
* MSYS: Add support for running under MSYS runtime environmentOrgad Shaneh2021-04-261-1/+3
| | | | Detect MSYS as CYGWIN, with the required adaptations.
* Restore support for cross-compiling CMake itselfMarc Chevrier2021-01-181-1/+7
| | | | | | | In commit eb583b0a66 (cmake_path command: path management, 2020-07-23, v3.19.0-rc1~216^2~1) we added a `try_run`. In cross-compilation mode, C++ features tests must avoid running tests if there is no emulator defined.
* cm_cxx_features: Filter out MSBXXXX warningsAnonymous Maarten2020-10-081-0/+2
| | | | | | | When building CMake in `%TMP%` on Windows, MSBuild issues warnings. Filter those out to avoid breaking C++ feature checks. Fixes: #21270
* cmake_path command: path managementMarc Chevrier2020-09-061-7/+22
| | | | Fixes: #19568, #20922
* STL Support: Add cm::filesystem::path in <cm/filesystem>Marc Chevrier2020-07-091-0/+5
|
* Merge topic 'cm_cxx_features-icpc-10121'Brad King2020-05-011-0/+2
|\ | | | | | | | | | | | | 231637eae2 cm_cxx_features: Filter out 'icpc: command line warning #10121' Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4698
| * cm_cxx_features: Filter out 'icpc: command line warning #10121'Jennifer Kathleen Green2020-04-301-0/+2
| | | | | | | | | | | | | | | | | | | | This warning appears for: overriding '-xCORE-AVX2' with '-march=haswell'` in some Cray environments. Fixes: #20664
* | Merge topic 'cm_cxx_features-libhugetlbfs'Brad King2020-04-301-0/+2
|\ \ | |/ | | | | | | | | | | 4ab0d37b41 cm_cxx_features: Filter out libhugetlbfs warnings Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4681
| * cm_cxx_features: Filter out libhugetlbfs warningsJennifer Green2020-04-291-0/+2
| | | | | | | | | | | | | | | | | | | | Without this, CMake fails to build on Cray systems with a craype-hugepages modulefile loaded on the front-end due to libhugetlbfs warnings breaking the CXX Feature tests. Filter out the warnings so the bootstrap can proceed to successfully install CMake on Cray Linux systems. Fixes: #20645
* | cm_cxx_features: Remove CUDA installation warning filteringRaul Tambre2020-04-011-2/+0
|/ | | | | | This has been fixed in upstream LLVM. No released version contains this issue. https://github.com/llvm/llvm-project/commit/d32170dbd5b0d54436537b6b75beaf44324e0c28 https://github.com/llvm/llvm-project/commit/eb2ba2ea953b5ea73cdbb598f77470bde1c6a011
* cm_cxx_features: Filter out CUDA installation warningsRaul Tambre2020-03-091-0/+2
| | | | | | | Clang always outputs these if it doesn't recognize the installed CUDA version. They don't affect compiling C++. Fixes #20434.
* C++ feature checks: Ignore linker warningsMarcus Calhoun-Lopez2019-11-251-0/+2
|
* Refactor: Use added message types in various modulesAlex Turbov2019-11-021-3/+7
| | | | Co-Authored-By: Craig Scott <craig.scott@crascit.com>
* C++ feature checks: Match warnings more strictlyBrad King2019-03-071-1/+1
| | | | | | | | Require the word "warning" to appear at the start of a line, after whitespace, or after a `:`. This is the same that CTest launchers use to match warnings. It avoids matching "warning" inside file paths. Fixes: #19019
* C++ feature checks: Filter out libstdc++ sprintf warningsBrad King2018-11-201-0/+2
| | | | | | | | | | | On OpenBSD linking to `libstdc++` with GCC 6.4 always warns: warning: sprintf() is often misused, please use snprintf() These do not affect the availability of C++ features we're checking, so filter them out. Fixes: #18602
* C++ feature checks: Ignore Xcode warningsGregor Jasny2018-06-191-0/+2
|
* C++ feature checks: Filter out warnings caused by local configurationBrad King2018-04-301-0/+3
| | | | | | | | | | | | In some environments the linker produces warnings like warning: directory not found for option warning: object file compiled with -mlong-branch ... These do not affect the availability of C++ features we're checking, so filter them out. Fixes: #17850, #17947
* Simplify CM_FALLTHROUGH implementationBrad King2017-11-301-7/+0
| | | | | | | Use the macro now provided by KWSys instead of using `try_compile` checks. It will no longer consider the `__attribute__((fallthrough))` variant, but compilers that don't have one of the modern attributes shouldn't warn about not using one anyway.
* Use C++11 '= delete' instead of CM_EQ_DELETEBrad King2017-09-281-1/+0
| | | | | We now require C++11 support including `= delete`. Drop use of the old compatibility macro.
* Remove checks for auto_ptr that we no longer needBrad King2017-09-271-1/+0
| | | | We no longer use `auto_ptr` at all, so drop the checks for it.
* C++ feature checks: Filter out warnings caused by user flagsBrad King2017-09-191-0/+2
| | | | | | Filter out `-Winvalid-command-line-argument` warnings from Clang (that can be caused by user-specified flags) so that they do not break our checks for C++ feature availability.
* C++ feature checks: Prepare for multiple check output filtersBrad King2017-09-191-1/+2
|
* Drop now-unused definition of CM_OVERRIDEBrad King2017-09-151-1/+0
|
* Use C++11 nullptrDaniel Pfeifer2017-08-241-1/+0
|
* Use C++11 unordered containersDaniel Pfeifer2017-08-221-2/+0
|
* C++ feature checks: Improve exclusion of "0 Warning(s)"Brad King2017-06-081-1/+3
| | | | | | | | Simply matching "0 Warning" may match "10 Warning(s)". Instead remove the entire ` 0 Warning(s)` content from the MSBuild output before searching it for warnings. Issue: #16942
* C++ feature checks: Do not match "0 Warning(s)" as a warningWalter Gray2017-06-061-1/+1
| | | | | | | | | The change in commit v3.9.0-rc1~6^2~1 (C++ feature checks: check output for '[Ww]arning', 2017-06-03) accidentally matches `0 Warning(s)` in the output and always thinks a warning exists, thus failing all checks in Visual Studio builds. Fixes: #16942
* Provide and use CM_FALLTHROUGHDaniel Pfeifer2017-06-031-0/+7
|
* C++ feature checks: check output for '[Ww]arning'Daniel Pfeifer2017-06-031-1/+1
|
* Check C++ features even without CMAKE_CXX_STANDARD for CMake itselfBrad King2017-05-191-13/+16
| | | | | | When using `CMake_NO_CXX_STANDARD` a user may still provide `-std=c++11` or similar flags in `CMAKE_CXX_FLAGS`, so we should still check for the available C++ features.
* cmConfigure: provide macros CM_EQ_DELETE and CM_DISABLE_COPYDaniel Pfeifer2017-04-221-0/+1
|
* Add a feature check to test availability of auto_ptrDaniel Pfeifer2016-09-261-0/+1
|
* Check for availability of unique_ptr and make_unique when building CMakeBrad King2016-09-161-0/+5
| | | | Some code paths may find these useful if available.
* cxx features: add check for nullptrDaniel Pfeifer2016-06-271-0/+1
|
* cxx features: add check for overrideDaniel Pfeifer2016-06-271-0/+1
|
* Use <unordered_set> where availableDaniel Pfeifer2016-06-271-0/+1
|
* Make C++ feature checks extensibleDaniel Pfeifer2016-06-271-0/+36
Turn the feature check for cxx11_unordered_map into a function such that we can use it for other features as well. Drop the 11 suffix, as we may want to check features from other standards.