summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'target_compile_features'Brad King2014-04-15118-21/+1209
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * Export: Populate INTERFACE_COMPILE_FEATURES property.Stephen Kelly2014-04-085-1/+29
| |
| * Add target_compile_features command.Stephen Kelly2014-04-0749-0/+342
| | | | | | | | | | | | | | | | | | | | | | This can be used to set the compiler features required by particular targets. An error is issued at CMake time if the compiler does not support the required feature. If a language dialect flag is required by the features used, that will be added automatically. Base the target_compile_features command on cmTargetPropCommandBase. This gives us 'free' handling of IMPORTED, ALIAS, INTERFACE, non-compilable and missing targets.
| * cmTargetPropCommandBase: Change the interface to return bool.Stephen Kelly2014-04-0710-16/+22
| | | | | | | | | | This is needed for the target_compile_features command, which may fail at configure time if an invalid feature is specified.
| * cmTarget: Transitively evaluate compiler features.Stephen Kelly2014-04-0721-14/+203
| | | | | | | | | | | | | | | | | | | | | | Extend the interface of the target_compile_features command with PUBLIC and INTERFACE keywords. Populate the INTERFACE_COMPILER_FEATURES target property if they are set. Consume the INTERFACE_COMPILER_FEATURES target property from linked dependent targets to determine the final required compiler features and the compile flag, if needed. Use the same pattern of origin-debugging which is used for other build properties.
| * cmTarget: Allow populating COMPILE_FEATURES using generator expressions.Stephen Kelly2014-04-0710-9/+44
| | | | | | | | | | | | Delay validation of the content as a feature if it contains a generator expression. It will be checked again at generate-time after evaluation.
| * Features: Add cxx_auto_type.Stephen Kelly2014-04-0716-2/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * cmTarget: Add COMPILE_FEATURES target property.Stephen Kelly2014-04-077-0/+184
| | | | | | | | | | | | | | Use the contents of it to upgrade the CXX_STANDARD target property, if appropriate. This will have the effect of adding the -std=c++11 compile flag or other language specification on GNU when that is needed for the feature.
| * project: Add infrastructure for recording CXX compiler featuresStephen Kelly2014-04-077-0/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * cmTarget: Add CXX_STANDARD and CXX_EXTENSION target properties.Stephen Kelly2014-04-0715-0/+137
| | | | | | | | | | These are used to determine whether to add -std=c++11, -std=gnu++11 etc flags on the compile line.
| * Add some COMPILE_OPTIONS for specifying C++ dialect.Stephen Kelly2014-04-073-0/+30
| | | | | | | | | | These are compiler-specific, compiler version specific, extension specific and standard version specific.
| * Tests: Require CMake 3.0 for the SystemInformation test.Stephen Kelly2014-04-071-1/+1
| | | | | | | | Correctly identify AppleClang.
| * 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 'aix-no-sstream'Brad King2014-04-151-1/+1
|\ \ | | | | | | | | | | | | 941a1404 AIX: fix compilation error because of missing <sstream>
| * | AIX: fix compilation error because of missing <sstream>Rolf Eike Beer2014-04-141-1/+1
| | | | | | | | | | | | | | | | | | | | | Replace it by cmStandardIncludes.h which drags in the proper header depending on what the compiler provides to fix this error: CMake/Source/cmExtraCodeLiteGenerator.cxx:27: sstream: No such file or directory
* | | Merge topic 'CMP0051-typo'Brad King2014-04-151-1/+1
|\ \ \ | | | | | | | | | | | | | | | | 454b4bd2 Help: Fix typo in CMP0051.
| * | | Help: Fix typo in CMP0051.Stephen Kelly2014-04-141-1/+1
| | | | | | | | | | | | | | | | STRIP_GENEX -> GENEX_STRIP.
* | | | Merge topic 'openbsd-sign-warning'Brad King2014-04-151-6/+9
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 3022f2a1 cmELF: fix signedness warning on OpenBSD
| * | | | cmELF: fix signedness warning on OpenBSDRolf Eike Beer2014-04-141-6/+9
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OpenBSD defines Elf64_Dyn::d_tag to be of an unsigned type, which differs from what most other platforms do and what is the case for 32 bit. To have the tag as unsigned makes sense, but this causes a compilation warning: /.../CMake/Source/cmELF.cxx: In member function 'const cmELF::StringEntry* cmELFInternalImpl<Types>::GetDynamicSectionString(int) [with Types = cmELFTypes64]': /.../CMake/Source/cmELF.cxx:945: instantiated from here /.../CMake/Source/cmELF.cxx:668: warning: comparison between signed and unsigned integer expressions Add an explicit typedef to cast the value to for 32 and 64 bit. That type is unsigned and has the proper length for both platforms so no information is lost. Explicitely cast both arguments before comparing them to avoid the warning in all situations.
* | | | 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 topic 'matches-cleanup'Brad King2014-04-1576-224/+192
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-143-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-144-8/+8
| | | | | |
| * | | | | Remove .* expressions from beginning and end of MATCHES regexsRolf Eike Beer2014-04-1432-55/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1419-34/+32
| | | | | | | | | | | | | | | | | | | | | | | | The simple replacement is much faster.
| * | | | | Clean up usage of if(... MATCHES regex) followed string(REGEX REPLACE regex)Rolf Eike Beer2014-04-1426-109/+80
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | 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-152-151/+165
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | | Ninja: set correct LANGUAGE_COMPILE_FLAGS when linkingPeter Kümmel2014-04-151-15/+14
| | | | | |
| * | | | | Ninja: cmake formatting, make code more readablePeter Kümmel2014-04-151-138/+153
| | | | | |
| * | | | | MinGW: link like on Unix and use compile flags when linkingPeter Kümmel2014-04-151-2/+2
| | | | | |
* | | | | | Merge topic 'libarchive-no-acl'Brad King2014-04-151-1/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | d9b59179 libarchive: Skip finding libacl.h when ENABLE_ACL is OFF (#14866)
| * | | | | | libarchive: Skip finding libacl.h when ENABLE_ACL is OFF (#14866)Mike Crowe2014-04-141-1/+5
| | |/ / / / | |/| | | |
* | | | | | Merge topic 'CMakeDetermineVSServicePack-warn-deprecated'Brad King2014-04-152-0/+13
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 73721c7c CMakeDetermineVSServicePack: Add deprecation diagnostic
| * | | | | | CMakeDetermineVSServicePack: Add deprecation diagnosticBrad King2014-04-142-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | | Merge topic 'fix-qthelp-installation'Brad King2014-04-151-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6578508c Help: Fix installation of the Qt qch file.
| * | | | | | | Help: Fix installation of the Qt qch file.Stephen Kelly2014-04-141-1/+1
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The file was changed to have the version in its name in commit 111bb67c (Help: Use a more-appropriate qthelp namespace and file name., 2014-04-10).
* | | | | | | Merge topic 'ninja-win-link-path'Brad King2014-04-151-0/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 504bb62d Ninja: replace \ in LINK_PATH for MinGW
| * | | | | | | Ninja: replace \ in LINK_PATH for MinGWPeter Kümmel2014-04-151-0/+2
| |/ / / / / /
* | | | | | | Merge topic 'fix-SourceFiles-configure-time'Brad King2014-04-157-21/+92
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b8af2011 cmTarget: Fix listing of source files at configure-time.
| * | | | | | | cmTarget: Fix listing of source files at configure-time.Stephen Kelly2014-04-137-21/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit e5da9e51 (cmTarget: Allow any generator expression in SOURCES property., 2014-03-18), source files are computed by true evaluation of generator expressions, including TARGET_OBJECTS. This evaluation requires the presence of cmGeneratorTarget objects since commit bf98cc25 (Genex: Evaluate TARGET_OBJECTS as a normal expression., 2014-02-26). Ensure that we don't attempt to evaluate the TARGET_OBJECTS generator expression at configure-time, as can happen if CMP0024 or CMP0026 are OLD. Use old-style parsing of the source item to extract object target names in that case. Avoid calling GetProperty("SOURCES") to bypass warnings from CMP0051. Refactor existing logic in GetLanguages which is similar in intent to the new GetSourceFiles code.
* | | | | | | | Merge topic 'openbsd-warnings'Brad King2014-04-151-0/+2
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f9f91fa8 CTestCustom: Suppress warnings about rand() and srand() on OpenBSD
| * | | | | | | | CTestCustom: Suppress warnings about rand() and srand() on OpenBSDRolf Eike Beer2014-04-151-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't do crypto here, so a "poor" random doesn't matter. In fact we have API to allow people to get a repeatable sequence by setting a specific seed.
* | | | | | | | | Merge topic 'hpux-acc-ansi98'Brad King2014-04-151-2/+6
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 185b4efe CompileFlags: add better selection which aCC version gets -AA +hpxstd98 flags
| * | | | | | | | | CompileFlags: add better selection which aCC version gets -AA +hpxstd98 flagsRolf Eike Beer2014-04-121-2/+6
| |/ / / / / / / /
* | | | | | | | | Merge topic 'suppress-sha2-cast-align-warnings'Brad King2014-04-151-0/+1
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a553dc0a CTestCustom: Suppress -Wcast-align warnings in sha2 code
| * | | | | | | | | CTestCustom: Suppress -Wcast-align warnings in sha2 codeBrad King2014-04-111-0/+1
| | |/ / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is third party code and we know that at run time the correct alignment is achieved.
* | | | | | | | | Merge topic 'FindMPI-lang-implicit-dirs'Brad King2014-04-151-9/+4
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 856bfe23 FindMPI: Use compiler implicit link dirs for matching language (#14870)
| * | | | | | | | | 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.