summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cmTarget: Allow transitive evaluation of SOURCES property.Stephen Kelly2014-04-0218-43/+258
| | | | | | | 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-0244-138/+492
| | | | | | | | | | | | | | | | | 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.
* cmGeneratorTarget: Compute target objects on demandStephen Kelly2014-04-025-56/+30
| | | | | | | | | | | | | | | | | | | | | Add a ComputeObjectMapping method to compute the object names. It takes mapping to populate as an out-parameter so that it can be extended in the future with parameters relevant to generator expression evaluation. Remove the supporting cmGeneratorTarget::AddObject method. It is no longer needed as the container member is populated directly. The ComputeObjectMapping method is called whenever objects are requested from the cmGeneratorTarget. Because the Xcode generator makes no such request, explicitly invoke the method from that generator so that the logic of checking for bad sources in object libraries is executed. In a follow-up, the UseObjectLibraries usage may be replaced by a true generator expression evaluator for TARGET_OBJECTS. That will require generators to use cmGeneratorTarget::GetExternalObjects which is not currently the case for Xcode and VS generators.
* cmTarget: Compute languages from object libraries on demand.Stephen Kelly2014-04-022-25/+47
|
* cmGeneratorTarget: Compute consumed object libraries on demand.Stephen Kelly2014-04-025-57/+27
| | | | | | | Remove up-front object library computation from cmGlobalGenerator. Adjust tests for message coming from the generator expression evaluation.
* cmComputeTargetDepends: Track object library depends.Stephen Kelly2014-04-022-1/+29
| | | | Relieve cmGeneratorTarget of that responsibility.
* cmTarget: Allow any generator expression in SOURCES property.Stephen Kelly2014-04-0212-47/+80
| | | | | | | | | | | | | | | | Remove use of UseObjectLibraries from Makefile and Ninja generators. It is not needed now because those generators use GetExternalObjects which already contains the objects from object libraries. The VS10 generator calls both the UseObjectLibraries and the GetExternalObjects methods. Ensure that duplicates are not created by skipping objects from object libraries in handling of GetExternalObjects. Similarly, fix VS6, VS7 and Xcode object handling by skipping external objects from OBJECT_LIBRARY usage as appropriate. The error message in the BadSourceExpression1 test is now reported by the generator expression evaluator, so it has different text.
* cmTarget: Include TARGET_OBJECTS genex in target SOURCES property.Stephen Kelly2014-04-0219-11/+160
| | | | Add policy CMP0051 to control this behavior.
* cmGlobalGenerator: Add interface to call ForceLinkerLanguagesStephen Kelly2014-03-313-1/+9
| | | | | Avoid calling it too early when cmGeneratorTarget instances don't yet exist.
* cmStringCommand: Add GENEX_STRIP subcommand.Stephen Kelly2014-03-315-0/+43
| | | | Strip out any generator expressions in the input string.
* Genex: Evaluate TARGET_OBJECTS as a normal expression.Stephen Kelly2014-03-3119-0/+200
|
* cmTarget: Store strings instead of cmSourceFile* to represent SOURCES.Stephen Kelly2014-03-312-42/+135
| | | | | | | This will allow the strings to contain generator expressions. At this point, generator expressions are still not part of the SOURCES property when it is read.
* cmSourceFileLocation: Collapse full path for directory comparisons.Stephen Kelly2014-03-314-0/+21
| | | | | | | | | | | | | Otherwise Matches() ends up doing a comparison of the directories /path/to/dir/subdir/.. and /path/to/dir as strings and not matching where it should.
* cmSourceFileLocation: Remove unused Update method.Stephen Kelly2014-03-312-26/+0
| | | | | The string overload is never called. This allows the removal of the unused UpdateDirectory method.
* cmTarget: Remove AddSourceFile methodStephen Kelly2014-03-312-12/+5
| | | | It is no longer used.
* cmTarget: Use string API to add sources to cmTarget objects.Stephen Kelly2014-03-318-23/+21
| | | | | Continue to call GetOrCreateSource where necessary to create cmSourceFile objects which have the GENERATED attribute set.
* cmTarget: Add a method to obtain list of filenames for sources.Stephen Kelly2014-03-313-12/+27
|
* cmSourceFileLocation: Make copyable and assignable.Stephen Kelly2014-03-312-0/+44
| | | | This allows using it in containers and algorithms.
* cmTarget: Rename AddSource method for backward compatibility.Stephen Kelly2014-03-314-5/+11
| | | | Add a new AddSource method for future use.
* cmTarget: Use GetSourceFiles for languages.Stephen Kelly2014-03-311-1/+3
|
* cmGeneratorTarget: Compute the object directory early.Stephen Kelly2014-03-311-1/+1
| | | | Ensure it is populated before tracing dependencies.
* CMake Nightly Date StampKitware Robot2014-03-311-1/+1
|
* CMake Nightly Date StampKitware Robot2014-03-301-1/+1
|
* CMake Nightly Date StampKitware Robot2014-03-291-1/+1
|
* CMake Nightly Date StampKitware Robot2014-03-281-1/+1
|
* Merge topic 'osx-CFBundle-info-plist'Brad King2014-03-271-1/+1
|\ | | | | | | | | 90e22f8f OS X: Fix Info.plist placement in a CFBundle
| * OS X: Fix Info.plist placement in a CFBundleTim Blechmann2014-03-261-1/+1
| | | | | | | | | | | | | | Fix cmOSXBundleGenerator::CreateCFBundle to place Info.plist under the same root directory as the rest of the bundle. Without this, Info.plist was placed into CMAKE_BINARY_DIR, not CMAKE_CURRENT_BINARY_DIR because the target path was not generated correctly.
* | Merge topic 'threads-cleanup'Brad King2014-03-271-17/+16
|\ \ | | | | | | | | | | | | | | | | | | 693f8bf3 FindThreads: simplify checking for SunOS 858ce31f FindThreads: avoid useless checks if a thread library is already found fdf7bd27 FindThreads: replace MATCHES with STREQUAL
| * | FindThreads: simplify checking for SunOSRolf Eike Beer2014-03-251-1/+1
| | |
| * | FindThreads: avoid useless checks if a thread library is already foundRolf Eike Beer2014-03-251-16/+15
| | |
| * | FindThreads: replace MATCHES with STREQUALRolf Eike Beer2014-03-251-1/+1
| | |
* | | Merge topic 'suppress-diagnostic-context-note-warnings'Brad King2014-03-271-0/+1
|\ \ \ | | | | | | | | | | | | | | | | 53674755 CTestCustom: Suppress "note: in expansion of macro" diagnostic context
| * | | CTestCustom: Suppress "note: in expansion of macro" diagnostic contextBrad King2014-03-261-0/+1
| | | | | | | | | | | | | | | | | | | | Such notes only appear with other diagnostics and should not be considered a warning on their own.
* | | | Merge topic 'fix-CTestTestMemcheck-xcode2-missing-dirs'Brad King2014-03-272-14/+21
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 27b81213 Tests/CTestTestMemcheck: Help Xcode 2.x create output dirs
| * | | | Tests/CTestTestMemcheck: Help Xcode 2.x create output dirsBrad King2014-03-262-14/+21
| | | | | | | | | | | | | | | | | | | | | | | | | Add the PRE_BUILD step to all targets that need it so the output directories get created no matter which target is built first.
* | | | | CMake Nightly Date StampKitware Robot2014-03-271-1/+1
| |/ / / |/| | |
* | | | Merge topic 'fix-Qt-manual-typo'Brad King2014-03-261-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | dcfbbe87 Help: Fix typo in cmake-qt manual.
| * | | | Help: Fix typo in cmake-qt manual.Stephen Kelly2014-03-261-1/+1
| | | | | | | | | | | | | | | | | | | | Do -> To.
* | | | | Merge topic 'dev/find-boost-graph_parallel'Brad King2014-03-261-1/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | f284b003 FindBoost: Search next to MPI libs for graph_parallel (#14832)
| * | | | | FindBoost: Search next to MPI libs for graph_parallel (#14832)Ben Boeckel2014-03-251-1/+2
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | In addition to the MPI libraries, graph_parallel lives in the MPI libdir as well.
* | | | | Merge topic 'fix-Qt-Autogen'Brad King2014-03-268-7/+84
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 71a11252 QtAutogen: Fix use of multiple ui files in a single target. 261acd91 QtAutogen: Use the basename for resource files.
| * | | | | QtAutogen: Fix use of multiple ui files in a single target.Stephen Kelly2014-03-256-6/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't store a mapping of the directory to the ui file. The directory will be a unique key, allowing only one ui file to be specified. Use the source file name instead as the mapping key.
| * | | | | QtAutogen: Use the basename for resource files.Stephen Kelly2014-03-254-1/+10
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rcc tool generates a cpp file with a symbol called qInitResources or called qInitResources_${name}, if the name is passed. The qInitResources symbol clashes if multiple qrc files are used in one target. Always pass the name to ensure that the symbol is unique. This is also the behavior of the qtx_add_resource macros.
* | | | | Merge topic 'simplify-empty-LDFLAGS'Brad King2014-03-261-6/+12
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 1b18f442 Avoid trailing space in CMAKE_*_LINKER_FLAGS when LDFLAGS is empty
| * | | | | Avoid trailing space in CMAKE_*_LINKER_FLAGS when LDFLAGS is emptyJiri Malak2014-03-241-6/+12
| | | | | |
* | | | | | Merge topic 'FindPkgConfig-stop-on-missing'Brad King2014-03-261-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 63a4c0af FindPkgConfig: Stop processing when REQUIRED package not found (#14381)
| * | | | | | FindPkgConfig: Stop processing when REQUIRED package not found (#14381)Christoph GrĂ¼ninger2014-03-241-1/+1
| |/ / / / / | | | | | | | | | | | | | | | | | | Make the behavior similar to find_package.
* | | | | | Merge topic 'dev/custom-ninja-deptypes'Brad King2014-03-262-0/+10
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9523d2a5 ninja: Add support for custom depfile formats