summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Features: Add cxx_static_assert.Stephen Kelly2014-04-084-0/+11
|
* Features: Add cxx_constexpr.Stephen Kelly2014-04-084-0/+14
|
* Features: Add cxx_variadic_templates.Stephen Kelly2014-04-084-1/+85
| | | | | | | Expect cxx_variadic_templates to implement N2555. N2555 is essentially a bugfix and predates most compiler releases which aimed to experimentally support variadic templates.
* Features: Add cxx_delegating_constructors.Stephen Kelly2014-04-084-1/+25
|
* 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 'optimize-source-file-processing'Brad King2014-04-075-47/+100
|\ | | | | | | | | | | | | | | | | a4e6bf8e cmTarget: Make GetSourceFiles string overload private. 92e2fbe1 cmGeneratorTarget: Trace cmSourceFile objects instead of strings. c5b26f3b cmTarget: Cache the cmSourceFiles in GetSourceFiles. eb163f37 cmTarget: Extract a ProcessSourceItemCMP0049 method. 19b7c22d Ninja: Query custom commands once per target, not once per file.
| * cmTarget: Make GetSourceFiles string overload private.Stephen Kelly2014-04-061-3/+3
| | | | | | | | | | Consumers should use the cmSourceFile overload, which is now always the case.
| * cmGeneratorTarget: Trace cmSourceFile objects instead of strings.Stephen Kelly2014-04-061-16/+15
| | | | | | | | | | | | | | | | This reverses the decision in commit d38423ec (cmTarget: Add a method to obtain list of filenames for sources., 2014-03-17). The cmSourceFile based API is preferred because that avoids creation of many cmSourceFileLocation objects for matching strings, and the result is cached by cmTarget.
| * cmTarget: Cache the cmSourceFiles in GetSourceFiles.Stephen Kelly2014-04-062-18/+39
| | | | | | | | | | | | Avoid calling GetSourceFiles with the same result container multiple times when tracing target dependencies. The result from the previous configuration is cached and used later otherwise.
| * cmTarget: Extract a ProcessSourceItemCMP0049 method.Stephen Kelly2014-04-062-9/+41
| | | | | | | | | | | | | | | | | | | | Avoid calling AddSource for each src filename. That involves checking each entry for uniqueness and creating a separate generator expression for each one. Instead, add a single entry for the list of sources. The source files are passed through a uniqueness filter at generate-time, so duplicates don't matter so much.
| * Ninja: Query custom commands once per target, not once per file.Stephen Kelly2014-04-052-7/+8
| | | | | | | | | | Computing the source files is now more expensive, so the Ninja generator became very slow with a large number of files.
* | CMake Nightly Date StampKitware Robot2014-04-071-1/+1
| |
* | CMake Nightly Date StampKitware Robot2014-04-061-1/+1
| |
* | CMake Nightly Date StampKitware Robot2014-04-051-1/+1
|/
* Merge topic 'hpux-compile'Brad King2014-04-042-2/+34
|\ | | | | | | | | | | be53734d CompileFlags: Add -AA +hpxstd98 on HP-UX 11.11 with aCC f4b9c6bb CompileFlags: Test for C++ features after selecting flags
| * CompileFlags: Add -AA +hpxstd98 on HP-UX 11.11 with aCCRolf Eike Beer2014-04-042-1/+32
| | | | | | | | | | These flags are needed to enable support for C++98. Also teach the 'bootstrap' script to add them if necessary.
| * CompileFlags: Test for C++ features after selecting flagsRolf Eike Beer2014-04-041-1/+2
| | | | | | | | Some flags we select may affect availability of C++ features.
* | Merge topic 'fix-CTestTestFailedSubmit-ftp-for-osx-system-curl'Brad King2014-04-041-0/+1
|\ \ | | | | | | | | | | | | 63d864a0 Tests: Fix CTestTestFailedSubmit-ftp with OS X system libcurl
| * | Tests: Fix CTestTestFailedSubmit-ftp with OS X system libcurlAlex Ciobanu2014-04-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | On OS X 10.9 the system libcurl has a different error message when failing to connect: Failed connect to :21; Connection refused Match this message to pass the test.
* | | Merge topic 'compiler-warning-cleanup'Brad King2014-04-0426-52/+47
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 6c190245 Remove extra semicolons from C++ code. 4bef02e7 cmTypeMacro: Add a class to eat the semicolon following the macro use. ff710539 Remove default labels from fully covered switch statements.
| * | | Remove extra semicolons from C++ code.Stephen Kelly2014-04-0320-41/+41
| | | | | | | | | | | | | | | | | | | | Clang based tools running over the code complain about these, but clang has a fixit for removing them.
| * | | cmTypeMacro: Add a class to eat the semicolon following the macro use.Stephen Kelly2014-04-032-4/+6
| | | | | | | | | | | | | | | | | | | | Apply the same workaround to the cmCPackTypeMacro. Additionally change that macro to not use 'class' as a macro parameter.
| * | | Remove default labels from fully covered switch statements.Stephen Kelly2014-04-035-7/+0
| | | | | | | | | | | | | | | | | | | | Allow compilers to warn when new enum values are added, making switches no-longer fully-covered.
* | | | Merge topic 'remove-stray-aborts'Brad King2014-04-041-2/+0
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | c4059a21 cmTarget: Remove abort() after INTERNAL_ERROR reports
| * | | | cmTarget: Remove abort() after INTERNAL_ERROR reportsBrad King2014-04-031-2/+0
| |/ / / | | | | | | | | | | | | | | | | After reporting an internal error we should continue rather than aborting. Remove such statements that are left from debugging.
* | | | 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 topic 'update-kwsys'Brad King2014-04-043-12/+46
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 23b4abb2 Merge branch 'upstream-kwsys' into update-kwsys eccc425a KWSys 2014-04-02 (39f98b5d)
| * \ \ \ \ Merge branch 'upstream-kwsys' into update-kwsysBrad King2014-04-033-12/+46
| |\ \ \ \ \
| | * | | | | KWSys 2014-04-02 (39f98b5d)KWSys Robot2014-04-033-12/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extract upstream KWSys using the following shell commands. $ git archive --prefix=upstream-kwsys/ 39f98b5d | tar x $ git shortlog --no-merges --abbrev=8 --format='%h %s' a8aa1014..39f98b5d Brad King (1): 39f98b5d Encoding: Add self-assignment check to CommandLineArguments Jiri Malak (1): 36982798 SystemTools: add Watcom single Quote processing Change-Id: Ib8e67dc0c29ee62e6489c068987e4206fa4adaf3
* | | | | | | Merge topic 'cmMakefile_IsOn_fix_comment'Brad King2014-04-041-2/+5
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a40f57e4 cmMakefile: Revise comment describing IsOn()
| * | | | | | | cmMakefile: Revise comment describing IsOn()Daniele E. Domenichelli2014-04-041-2/+5
| |/ / / / / /
* | | | | | | CMake Nightly Date StampKitware Robot2014-04-041-1/+1
| |_|_|_|/ / |/| | | | |
* | | | | | Merge topic 'ExternalProject_exclude-from-all'Brad King2014-04-031-0/+11
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | | | | | | | | | | | | f4fe6322 Help: Add notes for topic 'ExternalProject_exclude-from-all'
| * | | | | Help: Add notes for topic 'ExternalProject_exclude-from-all'Brad King2014-04-031-0/+11
| | | | | |
* | | | | | Merge topic 'target-transitive-sources'Brad King2014-04-0374-183/+1098
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9407174b target_sources: New command to add sources to target. 81ad69e0 Make the SOURCES target property writable. 6e636f2e cmTarget: Make the SOURCES origin tracable. 3676fb49 cmTarget: Allow transitive evaluation of SOURCES property. e6971df6 cmTarget: Make the source files depend on the config. df753df9 cmGeneratorTarget: Don't add computed sources to the target. 869328aa cmComputeTargetDepends: Use valid config to compute target depends.
| * | | | | | target_sources: New command to add sources to target.Stephen Kelly2014-04-0210-0/+180
| | | | | | |
| * | | | | | Make the SOURCES target property writable.Stephen Kelly2014-04-0211-3/+83
| | | | | | |
| * | | | | | cmTarget: Make the SOURCES origin tracable.Stephen Kelly2014-04-0210-4/+99
| | | | | | |