summaryrefslogtreecommitdiffstats
path: root/Source/cmFileAPICodemodel.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'modernize-use-auto'Brad King2019-09-121-2/+1
|\ | | | | | | | | | | | | d25a5a7ec9 clang-tidy: modernize-use-auto Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3783
| * clang-tidy: modernize-use-autoRegina Pfeifer2019-09-101-2/+1
| | | | | | | | | | | | 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.
* | fileapi: add backtraces for compile/link optionsJustin Goshi2019-09-101-7/+13
|/
* Merge topic 'add-non-empty-configurations-getter'Brad King2019-09-031-8/+5
|\ | | | | | | | | | | | | 10507c6dc0 cmMakefile: Add configurations getter with empty configuration default Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3759
| * cmMakefile: Add configurations getter with empty configuration defaultDaniel Eiband2019-08-301-8/+5
| |
* | Merge topic 'rename-mutating-getfullpath-overload'Brad King2019-09-031-1/+1
|\ \ | | | | | | | | | | | | | | | | | | 2d888e3390 cmSourceFile: Rename mutating GetFullPath() overload Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3757
| * | cmSourceFile: Rename mutating GetFullPath() overloadDaniel Eiband2019-08-291-1/+1
| |/ | | | | | | Rename mutating GetFullPath() overload to ResolveFullPath().
* | Merge topic 'fileapi-CMP0037-OLD'Brad King2019-09-031-0/+6
|\ \ | |/ |/| | | | | | | | | 9da1c33cf1 fileapi: Fix codemodel v2 target file name for CMP0037 OLD behavior Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3760
| * fileapi: Fix codemodel v2 target file name for CMP0037 OLD behaviorBrad King2019-08-301-0/+6
| | | | | | | | | | | | | | With CMP0037 OLD behavior, executable and library target names may contain a slash. Avoid constructing file names with slashes. Fixes: #19653
* | cmSourceFile: Rename non-const GetLanguageTushar Maheshwari2019-08-271-1/+1
| | | | | | | | | | | | | | | | GetOrDetermineLanguage: - Read the property if available - Determine the Language using the file extension Fix all usage of the non-const member in the repository.
* | Merge topic 'cmStringAlgorithms_move_functions'Brad King2019-08-071-5/+6
|\ \ | | | | | | | | | | | | | | | | | | | | | 959b97a27f Tests: testStringAlgorithms: Add cmTrimWhitespace, cmEscapeQuotes, cmTokenize 7fbcc16dcd cmStringAlgorithms: cmIsSpace, cmTrimWhitespace, cmEscapeQuotes, cmTokenize Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3647
| * | cmStringAlgorithms: cmIsSpace, cmTrimWhitespace, cmEscapeQuotes, cmTokenizeSebastian Holtermann2019-08-051-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the following functions to `cmStringAlgorithms`: - `cmIsSpace` - `cmTrimWhitespace` (moved from `cmSystemTools::TrimWhitespace`) - `cmEscapeQuotes` (moved from `cmSystemTools::EscapeQuotes`) - `cmTokenize` (moved from `cmSystemTools::tokenize` and adapted to accept `cm::string_view`)
* | | Merge topic 'fileapi-install-generators'Brad King2019-08-051-6/+3
|\ \ \ | |/ / |/| / | |/ | | | | | | d70a0f8681 fileapi: Fix codemodel target install destination for cross-dir rules Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3639
| * fileapi: Fix codemodel target install destination for cross-dir rulesBrad King2019-07-311-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | Since commit e89ad0f94e (install: Allow installing targets created in another directory, 2018-06-18, v3.13.0-rc1~407^2) we support calling `install(TARGETS)` for targets created in another directory. However, install generators are associated with the directory in which the call to `install()` appears. This may not be the same directory in which the target is defined. Record in each target the list of install generators it has. Fixes: #19546
* | fileapi: Compute codemodel compile groups without target-wide settingsBrad King2019-07-301-13/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we computed the entire description of each source file including all target-wide settings, and then computed compile groups using those complete descriptions. This is inefficient when target-wide settings are large because they are included in comparisons even though they are the same for every source. Instead compute source groups using only the source-specific settings, and then merge the target-wide settings into place only once per unique compile group. This is a slight behavior change in the case that a source-specific compile definition duplicates a target-wide definition. Previously that source would still be grouped with other sources which do not have the definition because they would all get it from the target. Now that source will be in its own compile group even though it ultimately compiles with the same settings as another group. This is acceptable because the source is specified by the project with source-specific settings already. Fixes: #19520
* | fileapi: Compute codemodel compile groups before converting to JsonBrad King2019-07-301-9/+56
| | | | | | | | | | | | | | | | | | | | | | Previously we converted the description of each source file into its compile group Json object and then used the Json object itself as a unique identifier for the group. When source files have large descriptions their Json objects make inefficient map keys requiring deep comparison operations. Instead use our internal `CompileData` structure as a map key. This enables use of a hash map. Issue: #19520
* | fileapi: Generate codemodel Json backtraces earlierBrad King2019-07-301-33/+79
| | | | | | | | | | | | Convert from `cmListFileBacktrace` to Json `backtraceGraph` entries before storing in `CompileData`. This will allow backtraces to be uniquely identified, hashed, and compared as a single integer.
* | fileapi: Refactor codemodel defines de-duplicationBrad King2019-07-291-15/+13
| |
* | fileapi: Avoid unnecessary CompileData moveBrad King2019-07-291-2/+2
| |
* | Refactor checks for whether a target has an import libraryBrad King2019-07-121-9/+8
| | | | | | | | Use `HasImportLibrary` for such checks.
* | IWYU: Fix handling of <memory> standard headerBrad King2019-07-101-0/+1
|/ | | | | | | | 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.
* Use cmAppend to append ranges to std::vector instancesSebastian Holtermann2019-05-231-2/+2
|
* Use cmSourceFile::GetIsGeneratedSebastian Holtermann2019-02-011-1/+1
|
* cmLocalGenerator: Simplify `GetIncludeDirectories`Sebastian Holtermann2019-01-281-1/+1
| | | | | | | | | | | | | | | | | | This patch strips the `stripImplicitDirs` and `appendAllImplicitDirs` parameters from the `cmLocalGenerator::GetIncludeDirectories` method and makes it a wrapper into the new `cmLocalGenerator::GetIncludeDirectoriesImplicit` method. `cmLocalGenerator::GetIncludeDirectoriesImplicit` is the renamed old implementation of `cmLocalGenerator::GetIncludeDirectories` and still accepts `stripImplicitDirs` and `appendAllImplicitDirs`. The motivation is that there's only *one* case where `cmLocalGenerator::GetIncludeDirectories` is called with the `stripImplicitDirs` parameter being `false` (QtAutoGen), but many other places where it is called using the `true` default value. QtAutoGen is modified to use `cmLocalGenerator::GetIncludeDirectoriesImplicit` directly. In two use cases of `cmLocalGenerator::GetIncludeDirectories` the manually set `true` value for `stripImplicitDirs` is removed.
* clang-tidy: Pass by valueRegina Pfeifer2019-01-221-3/+3
|
* fileapi: extend codemodel v2 with directory detailsBrad King2018-12-121-0/+50
| | | | | Issue: #18398 Co-Author: Kyle Edwards <kyle.edwards@kitware.com>
* fileapi: extend codemodel v2 with a project modelBrad King2018-12-121-0/+86
| | | | | | | | | Offer clients a `project()`-centric view of the build system. This is similar to the directory-centric view but consolidates subdirectories that do not call `project()` with a new project name. Issue: #18398 Co-Author: Kyle Edwards <kyle.edwards@kitware.com>
* fileapi: add codemodel v2Brad King2018-12-121-0/+1111
Start with v2 to distinguish it from server-mode v1. Issue: #18398