summaryrefslogtreecommitdiffstats
path: root/Source/cmGhsMultiTargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Rename cmProp in cmValueMarc Chevrier2021-09-211-5/+5
|
* GHS: Remove bashism from custom command shell scriptsLawrence A2021-07-281-1/+1
|
* cmLocalGenerator: Factor out relative path conversion helpersBrad King2021-05-131-6/+2
| | | | | | Most calls to `MaybeConvertToRelativePath` use one of our common work directories (e.g. top of the build tree) as the local path. Add helpers for each of the common cases to simplify and clarify call sites.
* Source: Remove unnecessary comparisons to nullptrVitaly Stakhovsky2021-05-101-1/+1
|
* clang-tidy: fix `readability-use-anyofallof` warningsBen Boeckel2021-01-271-6/+4
|
* clang-tidy: fix `readability-qualified-auto` warningsBen Boeckel2021-01-271-6/+6
|
* Code style: add missed explicit 'this->'Oleksandr Koval2021-01-051-3/+3
| | | | | CMake uses explicit 'this->' style. Using custom clang-tidy check we can detect and fix places where 'this->' was missed.
* Reduce the scope of temporary cmProp variables and other improvementsVitaly Stakhovsky2020-11-051-2/+1
|
* cmLocalGenerator: Migrate custom command output lookup from cmMakefileBrad King2020-10-081-3/+3
| | | | | | | Since commit 777ceaea94 (cmMakefile: Delay custom command creation, 2019-10-17, v3.17.0-rc1~352^2) we process custom command declarations at generate time. Therefore we do not need to look up what source file holds the custom command producing a given output until generate time.
* cmMakefile::GetDefinition: return cmPropVitaly Stakhovsky2020-09-021-2/+2
|
* cmIsOn: add overload accepting const std::string*Vitaly Stakhovsky2020-07-141-3/+3
|
* Single location for cmProp typedefVitaly Stakhovsky2020-06-011-0/+1
|
* Merge topic 'gitlab-ci-lint'Brad King2020-04-301-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4318e8ed35 gitlab-ci: add iwyu job 0866b9253b gitlab-ci: add initial clang-tidy build 0a5bcf97b9 gitlab-ci: add scripts for use by CI 960158b90d ci: add scripts to download build tools 6af91c7c4d ci: add an image for Debian 10 68903ae238 ci: add a Docker container for building CMake 3ac24a8a6e cmFunctionBlocker: include missing header b745b8fd36 IWYU: mark includes needed for assert statements as needed ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4643
| * IWYU: mark cmLinkLineComputer as necessaryBen Boeckel2020-04-291-1/+1
| | | | | | | | | | IWYU is not seeing that the full declaration is necessary for `std::unique_ptr<cmLinkLineComputer>`.
* | cmGeneratorTarget::GetProperty: return cmPropVitaly Stakhovsky2020-04-291-4/+4
|/
* cmSourceFile::GetProperty: return cmPropVitaly Stakhovsky2020-04-141-4/+4
|
* Refactor: Avoid `std::endl` where it's not necessary (part 3)Alex Turbov2020-03-241-27/+27
| | | | | | | | | | | | The `std::endl` manipulator, except inserting `\n` character, also performs `os.flush()`, which may lead to undesired effects (like disk I/O in the middle of forming data strings). For the `std::stringstream` it also has no meaning. * replace multiple `operator<<` calls on a string literal w/ the only call and the only (bigger) string literal; * replace one character string literal used in `operator<<` w/ a char literal.
* Merge topic 'loops-improve'Brad King2020-03-111-7/+7
|\ | | | | | | | | | | | | | | | | cbbca9ee2a Convert more loops to range-based for-loops 9296cd0551 GHS: Name range-based for-loop variable types explicitly db17de2438 GHS: Use cm::erase in place of loop Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4446
| * GHS: Name range-based for-loop variable types explicitlyVitaly Stakhovsky2020-03-101-7/+7
| | | | | | | | | | In general we avoid using `auto` except in cases of hard-to-name types like iterators.
* | Source: use std::string overloadsVitaly Stakhovsky2020-03-101-12/+8
|/
* cmGlobalGenerator: modernize memrory managemenbtMarc Chevrier2019-12-301-2/+2
|
* cmTarget: add std::string overloadsVitaly Stakhovsky2019-12-141-1/+1
|
* Revise include order using clang-format-6.0Kitware Robot2019-10-011-7/+7
| | | | | Run the `clang-format.bash` script to update our C and C++ code to a new include order `.clang-format`. Use `clang-format` version 6.0.
* clang-tidy: modernize-use-autoRegina Pfeifer2019-09-101-6/+3
| | | | | | Set the MinTypeNameLength option to an impossibly high value in order to limit the diagnostics to iterators. Leave new expressions and cast expressions for later.
* cmSourceFile: Rename mutating GetFullPath() overloadDaniel Eiband2019-08-291-2/+2
| | | | Rename mutating GetFullPath() overload to ResolveFullPath().
* Source sweep: Replace cmExpandList with the shorter cmExpandedListSebastian Holtermann2019-08-231-2/+1
| | | | | | | | | | | | This replaces the code pattern ``` std::vector<std::string> args; cmExpandList(valueStr, args, ...) ``` with ``` std::vector<std::string> args = cmExpandedList(valueStr, ...) ```
* Source sweep: Use cmStrCat for string concatenationSebastian Holtermann2019-08-221-32/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is generated by a python script that uses regular expressions to search for string concatenation patterns of the kind ``` std::string str = <ARG0>; str += <ARG1>; str += <ARG2>; ... ``` and replaces them with a single `cmStrCat` call ``` std::string str = cmStrCat(<ARG0>, <ARG1>, <ARG2>, ...); ``` If any `<ARGX>` is itself a concatenated string of the kind ``` a + b + c + ...; ``` then `<ARGX>` is split into multiple arguments for the `cmStrCat` call. If there's a sequence of literals in the `<ARGX>`, then all literals in the sequence are concatenated and merged into a single literal argument for the `cmStrCat` call. Single character strings are converted to single char arguments for the `cmStrCat` call. `std::to_string(...)` wrappings are removed from `cmStrCat` arguments, because it supports numeric types as well as string types. `arg.substr(x)` arguments to `cmStrCat` are replaced with `cm::string_view(arg).substr(x)`
* Source sweep: Use cmIsOn instead of cmSystemTools::IsOnSebastian Holtermann2019-08-171-6/+3
| | | | | | | | | 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-1/+1
|
* clang-tidy: Enable performance-inefficient-string-concatenationSebastian Holtermann2019-08-051-2/+3
| | | | | | | Enables the clang-tidy test performance-inefficient-string-concatenation and replaces all inefficient string concatenations with `cmStrCat`. Closes: #19555
* IWYU: Fix handling of <memory> standard headerBrad King2019-07-101-0/+2
| | | | | | | | An old workaround for `std::allocator_traits<>::value_type` lints from IWYU on `std::vector<>` usage breaks IWYU's handling of `<memory>`. Convert the workaround to use the same approach we already use for a workaround of `std::__decay_and_strip<>::::__type` lints. Then update the `<memory>` inclusions to follow the now-correct IWYU lints.
* GHS: Update project layout to accommodate gbuild inconsistenciesFred Baksik2019-04-111-23/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -- Do not use reference projects, use build hierarchy instead. gbuild has three parallel levels: * low -- Parallelizes compiling source files within a single project (.gpj) file when safe to do so. * medium -- Parallelizes processing files within a single linked output when safe to do so. * high [default] -- Parallelizes processing files whenever safe to do so, including linking task. Testing showed that for some combinations of gbuild / MULTI there are issues with building a project that uses references to target project files along with using {nobuild} option. Sometimes the archiving of a library and linking of an executable were happening in parallel and the build would fail when linking because the archive wasn't complete. This behavior was also inconsistent when running the build from MULTI and from the command line with gbuild. In some cases MULTI did not parallelize archiving and linking, but gbuild performed these actions in parallel. The parallel build issue was not seen when using a build hierarchy where the project listed the project files normally instead of using a reference link. The other option was to add the -parallel_level=medium to the command line when using "cmake --build" but this wouldn't fix the issue if gbuild itself was used to and the user might not be aware of the extra option used by cmake.
* GHS: Update project layout to build targets correctlyFred Baksik2019-04-111-38/+32
| | | | | | | | | | -- Restructure projects and files to support proper building of targets Build order is determined by hierarchy of project files and folders Custom targets may have been run multiple times in the original file / folder structure -- Default to build targets that are part of ALL target -- List all known targets for this project Includes global targets for ALL_BUILD and INSTALL -- Compute build order for building targets
* GHS: Support add_dependencies() commandFred Baksik2019-04-111-17/+25
| | | | -- use references to list target dependencies
* GHS: Support add_custom_target() commandFred Baksik2019-04-111-33/+61
| | | | -- add new project type that runs shell scripts in proper order
* GHS: Support add_custom_command( OUTPUT ) signatureFred Baksik2019-04-111-24/+150
| | | | | | | -- add new file type to run a shell script -- gbuild does not compute interfile dependencies like other build tools. Therefore calculate the required build order of custom commands and list all of them in the CMake Rules subproject.
* GHS: Update custom command build eventsFred Baksik2019-04-101-34/+132
| | | | | | | | -- Fixes issue where commands run out of order; Run commands as single script Do not allow build events to run in parallel -- Use command generator to parse the commands -- Support pre-link build events -- Support more options: COMMENT, BYPRODUCTS, WORKING_DIRECTORY
* Merge topic 'ghs-linux'Brad King2019-03-221-24/+33
|\ | | | | | | | | | | | | | | | | | | | | 2c43fb5be3 FindThreads: Fix pthread library check in GHS Multi Generator 0404efe786 GHS: Add support for GHS Multi Generator in Linux 2060a1445c Tests: Fix file name case in GHS object library test ddad70c8a4 Tests: Run GHS tests in a separate ctest process f7dca1fc97 GHS: Fix include-what-you-use and clang-tidy diagnostics Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3006
| * GHS: Fix include-what-you-use and clang-tidy diagnosticsBrad King2019-03-201-24/+33
| | | | | | | | We will soon build GHS sources on Linux where we run these lints.
* | Replace use of CollapseCombinedPath with CollapseFullPathBrad King2019-03-191-1/+1
|/ | | | | | | | | | | `CollapseCombinedPath` was introduced by commit 551d3343cd (cmDependsC: Collapse relative include paths, 2013-06-19, v2.8.12~237^2) where the existing `CollapseFullPath` should have been used instead. Then its use proliferated slightly. Since `CollapseCombinedPath` is less widely used and less robust (see issue #19049), use `CollapseFullPath` everywhere instead. Issue: #19050
* cmSystemTools: More functions accept `std::string` paramsVitaly Stakhovsky2019-02-201-6/+4
|
* Create and use `cmGeneratorTarget::Names`Saleem Abdulrasool2019-02-111-20/+6
| | | | | | Rather than taking a number of out parameters for the various names, create a structure that is reused for both `GetLibraryNames` and `GetExecutableNames`. Replace uses according to the new interface.
* Merge topic 'modernize-for-loops'Brad King2019-02-111-22/+15
|\ | | | | | | | | | | | | | | | | 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-22/+15
| | | | | | | | | | | | | | Replaced most manual `const_iterator`-based loops and some reverse-iterator loops with range loops. Fixes: #18858
* | GHS: Document usage of GHS_NO_SOURCE_GROUP_FILEFred Baksik2019-02-081-1/+1
|/ | | | -- Also change variable name to CMAKE_GHS_NO_SOURCE_GROUP_FILE
* Merge topic 'cmoutputconverter-simplify'Brad King2019-01-291-2/+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-2/+3
| |
* | cmSystemTools::Message: Add overload accepting std::stringVitaly Stakhovsky2019-01-281-3/+3
|/
* GHS: Update test suiteFred Baksik2019-01-161-0/+1
| | | | | | | | | | -- Allow for testing default toolset settings If CMake_TEST_GreenHillsMULTI_config is not defined then just run the GHS tests using defaults. -- Handle paths that contain spaces -- Update test suite to use "-non_shared" linker option Fixes linking issue if GHS is not shipped with shared libraries -- Other minor cleanup
* GHS: Integrity Application updatesFred Baksik2019-01-161-37/+41
| | | | | | | | | | | | | | | | | -- Check the property "ghs_integrity_app" on executables to set [INTEGRITY Application] If the property is not set then check if an integrate file is one of the source files (.int file). Dynamic Downloads that do not have an integrate file can use this property along with setting the compiler flag "-dynamic". -- Remove parsing for -dynamic flag; it is only used to print a comment The MULTI GUI will show if it is a Monolith or Dynamic Download application -- Use project references to specify which executables are part of the Integrity Application Usually Implicit Dependency Analysis will ensure that executable targets become part of the application. This does not work for Dynamic Download without integrate files. Use `add_dependencies(dd vas)` to mark that the vas target is part of dd target. -- Update file locations in the Integrate files.