summaryrefslogtreecommitdiffstats
path: root/Help/variable
Commit message (Collapse)AuthorAgeFilesLines
* Do not warn by default when policy CMP0025 or CMP0047 is not setBrad King2014-04-021-0/+17
| | | | | | | | | | | | | | | | | | | | | These policies are triggered by the use of a particular compiler rather than outdated CMake code in a project. Avoid warning in every project that enables a language by not displaying the policy warning by default. Add variable CMAKE_POLICY_WARNING_CMP<NNNN> to control the warning explicitly; otherwise enable the warning with --debug-output or --trace. This breaks with strict policy convention because it does not provide developers with any warning about the behavior change by default. Existing projects will continue to build without a warning or change in behavior. When a developer changes the minimum required version of CMake in a project to a sufficiently high value (3.0), the project will suddenly get the new compiler id and may break, but at least the breakage comes with a change to the project rather than the version of CMake used to build it. Breaking strict policy convention is worthwhile in this case because very few projects will be affected by the behavior change but every project would have to see the warning if it were enabled by default.
* Merge branch 'doc-osx-path-variables' into releaseBrad King2014-03-102-0/+11
|\
| * Help: Document variables CMAKE_APPBUNDLE_PATH and CMAKE_FRAMEWORK_PATHBrad King2014-03-102-0/+11
| |
* | Change version scheme to use only two components for feature levelsBrad King2014-02-192-9/+20
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Historically CMake used three version components for the feature level. We released new features while incrementing only the third version component. Since commit v2.8.2~105^2~4 (New version scheme to support branchy workflow, 2010-04-23) we used the fourth version component for bug-fix releases and the development date: <major>.<minor>.<patch>[.<tweak>][-rc<n>] = Release <major>.<minor>.<patch>.<date>[-<id>] = Development This solidified use of three components for the feature level, and was necessary to continue releasing 2.x versions because: * Some existing projects performed floating-point comparisons of ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} to 2.x numbers so ``x`` could never be higher than 9. * Version 2.9.<date> was used briefly in post-2.8.0 development in CVS prior to the transition to Git, so using it in releases may have caused confusion. Now that we are moving to 3.x versions, these two restrictions go away. Therefore we now change to use only two components for the feature level and use the scheme: <major>.<minor>.<patch>[-rc<n>] = Release <major>.<minor>.<date>[-<id>] = Development
* Help: Expand documentation of CMAKE_VERSION and related variablesBrad King2014-02-055-20/+50
| | | | | | | | | | | Describe the meaning of each version component in more detail in the documentation of CMAKE_VERSION. Simplify the per-component version variable documentation by referencing the main variable. Include information about how to compare version strings. Also add an historical note about the version scheme used prior to commit v2.8.2~105^2~4 (New version scheme to support branchy workflow, 2010-04-23).
* project: Manage VERSION variablesBrad King2014-01-2910-0/+62
| | | | | | | | | | | | | | | | Teach the project() command to set variables {PROJECT,<PROJECT-NAME>}_VERSION{,_MAJOR,_MINOR,_PATCH,_TWEAK} holding the project version number and its components. Add project() command option "VERSION" to specify the version explicitly, and default to the empty string when it is not given. Since this clears variables when no VERSION is given, this may change behavior for existing projects that set the version variables themselves prior to calling project(). Add policy CMP0048 for compatibility. Suggested-by: Alex Neundorf <neundorf@kde.org>
* Help: Format project command and variable documentationBrad King2014-01-296-9/+15
| | | | Also add document for CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE variable.
* Help: Document CMAKE_OSX_* variablesBrad King2014-01-164-0/+42
| | | | | | | | | | Add documentation entries for variables CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT Explain what each does and when/how they should be set.
* Merge topic 'optional-install'Brad King2014-01-091-0/+7
|\ | | | | | | | | be0458c InstallRules: added new variable to disable generation of install rules
| * InstallRules: added new variable to disable generation of install rulesNils Gladitz2014-01-081-0/+7
| | | | | | | | | | | | The boolean variable CMAKE_SKIP_INSTALL_RULES allows disabling generation of install rules for projects which don't want them.
* | Help: Reformat Qt autogenerator documentation.Stephen Kelly2014-01-047-14/+13
| |
* | Merge topic 'rpath-default'Brad King2014-01-021-0/+7
|\ \ | |/ |/| | | | | d25ad48 OS X: Add CMP0042 to enable MACOSX_RPATH by default
| * OS X: Add CMP0042 to enable MACOSX_RPATH by defaultClinton Stimpson2014-01-021-0/+7
| | | | | | | | | | Also adding documentation for CMAKE_MACOSX_RPATH, and improving documentation for MACOSX_RPATH.
* | Help: Clarify CMAKE_VERBOSE_MAKEFILE initialization (#14658)Brad King2013-12-191-4/+5
| | | | | | | | | | Explain that it is initialized to false by the project() command and intended for configuration by the end user performing a build.
* | Help: Note that COMPATIBLE_INTERFACE_ properties may be origin-debugged.Stephen Kelly2013-12-131-3/+5
|/ | | | Link to other properties mentioned in the docs already.
* Merge topic 'cleanup-build-commands'Brad King2013-12-054-0/+41
|\ | | | | | | | | | | e420124 CMakeDetermineCompilerId: Use CMAKE_VS_(DEVENV|MSBUILD|MSDEV)_COMMAND 0c55729 VS: Add CMAKE_VS_(DEVENV|MSBUILD|MSDEV)_COMMAND variables
| * VS: Add CMAKE_VS_(DEVENV|MSBUILD|MSDEV)_COMMAND variablesBrad King2013-12-044-0/+41
| | | | | | | | | | | | | | | | Since commit 5f5c92b9 (VS: Add internal APIs to find MSBuild, devenv/VCExpress, and msdev, 2013-11-13) the VS generators have known how to lookup the locations of their build tools directly. Expose this information to CMake language code by defining new variables to hold the paths to these tools.
* | Merge topic 'cmake-toolchains-manual'Brad King2013-12-0310-3/+52
|\ \ | | | | | | | | | | | | | | | | | | c45b5ce Help: Add cmake-toolchains.7 manual 3e3f8b4 Help: Document the CMAKE_FIND_ROOT_PATH* variables. 531c108 Help: Document the CMAKE_TOOLCHAIN_FILE.
| * | Help: Document the CMAKE_FIND_ROOT_PATH* variables.Stephen Kelly2013-11-276-0/+40
| | | | | | | | | | | | | | | Add a replacement template for the variables, and link to them from the documentation for the find_* commands.
| * | Help: Document the CMAKE_TOOLCHAIN_FILE.Stephen Kelly2013-11-274-3/+12
| | | | | | | | | | | | Link to the new docs from existing references to the variable.
* | | Merge topic 'doc-pdb-not-for-static-libs'Brad King2013-12-022-3/+15
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | c0897cf Help: Document PDB behavior w.r.t. static libraries explicitly (#14600) 09c05f3 Help: Format PDB_NAME and PDB_OUTPUT_DIRECTORY documentation cb7b907 Help: Document CMAKE_PDB_OUTPUT_DIRECTORY_<CONFIG> variable
| * | | Help: Document PDB behavior w.r.t. static libraries explicitly (#14600)Brad King2013-12-022-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | Document PDB_NAME and PDB_OUTPUT_DIRECTORY as applying only to shared libraries and executables. Add an explicit note to explain why they do not work for static libraries.
| * | | Help: Format PDB_NAME and PDB_OUTPUT_DIRECTORY documentationBrad King2013-12-021-2/+2
| | | | | | | | | | | | | | | | Add reStructuredText inline markup.
| * | | Help: Document CMAKE_PDB_OUTPUT_DIRECTORY_<CONFIG> variableBrad King2013-12-021-0/+10
| |/ /
* | | QtAutoUic: Add INTERFACE_AUTOUIC_OPTIONS target property.Stephen Kelly2013-11-271-2/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Transitively consume the property from linked dependents. Implement configuration-specific support by following the pattern set out for compile definitions and includes in cmQtAutoGenerators. Implement support for origin-tracking with CMAKE_DEBUG_TARGET_PROPERTIES. This is motivated by the needs of KDE, which provides a separate translation system based on gettext instead of the Qt linguist translation system. The Qt uic tool provides command line options for configuring the method used to translate text, and to add an include directive to the generated file to provide the method. http://thread.gmane.org/gmane.comp.kde.devel.frameworks/7930/focus=7992 Implement the interface to provide the uic options as a usage-requirement on the KI18n target, as designed for KDE.
* | Ninja: job pool support for compiling and linkingPeter Kümmel2013-11-252-0/+12
| | | | | | | | | | Could be tested by setting the environment variable NINJA_STATUS=[%r]
* | Introduce CMAKE_STAGING_PREFIX variable.Stephen Kelly2013-11-213-5/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This variable can be useful in cross-compiling contexts where the sysroot is read-only or where the sysroot should otherwise remain pristine. If the new CMAKE_STAGING_PREFIX variable is set, it is used instead of CMAKE_INSTALL_PREFIX when generating the installation rules in cmake_install.cmake. This way, the CMAKE_INSTALL_PREFIX variable always refers to the installation prefix on the target device, regardless of whether host==target. If any -rpath paths passed to the linker contain the CMAKE_STAGING_PREFIX, the matching path fragments are replaced with the CMAKE_INSTALL_PREFIX. Matching paths in the -rpath-link are not transformed. The cross-prefix usr-move workaround is assumed not to require extension regarding CMAKE_STAGING_PREFIX. The staging area is a single prefix, so there is no scope for cross-prefix symlinks. The CMAKE_INSTALL_PREFIX is still used to determine the workaround path, and that variable remains the relevant one even if CMAKE_STAGING_PREFIX is used. If the generated export files are deployed to the target, the workaround will still be in place, and still be employed if required.
* | Merge topic 'cross-compiling-toolchain-variables'Brad King2013-11-193-0/+36
|\ \ | |/ |/| | | | | | | | | | | 7cd65c9 Add CMAKE_SYSROOT variable to set --sysroot when cross compiling. 5096967 Allow toolchain files to specify an external toolchain. 76552d5 Add compiler target compile options. f41ecd1 CMakeDetermineCompilerId: Look for internal file only on host
| * Add CMAKE_SYSROOT variable to set --sysroot when cross compiling.Stephen Kelly2013-11-191-0/+12
| | | | | | | | | | | | | | | | | | | | As CMAKE_ROOT_FIND_PATH can be a list, a new CMAKE_SYSROOT is introduced, which is never a list. The contents of this variable is passed to supporting compilers as --sysroot. It is also accounted for when processing implicit link directories reported by the compiler, and when generating RPATH information.
| * Allow toolchain files to specify an external toolchain.Stephen Kelly2013-11-191-0/+13
| | | | | | | | | | | | | | | | | | Clang can compile code, but uses the gcc tools for other tasks such as linking. The -gcc-toolchain option can be used for that, but generalize so that other compilers can be treated the same. If such a location is specified, use it as a hint for finding the binutils executables.
| * Add compiler target compile options.Stephen Kelly2013-11-191-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For clang, this allows passing -target <triple> to the compiler, and for qcc, -V<arch> using toolchain files containing something like set(triple arm-linux-gnueabihf) set(CMAKE_C_COMPILER "/usr/bin/clang") set(CMAKE_C_COMPILER_TARGET ${triple}) set(CMAKE_CXX_COMPILER "/usr/bin/clang++") set(CMAKE_CXX_COMPILER_TARGET ${triple}) or set(arch gcc_ntoarmv7le) set(CMAKE_C_COMPILER /opt/qnx650/host/linux/x86/usr/bin/qcc) set(CMAKE_C_COMPILER_TARGET ${arch}) set(CMAKE_CXX_COMPILER /opt/qnx650/host/linux/x86/usr/bin/QCC) set(CMAKE_CXX_COMPILER_TARGET ${arch}) Both clang and qcc are inherently cross compiler( driver)s. When cross-compiling with clang, use the CMAKE_${lang}_COMPILER_TARGET as the _CMAKE_TOOLCHAIN_PREFIX to find the appropriate binutils. When cross-compiling with QNX qcc, use the CMAKE_${lang}_COMPILER_TARGET to set the appropriate _CMAKE_TOOLCHAIN_PREFIX.
* | Help: Document the CMAKE_MAKE_PROGRAM variable in more detailBrad King2013-11-181-6/+47
| | | | | | | | | | Explain how it is set for each group of generators. Also explain the build-time selection behavior used by Visual Studio generators.
* | Prefer CMAKE_MAKE_PROGRAM over CMAKE_BUILD_TOOL (#14548)Brad King2013-11-182-11/+9
|/ | | | | | | | | | | | | Historically these were both added for the Makefile and Visual Studio generators, respectively. Later the VS generators started using the CMAKE_MAKE_PROGRAM cache entry to find the IDE build tool, and the CMAKE_BUILD_TOOL was simply set as an alias. Fix the documentation to explain that CMAKE_MAKE_PROGRAM is the modern variable and that CMAKE_BUILD_TOOL is the compatibility alias, not the other way around. Replace uses of CMAKE_BUILD_TOOL with CMAKE_MAKE_PROGRAM in CMake-provided modules. Nothing needs to lookup CMAKE_BUILD_TOOL in the cache, so simply set it as a normal variable.
* Refactor tool selection for edit_cache (#14544)Brad King2013-11-121-1/+2
| | | | | | | | | Refactor edit_cache tool selection to ask each global generator for its preference. Teach the Ninja generator to always use cmake-gui because Ninja by design cannot run interactive terminal dialogs like ccmake. Teach the Makefile generator to use cmake-gui when also using an "extra" generator whose IDE has no terminal to run ccmake, and otherwise fall back to CMAKE_EDIT_COMMAND selection for normal Makefile build systems.
* Merge topic 'remove-cmake-i-wizard'Brad King2013-11-051-1/+1
|\ | | | | | | | | 0fa9aea Help: Drop mention of cmake -i wizard mode
| * Help: Drop mention of cmake -i wizard modeBrad King2013-11-041-1/+1
| | | | | | | | | | The parent commit removed support for this mode, so do not mention it in the documentation.
* | Add missing documentation for include dirs related variables. (#12611)Stephen Kelly2013-11-022-0/+16
| | | | | | | | | | Document CMAKE_INCLUDE_DIRECTORIES_BEFORE and CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE.
* | Allow disabling adding the install prefix to the prefix search path.Stephen Kelly2013-10-311-0/+13
| | | | | | | | | | | | | | In certain scenarios, it is preferable to keep a 'dirty' install prefix than to clear it, and to expect that content will not be found there. Add a CMAKE_FIND_NO_INSTALL_PREFIX variable that can be set to disable searching the install prefix.
* | Merge topic 'Qt-auto-generators'Brad King2013-10-284-0/+28
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9c87d9c Add automatic rcc invocation for Qt. 84218e1 Add automatic uic invocation for Qt. 94a0ca6 Record which files are skipped by automoc. 18fb758 Run the main executable created in the autogen tests. e485ba1 Rename the QtAutomoc tests to QtAutogen. 7ce65c3 Add extra checks for the AUTOMOC target property. 32771fc Update output messages for generic use. f371ab5 Rename RunAutomoc to RunAutogen. 85b3d6e Extract an SetupAutoMocTarget method. ca124a1 Rename the AutomocInfo.cmake file to be more generic. a342c9f Move some makefile definitions up away from moc-specific code. 98632ef Add the AUTOGEN_TARGETS_FOLDER and obsolete AUTOMOC_TARGETS_FOLDER. 63378ba Rename some variables to reflect broader scope. 97f1aa3 Rename method to reflect generic use. 4abb111 Rename local variable to reflect generic use. 03878c9 Move variable set to where it is used. ...
| * | Add automatic rcc invocation for Qt.Stephen Kelly2013-10-242-0/+14
| | | | | | | | | | | | | | | This replaces the need to invoke qt4_add_resources by allowing adding the source .qrc file directly to the target sources.
| * | Add automatic uic invocation for Qt.Stephen Kelly2013-10-242-0/+14
| |/ | | | | | | | | | | | | | | | | | | | | | | The source files are already processed by cmQtAutomoc to look for moc includes, so extend that to also look for ui_ includes and find corresponding .ui files to process. This replaces the need to invoke qt4_wrap_ui(). As the ui files are not likely to be part of the SOURCES of the target, store the options associated with them separately in the cmMakefile for querying during the autogen run.
* | Drop compatibility with CMake < 2.4Brad King2013-10-231-8/+1
|/ | | | | | | | | | | | Drop all behavior activated by setting CMAKE_BACKWARDS_COMPATIBILITY to a value lower than 2.4, and generate an error when projects or the user attempt to do so. In the error suggest using a CMake 2.8.x release. Teach cmake_minimum_required to warn about projects that do not require at least CMake 2.4. They are not supported by CMake >= 3.0. Replace the documentation of CMAKE_BACKWARDS_COMPATIBILITY with a reference to policy CMP0001.
* VS: Expose Intel Fortran .vfproj format version to CMake languageBrad King2013-10-181-0/+7
| | | | | | Lookup the Intel VS plugin version on demand in the VS global generator, compute the corresponding .vfproj format version number, and memoize it. Add it as a CMAKE_VS_INTEL_Fortran_PROJECT_VERSION platform definition.
* Convert builtin help to reStructuredText source filesKitware Robot2013-10-15218-0/+1977
Run the convert-help.bash script to convert documentation: ./convert-help.bash "/path/to/CMake-build/bin" Then remove it.