summaryrefslogtreecommitdiffstats
path: root/Help/manual
Commit message (Collapse)AuthorAgeFilesLines
* Help: Show multiple ways of doing cacheVariablesKyle Edwards2020-10-191-2/+3
| | | | | This demonstrates both the simple string and the complex object, and ensures that they get automated testing.
* Help: Move vendor field into exampleKyle Edwards2020-10-192-14/+12
| | | | | This ensures that the vendor field gets automated testing from the example.
* Help: s/unusedVars/unusedCli/Kyle Edwards2020-10-191-1/+1
| | | | | | This was a mistake in the documentation. Fixes: #21303
* Help: Move CMakePresets.json documentation into a separate fileKyle Edwards2020-10-192-328/+351
|
* CMP0111: Clarify that the new error is on a missing property settingBrad King2020-10-161-1/+1
| | | | The previous wording could be confused with the file missing on disk.
* Help: Fix invalid code-block in cmake(1) manualKyle Edwards2020-10-141-1/+1
| | | | Fixes: #21304
* Tests: Test the CMakePresets.json example in the documentationKyle Edwards2020-10-092-25/+25
|
* Help: Fix documentation of CMakePresets.json's cacheVariablesKyle Edwards2020-10-091-4/+3
| | | | | | cacheVariables is a map with variable names as the keys, but the example in the documentation was not updated to reflect this. Fix the example.
* Help: Add note about Visual Studio tools for AndroidKyle Edwards2020-10-071-4/+6
|
* Help: Add ref to Ninja Generators sectionKyle Edwards2020-10-071-0/+2
|
* CMakePresets.json: Prohibit empty variable namesKyle Edwards2020-10-061-15/+17
|
* Help: Add presets documentation and release notesKyle Edwards2020-10-052-0/+373
|
* cmake_language: Add signature to DEFER calls to later timesBrad King2020-09-291-1/+6
| | | | Fixes: #19575
* Merge topic 'add_lang_agnostic_check_compile_flag_module'Brad King2020-09-291-0/+1
|\ | | | | | | | | | | | | 90dead024c CheckCompilerFlag: unified way to check compiler flags per language Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5281
| * CheckCompilerFlag: unified way to check compiler flags per languageRobert Maynard2020-09-281-0/+1
| |
* | Help: Change User Interaction image paths to be relative to source fileBetsy McPhail2020-09-251-0/+0
|/
* CheckSoureRuns: Add a unified way to check if a source runsRobert Maynard2020-09-231-0/+1
|
* CheckSoureCompiles: Add a unified way to check if a source compilesRobert Maynard2020-09-231-0/+1
|
* Merge topic 'comp-ti-std-options'Brad King2020-09-221-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | 6a66bb13ed Compiler/TI: Add std options for C++14 fe9cddf181 Compiler/TI: Add std options for C++98 55fc045aa8 Compiler/TI: Add std options for C11 2e69993101 Compiler/TI: Check default C standard 8300030f71 Compiler/TI: Check compiler version for C99 support 0b4582f229 Compiler/TI: Fix definition of std options a70df0d6f0 Compiler/TI: Avoid generic variable name in macro Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5249
| * Compiler/TI: Add std options for C++98Josef Angstenberger2020-09-201-1/+1
| | | | | | | | | | | | | | | | The TI compiler does not support C++98, only C++03 (based on manual of current version). This change sets the C++98 option to C++03 based on the fact that it is done this way for the SunPro compiler already.
* | Xcode: Add option to specify build system variantBrad King2020-09-181-0/+1
| | | | | | | | | | | | Extend the `-T <toolset>` option to support a `buildsystem=` field with the Xcode generator. Add a `CMAKE_XCODE_BUILD_SYSTEM` variable to inform project code about the selected build system variant.
* | Help: Move CMAKE_XCODE_GENERATE_SCHEME to proper manual sectionBrad King2020-09-141-1/+1
|/
* ExternalProject: Add policy CMP0114 to refine step target dependenciesBrad King2020-09-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | `ExternalProject_Add_StepTargets` and `INDEPENDENT_STEP_TARGETS` have some limitations and lack some sanity checks. They can cause confusing build systems to be generated. The basic problems are: * The notion of step independence is attached to the step target rather than the step itself. * The custom commands implementing the steps are duplicated in the step targets and the primary targets. This can cause races. It is also incompatible with the Xcode "new build system". Fix this by introducing policy CMP0114 to change the way step target dependencies are handled. Define independence from external dependencies as a property of each individual step regardless of whether there is a target for it. Add dependencies among the primary target and the step targets such that each custom command only appears in one target. When some steps are disconnected from the primary target, add step targets for the steps commonly depended upon so that there is a place to hold their custom commands uniquely. Fixes: #18663
* Merge topic 'pch-instantiate-templates'Brad King2020-09-102-0/+2
|\ | | | | | | | | | | | | | | | | | | 8c8f03422e PCH: Template instantiation support Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Raul Tambre <raul@tambre.ee> Acked-by: Cristian Adam <cristian.adam@gmail.com> Tested-by: Raul Tambre <raul@tambre.ee> Merge-request: !5168
| * PCH: Template instantiation supportTobias Hieta2020-09-022-0/+2
| | | | | | | | | | | | | | | | Adds PCH_INSTANTIATE_TEMPLATES target property for enabling template instantiation in precompiled headers. Enabled by default. Currently only supported for Clang 11 and newer. Implements #21133.
* | Makefile: Add policy CMP0113 to avoid duplication of custom commandsBrad King2020-09-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not attach a custom command to a target if it is already attached to one of the target's dependencies. The command's output will be available by the time the target needs it because the dependency containing the command will have already been built. This may break existing projects that do not properly mark non-created outputs with the `SYMBOLIC` property. Previously a chain of two custom commands whose intermediate dependency is not created would put both commands in a dependent project's Makefile even if the first command is also in its dependency's Makefile. The first command would run twice but the build would work. Now the second command needs an explicit `SYMBOLIC` mark on its input to tell CMake that it is not expected to exist. To maintain compatibility with projects that left out the mark, add a policy activating the behavior.
* | Merge topic 'ispc_improvements'Brad King2020-09-082-0/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | a020787a9b ISPC: Support generation for multiple instruction sets 5a1750017e ISPC: Add compiler launcher support Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5173
| * | ISPC: Support generation for multiple instruction setsRobert Maynard2020-09-042-0/+2
| | |
* | | cmake_path command: path managementMarc Chevrier2020-09-061-0/+1
|/ / | | | | | | Fixes: #19568, #20922
* | Merge topic 'target_genex_dependency'Brad King2020-09-012-0/+31
|\ \ | | | | | | | | | | | | | | | | | | | | | f14b390198 GenEx: Remove unneeded dependencies from target info queries Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Raul Tambre <raul@tambre.ee> Merge-request: !5127
| * | GenEx: Remove unneeded dependencies from target info queriesRobert Maynard2020-09-012-0/+31
| |/ | | | | | | | | | | | | | | | | | | Only generate a graph dependency between a custom command and a target when the custom command queries for the file path of an artifact of the target. This makes generator expressions such as `TARGET_FILE_DIR` behave the same way as `TARGET_PROPERTY` which never generated a graph dependency.
* | Merge topic 'xcode-link-phase-all'Craig Scott2020-09-012-0/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 525464ed2a Xcode: Use "Link Binary With Libraries" build phase in some cases dc0898205c Xcode: Add special case for file type extension map for .xcassets 7b3d8411a2 Xcode: Refactor build setting append code and attribute getter naming Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5036
| * | Xcode: Use "Link Binary With Libraries" build phase in some casesGusts Kaksis2020-08-312-0/+2
| |/ | | | | | | | | | | | | OBJECT and STATIC libraries (framework or non-framework) do not use this build phase. Not all items to be linked use this build phase either. Co-Authored-By: Craig Scott <craig.scott@crascit.com>
* | Merge topic 'ispc_lang_support'Brad King2020-09-014-0/+18
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 5ece12b7e4 gitlab-ci: add ISPC to the Fedora CI image 8976817d6d ISPC: Update help documentation to include ISPC 2368f46ba4 ISPC: Support building with the MSVC toolchain e783bf8aa6 ISPC: Support ISPC header generation byproducts and parallel builds 34cc6acc81 Add ISPC compiler support to CMake 419d70d490 Refactor some swift only logic to be re-used by other languages Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5065
| * ISPC: Update help documentation to include ISPCRobert Maynard2020-08-282-0/+16
| |
| * ISPC: Support ISPC header generation byproducts and parallel buildsRobert Maynard2020-08-282-0/+2
| |
* | Merge topic 'vs-win-sdk-custom-max'Brad King2020-08-261-0/+1
|\ \ | | | | | | | | | | | | | | | | | | ba497111f6 VS: Add option for custom Win10 SDK version maximum Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5150
| * | VS: Add option for custom Win10 SDK version maximumjonathan molinatto2020-08-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 83ddc4d289 (VS: Do not select a Windows SDK too high for current VS version, 2017-08-07, v3.13.0-rc1~72^2~2) we enforce a maximum SDK version for the VS 2015 generator. The blog post linked in the original commit is no longer available, but it can be seen here: * https://web.archive.org/web/20190108032520/https://blogs.msdn.microsoft.com/chuckw/2018/10/02/windows-10-october-2018-update/ In particular, it states: > VS 2015 Users: The Windows 10 SDK (15063, 16299, 17134, 17763) > is officially only supported for VS 2017. However, in some circumstances a higher version can be used. Add a `CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM` to override the generator's default maximum SDK version. Fixes: #20633
* | | cmTarget: Raise error if imported target location is not setRaul Tambre2020-08-211-0/+1
|/ / | | | | | | | | | | | | | | Previously we would synthesize <TARGET_NAME>-NOTFOUND as the location. This would then end up on the link line and cause build failures. Policy CMP0110 is added to control this behaviour. Fixes #19080, #19943.
* | Merge topic 'buildsystem_documentation_update'Brad King2020-08-191-5/+15
|\ \ | | | | | | | | | | | | | | | | | | cfcb71c530 Help: Update cmake-buildsystem documentation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5123
| * | Help: Update cmake-buildsystem documentationJoseph Snyder2020-08-181-5/+15
| |/ | | | | | | | | | | | | | | | | | | | | Add additional information to the cmake-buildsystem manual: * Add link to "Generator Expressions" in a place which demonstrates a generator expression without linking to what they are. * Update "diagnostic message" for "Compatible Interface Properties" to contain an example of the message sent. * Add information about the macOS FRAMEWORK_VERSION and how "A" is the conventional value to use.
* | Merge topic 'add_test-special-chars-in-name'Brad King2020-08-171-1/+2
|\ \ | | | | | | | | | | | | | | | | | | a20987732b add_test: Allow special characters in test name (w/ policy CMP0110) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5076
| * | add_test: Allow special characters in test name (w/ policy CMP0110)Deniz Bahadir2020-08-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Restore the change from commit f84af8e270 (add_test: Allow special characters in test name, 2020-05-16, v3.18.0-rc1~142^2) that had to be reverted by commit f84af8e270 (add_test: Allow special characters in test name, 2020-05-16, v3.18.0-rc1~142^2) for compatibility. Add policy CMP0110 to make the change in a compatible way. Also, support even more characters than before by generating the test scripts using bracket arguments around the test names. Fixes: #19391 Signed-off-by: Deniz Bahadir <dbahadir@benocs.com>
* | | Add option to optimize link dependencies for static librariesKyle Edwards2020-08-122-0/+2
|/ / | | | | | | | | | | | | | | | | Add an `OPTIMIZE_DEPENDENCIES` target property and supporting `CMAKE_OPTIMIZE_DEPENDENCIES` variable to optionally enable pruning and flattening of outgoing dependencies from static libraries. Since they do not actually link, they only depend on side effects of their dependencies. Therefore we can drop dependencies that contribute no side effects.
* | Merge topic 'build-interface-targets'Brad King2020-08-102-22/+23
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | bafa9fe887 fileapi: Add INTERFACE libraries with SOURCES to codemodel-v2 4391913133 Add INTERFACE libraries to generated buildsystem if they have SOURCES afb998704e Remove filtering of allowed INTERFACE library properties e7edba2baf Makefiles: Use IsInBuildSystem in global generator target type checks Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5078
| * | fileapi: Add INTERFACE libraries with SOURCES to codemodel-v2Brad King2020-08-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | INTERFACE libraries with SOURCES now appear in the generated buildsystem, so include them in the codemodel output too. We do not need to bump the `codemodel-v2` object kind minor version because that was already done in post-3.18 development by commit 7d6861f367 (fileapi: Extend codemodel targets with language standard, 2020-06-18). Fixes: #18608
| * | Add INTERFACE libraries to generated buildsystem if they have SOURCESBrad King2020-08-071-8/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | INTERFACE libraries were created with the intention of collecting usage requirements for use by other targets via `target_link_libraries`. Therefore they were not allowed to have SOURCES and were not included in the generated buildsystem. In practice, this has become limiting: * Header-only libraries do have sources, they just do not compile. Developers should be able to edit those sources (the header files) in their IDE. * Header-only libraries may need to generate some of their header files via custom commands. Some projects work around these limitations by pairing each interface library with an `add_custom_target` that makes the header files and custom commands appear in the generated buildsystem and in IDEs. Lift such limitations by allowing INTERFACE libraries to have SOURCES. For those with sources, add a corresponding build target to the generated buildsystem. Fixes: #19145
| * | Remove filtering of allowed INTERFACE library propertiesBrad King2020-08-031-13/+0
| |/ | | | | | | | | | | | | | | | | | | | | Previously we disallowed use of arbitrary properties on INTERFACE libraries. The goal was to future-proof projects using them by not allowing properties to be set that may affect their future inclusion in the generated buildsystem. In order to prepare to actually include INTERFACE libraries in the generated buildsystem, drop the filter and allow arbitrary properties to be set. Issue: #19145
* | Clang: Add support for passing VFS argumentsThomas Bernard2020-08-071-0/+1
|/
* Fix typos identified using codespellJean-Christophe Fillion-Robin2020-07-223-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See https://github.com/codespell-project/codespell#readme The following command was used: ``` codespell -q6 --skip="\ .git,\ *.json,\ ./Copyright.txt,\ ./Help/command/foreach.rst,\ ./Help/prop_test/REQUIRED_FILES.rst,\ ./Help/variable/CTEST_COVERAGE_COMMAND.rst,\ ./Modules/CMakeCheckCompilerFlagCommonPatterns.cmake,\ ./Modules/CMakeRCInformation.cmake,\ ./Modules/Internal/CPack/NSIS.template.in,\ ./Modules/FindMatlab.cmake,\ ./Modules/MatlabTestsRedirect.cmake,\ ./Modules/Platform/Windows-Clang.cmake,\ ./Modules/Platform/Windows-Intel-Fortran.cmake,\ ./Modules/Platform/Windows-MSVC.cmake,\ ./Source/CMakeVersion.cmake,\ ./Source/cmConvertMSBuildXMLToJSON.py,\ ./Source/cmCreateTestSourceList.cxx,\ ./Source/cmGlobalVisualStudio10Generator.cxx,\ ./Source/cmExportBuildFileGenerator.cxx,\ ./Source/cmExportInstallAndroidMKGenerator.cxx,\ ./Source/cmExportInstallFileGenerator.cxx,\ ./Source/cmExportSet.cxx,\ ./Source/cmExportTryCompileFileGenerator.cxx,\ ./Source/cmFindPackageCommand.cxx,\ ./Source/cmInstallCommand.cxx,\ ./Source/cmGeneratorExpressionLexer.cxx,\ ./Source/cmLocalVisualStudio7Generator.cxx,\ ./Source/cmOrderDirectories.cxx,\ ./Source/cmTarget.cxx,\ ./Source/kwsys/*,\ ./Source/QtDialog/CMakeSetupDialog.ui,\ ./Source/CPack/WiX/cmWIXRichTextFormatWriter.cxx,\ ./Source/CTest/cmParseCoberturaCoverage.h,\ ./Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/English.license.rtf,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/German.license.txt,\ ./Tests/RunCMake/CPack/tests/DMG_SLA/German.menu.txt,\ ./Tests/RunCMake/GoogleTest/xml_output.cpp,\ ./Tests/RunCMake/Make/TargetMessages*,\ ./Utilities/*,\ " \ -L "\ dependees,\ endwhile,\ fo,\ filetest,\ helpfull,\ nd,\ objext,\ stoll,\ supercedes,\ superceded,\ vas,\ varn,\ " ```