summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* CMake 3.11.0-rc3v3.11.0-rc3Brad King2018-03-091-1/+1
|
* Merge branch 'update-kwsys' into release-3.11Brad King2018-03-074-16/+25
|\ | | | | | | Merge-request: !1830
| * Merge branch 'upstream-KWSys' into update-kwsysBrad King2018-03-074-16/+25
| | | | | | | | | | * upstream-KWSys: KWSys 2018-03-07 (2ad561e7)
* | Autogen: Check if a file is empty before reading itSebastian Holtermann2018-03-061-11/+18
| | | | | | | | | | | | | | | | | | | | | | Calling `std::string::front()` on an empty string results in an undefined behavior by the C++ standard. In gcc8 it causes an assertion to fail. This adds a check to `AUTOGEN` if a file to read is empty and in case avoids the use of an empty `std::string` buffer. Closes #17793
* | CMake 3.11.0-rc2v3.11.0-rc2Brad King2018-02-271-1/+1
| |
* | Merge branch '14297-partial-xcode-zero-check' into release-3.11Brad King2018-02-231-1/+5
|\ \ | | | | | | | | | Merge-request: !1790
| * | Xcode: Generate ZERO_CHECK generator target only onceGregor Jasny2018-02-221-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY has been enabled generate only the root-level ZERO_CHECK target so targets in subdirectories pick up the root generator target of ZERO_CHECK. For the case that CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY is not enabled more investigation and a proper and final fix is still needed. Issue: 14297
* | | Merge branch 'std-thread-link' into release-3.11Brad King2018-02-221-0/+1
|\ \ \ | |/ / |/| | | | | Merge-request: !1789
| * | CMakeLib: Link to system thread libraries to support std::threadBrad King2018-02-221-0/+1
| |/ | | | | | | | | | | | | | | | | Some environments require linking to thread libraries for `std::thread`. Express this direct dependency of CMakeLib explicitly. Previously this was done indirectly through our bundled libuv, but that does not work when using a system libuv. Fixes: #17757
* | Merge branch 'export-android-mk' into release-3.11v3.11.0-rc1Brad King2018-02-151-12/+16
|\ \ | | | | | | | | | Merge-request: !1766
| * | Android.mk: Fix export of static libraries with PRIVATE dependenciesBrad King2018-02-141-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | The `LINK_ONLY` generator expression is used to represent private dependencies of static libraries in their `INTERFACE_LINK_LIBRARIES` property value. Fix evaluation of generator expressions during export to support the `LINK_ONLY` genex. Extend the RunCMake.AndroidMK test with a case for this.
| * | Android.mk: Evaluate generator expressions up frontBrad King2018-02-141-12/+13
| |/ | | | | | | | | | | When exporting `INTERFACE_LINK_LIBRARIES`, we must evaluate generator expressions first, before expanding the `;` list, in case they contain or generate semicolons.
* | Merge branch 'autogen-write-on-change-only' into release-3.11Brad King2018-02-131-34/+12
|\ \ | | | | | | | | | Merge-request: !1753
| * | Autogen: Overwrite info files when changed onlySebastian Holtermann2018-02-061-34/+12
| |/ | | | | | | | | | | Check if the content of the AUTOMOC/UIC/RCC info file will change before overwriting it. This avoids unnecessary AUTORCC rebuilds when AUTORCC unrelated CMake settings change.
* | Merge branch '17711-reset-xcode-target-var' into release-3.11Brad King2018-02-131-0/+1
|\ \ | | | | | | | | | Merge-request: !1757
| * | cmGlobalXCodeGenerator: Properly initialize TARGETS variableGregor Jasny2018-02-131-0/+1
| |/ | | | | | | Fixes: #17711
* | CMake 3.11.0-rc1 version updateBrad King2018-02-051-3/+3
|/
* Merge topic 'autogen-improve-multi-config'Brad King2018-02-058-471/+421
|\ | | | | | | | | | | | | a8ee7406 Autogen: Improved multi-config include scheme Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1735
| * Autogen: Improved multi-config include schemeSebastian Holtermann2018-02-028-471/+421
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For multi configuration generators AUTOMOC generates the moc files that are included in `mocs_compilation.cpp` in `AUTOGEN_BUILD_DIR/include_$<CONFIG>/`. By doing so each configuration reads different moc files when compiling `mocs_compilation.cpp`. Since we do not (need to) rewrite `mocs_compilation.cpp` on a configuration change anymore, the files also does not need to be recompiled anymore. Not having to rewrite and recompile `mocs_compilation.cpp` on a configuration change anymore was the main objective of this patch. In a similar fashion AUTORCC generates a `qrc_BASE_CMAKE.cpp` file below `AUTOGEN_BUILD_DIR/include_$<CONFIG>/` and `qrc_BASE.cpp` becomes a mere wrapper that includes this actuall rcc output file (when using multi configuration generators). The template files `Modules/AutoRccInfo.cmake.in` and `Modules/AutogenInfo.cmake.in` were removed in favor of writing the info `.cmake` files manually. Closes #17230
* | Merge topic 'vs-static-ConvertToWindowsSlash'Brad King2018-02-052-51/+52
|\ \ | | | | | | | | | | | | | | | | | | 6d148d6d cmVisualStudio10TargetGenerator: Limit scope of ConvertToWindowsSlash() Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1741
| * | cmVisualStudio10TargetGenerator: Limit scope of ConvertToWindowsSlash()Vitaly Stakhovsky2018-02-022-51/+52
| |/ | | | | | | It is no longer used outside this class, so its scope can be limited to file.
* | CMake Nightly Date StampKitware Robot2018-02-051-1/+1
| |
* | CMake Nightly Date StampKitware Robot2018-02-041-1/+1
| |
* | CMake Nightly Date StampKitware Robot2018-02-031-1/+1
| |
* | Merge topic 'simplify-ccg-converter'Brad King2018-02-021-3/+1
|\ \ | | | | | | | | | | | | | | | | | | df1693bd cmCustomCommandGenerator: Simplify cmOutputConverter access Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1738
| * | cmCustomCommandGenerator: Simplify cmOutputConverter accessBrad King2018-02-011-3/+1
| |/ | | | | | | | | | | | | | | | | | | In commit v3.4.0-rc1~480^2~3 (cmCustomCommandGenerator: Port to cmOutputConverter, 2015-06-04), cmCustomCommandGenerator's access to the local generator was removed so it needed to construct its own cmOutputConverter instance. Access to the local generator was then restored by commit v3.4.0-rc1~285^2~21 (cmCustomCommandGenerator: Require cmLocalGenerator in API, 2015-07-25), so now we can use its cmOutputConverter base class methods directly.
* | Merge topic 'ninja-unused-device-link'Brad King2018-02-021-28/+0
|\ \ | | | | | | | | | | | | | | | | | | 20676cba Ninja: Remove unused device link line code Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1737
| * | Ninja: Remove unused device link line codeBrad King2018-02-011-28/+0
| |/ | | | | | | | | | | | | | | Remove the `PRE_LINK` and `POST_BUILD` variables. They are not referenced by `WriteDeviceLinkRule`. Remove the `byproducts` local variable from `WriteDeviceLinkStatement` and all the code populating it. We never used the result.
* | Merge topic 'update-kwsys'Brad King2018-02-023-98/+89
|\ \ | | | | | | | | | | | | | | | | | | | | | be46f9fb Merge branch 'upstream-KWSys' into update-kwsys 854feacc KWSys 2018-02-01 (04fcc449) Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1736
| * | Merge branch 'upstream-KWSys' into update-kwsysBrad King2018-02-013-98/+89
| |/ | | | | | | | | * upstream-KWSys: KWSys 2018-02-01 (04fcc449)
* | CMake Nightly Date StampKitware Robot2018-02-021-1/+1
|/
* Merge topic 'std-string-apis'Brad King2018-02-01120-506/+470
|\ | | | | | | | | | | | | 653b8946 Reduce raw string pointers usage. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1729
| * Reduce raw string pointers usage.Pavel Solodovnikov2018-01-31120-507/+471
| | | | | | | | | | | | | | | | | | | | * Change some functions to take `std::string` instead of `const char*` in the following classes: `cmMakeFile`, `cmake`, `cmCoreTryCompile`, `cmSystemTools`, `cmState`, `cmLocalGenerator` and a few others. * Greatly reduce using of `const char*` overloads for `cmSystemTools::MakeDirectory` and `cmSystemTools::RelativePath`. * Remove many redundant `c_str()` conversions throughout the code.
* | Merge topic 'perf-from-callgrind'Brad King2018-02-017-69/+146
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 901c4a1e cmExpandedCommandArgument: add an overload for const char* 88ed556d cmGeneratorTarget: make keyword strings const 14a13d30 cmGeneratorExpressionLexer: only tokenize strings with a '$' f2b8d67f cmTarget: use static strings for special property names 6dfd0f92 cmGeneratorExpressionNode: avoid some strlen in $<TARGET_PROPERTY> f9235fd4 cmAddCustomCommandCommand: use std::string const& for FileIsFullPath c0e7a137 cmAddCustomCommandCommand: store keywords in strings Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1689
| * | cmExpandedCommandArgument: add an overload for const char*Ben Boeckel2018-01-312-0/+6
| | | | | | | | | | | | | | | Static string comparisons were causing heap allocations just for a comparison.
| * | cmGeneratorTarget: make keyword strings constBen Boeckel2018-01-311-4/+4
| | |
| * | cmGeneratorExpressionLexer: only tokenize strings with a '$'Ben Boeckel2018-01-311-0/+6
| | | | | | | | | | | | | | | | | | | | | In standard libraries, `std::string::find` is usually implemented using vectorized code. Since the Tokenize method iterates character-by-character, doing an initial check using `find` improves performance.
| * | cmTarget: use static strings for special property namesBen Boeckel2018-01-311-14/+28
| | | | | | | | | | | | | | | Similar to 660769151a7f628f92eb28d77bcae854eaae54c2, the `SetProperty` side is showing up in performance listings due to string comparisons.
| * | cmGeneratorExpressionNode: avoid some strlen in $<TARGET_PROPERTY>Ben Boeckel2018-01-311-1/+2
| | |
| * | cmAddCustomCommandCommand: use std::string const& for FileIsFullPathBen Boeckel2018-01-311-1/+1
| | |
| * | cmAddCustomCommandCommand: store keywords in stringsBen Boeckel2018-01-311-49/+99
| | | | | | | | | | | | | | | | | | | | | Callgrind indicated that `strlen` was being called a lot of times here due to the string comparisons. Since keywords are "sparse" in `add_custom_command`, use a hash comparison to handle keywords and then use strings for comparison since they have a built-in length parameter.
* | | CMake Nightly Date StampKitware Robot2018-02-011-1/+1
| | |
* | | Merge topic 'windows-embed-cmake-gui-version'Brad King2018-01-311-0/+4
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | 45f6aa32 Windows: Embed version information into cmake-gui Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1726
| * | Windows: Embed version information into cmake-guiBrad King2018-01-301-0/+4
| | | | | | | | | | | | | | | In commit 5b9da05b7a (Windows: Embed version information into CMake binaries, 2017-10-25) we accidentally left out cmake-gui.
* | | Merge topic 'msvc_cuda_files_use_consistent_obj_names'Brad King2018-01-311-3/+14
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | fa583869 CUDA: Use MSVC default pattern for naming object files Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1722
| * | | CUDA: Use MSVC default pattern for naming object filesRobert Maynard2018-01-301-3/+14
| |/ / | | | | | | | | | | | | The default that CUDA uses causes failures when you try to embed CUDA obj's into another target.
* | | Merge topic 'generate_speedup'Brad King2018-01-312-29/+6
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | aed227fd cmLocalGenerator: change ImportedGeneratorTargets from vector to map 4443adc1 cmLocalGenerator: remove public GetImportedGeneratorTargets Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Attila Krasznahorkay <attila.krasznahorkay@gmail.com> Merge-request: !1717
| * | | cmLocalGenerator: change ImportedGeneratorTargets from vector to mapFrank Winklmeier2018-01-302-24/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For large number of targets significant amount of time is spent in cmLocalGenerator::FindGeneratorTargetToUse, which uses find_if on a vector to locate the given target. Using a map instead of vector for ImportedGeneratorTargets (as done for cmMakefile::ImportedTargets) provides a significant speedup (up to factor of 2).
| * | | cmLocalGenerator: remove public GetImportedGeneratorTargetsFrank Winklmeier2018-01-301-5/+0
| |/ / | | | | | | | | | | | | GetImportedGeneratorTargets is not used anywhere hence remove it to avoid exposing the type of ImportedGeneratorTargets.
* | | Merge topic 'source_group-TREE-args'Brad King2018-01-312-87/+160
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 365e02e7 source_group: Fix TREE argument parsing Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1713