summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Merge topic 'fix-no-testing'Brad King2018-10-251-3/+4
|\ | | | | | | | | | | | | | | a834bcaa91 Tests: Add missing BUILD_TESTING conditions Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Dan Ibanez <daibane@sandia.gov> Merge-request: !2520
| * Tests: Add missing BUILD_TESTING conditionsBrad King2018-10-241-3/+4
| | | | | | | | | | | | We should not call `add_test` unless `BUILD_TESTING` is enabled. Fixes: #18500
* | Merge topic 'update-curl'Brad King2018-10-231-1/+0
|\ \ | |/ | | | | | | | | | | | | | | | | | | 0310024563 curl: Update build within CMake to account for 7.61 changes b9d1107790 curl: Backport to work with CMake 3.1 again e9e8dcee6b Merge branch 'upstream-curl' into update-curl 18812a9c3d curl 2018-09-04 (432eb5f5) ded211ae46 curl: Update script to get curl 7.61.1 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2509
| * curl: Update build within CMake to account for 7.61 changesBrad King2018-10-221-1/+0
| | | | | | | | | | | | | | The_CURL_STATICLIB option was replaced by BUILD_SHARED_LIBS. Drop our own CURL_STATICLIB compile definition because it is now provided by curl's usage requirements.
* | Declare support for CMake versions through 3.12 for own buildBrad King2018-10-171-1/+1
|/ | | | | | | | | | CMake 3.12 introduced a `...<max>` syntax in the version given to `cmake_minimum_required` to automatically set policies to NEW up to that version. Use it to avoid listing policies explicitly. The syntax is compatible with older versions of CMake such that they use the extended version string for the `CMAKE_MINIMUM_REQUIRED_VERSION` variable (which we don't use) but otherwise ignore it.
* Update CMake pre-cached values for libarchive 3.3.3Brad King2018-09-261-0/+1
| | | | The ENABLE_LZ4 option was added.
* libarchive: Bump the minimum version from 3.0.0 to 3.1.0Chuck Atkins2018-08-291-1/+1
| | | | | cmArchiveWrite uses the gzip:timestamp write filter option which was not available until v3.1.0.
* IWYU: Fix workaround mapping for std::hashBrad King2018-08-071-1/+2
| | | | | | | | | It is provided by `functional`, not `utility`. Fix the mapping added by commit 276d3c7afe (IWYU: Add workaround mapping for std::hash, 2018-07-31). Also generalize the workaround from commit v3.12.0-rc1~39^2~1 (IWYU: Define a macro to tell code it is preprocessing for iwyu, 2018-05-25) to allow local builds to configure specific flags. This is needed because iwyu behaves differently in different environments.
* IWYU: Define a macro to tell code it is preprocessing for iwyuBrad King2018-05-251-1/+1
| | | | | | | There are some cases where satisfying IWYU breaks compilation, such as forward-declaring the `std::hash<>` template with C++ standard libraries that use an inline namespace inside `std`. Define a macro during include-what-you-use preprocessing so that code can adapt.