summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'disable-exec-info'Brad King2021-07-271-0/+3
|\ | | | | | | | | | | | | aa4c30182b Add option to explicitly avoid using execinfo for backtraces Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6386
| * Add option to explicitly avoid using execinfo for backtracesĐoàn Trần Công Danh2021-07-261-0/+3
| | | | | | | | | | | | | | | | | | backtrace(3) from libexecinfo in musl will run into crash [1]. Provide an option to disable it explicitly even if libexecinfo is present. 1: https://www.openwall.com/lists/musl/2021/07/17/1
* | Configure CMake itself with policies through CMake 3.20Brad King2021-06-301-1/+1
| |
* | Enable compiler warnings when compiling CMake with ClangAlex Richardson2021-06-221-2/+6
|/ | | | | | | | | | | | | | | | | | I noticed that I wasn't getting any compiler warnings when testing my merge requests locally. Turns out this happens because I am compiling using Clang rather than GCC, so no warning flags are added to the build. d06a9bdf3ab47231cc91b78dac77bd50de390565 enabled warnings by default for GCC > 4.2, but Clang supports them too. This has been the case since at least Clang 3.0 (I couldn't test any older versions on godbolt.org). For AppleClang, we can also assume that the warning flags are supported. According to Wikipedia Clang became the default compiler starting with Xcode 4.2, and the table on https://trac.macports.org/wiki/XcodeVersionInfo, states that XCode 4.2 Clang was based on upstream Clang 3.0, which supports all the warning flags. The warning flags are currently not added when compiling with clang-cl since this exposes some pre-existing warnings that need to be fixed first.
* cmSystemTools: Improve CreateLink and CreateSymlink error codesBrad King2021-05-071-1/+5
| | | | | | | | | | | In commit 7f89053953 (cmSystemTools: Return KWSys Status from CreateLink and CreateSymlink, 2021-04-15) we just took the `-err` from libuv and treated it as a POSIX error. This is accurate on POSIX, but on Windows does not match the POSIX error codes. Use `uv_fs_get_system_error` to get the actual system error code. This requires libuv 1.38 or higher. Require that for Windows, but fall back to the previous approach on POSIX.
* liblzma: Enable multi threaded stream encoding supportNils Gladitz2021-04-221-0/+1
|
* Configure CMake itself with policies through CMake 3.19Brad King2021-02-101-1/+1
|
* Configure CMake itself with policies through CMake 3.18Brad King2020-10-131-1/+1
|
* STL Support: introduce dedicated configuration fileMarc Chevrier2020-07-091-0/+5
|
* KWSys: Hard-code try_compile results on WindowsBrad King2020-06-031-0/+15
| | | | | Several of KWSys's checks have the same result on all Windows platforms supported when building CMake.
* cmSystemTools: Hard-code try_compile results for WindowsBrad King2020-06-031-4/+9
| | | | | All Windows platforms offer `environ` in `stdlib.h` and do not have `unsetenv`.
* libarchive: Hard-code try_compile results for bundled dependenciesBrad King2020-06-031-0/+12
|
* Hard-code some try_compile results for third-party librariesBrad King2020-05-271-0/+3
| | | | | | | | Our bundled third-party libraries perform many `try_compile` checks for compatibility with their upstream build systems. For many of the checks we already know the result for compilers we support for building CMake itself, especially on Windows. Hard-code known results to avoid running the checks.
* Update links to gitlab.kitware.com repos to add `-/`Brad King2020-05-261-1/+1
| | | | | | GitLab now uses a `/-/` component between the `group/project` part of the URL and the `{issues,merge_requests,tree}` part so that it can support `group/subgroup/project` with arbitrary depth.
* Merge topic 'xl-cpp-install'Brad King2020-05-121-1/+1
|\ | | | | | | | | | | | | f7a94cf282 XL: Install our Fortran 'cpp' helper script with execute permission Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4735
| * XL: Install our Fortran 'cpp' helper script with execute permissionBrad King2020-05-111-1/+1
| | | | | | | | | | | | | | | | | | | | This script was added by commit 19f267c75e (XL: Add support for Ninja and XL Fortran, 2019-11-21, v3.17.0-rc1~368^2) but does not have a `.sh` extension so our existing install rules neglect to give it execute permission. Our test suite works on XL Fortran in the build tree but the script is broken without execute permission on installation. Fixes: #20695
| * Merge topic 'aix-ExportImportList-install' into release-3.17Brad King2020-03-311-0/+4
| |\ | | | | | | | | | | | | | | | | | | 39e5a4da22 AIX: Install ExportImportList script with execute permission Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4545
| * \ Merge topic 'cmstd-IBM-i' into release-3.17Brad King2020-03-061-1/+1
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | 917db8163d cmstd: Remove -isystem option for IBM i (OS400) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4430
* | | | Refactoring: Third-parties public headers are under cm3p prefixMarc Chevrier2020-05-071-4/+7
| | | | | | | | | | | | | | | | Fixes: #20666
* | | | nghttp2: Build the library within CMake for use by our curlBrad King2020-04-031-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | Provide our own minimal `config.h` since the upstream one is much larger to support other parts of its distribution. Compile with warnings disabled since this is third-party code.
* | | | Merge topic 'aix-ExportImportList-install'Brad King2020-03-311-0/+4
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | 39e5a4da22 AIX: Install ExportImportList script with execute permission Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4545
| * | | AIX: Install ExportImportList script with execute permissionBrad King2020-03-301-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This script was added by commit 0f150b69d3 (AIX: Explicitly compute shared object exports for both XL and GNU, 2019-07-11, v3.16.0-rc1~418^2~2) but does not have a `.sh` extension so our existing install rules neglect to give it execute permission. Our test suite works on AIX in the build tree but the script is broken without execute permission on installation. Fixes: #20520
* | | | Merge topic 'cmstd-IBM-i'Brad King2020-03-061-1/+1
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | | | | | | | | 917db8163d cmstd: Remove -isystem option for IBM i (OS400) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4430
| * | | cmstd: Remove -isystem option for IBM i (OS400)ThePrez2020-03-051-1/+1
| |/ / | | | | | | | | | | | | | | | | | | | | | Much like AIX, IBM i (OS identifier "OS400") implicitly adds `extern "C"` around system header files included with the `-isystem` option. Update the condition added by commit c688b401d3 (cmstd: Modernize CMake system headers, 2019-08-04, v3.16.0-rc1~81^2~1) to treat `IBM i` as we do AIX.
* | | libarchive: Update to build within CMakeBrad King2020-02-131-1/+5
| |/ |/| | | | | | | Hard-code more libarchive options as internal cache entries. Doing so makes some of our `IF(0)` conditions unnecessary, so remove those.
* | Merge topic 'mark_as_advanced-without-cache'Brad King2020-01-221-1/+0
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3ec82b713e cmMarkAsAdvancedCommand: ignore variables which don't exist in the cache 701a5c60e0 cmake: avoid marking local or unused variables as advanced af158149e7 FindOpenSSL: do not mark a local variable as advanced 74f659f1f2 FindCurses: only mark CURSES_EXTRA_LIBRARY when it is used 7e2ae4e96d FindOpenGL: only mark declared cache variables as advanced 7cc02a0c29 FindLua: only mark LUA_MATH_LIBRARY as advanced if required 85cd26b8a6 FindBoost: only mark Boost_DIR as advanced if defined 338c7916ba CTest: avoid marking undeclared cache variables as advanced ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4150
| * | cmake: avoid marking local or unused variables as advancedBen Boeckel2020-01-201-1/+0
| |/
* | Enable RPATH for CMake's own binaries by defaultBrad King2020-01-141-37/+7
|/ | | | | | | | | | | | | | | | | | | | Reconcile the changes made by: * commit ae62f66033 (ENH: CMake does not need RPATHs at all for its own executables, 2006-03-01, v2.4.0~380) * commit a056cffc5b (COMP: enable RPATH if any of the CMAKE_USE_SYSTEM_XXX variables is enabled, 2007-08-28, v2.6.0~1183) * commit c0108d1e07 (COMP: use RPATH is building QtDialog and the Qt libs are not in /lib or /usr/lib, 2007-11-05, v2.6.0~915) The overall goal of those changes was to get the RPATH set for external libraries when needed and also to avoid re-linking or other RPATH editing on installation. We can use a simpler approach to satisfy both goals: always use RPATH entries for libraries found externally. If there are no such libraries we will get no RPATH. If there are such libraries that are not in standard paths we will get a RPATH that points at them. This will work for running either from the build tree or the install tree, so we can use the same for both to avoid editing on installation. Fixes: #20185
* cmstd: Modernize CMake system headersMarc Chevrier2019-09-201-0/+13
| | | | | | | | | | | | | | Provide a standardized way to handle the C++ "standard" headers customized to be used with current CMake C++ standard constraints. Offer under directory `cm` headers which can be used as direct replacements of the standard ones. For example: #include <cm/string_view> can be used safely for CMake development in place of the `<string_view>` standard header. Fixes: #19491
* Merge topic 'docker-rel-linux'Brad King2019-08-291-1/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 689fdbfc61 Utilities/Release: Drop linux64 script in favor of docker build 2d7cfd30ac Utilities/Release: Drop source archive generation in scripts facc240a45 Utilities/Release: Add docker specs to build and test Linux binaries bf832ccf01 Utilities/Release: Add README.rst describing directory content ab153f17bf Utilities/Release: Drop machine-specific README ed294c1664 Add option to skip CMake tests that need network access 4b8a864d52 Add option to test CMake itself against its hosting CMake Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Gregor Jasny <gjasny@googlemail.com> Merge-request: !3727
| * Add option to skip CMake tests that need network accessBrad King2019-08-231-1/+1
| |
| * Add option to test CMake itself against its hosting CMakeBrad King2019-08-231-0/+4
| |
* | Merge topic 'libarchive-requirement'Brad King2019-08-271-1/+1
|\ \ | | | | | | | | | | | | | | | | | | 752fa8be9d libarchive: We now require at least version 3.3.3 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3737
| * | libarchive: We now require at least version 3.3.3Marvin Schmidt2019-08-261-1/+1
| | | | | | | | | | | | It's the first version including Zstandard support.
* | | Configure CMake itself with policies through CMake 3.15Brad King2019-08-231-1/+12
| |/ |/| | | | | | | | | In particular, set `CMP0091` to `NEW` to enable the MSVC runtime library abstraction so it can be set via `CMAKE_MSVC_RUNTIME_LIBRARY` in the cache.
* | Help: Restore installation of top-level indexBrad King2019-08-191-1/+1
| | | | | | | | | | | | | | | | We removed installation of `Help/index.rst` in commit d2fde94809 (Help: Add infrastructure for guide-level documentation, 2019-05-30), but the file is required for `--help-full` to work. Restore installation of the file and update it to avoid referencing the `Help/guide` directory in its toctree during processing by `cmRST`.
* | CMakeVersion: Move computation logic to main scriptBrad King2019-07-291-2/+1
| |
* | OpenSSL: Issue an error if OpenSSL is not foundKyle Edwards2019-07-181-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When building with the built-in Curl, CMAKE_USE_OPENSSL is only set to ON by default if an OpenSSL installation is detected. However, this can cause the user to mistakenly build without OpenSSL support if OpenSSL is not installed, because CMAKE_USE_OPENSSL is set to OFF in that case. Always set CMAKE_USE_OPENSSL to ON by default on systems where it could be available, skipping the initial detection, resulting in an error when we try to use OpenSSL later on. Detect this error and advise the user to either install OpenSSL or set CMAKE_USE_OPENSSL to OFF. Co-Authored-by: Brad King <brad.king@kitware.com>
* | Help: Add infrastructure for guide-level documentationBrad King2019-06-181-1/+1
|/ | | | | | | Create a `Help/guide/` directory to hold guide-level documents. Build them in most documentation formats, but not as man pages. Initialize the guide directory with a placeholder for the tutorial.
* Add undocumented option to sign CMake's own binaries on WindowsBrad King2019-05-081-0/+6
|
* Configure CMake itself with policies through CMake 3.14Brad King2019-05-081-1/+1
| | | | | In particular, set `CMP0082` to `NEW` to interleave install commands in the top-level directory with subdirectory installations.
* Merge topic 'import-zstd'Brad King2019-03-141-1/+14
|\ | | | | | | | | | | | | | | | | | | | | | | 1761a9a546 CMake: Enable use of zstd in libarchive 2cf2921749 zstd: Add CMake build system f92b4b52eb Merge branch 'upstream-zstd' into import-zstd fbaf65639a zstd 2018-12-27 (470344d3) 9337cbfcca zstd: add script to import zstd from upstream Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Bartosz <gang65@poczta.onet.pl> Merge-request: !3092
| * CMake: Enable use of zstd in libarchiveBrad King2019-03-131-1/+14
| | | | | | | | | | | | | | Build zstd as part of CMake or find one on the system. Modify our port of libarchive to use the zstd configured for use with CMake. Issue: #18657
* | JsonCpp: Ignore deprecation warningsChuck Atkins2019-03-121-0/+4
|/
* cmcompress: Delete unused 3rdParty moduleRegina Pfeifer2019-02-251-8/+0
|
* Configure KWSys to honor CMake_NO_CXX_STANDARDBrad King2019-01-301-0/+3
| | | | | | KWSys now computes a default `CMAKE_CXX_STANDARD` value if it is not told what standard to use. When `CMake_NO_CXX_STANDARD` is enabled, tell KWSys not to do that.
* Merge topic 'fileapi'Brad King2018-12-131-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | b9c6f08276 Help: Add release note for fileapi feature 4b6b2a571c fileapi: extend codemodel v2 with directory details eb8c7676a4 fileapi: extend codemodel v2 with a project model 42f0125ceb fileapi: Add test for cmakeFiles v1 6615408193 fileapi: add cmakeFiles v1 3f6ee75a66 fileapi: Add test for cache v2 7489e95b8e fileapi: add cache v2 ea0a060168 fileapi: Add test for codemodel v2 ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2706
| * jsoncpp: Require version 1.4.1 when using system-provided libraryBrad King2018-12-111-1/+1
| | | | | | | | We need the `failIfExtra` diagnostic added by that version.
* | CTest: Remove submit method 'xmlrpc'Regina Pfeifer2018-11-281-22/+4
|/
* Add option to build CMake itself with IPO/LTOCristian Adam2018-10-251-0/+12
| | | | | Create a `CMake_BUILD_LTO` option when building with a CMake that is new enough to support `CheckIPOSupported` everywhere.