summaryrefslogtreecommitdiffstats
path: root/Source/Checks
Commit message (Collapse)AuthorAgeFilesLines
* 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-062-8/+40
| | | | Fixes: #19568, #20922
* STL Support: Add cm::filesystem::path in <cm/filesystem>Marc Chevrier2020-07-092-0/+15
|
* 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.
* Merge topic 'cmext-memory'Brad King2019-12-043-2/+12
|\ | | | | | | | | | | | | fc3b4caa2e Memory management: cast functions for managed pointers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4064
| * Memory management: cast functions for managed pointersMarc Chevrier2019-11-273-2/+12
| |
* | C++ feature checks: Ignore linker warningsMarcus Calhoun-Lopez2019-11-251-0/+2
|/
* Refactor: Use added message types in various modulesAlex Turbov2019-11-026-15/+47
| | | | Co-Authored-By: Craig Scott <craig.scott@crascit.com>
* Extend C++17 feature checks to require std::optionalBrad King2019-08-231-1/+4
|
* Merge topic 'cxx-checks-warning-match'Brad King2019-03-081-1/+1
|\ | | | | | | | | | | | | 4ca5a815f2 C++ feature checks: Match warnings more strictly Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3075
| * 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
| * Extend C++17/C++14 feature checks to cover more standard library APIsMathieu Garaud2019-02-272-2/+18
| | | | | | | | | | | | | | Make sure `std::cbegin`, `std::cend`, and `std::size` work in C++17 or C++14 mode before choosing the corresponding standard level for compiling CMake itself. This helps in cases that the compiler is using a standard library too old to support the full standard level chosen.
* | Extend C++17/C++14 feature checks to cover more standard library APIsMathieu Garaud2019-02-272-2/+18
| | | | | | | | | | | | | | Make sure `std::cbegin`, `std::cend`, and `std::size` work in C++17 or C++14 mode before choosing the corresponding standard level for compiling CMake itself. This helps in cases that the compiler is using a standard library too old to support the full standard level chosen.
* | Avoid compiling CMake itself as C++17 with Clang's MSVC ABIZsolt Parragi2019-02-111-0/+13
|/ | | | | | GUID functions in ATL cause compilation errors with this compiler. Add the offending case to our check for C++17 support so that it is not used by default when it does not work.
* 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
* Extend C++17/C++14 feature checks to require unique_ptrBrad King2018-08-014-4/+9
| | | | | | | | When testing compiler modes higher than C++11 for constructs we need, include a check for using `unique_ptr` in that mode. The PGI 18.4 compiler in some environments supports `unique_ptr` in C++11 mode but is broken for C++14 and C++17. Check that `unique_ptr` works in these modes before using one.
* C++ feature checks: Ignore Xcode warningsGregor Jasny2018-06-191-0/+2
|
* Fix misc. typosluz.paz2018-06-041-1/+1
| | | | Found via `codespell` and `grep`
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-4/+4
| | | | | | | | | | | | 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.
* Merge topic 'cxx-checks-tolerate-more-warnings'Brad King2018-04-301-0/+3
|\ | | | | | | | | | | | | 2254b72061 C++ feature checks: Filter out warnings caused by local configuration Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2019
| * 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
* | ccmake: Check for curses more robustly before enablingBrad King2018-03-213-0/+81
|/ | | | | | | | | | Compute a default for `BUILD_CursesDialog` by building a small test project that uses curses. Disable `ccmake` by default if it fails, and do not search for Curses as part of the main build. This avoids creating FindCurses cache entries when we are not considering ccmake. If `BUILD_CursesDialog` is enabled (e.g. by the user) then warn if curses cannot be found.
* Compile CMake as C++17 if supported by the compilerBrad King2017-12-222-0/+43
| | | | | | | | | | Add a check that a simple source file can compile as C++17 that uses some of the features we need. Do this only when hosted by CMake 3.8 or above because those versions are aware of C++17. Check for unordered_map as we do in bootstrap since commit 375eca7881 (bootstrap: Check support for unordered_map from compiler mode, 2017-11-30). Also maintain the existing C++14 cstdio check.
* Generalize check for C++14 constructsBrad King2017-12-223-33/+36
| | | | | | The check for C++14 and cstdio is a special case of the more general problem of checking that the compiler's C++14 mode supports everything we need. Rename the checks accordingly.
* Simplify CM_FALLTHROUGH implementationBrad King2017-11-304-40/+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-282-15/+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-272-19/+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-152-25/+0
|
* Use C++11 nullptrDaniel Pfeifer2017-08-242-15/+0
|
* Merge topic 'cxx11-unordered'Daniel Pfeifer2017-08-233-16/+0
|\ | | | | | | | | | | | | cbcfb79f Use C++11 unordered containers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1174
| * Use C++11 unordered containersDaniel Pfeifer2017-08-223-16/+0
| |
* | Fix CM_FALLTHROUGH with -Wunused-parameterBrad King2017-08-223-3/+3
|/ | | | | Fix the test code that we `try_compile` to avoid unused parameter warnings that cause the check to fail.
* 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-034-0/+40
|
* 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-222-0/+15
|
* Add a feature check to test availability of auto_ptrDaniel Pfeifer2016-09-262-0/+19
|
* Check for availability of unique_ptr and make_unique when building CMakeBrad King2016-09-163-0/+17
| | | | Some code paths may find these useful if available.
* CM_OVERRIDE: fix feature test for clangDaniel Pfeifer2016-06-291-0/+2
| | | | | | | | Clang refuses to default initialize an instance of a class that does not have a default constructor. Fix the check by adding default constructors. Don't use brace initialization like it is proposed in the error message. We want to test the override support independent from the support for brace initialization.
* cxx features: add check for nullptrDaniel Pfeifer2016-06-272-0/+15
|