summaryrefslogtreecommitdiffstats
path: root/Source/cmDocumentVariables.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'rpath-use-implicit-link-dirs'Brad King2013-02-151-0/+3
|\ | | | | | | | | | | | | 95a9c80 Merge topic 'LINK_LIBRARIES-property' into rpath-use-implicit-link-dirs baa33ac AIX-GNU: Put implicit link directories in runtime libpath (#13909) 171b099 Avoid duplicate RPATH entries
| * Merge topic 'LINK_LIBRARIES-property' into rpath-use-implicit-link-dirsBrad King2013-02-141-1/+27
| |\ | | | | | | | | | Resolve a logical conflict in the signature of cmTarget::GetLinkClosure.
| * | AIX-GNU: Put implicit link directories in runtime libpath (#13909)Brad King2013-02-141-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The GNU compiler front-ends on AIX invoke the linker with flags of the form "-L/path/to/gnu/runtime/lib" to tell ld where to find the language runtime libraries. They depend on the default libpath behavior documented in "man ld" to add the -L paths also to the runtime libpath so the dynamic loader can find the language runtime libraries. This differs from platforms whose linkers have distinct -rpath flags that non-system compilers can use to tell the dynamic loader where to find their language runtime libraries. Since commit 96fd5909 (Implement linking with paths to library files, 2008-01-22) CMake always passes "-Wl,-blibpath:" followed by any project-defined RPATH plus "/usr/lib:/lib" in order to explicitly set the runtime libpath and avoid getting all the project -L paths in the runtime libpath. The explicit libpath prevents the GNU compiler runtime library -L paths from being placed in the libpath and then the dynamic loader fails to find the language runtime libraries. CMake already detects the implicit link directories for each language since commit 07ea19ad (Implicit link info for C, CXX, and Fortran, 2009-07-23). Add the implicit link directories to the explicit runtime libpath for GNU compilers on AIX to fix this use case.
* | | Merge topic 'minor-fixes'Brad King2013-02-111-3/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ba48e63 Generate config-specific interface link libraries propeties. deb51a7 Remove unused forward declarations. 9712362 Don't allow utility or global targets in the LINKED expression. faa927e Make sure INTERFACE properties work with OBJECT libraries. 510fdcb Whitelist target types in target_{include_directories,compile_definitions} 4de7178 Ensure that the build interface includes have been added. df74bc3 Only append build interface include dirs to particular targets. d4e5c67 Don't keep track of content determined by target property values. 1fb545a Move a special case for PIC from the genex to the cmTarget code. 57175d5 Only use early evaluation termination for transitive properties. 4cf161a Fix determination of evaluating link libraries. 3a298c0 Fix generation of COMPILE_DEFINITIONS in DependInfo.cmake. 655e98b Ensure type specific compatible interface properties do not intersect. 46e2896 The COMPATIBLE_INTERFACE does not affect the target it is set on. 5f926a5 Test printing origin of include dirs from tll(). 7c0ec75 De-duplicate validation of genex target names. ...
| * | | Only append build interface include dirs to particular targets.Stephen Kelly2013-02-071-3/+4
| | | | | | | | | | | | | | | | We shouldn't set the property on all custom targets.
* | | | Xcode: Implement generator toolset selection (#9831, #13802)Brad King2013-02-071-0/+9
| | | | | | | | | | | | | | | | | | | | Implement generator toolset selection (cmake -T) for Xcode > 2.0 by adding the GCC_VERSION build setting to project files.
* | | | CMake: Add -T option to choose a generator toolsetBrad King2013-02-071-0/+8
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reject the option by default. It will be implemented on a per-generator basis. Pass the setting into try_compile project generation. Add cache entry CMAKE_GENERATOR_TOOLSET and associated variable documentation to hold the value persistently. Add a RunCMake.GeneratorToolset test to cover basic "-T" option cases. Verify that CMAKE_GENERATOR_TOOLSET is empty without -T, that -T is rejected when the generator doesn't support it, and that two -T options are always rejected.
* | | Add CMAKE_BUILD_INTERFACE_INCLUDES build-variable.Stephen Kelly2013-01-081-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes set(CMAKE_BUILD_INTERFACE_INCLUDES ON) add the equivalent of set_property(TARGET tgt APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR};${CMAKE_CURRENT_BINARY_DIR}> ) to every target. If the headers are in CMAKE_CURRENT_SOURCE_DIR, and the generated headers are in CMAKE_CURRENT_BINARY_DIR, this is a convenient way to build a target bar, which depends on foo, just by using target_link_libraries() and adding the INTERFACE_INCLUDE_DIRECTORIES to the INCLUDE_DIRECTORIES of the target being linked. There will be more-convenient porcelain API to consume the property in the future.
* | | Merge topic 'osx-implicit-link-dirs'Brad King2013-01-071-0/+9
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | cc676c3 OS X: Detect implicit linker framework search paths 2dd67c7 OS X: Detect implicit link directories on modern toolchains ba58d0c OS X: Link with all framework search paths, not just the last
| * | OS X: Detect implicit linker framework search pathsBrad King2012-12-111-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we hard-coded a list of implicit framework directories but did not account for CMAKE_OSX_SYSROOT or for changes to the list across OS X versions. Instead we should automatically detect the framework directories for the active toolchain. The parent commit added the "-Wl,-v" option to ask "ld" to print its implicit directories. It displays a block such as: Framework search paths: /... Parse this block to extract the list of framework directories. Detection may fail on toolchains that do not list their framework directories, such as older OS X linkers. Always treat the paths <sdk>/Library/Frameworks <sdk>/System/Library/Frameworks <sdk>/Network/Library/Frameworks # Older OS X only /System/Library/Frameworks as implicit. Note that /System/Library/Frameworks should always be considered implicit so that frameworks CMake finds there will not override the SDK copies.
* | | Add a way to print the origins of used include directories.Stephen Kelly2013-01-031-0/+9
| | |
* | | Documentation: Clarify handling of implicit link directoriesBrad King2012-12-111-1/+9
|/ / | | | | | | | | | | | | | | Extend documentation for CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES to explain how it is used by CMake and how it can be influenced by environment variables. Inspired-by: Alex Neundorf <neundorf@kde.org>
* | Optionally skip link dependencies on shared library filesBrad King2012-10-261-0/+9
|/ | | | | | | Add target property LINK_DEPENDS_NO_SHARED and initialization variable CMAKE_LINK_DEPENDS_NO_SHARED to enable this behavior. Suggested-by: Leif Walsh <leif.walsh@gmail.com>
* Merge topic 'documentation-cleanup'Brad King2012-10-011-2/+4
|\ | | | | | | | | | | | | | | | | | | 4ad0233 Remove period at the end of the check message. 50b1ea5 Fix minor typos. 19c3206 Remove unused parameter marker and the unused parameter. 9d462b2 Document that generator expressions can be used in target properties. daf88c3 Fix punctuation in some variables documentation. 3172cde Fix the layout of the generator expression documentation.
| * Fix punctuation in some variables documentation.Stephen Kelly2012-09-291-2/+4
| |
* | Add PDB_OUTPUT_DIRECTORY and PDB_NAME target properties (#10830)Yuchen Deng2012-09-251-0/+9
|/ | | | | | | This enables changing the name and output folder of the debug symbol files produced by MS compilers. Inspired-by: Thomas Bernard <thomas.bernard@ipetronik.com>
* add documentation for all MSVCxxx version variables (#12567)Rolf Eike Beer2012-09-181-6/+30
|
* Merge topic 'msvc-compiler-info'Brad King2012-08-301-6/+0
|\ | | | | | | | | | | | | | | 32b7c72 Merge branch 'cmake-platform-info-version' into msvc-compiler-info f3ddfef Modernize MSVC compiler information files 485a940 VS: Simplify MSVC version reporting 32db033 VS: Remove support for "free" version 2003 tools
| * VS: Remove support for "free" version 2003 toolsBrad King2012-08-231-6/+0
| | | | | | | | | | | | | | Several more recent Visual Studio Express editions are now available and they support debug builds. Simplify our VS platform files by removing support for these old tools. If anyone still uses them we can restore support with a more modern way to test for them.
* | Merge topic 'ide-compiler-id'David Cole2012-08-241-5/+37
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | 403ead6 Document CMAKE_<LANG>_COMPILER_(ID|VERSION) values 8be51f6 Test variables CMAKE_(C|CXX|Fortran)_COMPILER(|_ID|_VERSION) ec22a9b Cleanly enable a language in multiple subdirectories 66cb335 VS: Detect the compiler id and tool location 89595d6 VS10: Define CMAKE_VS_PLATFORM_TOOLSET variable 965a69d Xcode: Detect the compiler id and tool location 9a9e1ee CMakeDetermineCompilerId: Prepare to detect IDE compiler id b8b5c83 Re-order C/C++/Fortran compiler determination logic
| * Document CMAKE_<LANG>_COMPILER_(ID|VERSION) valuesBrad King2012-08-221-5/+27
| | | | | | | | | | These values are now available almost everywhere and are tested. Document them for general use and list possible ID values.
| * VS10: Define CMAKE_VS_PLATFORM_TOOLSET variableBrad King2012-08-221-0/+10
| | | | | | | | | | When the VS 10 generator selects a non-default PlatformToolset to specify for MSBuild, report the selected name in this variable.
* | Merge topic 'pic-docs'David Cole2012-08-241-1/+1
|\ \ | | | | | | | | | | | | c82fbe0 Fix unfortunate documentation error for PIC feature.
| * | Fix unfortunate documentation error for PIC feature.Stephen Kelly2012-08-201-1/+1
| |/ | | | | | | | | The wrong variable is documented, and it is not referred to in the target-specific property.
* | Merge topic 'minor-docs-fixes'David Cole2012-08-241-3/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | ee949d8 Remove duplicate 'of' from docs. ecc1acb Remove incorrect doc string for link type enum 805f5e5 Fix some typos in the docs. 389d423 Add missing whitespace to docs.
| * | Fix some typos in the docs.Stephen Kelly2012-08-191-3/+3
| |/ | | | | | | | | | | s/static the static/the static/ Make Visual Studio capitalized.
* | Enhance DESTDIR documentation. Fixes #0012374.Eric NOULARD2012-08-141-1/+15
|/
* Clean up documentation formatting so that it is rendered properly in HTML.Zack Galbreath2012-08-031-3/+3
|
* fix 2 space bugs in variable documentationRolf Eike Beer2012-06-271-2/+2
|
* Refactor generation of shared library flagsStephen Kelly2012-06-121-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | CMAKE_SHARED_LIBRARY_<lang>_FLAGS has flags on various platforms for a variety of purposes that are correlated with shared libraries but not exclusive to them. Refactor generation of these flags to use new purpose-specific platform variables CMAKE_<lang>_COMPILE_OPTIONS_DLL CMAKE_<lang>_COMPILE_OPTIONS_PIC CMAKE_<lang>_COMPILE_OPTIONS_PIE Activate the DLL flags specifically for shared libraries. Add a new POSITION_INDEPENDENT_CODE target property to activate PIC/PIE flags, and default to true for shared libraries to preserve default behavior. Initialize the new property from CMAKE_POSITION_INDEPENDENT_CODE to allow easy global configuration in projects. Although the default behavior is unchanged by this refactoring, the new approach ignores CMAKE_SHARED_LIBRARY_<lang>_FLAGS completely. We must leave it set in case projects reference the value. Furthermore, if a project modifies CMAKE_SHARED_LIBRARY_<lang>_FLAGS it expects the new value to be used. Add policy CMP0018 to handle compatibility with projects that modify this platform variable. Add a PositionIndependentCode test on platforms where we can get meaningful results.
* Merge topic 'CPackNSIS-warnDESTDIRandABSOLUTE'David Cole2012-05-241-0/+30
|\ | | | | | | | | | | | | | | 4986d52 Use CPACK_xxx and CMAKE_xxx in a consistent way. f90223c Fix KWStyle warning 47f0dbd CPack add necessary check to detect/warns/error on ABSOLUTE DESTINATION 6ba055b CPack add easy possibility to warn about CPACK_SET_DESTDIR
| * Use CPACK_xxx and CMAKE_xxx in a consistent way.Eric NOULARD2012-05-201-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CMAKE_xxx vars are now used in the CMake-generated cmake_install.cmake script while CPACK_xxx equivalent vars are used from within CPack. CPack is responsible for getting/forwarding definitions of CPACK_xxxx var corresponding to CMAKE_xxxx when invoking CMake-generated install scripts. As a consequence: CMAKE_ABSOLUTE_DESTINATION_FILES CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION may be used from outside CPack as well. e.g. cmake -DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=1 -P cmake_install.cmake works as expected.
* | -add docs for ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME}Alex Neundorf2012-05-141-0/+10
|/ | | | Alex
* Merge topic 'skip-install-rpath'David Cole2012-03-061-1/+17
|\ | | | | | | | | 635bf50 Add an option to skip RPATH during installation.
| * Add an option to skip RPATH during installation.Stephen Kelly2012-03-051-1/+17
| |
* | Add default initializers for WIN32_EXECUTABLE and MACOSX_BUNDLEStephen Kelly2012-03-051-0/+16
| | | | | | | | | | | | | | | | | | | | This allows downstreams to use set(CMAKE_WIN32_EXECUTABLE ON) set(CMAKE_MACOSX_BUNDLE ON) to create executables with the WIN32_EXECUTABLE and MACOSX_BUNDLE properties set on by default.
* | Merge topic 'find_package-improve-messages'David Cole2012-03-021-0/+20
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eeaaffc find_package: Test error and warning messages in failure cases 52dffb9 Merge branch 'test-CMakeCommands' into find_package-improve-messages d365104 find_package: Optionally warn when implicitly using Config mode 31ead5f find_package: Reject mixed use of MODULE- and CONFIG-only options 6d83083 find_package: mention requested version number in error message 9c39bbd find_package: add CONFIG mode keyword alias for NO_MODULE f310f67 find_package: add MODULE mode to use only Find-modules 7d67dcf find_package: improve error message when no Find module is present 978d89b find_package: rename NoModule to UseFindModules
| * | find_package: Optionally warn when implicitly using Config modeBrad King2012-02-281-0/+20
| |/ | | | | | | | | | | | | | | | | | | | | Define variable CMAKE_FIND_PACKAGE_WARN_NO_MODULE for use by a project that wants to use an explicit mode in every call to find_package in order to generate more specific failure messages. Word the warning using the new CONFIG and MODULE mode keywords when the minimum required version of CMake is new enough to have them. Otherwise word the warning using the old NO_MODULE mode keyword. Inspired-by: Alex Neundorf <neundorf@kde.org>
* | Fix typo in documentationYury G. Kudryashov2012-02-271-1/+1
|/
* Add whitespace after '.' in CMAKE_SKIP_RPATH docs.Stephen Kelly2012-01-311-1/+1
|
* Merge topic 'compiler-version'David Cole2012-01-171-0/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0df1942 Detect SGI MIPSpro compiler version with its id a5e892c Document compiler version macro formats used for detection d7c6f41 Detect HP compiler version with its id 3dd9fa9 Detect SunPro compiler version with its id c198730 Detect Watcom compiler version with its id 5899b98 Detect Clang compiler version with its id b8cfa65 Detect PGI compiler version with its id 6dae666 Detect IBM XL compiler version with its id 4080d55 Detect Borland compiler version with its id 2cc205a Detect Intel compiler version with its id (#11937) a6d83cc Detect MSVC compiler version with its id a662855 Detect GNU compiler version with its id (#6251) fa7141f Add framework to detect compiler version with its id (#12408)
| * Add framework to detect compiler version with its id (#12408)Brad King2011-12-071-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach CMakePlatformId.h to construct an "INFO:compiler_version[]" string literal from macros COMPILER_VERSION_(MAJOR|MINOR|PATCH|TWEAK) to be defined in CMake(C|CXX)CompilerId.(c|cpp) for each compiler. Provide conversion macros DEC() and HEX() to decode decimal or hex digits from integer values. Parse the version out of the compiler id binary along with the other INFO values already present. Store the result in variable CMAKE_<LANG>_COMPILER_VERSION in the format "major[.minor[.patch[.tweak]]]". Save the value persistently in CMake(C|CXX)Compiler.cmake in the build tree. Document the variable for internal use since we do not set it everywhere yet. Report the compiler version on the compiler id result line e.g. The C compiler identification is GNU 4.5.2 Report CMAKE_(C|CXX)_COMPILER_(ID|VERSION) in SystemInformation test.
* | automoc: default to strict mode, use CMAKE_AUTOMOC_RELAXED_MODEAlex Neundorf2011-12-131-5/+4
| | | | | | | | | | | | | | | | | | automoc now defaults to strict mode, also with Qt4, i.e. it behaves as the documentation says by default. I also inverted the switch CMAKE_AUTOMOC_STRICT_MODE to CMAKE_AUTOMOC_RELAXED_MODE. Docs and test adapted accordingly. Alex
* | Merge branch 'master' into AutomocIncludedDotMocFileHandlingDavid Cole2011-12-071-0/+20
|\ \ | | | | | | | | | | | | Conflicts: Source/cmTarget.cxx
| * | Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .libBrad King2011-12-051-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach the Windows-GNU.cmake platform file to look for Visual Studio tools matching the target ABI. Add an extra step to the link command for shared libraries and executables that export symbols and on which a new GNUtoMS property is set (initialized by the CMAKE_GNUtoMS option). Tell the GNU linker to output a module definition (.def) file listing exported symbols in addition to the GNU-format import library (.dll.a). Pass the .def file to the MS "lib" tool to construct a MS-format DLL import library (.lib). Teach the install(TARGETS) command to install the MS import library next to the GNU one. Teach the install(EXPORT) and export() command to set the IMPORTED_IMPLIB property pointing at the import library to use the import library matching the tools in the importing project.
| * | Load platform files that need to know the ABI when possibleBrad King2011-12-051-0/+2
| |/ | | | | | | | | | | | | | | Load platform files named in CMAKE_<lang>_ABI_FILES for each language once the ABI sizeof(void*) is known. During the first configuration this is after the test for working compiler and ABI detection checks. During later configurations the ABI information is immediately available because it has been saved in CMake<lang>Compiler.cmake.
| * Merge topic 'AddMocOptionsToAutomoc'David Cole2011-11-081-0/+9
| |\ | | | | | | | | | | | | | | | 2c648ab add documentation for the AUTOMOC_MOC_OPTIONS property 52719a1 automoc: fix #12541, support moc options
| | * add documentation for the AUTOMOC_MOC_OPTIONS propertyAlex Neundorf2011-11-011-0/+9
| | | | | | | | | | | | Alex
* | | automoc: add documentation for CMAKE_AUTOMOC_STRICT_MODEAlex Neundorf2011-12-061-0/+14
|/ / | | | | | | Alex
* | Fix old reference to CMAKE_MAKE_PROGRAM inside CMAKE_BUILD_TOOL doc.Eric NOULARD2011-10-301-1/+1
|/