Commit Graph

486 Commits

Author SHA1 Message Date
Joerg Bornemann
84aaebf79f Help: Mention that Qt6 is supported by AUTOGEN
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
2021-09-07 08:51:26 +10:00
Brad King
c9cd039e5f Merge topic 'LWYU-externalization'
14e57e9637 LINK_WHAT_YOU_USE feature: externalize configuration
9c5132a586 PGI: Fix "LINKER:" prefix generated separator
8a93de080c cmGeneratorTarget: Add method for LINKER: prefix translation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6306
2021-07-12 08:43:32 -04:00
Marc Chevrier
14e57e9637 LINK_WHAT_YOU_USE feature: externalize configuration
Currently, this feature is only supported on ELF platforms. So, the property
LINK_WHAT_YOU_USE will be ignored for other plateforms.
Moreover, flags and commands are now controled by CMake variables.

Fixes: #20174
2021-07-09 14:50:50 +02:00
Brad King
97f625d5ef Merge topic 'doc-lang-std'
d69b46bf01 Help: Document when CUDA_STANDARD values were added
bdb59839b9 Help: Document when OBJCXX_STANDARD values were added
627aca946b Help: Document when OBJC_STANDARD values as definition list

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6321
2021-07-08 09:33:51 -04:00
Brad King
d69b46bf01 Help: Document when CUDA_STANDARD values were added
Note that some CUDA C++ language standard levels were added before any
compilers actually supported them.  In such cases, the value of
`CUDA_STANDARD` gracefully degrades to the highest supported by the
compiler (unless `CUDA_STANDARD_REQUIRED` is enabled).  Therefore we can
document support for each value based on when CMake learned of it.
2021-07-08 08:35:15 -04:00
Brad King
bdb59839b9 Help: Document when OBJCXX_STANDARD values were added 2021-07-08 08:35:15 -04:00
Brad King
627aca946b Help: Document when OBJC_STANDARD values as definition list 2021-07-08 08:35:14 -04:00
Brad King
84ca91bae0 Merge topic 'help_cxxstd'
5650bebc2f Help: Note CXX_STANDARD values added vs. CMake version

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6305
2021-07-07 09:30:12 -04:00
Michael Hirsch
5650bebc2f Help: Note CXX_STANDARD values added vs. CMake version 2021-07-06 18:10:54 -04:00
Brad King
c20ce7049c Merge topic 'help_cstd'
9c310ff075 Help: Note C_STANDARD values added in CMake 3.21

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6294
2021-07-02 08:04:32 -04:00
Michael Hirsch
9c310ff075 Help: Note C_STANDARD values added in CMake 3.21
Issue: #22366
2021-07-01 11:58:00 -04:00
Isuru Fernando
fe3f846e1b Makefiles: Add support for building Fortran intrinsics
Fixes: #21463
2021-06-24 08:39:47 -04:00
Brad King
7aad9e8685 Merge topic 'add_hip_language'
8514ee9b31 HIP: analyze output of `hipcc` to determine default GPU architecture
20d086f1a2 HIP: All HIP tests now run on CMake's current AMD hardware
2e86e50c2f HIP: Add HIP to all the Check* modules
947dbed0aa HIP: Automatically inject the `hip::device` runtime target
b50bfc8913 HIP: Add language to CMake
ff0d2858e1 HIP: Extract clang compiler details from hipcc
bd844387df ROCMClang: Add the ROCm toolkit derived clang compiler to CMake
590553f322 Compilers: protect use of  __has_include
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Zack Galbreath <zack.galbreath@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Acked-by: Axel Huebl <axel.huebl@plasma.ninja>
Merge-request: !6121
2021-06-09 07:53:32 -04:00
Brad King
d1517a4ef9 Merge topic 'compile-options-order'
8f68bcad8f Tests: Add cases verifying flag ordering rules
ccc83ce162 Help: Document order of flags from CMAKE_<LANG>_FLAGS and COMPILE_OPTIONS
df79fe055b Help: Remove incorrect "versionadded" for CMAKE_<LANG>_FLAGS_<CONFIG>
c48d2d8480 VS: Place per-source preprocessor definitions after target-wide ones

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !6187
2021-06-08 08:04:16 -04:00
Zack Galbreath
8514ee9b31 HIP: analyze output of hipcc to determine default GPU architecture 2021-06-07 19:25:34 +00:00
Robert Maynard
b50bfc8913 HIP: Add language to CMake 2021-06-07 19:25:33 +00:00
Craig Scott
41dea08423 Help: Remove recommendations for using CMAKE_CFG_INTDIR
Commit e71c4f7729 (CMAKE_CFG_INTDIR: Formally deprecate in favor of
$<CONFIG>, 2021-05-27) only updated the docs for CMAKE_CFG_INTDIR
itself, but other parts of the docs still used it. Update the other places
to avoid referring to the now-deprecated variable.
2021-06-06 17:14:29 +10:00
Brad King
ccc83ce162 Help: Document order of flags from CMAKE_<LANG>_FLAGS and COMPILE_OPTIONS 2021-06-03 11:02:27 -04:00
Bobby D Reynolds
ae108418ae Launchers: Support setting linker launchers
Fixes: #18316
2021-05-28 12:28:43 -04:00
Craig Scott
2eba7d7524 Help: Add SHELL, LINKER and host/device discussions to property docs
Section headings are also added for each common block to help guide
the reader and improve navigation.

Fixes: #21640
2021-05-15 16:31:16 +10:00
Josef Angstenberger
7072d83772 Help: Fix typos and spelling in documentation 2021-05-07 17:00:17 +02:00
Craig Scott
9f2c3928cd Help: Convert CMAKE_LINK_DEPENDS_NO_SHARED to cross-reference link 2021-04-28 09:26:31 +10:00
Brad King
395e1d458e Merge topic 'xcode_app_extensions'
eb5e33ba47 Xcode: Add support for embedding app extensions
f62a2bf44f Tests: Factor out XcodeProject-Embed check function findAttribute()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5934
2021-04-26 11:34:38 -04:00
Alexander Akhundzhanov
eb5e33ba47 Xcode: Add support for embedding app extensions
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
2021-04-22 15:17:02 +10:00
Robert Maynard
e4ff2b51b9 Help: Demonstrate using set_target_properties with CUDA architectures
A common anti-pattern is to copy from the `CUDA_ARCHITECTURES` documentation.
If at any point the user tries to simplify by changin `set_property` to `set_target_properties` the code breaks.

To better train users, provide and example of how to set multiple
CUDA architectures with `set_target_properties`.
2021-04-20 13:25:53 -04:00
Brad King
6968500352 Merge topic 'ios-rpath-linker-flag'
4aed96e230 Apple: Set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG on non-macOS too

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5980
2021-04-07 10:06:56 -04:00
Craig Scott
4aed96e230 Apple: Set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG on non-macOS too
Since CMake 3.19, we no longer support macOS SDKs older than 10.5,
which corresponds to Xcode 3. Supporting older Xcode versions for
device platforms is also not realistic. We therefore expect the -rpath
linker option should always be supported now.

When targeting iOS, tvOS or watchOS, the previous disabling of -rpath
support meant that the install_name_dir of shared libraries and
frameworks was unable to use @rpath. This resulted in embedding
absolute paths for their install_name. When they were embedded in an
app bundle, this would cause the app to fail at runtime. By enabling the
-rpath linker option, the default install_name_dir is now @rpath for these platforms, which results in binaries that do work at runtime.

Fixes: #20036
2021-04-06 11:46:56 +10:00
Brad King
f7f6c9f84b Merge topic 'doc-IMPORTED_LOCATION'
08a25e4902 Help: Clarify IMPORTED_LOCATION documentation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5968
2021-04-02 07:54:37 -04:00
mcc
08a25e4902 Help: Clarify IMPORTED_LOCATION documentation
Prefer the macOS term "application bundle" over just "bundle".
Put both macOS cases together.
2021-04-01 13:40:44 -04:00
Raul Tambre
dcd599757f C23 support 2021-02-25 18:22:10 +02:00
Raul Tambre
93b7d3d292 C17 support
Implements #17755.
2021-02-25 18:22:10 +02:00
Craig Scott
7c147b21c7 Help: Add Ninja Multi-Config and make generator types into links 2021-02-14 15:41:49 +11:00
Craig Scott
5039ca1126 Help: Convert output directory variable mentions to cross-references 2021-02-14 15:39:29 +11:00
Brad King
a30d096c85 Help: Update Sphinx versionadded directives for 3.20 release
Run the script:

    Utilities/Sphinx/update_versions.py --since v3.19.0 --overwrite

Manually restore the 3.20 version for `cmake_path`, which was originally
part of 3.19 but reverted and restored in 3.20.
2021-02-10 08:18:12 -05:00
Brad King
40f4147224 Merge topic 'object-lib-multiarch'
4d46b1401f add_library(): Allow imported object libraries with multi-arch
1a915e8953 Tests: TargetObjects does not need any languages enabled

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5771
2021-02-09 08:22:06 -05:00
Craig Scott
4d46b1401f add_library(): Allow imported object libraries with multi-arch
Fixes: #21276
2021-02-06 11:34:28 +11:00
Brad King
5dd356cefc Help: Convert some genex names to explicit cross-references
Since commit c2dc7e0f53 (Help: Convert genex documentation to sphinx
domain objects, 2021-01-15) we can use `:genex:` cross-references to
link to named generator expressions.  Update some places to do this.

This is meant to demonstrate the capability, not as a comprehensive
sweep.
2021-02-05 16:05:25 -05:00
Brad King
3c80666f00 Help: Document intended purpose of XCODE_ATTRIBUTE_<an-attribute>
Also warn the reader against setting values CMake normally generates.

Issue: #21728
2021-01-23 07:29:10 +11:00
Shannon Booth
a742b5d137 CMAKE_EXPORT_COMPILE_COMMANDS: allow configuration per target
The new target property `EXPORT_COMPILE_COMMANDS` associated with the
existing global variable can be used to optionally configure targets for
their compile commands to be exported.

Fixes: #19462
2021-01-06 11:51:39 +13:00
Craig Scott
63ff43fc9e Merge topic 'doc-fix-XCODE_LINK_BUILD_PHASE_MODE'
2d84b9d145 Help: Fix Sphinx not recognising list in XCODE_LINK_BUILD_PHASE_MODE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5634
2020-12-21 06:03:38 -05:00
Craig Scott
2d84b9d145 Help: Fix Sphinx not recognising list in XCODE_LINK_BUILD_PHASE_MODE 2020-12-20 20:13:23 +11:00
Brad King
6d7621baea Merge topic 'qt-autogen-per-config'
20e4db4a66 cmGeneratorTarget: Make GetConfigCommonSourceFiles Xcode-specific
92d7b456e5 Autogen: Add support for per-config sources
3ffebbaefb Tests/QtAutogen: Forward build configuration in multi-config generators

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5624
2020-12-17 13:22:40 -05:00
Brad King
92d7b456e5 Autogen: Add support for per-config sources
Fixes: #20682
2020-12-16 14:04:30 -05:00
Craig Scott
d2456b29f4 Merge topic 'unity-anon-ns'
0fe9c40494 Unity Build: Add option for generating per-file unique id

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4784
2020-12-16 07:40:41 -05:00
Brad King
67f12dd1d6 Merge topic 'ispc_control_header_suffixes'
c9a50f3556 ISPC: Generated Headers suffix configurable with a better default

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !5597
2020-12-15 07:40:34 -05:00
Stephen Kelly
0fe9c40494 Unity Build: Add option for generating per-file unique id
Fixes: #21477
2020-12-15 22:26:09 +11:00
Robert Maynard
c9a50f3556 ISPC: Generated Headers suffix configurable with a better default
The target property `ISPC_HEADER_SUFFIX` and associated global
variable now can control the suffix used when generating the
C/C++ interoperability ISPC headers.

In addition the default suffix is now "_ispc.h" which matches the
common convention that the ISPC compiler team uses and recommends.
2020-12-14 13:13:09 -05:00
Brad King
3765a415df Merge branch 'master' into doc-3_19_release-fixes 2020-12-11 10:39:14 -05:00
Craig Scott
2c33949c64 Help: Mention how OPTIMIZE_DEPENDENCIES is initialized 2020-12-11 11:19:04 +11:00
Raul Tambre
9f3c70a333 CUDA, CXX, OBJCXX: C++23 support with Clang 12
Clang 12 landed initial support for C++23 language mode flag -std={c|gnu}++2b
in commit 6627a3c2873fdf7ccba1a1573371079be48b36e8.
2020-12-08 18:43:59 +02:00