| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Use clang-tidy's performance-unnecessary-value-param checker to find
value parameter declarations of expensive to copy types that are not
modified inside the function. Ignore findings in kwsys.
After applying the fix-its, manually change `const T&` to `T const&`.
|
|\
| |
| |
| |
| |
| | |
d256ba07 try_compile: Optionally forward custom platform variables to test project
fb4791b3 cmCoreTryCompile: Refactor forwarding of variables to test project
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add a `CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify a list
of custom variables to be forwarded to a `try_compile` test project.
This will be useful for platform information modules or toolchain files
to forward some platform-specific set of variables from the host project
(perhaps set in its cache) to the test project so that it can build the
same way.
|
| |
| |
| |
| |
| |
| |
| | |
De-duplicate the logic that constructs the cmake `-D` flag used to pass
variables into the test project cache. Also subsume variables that were
propagated by generating `set()` commands in the project and pass them
as cache entries instead.
|
|\ \
| | |
| | |
| | |
| | | |
75e3e0d3 cmVariableWatch: Fix potential memory leak
|
| |/
| |
| |
| |
| | |
Teach cmVariableWatch::AddWatch to own the Pair it allocates until
it needs to pass ownership to WatchMap.
|
|\ \
| | |
| | |
| | |
| | | |
3acc29fc CPack/DragNDrop: Optionally disable `/Applications` symlink
|
| |/ |
|
|\ \
| | |
| | |
| | |
| | | |
8e801eb5 cmSystemTools: Fix indentation typo
|
| | | |
|
| |/
|/| |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
5784747d Improve string find: prefer character overloads.
5cec953e Use std::replace for replacing chars in strings.
2a1a2033 cmExtraEclipseCDT4Generator: use std::replace.
34bc6e1f cmCTestScriptHandler: don't call find repeatedly.
|
| | |
| | |
| | |
| | |
| | | |
Apply fix-its from clang-tidy's performance-faster-string-find checker.
Ignore findings in kwsys.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Find uses of `cmSystemTools::ReplaceString` where both `replace` and
`with` are string literals with a size of one.
Automate with:
git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\(.\)\", \"\(.\)\");|std::replace(\1.begin(), \1.end(), '\2', '\3');|g"
git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\(.\)\", \"\\\\\\\\\");|std::replace(\1.begin(), \1.end(), '\2', '\\\\\\\\');|g"
git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\\\\\\\\\", \"\(.\)\");|std::replace(\1.begin(), \1.end(), '\\\\\\\\', '\2');|g"
|
| | | |
|
| | |
| | |
| | |
| | | |
Also, prefer the character overload.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
c1340827 Add a variable to specify language-wide system include directories
44199097 cmMakefile: Optimize AddSystemIncludeDirectories for empty set
a896043b GHS: Compute include directories consistently with other generators
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Create a `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` variable to specify
system include directories for for `<LANG>` compiler command lines.
This plays a role for include directories as the existing
`CMAKE_<LANG>_STANDARD_LIBRARIES` variable does for link libraries.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Do not bother looping over all targets if we have no system include
directories to add anyway.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
All generators use cmLocalGenerator::GetIncludeDirectories to construct
the final list of include directories for a target.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
25d1ef64 Use enums defined in cmOutputConverter using their fully qualified name.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Mostly automated:
values=("RelativeRoot" "NONE" "FULL" "HOME" "START" "HOME_OUTPUT" "START_OUTPUT"
"OutputFormat" "UNCHANGED" "MAKERULE" "SHELL" "WATCOMQUOTE" "RESPONSE"
"FortranFormat" "FortranFormatNone" "FortranFormatFixed" "FortranFormatFree")
for i in "${values[@]}"; do git grep -l cmLocalGenerator::$i | xargs sed -i "s|cmLocalGenerator::$i|cmOutputConverter::$i|g"; done
|
| |_|/ /
|/| | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
adbd3985 CPack/Deb possibility to change package name
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This patch preserves backward compatibility of
deb package names with previous CMake versions
but similarly to CPack/RPM allows to change
package name format and supports DEB-DEFAULT
setting that produces proper Debian package names.
|
|\ \ \ \
| |_|/ /
|/| | |
| | | |
| | | |
| | | | |
06ca7795 CPackIFW: Command cpack_ifw_configure_component learned ESSENTIAL option
222fa595 CPackIFW: Doc decoration
|
| |/ / |
|
|/ / |
|
|\ \
| |/
| |
| |
| | |
f4d3c44c Fix support for large RPATH updates (#16105)
|
| |
| |
| |
| |
| | |
Avoid using a KWSys RegularExpression to search for RPATH substrings.
It cannot handle large expressions.
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | |
| | |
| | | |
40bee43a cmCPackDragNDropGenerator: Replace std::{ostringstream => string}
|
| | | |
|
| |/
|/| |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
eb076692 Tests: Select RunCMake.Ninja test cases based on ninja version
8a862a4d Ninja: Support embedding of CMake as subninja project
038e7716 Ninja: Pass all build paths through a central method
7c26a6a2 Ninja: Fix path to soname-d target file
ac3cdd9a Ninja: Convert object file names to ninja paths earlier
d4381cb1 Ninja: Convert link library file names like all other output paths
0397c92a Ninja: Pre-compute "CMakeCache.txt" build target name
3b3ecdfa Ninja: Pre-compute "all" build target name
5ca72750 Ninja: Simplify generation of custom target logical path
|
| | |
| | |
| | |
| | |
| | |
| | | |
Add a `CMAKE_NINJA_OUTPUT_PATH_PREFIX` variable. When it is set, CMake
generates a `build.ninja` file suitable for embedding into another ninja
project potentially generated by an alien generator.
|
| | |
| | |
| | |
| | | |
This gives us a central location to revise paths.
|
| | |
| | |
| | |
| | |
| | | |
In WriteLinkStatement we convert all target output paths to ninja-style
paths. Add a missing conversion for the `soname` file name.
|
| | |
| | |
| | |
| | |
| | |
| | | |
In WriteObjectBuildStatement we pass object file names and directories
to several places that expect paths as Ninja sees them. Convert them to
Ninja paths before all such uses.
|
| | |
| | |
| | |
| | |
| | |
| | | |
All paths generated on Ninja-invoked command lines should be passed
through ConvertToNinjaPath. Fix ConvertToLinkReference to call this
instead of partially duplicating its implementation.
|
| | | |
|
| | | |
|
| |/
| |
| |
| |
| |
| | |
In `AppendTargetOutputs` we generate a logical build target name for
each UTILITY command. Simplify the logic to avoid testing the result
of `ConvertToNinjaPath`.
|
|\ \
| | |
| | |
| | |
| | |
| | | |
41199f8c CPackIFW: Add support for Promoting Updates
6ca6b0dd CPackIFW: Add more known QtIFW releases
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add support for this feature added by QtIFW 2.0.3:
http://doc.qt.io/qtinstallerframework/ifw-updates.html
Add a `cpack_ifw_update_repository` command as porcelain.
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | | |
edcccde7 file: Sort GLOB results to make it deterministic (#14491)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Even though the `file(GLOB)` documentation specifically warns against
using it to collect a list of source files, projects often do it anyway.
Since it uses `readdir()`, the list of files will be unsorted.
This list is often passed directly to add_executable / add_library.
Linking binaries with an unsorted list will make it unreproducible,
which means that the produced binary will differ depending on the
unpredictable `readdir()` order.
To solve those reproducibility issues in a lot of programs (which don't
explicitly `list(SORT)` the list manually), sort the resulting list of
the `file(GLOB)` command.
A more detailed rationale about reproducible builds is available
[here](https://reproducible-builds.org/).
|