summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'msvc-compiler-pdb-files'Brad King2014-02-2610-11/+202
|\ | | | | | | | | | | | | | | | | fba51b09 MSVC: Add properties to configure compiler PDB files (#14762) 3737860a cmTarget: Add per-config compilation info 718a9532 cmTarget: Refactor ComputePDBOutputDir interface aae5184c Help: Refactor PDB_NAME and PDB_OUTPUT_DIRECTORY docs b4aac0ca Makefile: Fix per-config linker PDB output directory
| * MSVC: Add properties to configure compiler PDB files (#14762)Brad King2014-02-2610-1/+141
| | | | | | | | | | | | | | | | | | | | Since commit v2.8.12~437^2~2 (VS: Separate compiler and linker PDB files 2013-04-05) we no longer set /Fd with the PDB_NAME or PDB_OUTPUT_DIRECTORY properties. Those properties now exclusively handle linker PDB files. Since STATIC libraries do not link their compiler PDB file becomes more important. Add new target properties "COMPILE_PDB_NAME[_<CONFIG>]" and "COMPILE_PDB_OUTPUT_DIRECTORY[_<CONFIG>]" to specify the compiler PDB file location and pass the value to the MSVC /Fd option.
| * cmTarget: Add per-config compilation infoBrad King2014-02-242-0/+50
| | | | | | | | | | | | | | Add a cmTarget::CompileInfo struct to hold per-configuration information about the compilation settings in a target. This is different than cmTarget::OutputInfo because it applies to any targets that can compile sources even if they do not link or archive.
| * cmTarget: Refactor ComputePDBOutputDir interfaceBrad King2014-02-242-6/+7
| | | | | | | | | | | | Add a runtime parameter to specify the property name prefix. Update the call site to pass "PDB" to preserve the existing name for that call path.
| * Makefile: Fix per-config linker PDB output directoryBrad King2014-02-243-4/+4
| | | | | | | | | | | | Also, now that all call sites of cmTarget::GetPDBName and cmTarget::GetPDBDirectory pass the configuration, make the argument non-optional.
* | CMake Nightly Date StampKitware Robot2014-02-261-1/+1
| |
* | Merge topic 'dev/faster-parsers'Brad King2014-02-253-71/+63
|\ \ | | | | | | | | | | | | | | | | | | | | | 048be205 Help: Add release notes for the 'faster-parsers' topic 7c565d2f cmGeneratorExpression: Improve parsing in StripEmptyListElements 68eb1757 cmGeneratorExpressionLexer: Use a switch statement to parse 67253133 ExpandListArguments: Optimize the parser
| * | cmGeneratorExpression: Improve parsing in StripEmptyListElementsBen Boeckel2014-02-211-3/+10
| | | | | | | | | | | | | | | | | | The char-by-char parsing causes lots of reallocations which shouldn't be necessary. To improve this, fast-path strings without a semicolon, reserve space in the result, and insert into the result in chunks.
| * | cmGeneratorExpressionLexer: Use a switch statement to parseBen Boeckel2014-02-211-35/+35
| | | | | | | | | | | | | | | | | | Optimize cmGeneratorExpressionLexer::Tokenize to use a switch statement. The many dereferences of the input pointer were expensive. Also remove excess pointer arithmetic.
| * | ExpandListArguments: Optimize the parserBen Boeckel2014-02-211-33/+18
| | | | | | | | | | | | | | | | | | Optimize cmSystemTools::ExpandListArguments so as not to build a string character-by-character. This avoids excess reallocations of the result string.
* | | Merge topic 'target-SOURCES-refactor'Brad King2014-02-2513-495/+775
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f9d5b1fd Handle Mac OSX source flags for individual files lazily. 64d39841 cmGeneratorTarget: Classify sources on demand, not up front. d3682d86 cmGeneratorTarget: Use a method to access the definition file. 5771f81d cmTarget: Add GetTransitiveTargetClosure method. a6dd4990 cmTarget: Create a temporary cmTarget in checkInterfacePropertyCompatibility b8b99cc1 cmTarget: Avoid computing languages when computing transitive targets. 01bca553 cmTarget: Move ComputeLinkInterface to the internal class. d93e1af2 cmTarget: Extract a ComputeLinkInterfaceLibraries method. 3bcb197c cmTarget: Re-arrange the ComputeLinkInterface method. 326d07d2 cmTarget: Extract a ComputeLinkImplementationLanguages method. 21e91350 cmTarget: Change GetTransitivePropertyLinkLibraries to output targets. f81eb49e cmTarget: Find source files on request. 84e5f5a0 cmTarget: Move SourceFileFlags to cmGeneratorTarget.
| * | | Handle Mac OSX source flags for individual files lazily.Stephen Kelly2014-02-241-26/+17
| | | | | | | | | | | | | | | | | | | | The actual list of files will become config dependent in a follow-up commit.
| * | | cmGeneratorTarget: Classify sources on demand, not up front.Stephen Kelly2014-02-243-126/+241
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement a Visitor to hold the sequence of source file tests for populating outputs. Use VS 6 and 7 workaround from Brad King for lack of partial template specialization and function template specialization capabilities. This will make it possible to use context dependent generator expressions to determine the sources of a target.
| * | | cmGeneratorTarget: Use a method to access the definition file.Stephen Kelly2014-02-245-12/+20
| | | |
| * | | cmTarget: Add GetTransitiveTargetClosure method.Stephen Kelly2014-02-242-19/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace calls to GetLinkInformation with calls to a method to get only the target closure, not the link languages etc. The replaced calls are used while evaluating generator expressions only. This makes transitive generator expression evaluation independent from the languages of a target. In a follow-up topic, it will be possible to make the languages depend on generator expression evaluation, via evaluation of the SOURCES and INTERFACE_SOURCES target properties. Because the order of entries is not the same as the final link line, the order of debug output is different in the RunCMake.CompatibleInterface test, because the BOOL_PROP7 target property is evaluated first. Adjust the test to account for that new order.
| * | | cmTarget: Create a temporary cmTarget in checkInterfacePropertyCompatibilityStephen Kelly2014-02-241-8/+9
| | | | | | | | | | | | | | | | This simplifies further refactoring.
| * | | cmTarget: Avoid computing languages when computing transitive targets.Stephen Kelly2014-02-243-12/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the OLD CMP0022 behavior, we need to treat the implementation as the interface when computing the interface libraries. Make it possible to do that without computing the link languages by adding a new GetLinkImplementationLibraries method. Extend the existing GetLinkImplementation method to populate the languages if the libraries have already been computed and cached. Change GetTransitivePropertyTargets to invoke GetLinkInterfaceLibraries instead of GetLinkInterface. This is key, as it is a method called by cmGeneratorExpressionEvaluator. Change the cmGeneratorExpressionEvaluator to invoke GetLinkImplementationLibraries instead of GetLinkImplementation.
| * | | cmTarget: Move ComputeLinkInterface to the internal class.Stephen Kelly2014-02-242-24/+28
| | | | | | | | | | | | | | | | | | | | In a follow-up, this will use the OptionalLinkInterface in its API. That class is in the cmTargetInternals class.
| * | | cmTarget: Extract a ComputeLinkInterfaceLibraries method.Stephen Kelly2014-02-242-72/+99
| | | | | | | | | | | | | | | | | | | | | | | | When evaluating the SOURCES property, we will need to be able to access the link libraries without accessing the link languages, as the languages depend on the SOURCES.
| * | | cmTarget: Re-arrange the ComputeLinkInterface method.Stephen Kelly2014-02-241-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Arrange the logic so that the part which deals with libraries only is at the top. In a follow-up commit, this will be split into two methods. Ensure that the explanatory CMP0022 comment is only present in one location.
| * | | cmTarget: Extract a ComputeLinkImplementationLanguages method.Stephen Kelly2014-02-242-0/+7
| | | |
| * | | cmTarget: Change GetTransitivePropertyLinkLibraries to output targets.Stephen Kelly2014-02-244-42/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The callers already skip non-targets, so unify the target search. Change supporting functions to accept a container of targets instead of strings where possible.
| * | | cmTarget: Find source files on request.Stephen Kelly2014-02-244-51/+4
| | | | | | | | | | | | | | | | | | | | | | | | In a follow-up, the list of sources will become dependent on the config, so check for existence in cmTarget::GetSourceFiles instead of up-front with cmGlobalGenerator::CheckTargets().
| * | | cmTarget: Move SourceFileFlags to cmGeneratorTarget.Stephen Kelly2014-02-247-168/+166
| | | |
* | | | CMake Nightly Date StampKitware Robot2014-02-251-1/+1
| |_|/ |/| |
* | | Merge topic 'install-FILES-genex'Brad King2014-02-245-17/+81
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 6e89c8a5 install: Support generator expressions in FILES and PROGRAMS mode f11f7b34 cmInstallFilesGenerator: Add reference to calling cmMakefile e190236c Help: Format install() command documentation
| * | | install: Support generator expressions in FILES and PROGRAMS modeBrad King2014-02-215-7/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach the install(FILES) and install(PROGRAMS) commands to evaluate generator expressions in the list of files. Extend the ExportImport test to cover installation cases involving generator expressions.
| * | | cmInstallFilesGenerator: Add reference to calling cmMakefileBrad King2014-02-215-10/+21
| | | | | | | | | | | | | | | | | | | | | | | | Add a Makefile member to the cmInstallFilesGenerator class and populate it on construction. This will be useful in a following change to evaluate generator expressions with proper context.
* | | | CMake Nightly Date StampKitware Robot2014-02-241-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2014-02-231-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2014-02-221-1/+1
| |_|/ |/| |
* | | CMake Nightly Date StampKitware Robot2014-02-211-1/+1
| |/ |/|
* | CMake Nightly Date StampKitware Robot2014-02-201-1/+1
| |
* | Begin post-3.0 developmentBrad King2014-02-191-2/+2
| |
* | Change version scheme to use only two components for feature levelsBrad King2014-02-198-22/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Historically CMake used three version components for the feature level. We released new features while incrementing only the third version component. Since commit v2.8.2~105^2~4 (New version scheme to support branchy workflow, 2010-04-23) we used the fourth version component for bug-fix releases and the development date: <major>.<minor>.<patch>[.<tweak>][-rc<n>] = Release <major>.<minor>.<patch>.<date>[-<id>] = Development This solidified use of three components for the feature level, and was necessary to continue releasing 2.x versions because: * Some existing projects performed floating-point comparisons of ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} to 2.x numbers so ``x`` could never be higher than 9. * Version 2.9.<date> was used briefly in post-2.8.0 development in CVS prior to the transition to Git, so using it in releases may have caused confusion. Now that we are moving to 3.x versions, these two restrictions go away. Therefore we now change to use only two components for the feature level and use the scheme: <major>.<minor>.<patch>[-rc<n>] = Release <major>.<minor>.<date>[-<id>] = Development
* | CMake 3.0.0-rc1 version updateBrad King2014-02-193-7/+7
|/
* Merge topic 'minor-cleanups'Brad King2014-02-194-3/+4
|\ | | | | | | | | | | | | | | | | | | f6cae4ea Tests: Remove some trailing black lines. c0ea4c5c Makefile: Fix comment indentation. 5e0c73c7 cmGlobalGenerator: Remove unused variable. 907c09cd include_directory: Add missing include. a74d125a Help: Fix typo 317d8498 Small typo fix
| * Makefile: Fix comment indentation.Stephen Kelly2014-02-171-1/+1
| |
| * cmGlobalGenerator: Remove unused variable.Stephen Kelly2014-02-171-1/+0
| |
| * include_directory: Add missing include.Stephen Kelly2014-02-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | The cmGeneratorExpression is used here, but the header for it is not in the include heirarchy. This would be a compile error if the file were compiled as a standalone translation unit, but it is instead used in a mini-unity-build by inclusion in cmCommands.cxx. The header for cmGeneratorExpression happens to be included first, so the compilation works fine. IDEs do not know this however, and flag the use as an error.
| * Small typo fixKevin Funk2014-02-171-1/+1
| |
* | CMake Nightly Date StampKitware Robot2014-02-191-1/+1
| |
* | CMake Nightly Date StampKitware Robot2014-02-181-1/+1
| |
* | Merge topic 'windows-filesystem-retry-config'Brad King2014-02-173-8/+60
|\ \ | | | | | | | | | | | | 7b1f966a Windows: Make file delete/rename retry configurable
| * | Windows: Make file delete/rename retry configurableBrad King2014-02-123-8/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several CMake operations need to replace files in rapid succession. This commonly fails on Windows due to filesystem lock behavior so we have retry loops. No matter how many times we retry or how long we delay there will inevitably be someone with an environment that needs more. Make the retry count and delay configurable in the Windows Registry keys: {HKCU,HKLM}/Software/Kitware/CMake/Config in DWORD values FilesystemRetryCount = Number of tries FilesystemRetryDelay = Delay in milliseconds between tries Leave the feature undocumented for now to see how it goes.
* | | Merge topic 'INTERFACE-no-sources'Brad King2014-02-173-5/+10
|\ \ \ | | | | | | | | | | | | | | | | 9db9c1fc cmTarget: Don't try to get sources of an INTERFACE_LIBRARY.
| * | | cmTarget: Don't try to get sources of an INTERFACE_LIBRARY.Stephen Kelly2014-02-143-5/+10
| | | | | | | | | | | | | | | | An an assert to ensure this.
* | | | Merge topic 'KateHandleSpacesInPath'Brad King2014-02-172-10/+9
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 22e5c6c2 Kate: handle spaces in build dir
| * | | | Kate: handle spaces in build dirAlex Neundorf2014-02-172-10/+9
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | They need to be escaped in the json file... I'm quite sure I tested this before, obviously I didn't test it correctly. Alex
* | | | CMake Nightly Date StampKitware Robot2014-02-171-1/+1
|/ / /