| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Port dependents to the new locations as needed.
Leave behind a cmState.h include in cmListFileCache to reduce noise. It
is removed in a following commit.
|
| |
|
| |
|
|
|
|
|
|
| |
Add a factory function to cmLocalGenerator so that variableMappings can
be provided from it, and so that Ninja can always have a hard-coded
TargetImpLib.
|
|
|
|
|
| |
Implement cmLocalGenerator::ExpandRuleVariables in terms of the new
class for source compatibility and to reduce diff noise in this commit.
|
| |
|
|
|
|
| |
Don't rely on the cmGeneratorTarget type needlessly.
|
|
|
|
|
|
|
| |
The rule replacement API should not really be in cmLocalGenerator, but
it was historically, and this coupled many other things together here
too, such as output conversion. Make the output converter a parameter
so that rule replacement can be removed from cmLocalGenerator.
|
|
|
|
| |
These do not change over the lifetime of the cmLocalGenerator.
|
| |
|
|
|
|
|
| |
This reduces the final replacement to a simple query in the map, which
is much more readable than what was here before.
|
|
|
|
|
| |
There is no need to be in the loop. Being there just adds to
complexity.
|
|
|
|
|
|
| |
The same variables are replaced/retrieved from cmMakefile again and
again. Use a container so that they don't have to be retrieved
repeatedly, and to simplify the nested loop.
|
| |
|
| |
|
|
|
|
| |
This is just to make follow-up diffs smaller.
|
|
|
|
| |
Use it to determine when a rule replacement should gain extra options.
|
| |
|
|
|
|
|
|
|
|
|
| |
This one is not like the others as it doesn't participate in
substitutions. Keep ExpandRuleVariables doing only one thing and make
callers responsible for inserting a launcher prefix, simplifying the
code all-around.
Remove now-obsolete InsertRuleLauncher method.
|
|
|
|
| |
Hide some methods which no longer need to be public.
|
|
|
|
| |
Add UseWatcomQuote state, and remove corresponding method parameters.
|
| |
|
|
|
|
|
|
| |
Add state for Relink and populate it at the point of cmLinkLineComputer
initialization. This allows removal of the parameter in go-between
methods.
|
|
|
|
|
|
|
|
| |
Add a ConvertToOutputForExisting method which can be made virtual later
to satisfy different generator needs.
Pass additional strings as parameters for now. They can be turned into
class state later.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a cmOutputConverter to the cmLinkLineComputer and factory methods to
facilitate shell escapes.
Add state to the cmLinkLineComputer to record whether outputting for
response files or for watcom, to satisfy the cmOutputConverter API.
These are constant for the lifetime of the cmLinkLineComputer, even when
its functionality is extended in the future. This also keeps the
signatures of cmLinkLineComputer relatively simple.
Pass the cmComputeLinkInformation as a method parameter so that
cmLinkLineComputer is free from target-specific state. An instance
should be usable for all targets in a directory.
|
| |
|
| |
|
| |
|
|
|
|
| |
This content is independent of any targets.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Remove the cmGeneratorTarget from the interface.
This is simplification of the OutputLinkLibraries responsibilities so
that it can be broken apart into multiple methods.
|
|
|
|
|
|
|
|
|
|
|
| |
CMake has several classes which have too many responsibilities.
cmLocalGenerator is one of them. Start to extract the link line
computation. Create generator-specific implementations of the interface
to account for generator-specific behavior.
Unfortunately MSVC60 has different behavior to everything else and CMake
still generates makefiles for it. Isolate it with MSVC60-specific
names.
|
|
|
|
|
| |
Make it possible to invoke this functionality independent of
cmLocalGenerator.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
20e62f74 cmLocalGenerator: Simplify ConvertToLinkReference
fd93b360 cmOutputConverter: Add a flag for IsUnix
1365e18b Convert: Inline platform-specific methods
1ed5f6b3 Makefiles: Introduce local RelativePath method
8377d9e0 Fortran: Inline conversion to relative path
00173b71 Fortran: Wrap path convert in a call with a more-suitable name
d5911ef0 Makefiles: Hardcode the relative location of the CMakeCache file
c3264f48 Convert: Extract method to determine if paths are in directory
52168f32 Convert: Remove asserts which are duplicated in delegate method
5213f893 Convert: Remove early return check
b61c268b Convert: Extract local variables for readability
e278f5a8 Convert: Extract local variables
51bc6bdd cmOutputConverter: remove unused code
8e0c1599 Xcode: Inline ConvertToRelativePath calls
|
| |
| |
| |
| |
| | |
Make conversion to output format the caller responsibility, so that the
method only 'converts to a link reference'.
|
| |
| |
| |
| |
| |
| |
| | |
These flags are redundant anyway in the NEW case of the policy, and
could be merged with CMAKE_EXE_EXPORTS_${lang}_FLAG content for that
case. That is deferred to the future, but now at least the similar code
is located close to each other.
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool. Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience. Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.
Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices. It also references version control
history for more precise information. Therefore we no longer need to spell
out the list of Contributors in each source file notice.
Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing". The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.
Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically. Manually fix up shebang lines and trailing
newlines in a few files. Manually update the notices in a few files that the
script does not handle.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The enums just introduce unfamiliar names and don't provide value.
The order of arguments is reversed, as that is the result of the
cmOutputConverter::ConvertToRelativePath
overload which accepts the RelativeRoot enum.
|
|
|
|
|
|
| |
Encode the subdirectory names properly for CMake syntax.
Closes: #16299
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since we support adding arbitrary flags to the link line via
`target_link_libraries` the project/user may add their own RPATH flags
(typically for system library locations). Re-order the link line to
place our generated RPATH entries before the libraries so that they also
come before flag-specified entries. Otherwise our in-build-tree RPATH
entries may not be preferred by the dynamic loader and we could collide
with libraries in the system directories.
Closes: #16293
|
| |
|
| |
|