summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'cm-contains'Brad King2019-08-211-8/+5
|\ | | | | | | | | | | | | | | | | 2dfc52675c cmAlgorithms: Add cmContains Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Sebastian Holtermann <sebholt@web.de> Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de> Merge-request: !3700
| * cmAlgorithms: Add cmContainsRegina Pfeifer2019-08-191-8/+5
| | | | | | | | Also, use the new function where applicable.
* | Merge topic 'string-literal-append'Brad King2019-08-191-7/+4
|\ \ | | | | | | | | | | | | | | | | | | da26b3be89 avoid adding multiple consecutive string literals to std::string Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3698
| * | avoid adding multiple consecutive string literals to std::stringRolf Eike Beer2019-08-181-7/+4
| |/ | | | | | | While at it change some single character additions to be of type char.
* | Source sweep: Use cmIsOn instead of cmSystemTools::IsOnSebastian Holtermann2019-08-171-14/+12
|/ | | | | | | | | This replaces invocations of - `cmSystemTools::IsInternallyOn` with `cmIsInternallyOn` - `cmSystemTools::IsNOTFOUND` with `cmIsNOTFOUND` - `cmSystemTools::IsOn` with `cmIsOn` - `cmSystemTools::IsOff` with `cmIsOff`
* Source code: Use cmExpandList instead of cmSystemTools::ExpandListArgumentSebastian Holtermann2019-08-141-10/+8
|
* Merge topic 'cmRemoveQuotes'Kyle Edwards2019-08-131-8/+0
|\ | | | | | | | | | | | | 27090096ef cmStringAlgorithms: Add cmRemoveQuotes Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3665
| * cmStringAlgorithms: Add cmRemoveQuotesSebastian Holtermann2019-08-091-8/+0
| | | | | | | | | | - Add `cmRemoveQuotes` function to cmStringAlgorithms - Remove unused removeQuotes inline functions
* | Refactor: Convert all instances of CMAKE_BUILD_WITH_CMAKE to CMAKE_BOOTSTRAPKitware Robot2019-08-091-6/+6
|/
* Merge topic 'swift-with-interface-libs'Brad King2019-07-301-8/+9
|\ | | | | | | | | | | | | | | | | 601fe84bd1 Swift: Restore support for enabling with INTERFACE libraries Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Wanderley GuimarĂ£es da Silva <wanderley.guimaraes@gmail.com> Acked-by: Guillaume Egles <gegles@gmail.com> Merge-request: !3624
| * Swift: Restore support for enabling with INTERFACE librariesBrad King2019-07-291-8/+9
| | | | | | | | | | | | | | | | | | | | | | The check added in commit b06f4c8a74 (Swift: disallow WIN32_EXECUTABLE properties, 2019-05-31, v3.15.0-rc1~9^2) makes sense only for executables because the `WIN32_EXECUTABLE` property is defined only for them. Running the check on other target types, particularly those that do not link such as INTERFACE libraries, violates internal assumptions. In particular, `GetLinkerLanguage` should not be called on such targets. Fixes: #19528
* | cmMakefile: Let AddDefinition accept a value as cm::string_viewSebastian Holtermann2019-07-241-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes `cmMakefile::AddDefinition` to take a `cm::string_view` as value argument instead of a `const char *`. Benefits are: - `std::string` can be passed to `cmMakefile::AddDefinition` directly without the `c_str()` plus string length recomputation fallback. - Lengths of literals passed to `cmMakefile::AddDefinition` can be computed at compile time. In various sources uses of `cmMakefile::AddDefinition` are adapted to avoid `std::string::c_str` calls and the `std::string` is passed directly. Uses of `cmMakefile::AddDefinition`, where a `nullptr` `const char*` might be passed to `cmMakefile::AddDefinition` are extended with `nullptr` checks.
* | cmMakefile: Simplify and rename AddDefinitionBoolSebastian Holtermann2019-07-241-1/+1
| | | | | | | | | | | | | | This simplifies the `cmMakefile::AddDefinition` method with bool value overload to call the string based `cmMakefile::AddDefinition` method with either an "ON" or "OFF" string. Also the method is renamed to `cmMakefile::AddDefinitionBool`
* | Merge topic 'ccmake-clear-aliases'Brad King2019-07-091-0/+1
|\ \ | |/ | | | | | | | | | | b66d61a8d0 cmGlobalGenerator: Do not persist alias targets across configures Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3529
| * cmGlobalGenerator: Do not persist alias targets across configuresBrad King2019-07-081-0/+1
| | | | | | | | | | | | | | | | | | In `ccmake` a single global generator instance may be used for multiple configure step runs. The `cmGlobalGenerator::ClearGeneratorMembers` method is supposed to clear global state that is specific to each configure run but forgot to clear alias targets. Fixes: #19457
* | modermize: replace some raw pointers w/ `unique_ptr`Alex Turbov2019-06-241-5/+3
|/
* Swift: disallow WIN32_EXECUTABLE propertiesSaleem Abdulrasool2019-06-031-0/+35
| | | | | | | | | | | Currently, the compiler does not synthesize the correct entry point for the application and passing the subsystem flag does not work the same way with the Swift linker language. Add a check to prevent the application of `WIN32_EXECUTABLE` to Swift executables until they can be properly supported. This will prevent the need for a future policy change. Closes: #19325
* Fixing warnings generated by clang 8.0 on WindowsZsolt Parragi2019-05-291-2/+13
| | | | | | | | | | | | * Deprecation removals previously specific to MSVC/Intel now also used by clang * String literals were assigned to non const pointers. These are stored in mutable arrays now * An implicit function pointer to pointer conversion is a Microsoft extension warning is suppressed by an explicit reinterpret_cast * The MSVC specific deprecation macro for jsoncpp was moved after the clang macro to avoid redefinition warnings. This is consistent with how jsoncpp fixed the issue in 36d8cfd7
* cmSystemTools::Error(): remove const char* overloadVitaly Stakhovsky2019-05-221-4/+4
|
* Refactor: Allow cmInstallGenerator::Compute() to return an errorKyle Edwards2019-05-131-1/+3
| | | | | | This is preparation for an upcoming merge request, which will add a new cmInstallGenerator that returns false if there are errors in the Compute() step.
* Modernize: Enable modernize-raw-string-literal in clang-tidyArtur Ryt2019-04-021-3/+3
|
* cmGlobalGenerator: Inline `aRange` acquisition in `for(x:aRange)` invocationsSebastian Holtermann2019-03-251-27/+11
| | | | | | | | | | | | | Changes the following code snippets in `cmGlobalGenerator` ``` AType aRange = object.getRange(); for ( auto & item: aRange) { ``` to ``` for ( auto & item: object.getRange()) { ```
* cmGlobalGenerator: Use auto for long iterator typesSebastian Holtermann2019-03-251-44/+30
|
* cmMakefile: Use std::unordered_map::emplace to add cmTargets to the listSebastian Holtermann2019-03-211-8/+10
| | | | | When adding cmTargets to a cmMakefile, use std::unordered_map::emplace instead of std::unordered_map::insert.
* cmake: Teach --build mode to support multiple targetsBartosz Kosiorek2019-03-051-43/+56
| | | | Fixes: #16136
* cmGlobalGenerator: Change case of methods from GeneratedMakeCommand structBartosz Kosiorek2019-03-041-3/+3
|
* cmGlobalGenerator: Remove unused codeBartosz Kosiorek2019-03-041-11/+0
|
* Merge topic 'add-xlclang'Brad King2019-02-261-0/+30
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | d9d285c5ad jsoncpp: Fix include order for build within CMake 0d489fab19 libuv: fix atomic ops compilation with xlclang 1699f5c231 Utilities: Suppress warnings in third-party code when using XLClang f709089d84 XLClang: Extract compiler implicit include directories 5c41386357 XLClang: Add policy CMP0089 to present as XL for compatibility 8278237933 XL: Remove overlap with the new XLClang compiler ID 6f5cf2d2c6 XL: Revert "Recognize compilers identified by __ibmxl__" 90c6156aa8 XLClang: Add a new compiler ID for the clang-based XL compiler ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2921
| * XLClang: Add policy CMP0089 to present as XL for compatibilityBrad King2019-02-251-0/+30
| | | | | | | | | | | | | | | | We now identify IBM's Clang-based XL compilers, which define `__ibmxl__`, as `XLClang` rather than `XL`. In order to support existing project code that checks for `XL`, add a policy whose OLD behavior is to present the compiler id as `XL` and whose NEW behavior is to present the compiler id as `XLClang` as we really detect it.
* | Merge topic 'gt-shorter-unique-names'Brad King2019-02-251-5/+12
|\ \ | |/ |/| | | | | | | | | 3f685ac3e1 Use shorter names in internal TARGET_PROPERTY expressions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3009
| * Use shorter names in internal TARGET_PROPERTY expressionsBrad King2019-02-221-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change in commit 2f708f5d65 (Make internal TARGET_PROPERTY generator expressions more robust, 2018-09-07, v3.13.0-rc1~94^2~4) introduced globally unique names in synthesized `$<TARGET_PROPERTY:...>` generator. We used the pattern `<target-name>::T<pointer-to-generator-target>` to guarantee uniqueness. However, in projects that require many such expressions to be generated there was a measurable increase in runtime. We had included the target name in the synthesized genex only for human reference during debugging. It is not necessary. Switch to the pattern `:<pointer-to-generator-target>` to shorten the name. Also hand-roll a hex-print loop instead of using sprintf. Together these optimizations get at least some of the time back. Issue: #18964
* | Merge topic 'drop-MIPSpro'Brad King2019-02-251-7/+0
|\ \ | | | | | | | | | | | | | | | | | | 214fcefa52 Remove now-unused code once used for MIPSpro on IRIX Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3004
| * | Remove now-unused code once used for MIPSpro on IRIXBrad King2019-02-211-7/+0
| |/ | | | | | | | | | | In commit beb991110d (Remove now-unused code once used on IRIX, 2019-01-11, v3.14.0-rc1~167^2) we removed remnants of IRIX support. Also remove remnants of MIPSpro compiler support.
* | Merge topic 'cmrange-improvements'Brad King2019-02-251-0/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b8031308f3 cmRange: Add unit tests a8d51ef8b7 cmRange: Add functions filter and transform da4773e8b8 cmRange: Add functions all_of, any_of, none_of 17a367e77f cmRange: Stylistic cleanup 9eb0e73f46 cmRange: Move to dedicated header file Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Artur Ryt <artur.ryt@gmail.com> Merge-request: !2972
| * | cmRange: Move to dedicated header fileRegina Pfeifer2019-02-211-0/+1
| |/
* | Merge topic 'error-consolidate'Brad King2019-02-251-17/+14
|\ \ | | | | | | | | | | | | | | | | | | 9dd255548d cmSystemTools::Error: consolidate parameters into single std::string Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2995
| * | cmSystemTools::Error: consolidate parameters into single std::stringVitaly Stakhovsky2019-02-201-17/+14
| |/
* | cmSystemTools: More functions accept `std::string` paramsVitaly Stakhovsky2019-02-201-1/+1
|/
* Modernize: C-arrays and loops over themArtur Ryt2019-02-151-12/+11
| | | | | It replaces C arrays with deduced std::initializer_lists or std::array what makes enables for-loop over them.
* cmake: Progress functions use `std::string` paramVitaly Stakhovsky2019-02-111-1/+1
|
* Merge topic 'modernize-for-loops'Brad King2019-02-111-6/+6
|\ | | | | | | | | | | | | | | | | 01b2d6ab74 Modernize: Use ranged for-loops when possible 15bdbec017 cmAlgorithms: Make cmRange advance/retreat safe for rvalues Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de> Merge-request: !2901
| * Modernize: Use ranged for-loops when possibleArtur Ryt2019-02-071-6/+6
| | | | | | | | | | | | | | Replaced most manual `const_iterator`-based loops and some reverse-iterator loops with range loops. Fixes: #18858
* | cmMakefile::GetRequiredDefinition: return const std::string&Vitaly Stakhovsky2019-02-071-2/+3
|/
* Merge topic 'vs-msbuild-arch'Brad King2019-01-301-5/+5
|\ | | | | | | | | | | | | | | da402a081b VS: Use MSBuild matching toolset host architecture 147d36ce93 Find native build tool after selecting a toolset Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2876
| * Find native build tool after selecting a toolsetBrad King2019-01-291-5/+5
| | | | | | | | | | | | | | | | | | This will allow `CMAKE_GENERATOR_TOOLSET` to influence build tool selection. For reference, commit f8cb9944a1 (Find native build tool after determining the target system, 2017-09-26, v3.10.0-rc1~31^2) already delayed this step from where it was historically.
* | Merge topic 'add_consistent_verbose_build_flag'Brad King2019-01-291-17/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 66801f4d40 cmake: Add tests for verbose output to --build mode 439fe2e253 cmake: Add options for verbose output to --build mode 638667efa2 cmake: cmcmd.cxx fix "The arguments are" comments 3ca4402966 ctest: Fix --build-and-test without --build-target on Xcode cb6c233ecc cmake: Add -hideShellScriptEnvironment xcodebuild option 1a45266cb5 cmGlobalGenerator: Add a class that represent the build command Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2708
| * | cmGlobalGenerator: Add a class that represent the build commandRobert Maynard2019-01-251-17/+14
| | | | | | | | | | | | | | | | | | This refactors a std::vector<std::string> into a class so that we can extend the features to represent things such as multiple chained commands in the future.
* | | Merge topic 'cmoutputconverter-simplify'Brad King2019-01-291-3/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | b6a957c969 cmOutputConverter: move ConvertToRelativePath to cmStateDirectory. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2831
| * | | cmOutputConverter: move ConvertToRelativePath to cmStateDirectory.Bruno Manganelli2019-01-271-3/+3
| | | |
* | | | cmSystemTools::Message: Add overload accepting std::stringVitaly Stakhovsky2019-01-281-1/+1
| |_|/ |/| |