summaryrefslogtreecommitdiffstats
path: root/Modules
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'target_compile_features'Brad King2014-04-158-1/+163
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9eaf3755 Export: Populate INTERFACE_COMPILE_FEATURES property. 8ed59fc2 Add target_compile_features command. 4e6ca504 cmTargetPropCommandBase: Change the interface to return bool. 5412dede cmTarget: Transitively evaluate compiler features. baff4434 cmTarget: Allow populating COMPILE_FEATURES using generator expressions. f97bf437 Features: Add cxx_auto_type. 03355d6b cmTarget: Add COMPILE_FEATURES target property. faeddf64 project: Add infrastructure for recording CXX compiler features 913394af cmTarget: Add CXX_STANDARD and CXX_EXTENSION target properties. 8238a6cd Add some COMPILE_OPTIONS for specifying C++ dialect. 892243fc Tests: Require CMake 3.0 for the SystemInformation test. 59b5fdd3 Don't load Clang-CXX from AppleClang-CXX.
| * Features: Add cxx_auto_type.Stephen Kelly2014-04-072-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Record the availability of this feature for GNU 4.8 on (UNIX AND NOT APPLE) only. In the future, availability can be recorded for earlier GNU, for other platforms and for other compilers. Initially the affected configurations are as restricted as possible to allow for easy testing while extending the features vector in only one dimension. The error message when using the set_property API directly is not very good, but follow up commits will provide origin debugging of the property and a target_compile_features command which will provide a configure-time backtrace when possible.
| * project: Add infrastructure for recording CXX compiler featuresStephen Kelly2014-04-074-0/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a feature test using the compiler macros and the preprocessor to determine available features. Add a CMAKE_CXX_COMPILE_FEATURES variable which contains all features known to the loaded compiler, and a CMAKE_CXX_KNOWN_FEATURES variable containing all features known to CMake. Add language standard specific variables for internal use to determine the standard-specific compile flags to use. This will be extended to other languages in the future. Follow-up commits will add features which will be recorded by the feature test.
| * Add some COMPILE_OPTIONS for specifying C++ dialect.Stephen Kelly2014-04-072-0/+26
| | | | | | | | | | These are compiler-specific, compiler version specific, extension specific and standard version specific.
| * Don't load Clang-CXX from AppleClang-CXX.Stephen Kelly2014-04-072-1/+11
| | | | | | | | | | The Clang-CXX module is going to get version-specific checks, and the version system for AppleClang is not the same as Clang.
* | Merge topic 'mingw-archive-no-replace'Brad King2014-04-151-2/+2
|\ \ | | | | | | | | | | | | 39d0ade0 Windows-GNU: Support duplicate object names in large archives (#14874)
| * | Windows-GNU: Support duplicate object names in large archives (#14874)Brad King2014-04-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v2.6.0~388 (Added build rule variables CMAKE_<LANG>_ARCHIVE_..., 2008-01-29) we use separate "ar cr ..." and "ar r ..." steps to incrementally add a large list of object files to an archive. Since the "r" command replaces existing objects of the same name in an archive, if multiple objects have the same file name and appear in separate append steps then one overwrites the other. Instead, use "ar cq ..." and "ar q ..." to always append to the archive. We already remove the archive before creating it so this will not cause objects to be appended to existing archives on incremental rebuilds.
| * | Merge branch 'rc-windres-with-dot' into releaseBrad King2014-04-111-5/+6
| |\ \
| * \ \ Merge branch 'Fortran-pgi-intel-arch' into releaseBrad King2014-04-101-0/+4
| |\ \ \
| * \ \ \ Merge branch 'CMakeDetermineVSServicePack-vs-11-update-4' into releaseBrad King2014-04-101-41/+17
| |\ \ \ \
* | \ \ \ \ Merge topic 'matches-cleanup'Brad King2014-04-1563-201/+169
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f21ac16e Replace MATCHES test on numbers with EQUAL test 7eacbaed Replace MATCHES ".+" tests with NOT STREQUAL "" 3a71d34c Use CMAKE_SYSTEM_NAME instead of CMAKE_SYSTEM where sufficient b0b4b460 Remove .* expressions from beginning and end of MATCHES regexs 5bd48ac5 Replace string(REGEX REPLACE) with string(REPLACE) where possible 2622bc3f Clean up usage of if(... MATCHES regex) followed string(REGEX REPLACE regex)
| * | | | | | Replace MATCHES test on numbers with EQUAL testRolf Eike Beer2014-04-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MATCHES tests were actually wrong, as "a4b" and "42" would also cause a match when it should not.
| * | | | | | Replace MATCHES ".+" tests with NOT STREQUAL ""Rolf Eike Beer2014-04-1414-18/+17
| | | | | | |
| * | | | | | Use CMAKE_SYSTEM_NAME instead of CMAKE_SYSTEM where sufficientRolf Eike Beer2014-04-142-5/+5
| | | | | | |
| * | | | | | Remove .* expressions from beginning and end of MATCHES regexsRolf Eike Beer2014-04-1426-46/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All these expressions work the same: "foo" ".*foo.*" "^.*foo.*$" This assumes that the "Intel*" expressions were meant to be "Intel.*".
| * | | | | | Replace string(REGEX REPLACE) with string(REPLACE) where possibleRolf Eike Beer2014-04-1415-27/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The simple replacement is much faster.
| * | | | | | Clean up usage of if(... MATCHES regex) followed string(REGEX REPLACE regex)Rolf Eike Beer2014-04-1424-105/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The matches have already been calculated and can simply be taken from CMAKE_MATCH_n variables. This avoids multiple compilations of the same or very similar regular expressions.
* | | | | | | Merge topic 'ninja-link-with-compile-flags'Brad King2014-04-151-2/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 97f2b7f5 Ninja: set correct LANGUAGE_COMPILE_FLAGS when linking 49fcffc6 Ninja: cmake formatting, make code more readable b735c8cb MinGW: link like on Unix and use compile flags when linking
| * | | | | | | MinGW: link like on Unix and use compile flags when linkingPeter Kümmel2014-04-151-2/+2
| |/ / / / / /
* | | | | | | Merge topic 'CMakeDetermineVSServicePack-warn-deprecated'Brad King2014-04-151-0/+7
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 73721c7c CMakeDetermineVSServicePack: Add deprecation diagnostic
| * | | | | | | CMakeDetermineVSServicePack: Add deprecation diagnosticBrad King2014-04-141-0/+7
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Warn project developers at runtime that the module should not be used anymore. Issue the diagnostic only when the project requires a new enough CMake to use the alternative. Honor the CMAKE_(ERROR|WARN)_DEPRECATED settings.
* | | | | | | FindMPI: Use compiler implicit link dirs for matching language (#14870)Melven Roehrig-Zoellner2014-04-111-9/+4
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the logic added by commit 2f9ad7c6 (Fix FindMPI for the intel compiler on linux, 2012-03-20) to use the implicit link directories for the current ${lang} instead of hard-coding C or CXX which may not be enabled. This is necessary for Fortran-only projects.
* | | | | | Merge topic 'CMakeDetermineVSServicePack-vs-11-update-4'Brad King2014-04-111-41/+17
|\ \ \ \ \ \ | | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | f0de3f80 CMakeDetermineVSServicePack: Add VS 11 update 4 105658df CMakeDetermineVSServicePack: Match versions more robustly 101515b9 CMakeDetermineVSServicePack: Format documentation
| * | | | | CMakeDetermineVSServicePack: Add VS 11 update 4Brad King2014-04-101-1/+3
| | | | | |
| * | | | | CMakeDetermineVSServicePack: Match versions more robustlyBrad King2014-04-101-31/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the CMAKE_MATCH_* variables to simplify matching logic. Match either 3 or 4 version components. Do not fail when there are only three components available.
| * | | | | CMakeDetermineVSServicePack: Format documentationBrad King2014-04-101-10/+8
| | | | | | | | | | | | | | | | | | | | | | | | Also state explicitly that the module is deprecated.
* | | | | | Merge topic 'Fortran-pgi-intel-arch'Brad King2014-04-111-0/+4
|\ \ \ \ \ \ | | |_|/ / / | |/| | | | | | | | | | | | | | | | eb8cb2c6 Fortran: Detect pointer size on Intel archs with PGI (#14870)
| * | | | | Fortran: Detect pointer size on Intel archs with PGI (#14870)Brad King2014-04-101-0/+4
| |/ / / / | | | | | | | | | | | | | | | | | | | | The PGI compiler does not define __SIZEOF_POINTER__ so use the __x86_64__ or __i386__ CPU macros to select a pointer size instead.
* | | | | Merge topic 'revert-Android-platform'Brad King2014-04-111-5/+0
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 4b31f064 Revert "Modules: Add an Andriod platform file"
| * | | | | Revert "Modules: Add an Andriod platform file"Stephen Kelly2014-04-101-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 77f06b145d57c4665ff5d71b89a70c54a009ad14. It may be re-added in the future when the requirements for that platform are better known and supported by CMake.
* | | | | | Merge topic 'rc-windres-with-dot'Brad King2014-04-111-5/+6
|\ \ \ \ \ \ | | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | 7147ed5c CMakeRCInformation: Recognize 'windres' tools with '.' in name (#14865) db924e00 CMakeRCInformation: Do not mention 'Fortran' in documentation
| * | | | | CMakeRCInformation: Recognize 'windres' tools with '.' in name (#14865)Brad King2014-04-111-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A 64-bit MinGW windres is named "i686-w64-mingw32.shared-windres". The get_filename_component NAME_WE mode may strip the ".shared-windres" part and cause the result to no longer contain "windres". Instead, match the "windres" name in the full CMAKE_RC_COMPILER value first, and use the get_filename_component code path only for other resource compilers.
| * | | | | CMakeRCInformation: Do not mention 'Fortran' in documentationBrad King2014-04-111-2/+2
| | |/ / / | |/| | | | | | | | | | | | | This module is for the Windows Resource Compiler, not Fortran.
* | | | | Merge topic 'watcom-link-quoting'Brad King2014-04-111-2/+2
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | cb9b1e13 Watcom: Use single quote for all file/path items in wlink command
| * | | | Watcom: Use single quote for all file/path items in wlink commandJiri Malak2014-04-081-2/+2
| | |_|/ | |/| | | | | | | | | | | | | | | | | | Watcom Linker use single quote if necessary for quoting target name, libraries names and libraries search path. Object names were already fixed.
* | | | Merge topic 'ExternalProject_VCS-quiet'Brad King2014-04-101-4/+4
|\ \ \ \ | |/ / / |/| | | | | | | | | | | 2dad1c14 ExternalProject: Find VCS packages quietly
| * | | ExternalProject: Find VCS packages quietlyDaniele E. Domenichelli2014-04-041-4/+4
| | | | | | | | | | | | | | | | | | | | This keeps the VCS packages out from FeatureSummary output, unless the INCLUDE_QUIET_PACKAGES is used.
* | | | Merge topic 'Qt4Macros-moc-performance'Brad King2014-04-041-2/+2
|\ \ \ \ | |/ / / |/| | / | | |/ | |/| 7beba986 Qt4Macros: Make QT4_CREATE_MOC_COMMAND a function
| * | Qt4Macros: Make QT4_CREATE_MOC_COMMAND a functionRobert Maynard2014-04-031-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | QT4_CREATE_MOC_COMMAND is given a moc_flags argument that contains the COMPILE_DEFINITIONS and a potentially large list of include directories. Since it is a macro, the ${moc_flags} reference is replaced with this content and sent through cmMakefile::ExpandVariablesInString (EVIS). Since commit v3.0.0-rc1~138^2 (Qt4: Use generator expression in COMPILE_DEFINITIONS, 2014-01-13) the COMPILE_DEFINITIONS value contains a '$' so the EVIS fast-path is no longer used. Instead the full cmCommandArgumentParserHelper is now used on the large input, which is very slow (since it was originally created for hand-written code). Change QT4_CREATE_MOC_COMMAND to a function instead of a macro to avoid passing large content through EVIS. This makes it significantly faster.
| * Merge branch 'intel-14-version' into releaseBrad King2014-03-142-2/+10
| |\
* | \ Merge topic 'watcom-platform-module-cleanup'Brad King2014-04-031-23/+27
|\ \ \ | | | | | | | | | | | | | | | | 1e22b23c Watcom: Cleanup Windows-wcl386 configuration
| * | | Watcom: Cleanup Windows-wcl386 configurationJiri Malak2014-04-021-23/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove Watcom linker caseexact options already defined in system definition. * Use win_dll system for SHARED_LIBRARY and SHARED_MODULE. * Use explicit target definition -bt=.. option for proper initialization of compiler Windows environment (predefined macros) * Reorganize compiler options to global options and configuration specific options * Use option to optimize out stack checking code for release version
* | | | Merge topic 'ExternalProject_exclude-from-all'Brad King2014-04-031-5/+19
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | 1ddcc582 ExternalProject: Add EXCLUDE_FROM_ALL option to ExternalProject_Add 0a1c0129 ExternalProject: Add EXCLUDE_FROM_MAIN option to ExternalProject_Add_Step
| * | | | ExternalProject: Add EXCLUDE_FROM_ALL option to ExternalProject_AddDaniele E. Domenichelli2014-04-011-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When adding a new external project, the "all" target will depend on this. This option allows one to add an external project will not be executed when the "all" target is executed. The reason for this is that an external project could be useful, for example, only for running tests, and therefore not necessary during the build.
| * | | | ExternalProject: Add EXCLUDE_FROM_MAIN option to ExternalProject_Add_StepDaniele E. Domenichelli2014-04-011-5/+9
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | When adding a new step using ExternalProject_Add_Step, the main target will depend on this step. This option allows one to add a step that will not be executed when the main target for the external project is executed.
* | | | Merge topic 'FindGTest-TEST_P'Brad King2014-04-031-2/+10
|\ \ \ \ | |/ / / |/| | | | | | | | | | | 2e2939c3 FindGTest: Teach GTEST_ADD_TESTS about TEST_P
| * | | FindGTest: Teach GTEST_ADD_TESTS about TEST_PJack Morrison2014-04-011-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the GTEST_ADD_TESTS function would miss parameterized tests because it only considered TEST and TEST_F. Add TEST_P to the list of considered tests and will run all instantiations of this parameterized test together. This is perhaps not as correct as searching for all instantiations of this parameterized test and separating those into separate runs, but this will at least run tests that were previously missing. For reference: https://code.google.com/p/googletest/wiki/Documentation
* | | | Merge topic 'find_package-check-quiet'Brad King2014-04-0129-49/+186
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | 83934757 Find*: Make find_package(.. QUIET) affect Check* modules. 4c0cc9ab Check*.cmake : Add CMAKE_REQUIRED_QUIET flag.
| * | | | Find*: Make find_package(.. QUIET) affect Check* modules.Clinton Stimpson2014-03-3013-11/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes issues #14812 and #14813 where find_package(OpenMP QUIET) and find_package(Qt4 QUIET) would still print out messages when calling check*() functions. Also a partial fix for #14445 where building CMake (without cmake-gui) when Qt5 is installed and Qt4 is not installed and warnings come out of FindQt4.cmake.
| * | | | Check*.cmake : Add CMAKE_REQUIRED_QUIET flag.Clinton Stimpson2014-03-3016-38/+132
| |/ / / | | | | | | | | | | | | | | | | Setting this flag can silence messages from the Check*.cmake modules. This can be used by Find*.cmake modules when they are in silent mode.