summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* Ninja: cmake formatting, make code more readablePeter Kümmel2014-04-151-138/+153
|
* CMake Nightly Date StampKitware Robot2014-04-131-1/+1
|
* CMake Nightly Date StampKitware Robot2014-04-121-1/+1
|
* Merge topic 'watcom-link-quoting'Brad King2014-04-118-29/+62
|\ | | | | | | | | 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-088-29/+62
| | | | | | | | | | | | Watcom Linker use single quote if necessary for quoting target name, libraries names and libraries search path. Object names were already fixed.
* | CMake Nightly Date StampKitware Robot2014-04-111-1/+1
| |
* | Merge topic 'install-prefix-in-interface'Brad King2014-04-104-2/+47
|\ \ | | | | | | | | | | | | | | | 783bce29 Export: Disallow exported interface includes in src/build tree (#14592). c869984e RunCMake: Allow specifying the source dir and file to test.
| * | Export: Disallow exported interface includes in src/build tree (#14592).Stephen Kelly2014-04-094-2/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow directories in the source tree or build tree only if the install tree is a subdirectory of the source tree or build tree, as appropriate. Re-use the test files in the RunCMake.include_directories test to run in multiple scenarios. Bump the required CMake version in the test to 3.0 to ensure that the new policy warnings are emitted correctly.
* | | Merge topic 'suppress-warning-in-comment'Brad King2014-04-104-5/+5
|\ \ \ | | | | | | | | | | | | | | | | | | | | a9fe65c3 cmSystemTools: Remove unreachable return on HP compiler 72e137ea Re-word comment on unreachable return statements
| * | | cmSystemTools: Remove unreachable return on HP compilerBrad King2014-04-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow up commit 1de08685 (cmSystemTools: Restore unreachable return to silence warnings, 2014-04-02) by excluding the unreachable return on the HP compiler as well as Clang. Both recognize that it is unreachable and warn.
| * | | Re-word comment on unreachable return statementsBrad King2014-04-074-4/+4
| | | | | | | | | | | | | | | | | | | | Do not use the word "warning" in the comment because CTest launchers match it and CTestCustom.cmake.in does not suppress it.
* | | | Merge topic 'update-kwsys'Brad King2014-04-102-2/+14
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | f401b925 Merge branch 'upstream-kwsys' into update-kwsys c54be583 KWSys 2014-04-07 (8b085635)
| * | | | Merge branch 'upstream-kwsys' into update-kwsysBrad King2014-04-082-2/+14
| | |_|/ | |/| |
* | | | Merge topic 'aix-compile'Brad King2014-04-101-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 539b6c58 Fix build on AIX failing because of access to string elements
| * | | | Fix build on AIX failing because of access to string elementsRolf Eike Beer2014-04-041-1/+1
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The compilation failed with this error message: .../Source/cmCryptoHash.cxx: In method `string cmCryptoHash::HashString (const string &)': .../Source/cmCryptoHash.cxx:41: non-lvalue in unary `&' This was introduced in 77f60392d93f41a8828d3db1d7b76d45f1535d07 (stringapi: Accept strings when MD5 hashing data).
* | | | Merge topic 'optimize-source-file-processing'Brad King2014-04-103-8/+65
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | 4f1c71fd cmTarget: Add all sources traced from custom commands at once. b1c3ae33 cmTarget: Short-circuit language computation if context independent.
| * | | | cmTarget: Add all sources traced from custom commands at once.Stephen Kelly2014-04-093-2/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AddSource method accepts one file and tries to avoiding adding it to the sources-list of the target if it already exists. This involves creating many cmSourceFileLocation objects for matching on existing files, which is an expensive operation. Avoid the searching algorithm by appending the new sources as one group. Generate-time processing of source files will ensure uniqueness. Add a new AddTracedSources for this purpose. The existing AddSources method must process the input for policy CMP0049, but as these source filenames come from cmSourceFile::GetFullPath(), we can forego that extra processing.
| * | | | cmTarget: Short-circuit language computation if context independent.Stephen Kelly2014-04-092-6/+32
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Computing the language involves computing the source files, which is an expensive operation. It requires calling cmMakefile::GetOrCreateSource many times, which involves creating and matching on many cmSourceFileLocation objects. Source files of a target may depend on the head-target and the config as of commit e6971df6 (cmTarget: Make the source files depend on the config., 2014-02-13). The results are cached for each context as of commit c5b26f3b (cmTarget: Cache the cmSourceFiles in GetSourceFiles., 2014-04-05). Each target in the build graph causes language computation of all of its dependents with itself as the head-target. This means that for 'core' libraries on which everything depends, the source files are computed once for every transitive target-level-dependee and the result is not cached because the head-target is different. This was observed in the VTK buildsystem. Short circuit the computation for targets which have a source-list that is independent of the head-target. If the source-list has already been computed and the generator expression evaluation reports that it was context-independent, return the only source-list already cached for the target. Reset the short-circuit logic when sources are added and when the link libraries are re-computed.
* | | | CMake Nightly Date StampKitware Robot2014-04-101-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2014-04-091-1/+1
|/ / /
* | | CMake Nightly Date StampKitware Robot2014-04-081-1/+1
| | |
* | | 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 '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 '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
| | |
* | | 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 'target-transitive-sources'Brad King2014-04-0331-179/+702
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-023-0/+120
| | |
| * | Make the SOURCES target property writable.Stephen Kelly2014-04-021-0/+38
| | |
| * | cmTarget: Make the SOURCES origin tracable.Stephen Kelly2014-04-022-3/+37
| | |
| * | cmTarget: Allow transitive evaluation of SOURCES property.Stephen Kelly2014-04-025-42/+185
| | | | | | | | | | | | | | | | | | | | | Extend the cmGeneratorExpressionDAGChecker with an interface returning the name of the top target. Use that to determine when there is a DAG violation, as required by the RunCMake.Languages tests.
| * | cmTarget: Make the source files depend on the config.Stephen Kelly2014-04-0226-137/+334
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disallow the use of config-specific source files with the Visual Studio and Xcode generators. They don't have any way to represent the condition currently. Use the same common-config API in cmQtAutoGenerators. While it accepts config-specific files, it doesn't have to support multiple configurations yet. Loop over the configs in cmTargetTraceDependencies and cmGlobalGenerator::WriteSummary and consume all source files. Loop over the configs in cmComputeTargetDepends and compute the object library dependencies for each config.
| * | cmGeneratorTarget: Don't add computed sources to the target.Stephen Kelly2014-04-021-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When config-specifig generator expressions are supported, a target may have SOURCES: src1.cpp $<$<CONFIG:Debug>:src2.cpp> $<$<CONFIG:Release>:src3.cpp> and computation in cmTargetTraceDependencies would add each of the src2.cpp and src3.cpp sources back to the target without a config-guard. That would make the sources be used later when generating the buildsystem, regardless of the configuration. Avoid calling AddSource on the target with the result of the GetSourceFiles call.
| * | cmComputeTargetDepends: Use valid config to compute target depends.Stephen Kelly2014-04-021-17/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If CMAKE_BUILD_TYPE is set, and user code contains: target_link_libraries(myexe prefix_$<$<CONFIG:Debug>:debug>) then the computation with an empty config was computing a target-level dependency on a target or library called prefix_, and a dependency on a target or library called prefix_debug (as expected). The existing logic skips 'prefix_' because it is not a known target, and defers to the link-dependencies logic to find the library. The link-dependencies logic does not incorrectly handle the config as cmComputeTargetDepends did, and so did not encounter 'prefix_' during its computation. This likely had no effect on the generated buildsystem.
* | | Merge topic 'target-sources-refactor'Brad King2014-04-0330-265/+589
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5de63265 Genex: Only evaluate TARGET_OBJECTS to determine target sources. aa0a3562 cmGeneratorTarget: Compute target objects on demand 042c1c83 cmTarget: Compute languages from object libraries on demand. fdcefe3c cmGeneratorTarget: Compute consumed object libraries on demand. c355d108 cmComputeTargetDepends: Track object library depends. e5da9e51 cmTarget: Allow any generator expression in SOURCES property. 5702e106 cmTarget: Include TARGET_OBJECTS genex in target SOURCES property. 857d30b5 cmGlobalGenerator: Add interface to call ForceLinkerLanguages 28e1d2f8 cmStringCommand: Add GENEX_STRIP subcommand. bf98cc25 Genex: Evaluate TARGET_OBJECTS as a normal expression. 8cd113ad cmTarget: Store strings instead of cmSourceFile* to represent SOURCES. 4959f341 cmSourceFileLocation: Collapse full path for directory comparisons. fcc92878 cmSourceFileLocation: Remove unused Update method. 59e8740a cmTarget: Remove AddSourceFile method 26d494ba cmTarget: Use string API to add sources to cmTarget objects. d38423ec cmTarget: Add a method to obtain list of filenames for sources. ...