summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Merge topic 'libuv_version_bump'Brad King2018-04-171-1/+1
|\ | | | | | | | | | | | | f5f72ff844 Explicitly require LibUV 1.10 or higher to build CMake Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1966
| * Explicitly require LibUV 1.10 or higher to build CMakeErofeevK2018-04-161-1/+1
| | | | | | | | CMake 3.11 now uses `uv_translate_sys_error` introduced in LibUV 1.10.
* | ccmake: Check for curses more robustly before enablingBrad King2018-03-211-12/+14
|/ | | | | | | | | | 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.
* CMakeLib: Link to system thread libraries to support std::threadBrad King2018-02-221-0/+2
| | | | | | | | | Some environments require linking to thread libraries for `std::thread`. Express this direct dependency of CMakeLib explicitly. Previously this was done indirectly through our bundled libuv, but that does not work when using a system libuv. Fixes: #17757
* Compile CMake as C++17 if supported by the compilerBrad King2017-12-221-4/+13
| | | | | | | | | | 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-221-2/+2
| | | | | | 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.
* AIX: Add -pthread flag to enable std::thread with GCCBrad King2017-11-281-0/+4
|
* Merge topic 'tidy-sha1-comment'Brad King2017-11-201-1/+6
|\ | | | | | | | | | | | | 08353542 clang-tidy: Clarify comment explaining purpose of CLANG_TIDY_SHA1 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1497
| * clang-tidy: Clarify comment explaining purpose of CLANG_TIDY_SHA1Brad King2017-11-171-1/+6
| | | | | | | | Suggested-by: Bill Hoffman <bill.hoffman@kitware.com>
* | IWYU: Suppress warnings from the internal ClangBrad King2017-11-171-1/+1
|/ | | | | | | Do not obscure IWYU's report with warnings from its internal Clang. We have other testing for such warnings. Also, when compiling with a non-Clang compiler we might use warning options that IWYU's Clang does not understand, and we don't want to see warnings about that.
* clang-tidy: Make .clang-tidy a build-time dependencyMatthias Maennich2017-09-281-0/+6
| | | | | | | | | | Currently a change to the clang-tidy configuration remains unnoticed for incremental builds in the way that it won't trigger a rebuild. This can be considered a missing dependency that this patch fixes by introducing a compile time definition (-DCLANG_TIDY_SHA1) that triggers a rebuild upon change. Currently this only applies to the target CMakeLib. Signed-off-by: Matthias Maennich <matthias@maennich.net>
* server: test buffer parsingJustin Berger2017-08-311-0/+3
|
* server: always enable serverDaniel Pfeifer2017-08-261-18/+0
|
* server: backport to C++11Daniel Pfeifer2017-08-261-4/+1
|
* Merge topic 'require-c++11'Brad King2017-08-211-0/+4
|\ | | | | | | | | | | | | fd4fd9a2 Require C++11 to build CMake itself Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1132
| * Require C++11 to build CMake itselfBrad King2017-08-161-0/+4
| | | | | | | | | | | | | | | | | | CMake can now compile as C++11 on all supported platforms. Check that std::unique_ptr is available and fail early if missing. This will allow us to use C++11 more broadly in CMake's implementation (previously it was restricted to the serve mode implementation). Co-Author: Daniel Pfeifer <daniel@pfeifer-mail.de>
* | Require CMake 3.1 to build CMake itselfBrad King2017-08-101-22/+4
|/ | | | | This simplifies some policy settings and use of third-party libraries with imported targets.
* Make libuv available to all parts of CMakeBrad King2017-08-081-38/+13
| | | | | | | The libuv library provides many useful platform abstractions and better process management than KWSys. We'd like to use it everywhere instead of just in the server mode. Drop the `CMAKE_USE_LIBUV` option and use libuv everywhere except during bootstrap.
* HP-UX: Drop support for building CMake on HP-UXBrad King2017-08-071-3/+8
| | | | | | | | CMake will soon require both C++11 and libuv to build. Neither of these works on HP-UX, so unfortunately we need to drop support for the platform until someone can get them working. Issue: #17137