Commit Graph

142 Commits

Author SHA1 Message Date
Florian Schweiger d89af11f89 VS: Add StartupObject property for managed .NET projects 2022-04-12 15:35:17 +02:00
Kai Tetzlaff b14cfbe159 vim: Fix indentation of 'closing parens only lines'
This commit changes the indentation of lines which contain only closing
parentheses (`)`).

Example:

Change
```
add_library(mylib
    mysrc.c
    )
```
to:
```
add_library(mylib
    mysrc.c
)
```

There are edge cases, where the indentation still doesn't really work.

Example:

This, admittedly weird, piece of code (manually formatted to what I would
expect - this is already a personal preference ...):
```
if(4)
    if((0 OR 1
       )
      ) # could also be aligned with the `i` in `if`
        set(foobar
        )
    endif()
    set(foobar)
endif()
```
will be changed to:
```
if(4)
    if((0 OR 1
)
    )
    set(foobar
    )
endif()
set(foobar)
endif()
```
whereas with the previous vim indentation code the result would have been:
```
if(4)
    if((0 OR 1
        )
    )
set(foobar
    )
    endif()
    set(foobar)
endif()
```
which is not great but better than above. I hope that this is acceptable.


Note: Apart from the actual indentation fixes, I based the change on a version
of indent/cmake.vim I found in the debian/bookworm vim82 package which is newer
than the one in the cmake repository (with `Last Change:  2017 Sep 24` comment
instead of the cmake repo version with `Last Change:  2017 Aug 30`).

This vim82/debian version moved these two lines:
```
let s:keepcpo= &cpo
set cpo&vim
```
a bit further down (after an early exit check - which seems to make sense to
me).


Fixes: #22394
2022-03-22 18:18:20 +01:00
Kai Tetzlaff bc690f89f5 cmake-mode.el: Fix indentation of 'closing parens only lines'
Outdent lines containing only closing parentheses (`)`) by `cmake-tab-width`
to align the indentation of the 'closing parens only line' with the line that
contains the opening paren.

I.e. change the formatting from:

  add_library(mylib
    mysrc.c
    )

to:

  add_library(mylib
    mysrc.c
  )
2022-03-18 22:56:45 +01:00
Brad King cbd36eac23 Merge topic 'ctest_truncate'
140704d443 ctest: add option for output truncation
359e5b17d8 presets: bump version to v5
4634de335b cmCTestTestHandler: refactor CleanTestOutput method

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6993
2022-03-09 12:17:44 -05:00
Semyon Kolton 884d9de8b7 color: Introduce CMAKE_COLOR_DIAGNOSTICS variable
Add a variable to control both makefile color messages and compiler
color diagnostics.

Fixes: #15502
2022-03-08 16:37:08 -05:00
Frank Winklmeier 140704d443 ctest: add option for output truncation
Add `--test-output-truncation` to `ctest`. This option can be used to
customize which part of the test output is being truncated. Currently
supported values are `tail`, `middle` and `head`.

Also add equivalent `CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION` variable.

Fixes: #23206
2022-03-08 08:18:02 -05:00
Kaloyan Donev b764c7c273 VS: Add property to turn off Visual Studio compile batching
Resolves: #23179
2022-02-08 08:07:00 +02:00
Craig Scott cbb87e0a2c ExternalProject: Add support for USES_TERMINAL_PATCH keyword
This brings the patch step into line with all the others which already
had their own `USES_TERMINAL_<step>` keyword. All steps (including
patch) already have their own `LOG_<step>` keyword too, so the lack of
`USES_TERMINAL_PATCH` was inconsistent.
2022-02-03 09:27:35 -05:00
Sumit Bhardwaj 0eea32a376 VS: Add DOTNET_SDK property to generate SDK-style C# projects
Changes in cmVisualStudio10TargetGenerator::Generate to write .Net
SDK-style project for VS generators VS 19 and above. Also adds
documentation and tests.

Issue: #20227
2021-12-21 09:35:49 -08:00
Fred Baksik e006b87cc6 GHS: GHSMULTI - Update documentation to match implementation
* The variable being set was named `GHSMULTI` not `GHS-MULTI`.
2021-11-15 13:15:11 -05:00
Jake Turner e09a3eddb6 Xcode: Support "GPU Frame Capture" scheme property
Added XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE variable which
sets the scheme property value for "GPU Frame Capture" in the Options section by setting the Xcode project variable "enableGPUFrameCaptureMode".

Example values are "Metal" (1) and "Disabled" (3).

XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE is initialized by the property CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE.

Implements: #22700
2021-10-19 15:24:10 +01:00
Brad King d723bac01c Merge topic 'lcc-compiler'
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
2021-10-19 09:22:22 -04:00
makise-homura e5d9fce03f LCC: Add dedicated support for MCST LCC compiler
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.
2021-10-15 05:05:19 +03:00
Nikhil Reddy Ramolla 5d178fcc53 CTest: Add CTEST_SUBMIT_INACTIVITY_TIMEOUT variable
Fixes: #22617
2021-10-14 11:41:44 -04:00
Brad King 3265fa51cd Merge topic 'ctest-environment-modifications'
de4f1f26b0 CTest: add an ENVIRONMENT_MODIFICATION property
4c757fa3c8 Help/prop_test/ENVIRONMENT: clarify the scope of the changes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6299
2021-07-13 08:24:36 -04:00
Ben Boeckel de4f1f26b0 CTest: add an ENVIRONMENT_MODIFICATION property
This property allows projects to modify environment variables at test
time rather than trying to guess what the state should be based on what
is present at configure time. Of particular interest is the ability to
use a `PATH` present at test time while adding entries known to be
necessary for the test itself.

There are multiple operations provided to modify variables, including:

  - setting and unsetting
  - appending and prepending as:
    - strings
    - path lists
    - CMake lists

Additionally, a `reset` action is provided to cancel any prior
modifications to that particular variable in the case of incremental
additions to the test property.
2021-07-09 08:45:18 -04:00
Eugene Shalygin a2e9fe38e4 find_package: Add variable to make package REQUIRED
Add a `CMAKE_REQUIRE_FIND_PACKAGE_<PackageName>` variable is complement
to `CMAKE_DISABLE_FIND_PACKAGE_<PackageName>` with just the opposite
behaviour: it turns non-required find_package call into the required one.

While optional package dependencies usually result in simple and clean
build logic, sometimes people want to be sure those optional
dependencies will be found and used. Examples are reproducible builds
and build instructions for 3rd parties. People choose to make
find_package calls REQUIRED and put them behind an option(). Such
workarounds blend build logic with build environment management and do
not look elegant.
2021-07-08 08:03:38 -04:00
Bobby D Reynolds ae108418ae Launchers: Support setting linker launchers
Fixes: #18316
2021-05-28 12:28:43 -04:00
Josef Angstenberger eaa860162c Auxiliary: Fix typos and spelling in comments 2021-05-07 17:00:12 +02:00
Duncan Barber 7f0151dc91 Help: Document the AUTOUIC_SOURCE_GROUP property
This property came into existence with the changes in b4a103bdec because generated files are now being added for UIC.
2021-04-04 12:29:56 +01:00
Eisuke Kawashima c04b73f386 vim: Add missing keyword URL_MD5 2021-01-17 23:46:56 +09:00
marciosmiderle 3987db59c5 cmake-mode.el: Fix rx usage for Emacs 26
The change in commit 901386f646 (cmake-mode.el: Add navigation by
function and macro, 2020-12-11) introduced a regression.  Emacs 26 could
not load cmake-mode.el anymore.  Use `(not-char ")")`, not `(not ")")`.
2021-01-04 11:36:41 -05:00
Joerg Bornemann 591d4bbdaf cmake-mode.el: Require the rx package
We're using rx in cmake-mode.el. Technically, we don't have to load the
package, because it's already loaded at startup. But it's good style to
explicitly require the packages we use, if only to give a quick overview
of the package dependencies.
2020-12-16 08:28:31 +01:00
Joerg Bornemann 901386f646 cmake-mode.el: Add navigation by function and macro
Add the functions cmake-beginning-of-defun and cmake-end-of-defun that
jump to the beginning/end of the nearest function or macro.

Add the function cmake-mark-defun that marks the current function.

Bind those functions to the usual keys in cmake-mode-map.
2020-12-11 22:13:42 +01:00
condy 54b409094d cmake-mode.el: Improve help display with reStructuredText mode
Many of the `cmake --help-*` options print `.rst` source documents
with only partial evaluation.  View them in the Emacs `rst-mode`.
2020-12-09 01:21:38 +08:00
condy 364a40025c cmake.el: enable view-mode when lookup 2020-11-19 01:11:36 +08:00
Andrew Fuller 1134064e22 clang-tidy: allow OBJC and OBJCXX 2020-11-05 11:39:32 -08:00
Brad King aebdd9ff2c Merge branch 'upstream-vim-cmake-syntax' into update-vim-syntax
* upstream-vim-cmake-syntax:
  vim-cmake-syntax 2020-10-28 (bcc3a97a)
2020-10-28 11:30:26 -04:00
Robert Maynard e783bf8aa6 ISPC: Support ISPC header generation byproducts and parallel builds 2020-08-28 11:21:31 -04:00
Brad King 83bc79e232 Auxiliary: Add options to control Vim and Emacs file installation
Since commit 2642f432ef (Aux: Install editor and bash files to more
natural locations, 2020-03-30, v3.18.0-rc1~429^2) these files are
installed by default into locations that are not CMake-specific but may
be distro-specific.  Add options for packagers to control these
locations.

Also rename the `CMAKE_BASH_COMP_DIR` option to follow our conventions.

Fixes: #20993
2020-07-21 08:34:30 -04:00
Peter Hill b0a6161190 Fortran: Add Fortran_PREPROCESS property
Issue: #18870
2020-05-21 11:44:14 -04:00
Eli Schwartz 2642f432ef Aux: Install editor and bash files to more natural locations
The vim, emacs, and bash support files are not internal CMake resources
and so do not belong under `CMAKE_DATA_DIR`.  Move them over to proper
places under the `CMAKE_XDGDATA_DIR` as we do already for cmake-gui
desktop files and `cmake.m4`.

Fixes: #20522
2020-03-31 12:01:40 -04:00
Dan Johnston 97c124e30f Ninja: Add a separate job pool for PCH creation
Add a `JOB_POOL_PRECOMPILE_HEADER` target property to specify the pool
name, and its associated `CMAKE_JOB_POOL_PRECOMPILE_HEADER` variable.

Fixes: #20217
2020-01-16 10:32:25 -05:00
Dan Johnston ebd0b16ddb vim: Add target_precompile_headers command highlighting 2020-01-16 10:29:26 -05:00
Robert Maynard 2467a2b318 CUDA: Add cuda meta-features (e.g. `cuda_std_11`) support 2019-12-10 17:56:48 -05:00
Felix Schwitzer 64aeb520ca bash-completion: silent cmake -D lookup
The completion for -D tries to read the cache via 'cmake -LA -N', but this
prints a warning.  Silent the lookup by redirecting this warning to null.
2019-08-17 01:04:54 +02:00
Gabor Bencze 5dbd9c8583 Vim: Add SKIP_REGULAR_EXPRESSION test property to vim syntax file 2019-07-18 15:45:09 -04:00
Brad King 01a8b89f29 Merge topic 'eclipse-resource-encoding'
09c1991895 Eclipse: Add option to set the resource encoding

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3525
2019-07-11 08:49:34 -04:00
Brad King 27bd921b38 Merge topic 'emacs/drop-23'
8e1664d108 cmake-mode.el: Drop support for Emacs < 24

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3520
2019-07-10 09:19:36 -04:00
Martin Gerhardy 09c1991895 Eclipse: Add option to set the resource encoding 2019-07-09 13:34:29 -04:00
Hong Xu 8e1664d108 cmake-mode.el: Drop support for Emacs < 24
The `cmake--parent-mode` alias exists only for compatibility and breaks
Emacs packages and scripts that make use of `prog-mode-hook` because
Emacs does not examine whether the parent mode is an alias or not.
Remove the alias and require Emacs 24 or higher.

Emacs 24 was released in 2012 and this is already 2019, thus the loss to
drop support for versions < 24 is negligible.
2019-07-09 10:50:19 -04:00
Robert Maynard 447a96f590 vim: Update cmake.vim to include the CMAKE_FIND_USE variables 2019-07-09 09:38:35 -04:00
Patrick Boettcher b410dd5a05 Merge branch 'upstream-vim-cmake-syntax' into update-vim-syntax
* upstream-vim-cmake-syntax:
  vim-cmake-syntax 2019-05-29 (c42ede9f)
2019-05-29 11:57:17 -04:00
Brad King a9fb9a8774 Merge topic 'ninja-swift'
a9180ccf9a Tests: add a check for the Swift compiler
d745551fb6 Help: add some initial documentation for Swift support
9a182c9e5b Auxiliary: update vim syntax highlighting
e9b0063e8e Modules: add build rules for Swift Ninja support
b6412e3e38 Ninja: add placeholders to support Swift build
7d7f31161d Ninja: add support for Swift's output-file-map.json
d688c4c19d Swift: remove unnecessary unreleased Ninja infrastructure
0723582208 Swift: Detect compiler version
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3297
2019-05-20 10:55:27 -04:00
Saleem Abdulrasool 9a182c9e5b Auxiliary: update vim syntax highlighting
Add new Swift keywords to the highlighting rules.
2019-05-16 14:41:05 -04:00
Robert Maynard e214abdaab Genex: Add COMPILE_LANG_AND_ID generator expression 2019-05-14 14:54:15 -04:00
Alex Turbov 6cc93b370e message(): Add support for log levels
Relates: #18943
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
2019-04-28 22:45:44 +10:00
Brad King 3744bd0a0a Merge topic 'xcodescheme2'
413b71485a Xcode: Create Xcode schemes per target

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3098
2019-03-22 09:16:02 -04:00
Harry Mallon 413b71485a Xcode: Create Xcode schemes per target 2019-03-21 16:50:41 +00:00
Kyle Edwards 8c0b7aa17d Merge topic 'cmake--install'
73f23d1e00 cmake: add '--install <dir>' option

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Alex Turbov <i.zaufi@gmail.com>
Acked-by: Bartosz <gang65@poczta.onet.pl>
Acked-by: Cristian Adam <cristian.adam@gmail.com>
Rejected-by: Alex Turbov <i.zaufi@gmail.com>
Merge-request: !3069
2019-03-19 13:39:18 -04:00