summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'target-sources-refactor'Brad King2014-04-0364-271/+778
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. ...
| * Genex: Only evaluate TARGET_OBJECTS to determine target sources.Stephen Kelly2014-04-0220-110/+44
| | | | | | | | | | | | | | | | | | | | The output of this expression may contain macros for IDEs to replace such as $(Configuration), $(CURRENT_ARCH) etc. To avoid generating content which is not usable in other contexts, report an error if there is an attempt to use it in other contexts. This commit may be reverted in the future if a solution to the above difference is implemented.
| * 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.
* | Merge topic 'revise-compiler-id-policies'Brad King2014-04-037-26/+82
|\ \ | | | | | | | | | | | | | | | | | | | | | 13684e2b cmMakefile: Port PolicyOptionalWarningEnabled to string APIs 8018fcca Merge branch 'master' into revise-compiler-id-policies a41c0a9d Do not warn by default when policy CMP0025 or CMP0047 is not set d339653e Help: Revise and format policy CMP0025 and CMP0047 docs
| * | cmMakefile: Port PolicyOptionalWarningEnabled to string APIsBrad King2014-04-021-1/+1
| | | | | | | | | | | | | | | | | | This method was added in a commit based on a release branch that pre-dated the std::string API changes. Port the implementation to use the string APIs instead of c_str().
| * | Merge branch 'master' into revise-compiler-id-policiesBrad King2014-04-02818-7750/+11407
| |\ \
| * | | Do not warn by default when policy CMP0025 or CMP0047 is not setBrad King2014-04-027-9/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These policies are triggered by the use of a particular compiler rather than outdated CMake code in a project. Avoid warning in every project that enables a language by not displaying the policy warning by default. Add variable CMAKE_POLICY_WARNING_CMP<NNNN> to control the warning explicitly; otherwise enable the warning with --debug-output or --trace. This breaks with strict policy convention because it does not provide developers with any warning about the behavior change by default. Existing projects will continue to build without a warning or change in behavior. When a developer changes the minimum required version of CMake in a project to a sufficiently high value (3.0), the project will suddenly get the new compiler id and may break, but at least the breakage comes with a change to the project rather than the version of CMake used to build it. Breaking strict policy convention is worthwhile in this case because very few projects will be affected by the behavior change but every project would have to see the warning if it were enabled by default.
| * | | Help: Revise and format policy CMP0025 and CMP0047 docsBrad King2014-04-022-20/+31
| | | | | | | | | | | | | | | | | | | | | | | | Add inline reST markup as appropriate. Word CMP0047 docs more like those of CMP0025. State explicitly that the policies must be set before the project or enable_language command calls.
* | | | Merge topic 'suppress-conversion-warnings-in-QtWidgets'Brad King2014-04-031-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 391c73db CTestCustom: Suppress conversion warnings in QtWidgets headers
| * | | | CTestCustom: Suppress conversion warnings in QtWidgets headersBrad King2014-04-021-1/+1
| | |/ / | |/| | | | | | | | | | We already do so for QtCore and QtGui headers.
* | | | Merge topic 'doc-find-module-development'Brad King2014-04-031-175/+370
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | fcdf86d0 Help: Rewrite the cmake-developer.7 find module documentation
| * | | | Help: Rewrite the cmake-developer.7 find module documentationAlex Merry2014-04-021-175/+370
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As well as the traditional variables, providing imported targets is suggested, and the relative advantages and disadvantages briefly discussed. A mini-tutorial walking through creating a simple find module is provided. This changes the recommended version variable from Foo_VERSION_STRING to Foo_VERSION, because there is really no need to have different variable names for package version files vs. find modules. It notes the old variable name, though, and suggests setting it for compatibility.
* | | | Merge topic 'clang-warnings'Brad King2014-04-031-0/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 1de08685 cmSystemTools: Restore unreachable return to silence warnings
| * | | | cmSystemTools: Restore unreachable return to silence warningsBrad King2014-04-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some compilers do not recognize that the end of copy_data cannot be reached and complain that there is no return statement. Clang warns that there is an unreachable return statement if it appears. Conditionally add the return statement when not building with Clang.
* | | | | 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 'simplify-multi-config'Brad King2014-04-033-29/+20
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 936e00b9 Simplify multiple config handling.
| * | | | | Simplify multiple config handling.Stephen Kelly2014-04-023-29/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use conventional pattern of not repeating the loop body for empty config.
* | | | | | Merge topic 'vs-flag-with-following-value'Brad King2014-04-035-41/+60
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | e8633e66 VS: Fix /analyze:log flag mapping (#14858) 650199e7 VS: Support mapping flags with values following separately (#14858) f2a3dd9d cmIDEOptions: Factor FlagMap update out to separate method
| * | | | | | VS: Fix /analyze:log flag mapping (#14858)Brad King2014-04-012-12/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the VS 11 and VS 12 flag table entries for this flag. It requires a value in the following argument. Also drop the general "/analyze:" flag table entry so that such flags will be passed through as plain additional options. This is necessary because some such options have following values and some do not but not all have .vcxproj elements to hold the values.
| * | | | | | VS: Support mapping flags with values following separately (#14858)Brad King2014-04-013-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a "UserFollowing" special flag table entry indicator to say that a flag expects a value in a following argument. Teach cmIDEOptions to handle such flags.
| * | | | | | cmIDEOptions: Factor FlagMap update out to separate methodBrad King2014-04-012-27/+33
| |/ / / / / | | | | | | | | | | | | | | | | | | This will allow it to be re-used in other code paths.
* | | | | | Merge topic 'workaround-qt4-assistant'Brad King2014-04-032-0/+19
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3a572290 Help: Workaround Qt 4.8 assistant bug in CSS handling.
| * | | | | | Help: Workaround Qt 4.8 assistant bug in CSS handling.Stephen Kelly2014-04-012-0/+19
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assistant in Qt 4.8 does not handle css import paths relative to the includer. This is fixed in Qt 4.8 commit b95750a275 (Assistant: Set the url on created QNetworkReply objects., 2014-03-31). It is unknown whether there will be a further Qt 4.8 release containing that commit. Use a CMake script to pre-replace the content prior to generating the qch file. An alternative workaround of moving the files or adding "_static" to the import path did not seem to work for existing Qt 4.8 versions. The bug was fixed in the Qt 5 branch before Qt 5.0. The Qt 5 assistant renders this workaround'ed version correctly too.
* | | | | | 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 'suppress-lexer-warnings'Brad King2014-04-031-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 065166cf CTestCustom: Suppress Clang "will never be executed" warnings in lexers
| * | | | | | | CTestCustom: Suppress Clang "will never be executed" warnings in lexersBrad King2014-04-011-1/+1
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | Clang -Wunreachable-code-return warns on some generated lexer code.
* | | | | | | CMake Nightly Date StampKitware Robot2014-04-031-1/+1
| |_|/ / / / |/| | | | |