summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* cmake: Add debuggerGlen Chung2023-05-301-7/+7
| | | | | | | | | | | | | | | | - Depends on cppdap and jsoncpp. - Add --debugger argument to enable the Debugger. - Add --debugger-pipe argument for DAP traffics over named pipes. - Support breakpoints by filenames and line numbers. - Support exception breakpoints. - Call stack shows filenames and line numbers. - Show Cache Variables. - Show the state of currently defined targets, tests and directories with their properties. - Add cmakeVersion to DAP initialize response. - Include unit tests. Co-authored-by: Ben McMorran <bemcmorr@microsoft.com>
* cppdap: Build as part of CMake or use external installationBrad King2023-05-261-2/+23
| | | | | | Add `cm3p/` headers to use the selected copy of the library. Co-authored-by: Glen Chung <kuchung@microsoft.com>
* Merge topic 'test-no-dart'Brad King2023-02-281-7/+1
|\ | | | | | | | | | | | | | | 2fc3b0f476 Tests: Drop use of legacy "Dart" module Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8257
| * Tests: Drop use of legacy "Dart" moduleBrad King2023-02-271-7/+1
| | | | | | | | Use the CTest module directly.
* | Configure CMake itself with policies through CMake 3.25Brad King2023-02-011-1/+1
|/
* CMake: add an option to run IWYU in verbose modeBen Boeckel2023-01-271-0/+5
| | | | | This helps to diagnose places where IWYU asks to include headers for internal stdlib details.
* CMake: add option to export clang-tidy fixes to a directoryKyle Edwards2022-12-081-0/+9
|
* own CMakeLists: remove unreachable codeMichael Hirsch2022-11-071-13/+7
|
* Merge topic 'clang-tidy-plugin-stub'Kyle Edwards2022-10-141-0/+15
|\ | | | | | | | | | | | | | | | | | | d6f5e67f7b ci: add clang-tidy plugin to clang-tidy job 6c6912123e clang-tidy: Add option to load CMake's clang-tidy module 0ad3941f73 clang-tidy module: Add stub module Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7768
| * clang-tidy: Add option to load CMake's clang-tidy moduleKyle Edwards2022-10-121-0/+15
| | | | | | | | Issue: #23912
* | Configure CMake itself with policies through CMake 3.24Brad King2022-10-121-5/+1
|/
* Drop try_run macro from CMake's own buildBrad King2022-09-261-11/+0
| | | | | | | | | Since commit 9199f7c627 (Disable arch-specific try_run in CMake itself, 2009-12-14, v2.8.2~567) we've abused an undocumented debugging feature to override the builtin `try_run` command in CMake's own build with a wrapper macro. However, we've also long discouraged use of this feature by other projects. The purpose of the original change is outdated and of limited use anyway, so just drop it.
* Build: Use `string(APPEND…)` in the root `CMakeLists.txt`Alex Turbov2022-09-221-4/+3
|
* Build: Extract `CMAKE_BUILD_UTILITIES` macro into a separate includeAlex Turbov2022-09-221-385/+3
| | | | | | The macro was one time used with the comment "Simply to improve readability...". The result file doesn't have a macro anymore and just included into the root `CMakeLists.txt`.
* Build: Use `cmstd` target instead of variable `CMAKE_STD_LIBRARY`Alex Turbov2022-09-221-1/+0
|
* Build: `add_definitions()` → `add_compile_definitions()`Alex Turbov2022-09-221-1/+1
|
* Build: Simplify `configure_file()` callsAlex Turbov2022-09-221-21/+8
|
* CMakeLists: Remove redundant spaces around CMake command callsAlex Turbov2022-09-221-12/+13
|
* Build: Modernize some `foreach` calls to use `IN LISTS`/`IN ITEMS`Alex Turbov2022-09-221-8/+8
|
* jsoncpp: Require version 1.6.0 when using system-provided libraryBrad King2022-08-181-1/+1
| | | | We need the `ValueIterator::name()` method.
* Remove stale references to CMakeServerLibKyle Edwards2022-08-021-3/+0
|
* Configure CMake itself with policies through CMake 3.23Brad King2022-06-141-1/+1
|
* libarchive: Simplify hard-coded options for build within CMakeBrad King2022-02-221-30/+29
| | | | | | Take advantage of policy CMP0077 NEW behavior to hard-code settings, defined by `option()` calls in upstream libarchive, without adding them to our cache.
* Require CMake 3.13+ to configure CMake itselfBrad King2022-02-221-1/+1
| | | | | | In particular, guarantee that policy `CMP0077` has `NEW` behavior. This will be useful to hard-code options of third-party libraries without polluting our own cache.
* libarchive: Simplify code selecting CMake-specific build optionsBrad King2022-02-171-19/+35
| | | | | Reduce differences from upstream libarchive `CMakeLists.txt` code. Remove modifications inside code we disable anyway.
* Configure CMake itself with policies through CMake 3.22Brad King2022-02-031-1/+1
|
* string(TIMESTAMP): add %f specifier for microsecondsPeter Würth2022-01-281-1/+1
| | | | | | | | | | | | | | | | | | The %f specified extends the string(TIMESTAMP) and file(TIMESTAMP) commands to output the timestamp with a microsecond resolution. This convention is offered by python's datetime module. Before, the precision was limited to seconds. The implementation is done by extending existing cmTimestamp methods with a `microseconds` parameter. This parameter is optional in order to be backwards compatible. The timestamps are now received in a cross-platform manner using libuv, since the standard C functions like time() don't allow for sub-second precision. This requires libuv 1.28 or higher. We already require higher than that on Windows, so update the required version for other platforms. Implements: #19335
* ccmake: Add Windows support using PDCursesDuncan Ogilvie2022-01-181-3/+10
|
* ccmake: Refactor BUILD_CursesDialog option logicBrad King2022-01-181-13/+16
| | | | | Move all the current logic behind `if(UNIX)` conditions to make room for other platforms to be added.
* LCC: Add policy CMP0129 regarding interpreting LCC as GNUmakise-homura2021-10-211-0/+5
| | | | | | | | | | Due to MCST LCC compiler identification is now changed to LCC, there should be a way for old projects to still identify it as GNU, as it was before. This commits adds the policy: CMP0129: Compiler id for MCST LCC compilers is now LCC, not GNU. This policy controls such a behavior. OLD behaivior is to treat LCC as GNU, NEW is to treat is as LCC.
* Merge topic 'lcc-compiler'Brad King2021-10-191-2/+3
|\ | | | | | | | | | | | | | | | | | | | | 02b2607a5c Help: Add release note for MCST LCC compiler support e5d9fce03f LCC: Add dedicated support for MCST LCC compiler 2b9ef77944 CPack/DEB: deal with broken dpkg-shlibdeps on E2K architecture 0995c75301 Tests/RPM: skip tests tat rely on debugedit if it's not found ea55ac9a51 Tests/RunCMake/CommandLine: Deal with locales that are different from English Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6608
| * LCC: Add dedicated support for MCST LCC compilermakise-homura2021-10-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Divert LCC compiler as a new one, instead of treating it as GNU. Since old times, Elbrus C/C++/Fortran Compiler (LCC) by MCST has been passing checks for GNU compilers, so it has been identified as GNU. Now, with intent of seriously upstreaming its support, it has been added as a separate LCC compiler, and its version displays not a supported GCC version, but LCC version itself (e.g. LCC 1.25.19 instead of GNU 7.3.0). This commit adds its support for detection, and also converts basically every check like 'is this compiler GNU?' to 'is this compiler GNU or LCC?'. The only places where this check is untouched, is where it regards other platforms where LCC is unavailable (primarily non-Linux), and where it REALLY differs from GNU compiler. Note: this transition may break software that are already ported to Elbrus, but hardly relies that LCC will be detected as GNU; still such software is not known.
* | Configure CMake itself with policies through CMake 3.21Brad King2021-10-081-1/+1
|/
* 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