Age | Commit message (Collapse) | Author | Files | Lines |
|
In certain exotic configurations, the style of quoting expected in the
response file may not match that expected by the shell.
e.g. under MSYS2, ninja invokes commands via CreateProcess (which
results in cmd-style quoting processed by parse_cmdline or
CommandLineToArgvW), but gcc will use sh-style quoting in any response
file it reads.
Future work: The rspfile quoting style should be a method of the
compiler or linker object, rather than hardcoded in ninjabackend.
(In fact, can_linker_accept_rsp() should be extended to do this, since
if we can accept rsp, we should know the quoting style)
|
|
Rather than ad-hoc avoiding quoting where harmful, identify arguments
which contain shell constructs and ninja variables, and don't apply
quoting to those arguments.
This is made more complex by some arguments which might contain ninja
variables anywhere, not just at start, e.g. '/Fo$out'
(This implementation would fall down if there was an argument which
contained both a literal $ or shell metacharacter and a ninja variable,
but there are no instances of such a thing and it seems unlikely)
$DEPFILE needs special treatment. It's used in the special variable
depfile, so it's value can't be shell quoted (as it used as a filename
to read by ninja). So instead that variable needs to be shell quoted
when it appears in a command.
(Test common/129, which uses a depfile with a space in it's name,
exercises that)
If 'targetdep' is not in raw_names, test cases/rust all fail.
|
|
|
|
We need to count rsp and non-rsp references separately, which we need to
do after build statement variables have been set so we can tell the
difference, which introduces a bit of complexity.
|
|
Possibly this should now be done by marking rules as being wanted in compdb, rather
than listing the rule names...
|
|
Writing rsp files on Windows is moderately expensive, so only use them
when the command line is long enough to need them.
This also makes the output of 'ninja -v' useful more often (something
like 'cl @exec@exe/main.c.obj.rsp' is not very useful if you don't have
the response file to look at)
For a rule where using a rspfile is possible, write rspfile and
non-rspfile versions of that rule. Choose which one to use for each
build statement, depending on the anticpated length of the command line.
|
|
Rename 'rule' to 'rulename' in the NinjaBuildElement class, we're going
to want a reference to the NinjaRule object as well.
|
|
This exercises commands of about 20K in length
Also test short commandlines to make sure they don't regress.
|
|
|
|
|
|
|
|
This is done with the new cmake subprojects options object
that is similar to the already exisiting configuration data
object. It is consumed by the new `options` kwarg of the
cmake.subproject function.
|
|
the previous optimizations from 4524088d386d2e2315d8fef6ffedc11d8e9a394a
were not relaly good, and not really scaleable, since only the lookup
was improved. However, the really heavy calls to remove have not been
improved.
With this commit we are refactoring CompilerArgs into a data structure
which does not use remove at all. This works that we are building a pre
and post list, which gets flushed into __container at some point.
However, we build pre and post by deduplicating forward. Later on, when
we are flushing pre and post into __container, we are deduplicating
backwards the list, so we are not changing behaviour here.
This overall cuts off 10s of the efl configuration time. Further more
this improves configure times on arm devices a lot more, since remove
does seem to be a lot slower there. In general this results in the fact
that __iadd__ is not within the top 5 of costly functions in
generate_single_complie.
|
|
This was a not so nice solution, and should be replaced with something
better.
This reverts commit 4524088d386d2e2315d8fef6ffedc11d8e9a394a.
|
|
the names passed in here are often the same. We should ensure that we
cache the regex match, as this will speed up our runtime a lot.
|
|
calls to normpaths are expansive. We should cache the results. This
safes 2s in the configure time of efl.
|
|
libeconf is now using meson as its primary/default build system, so we'd like to see ourselves on the meson users list .
|
|
|
|
|
|
|
|
Bug: https://bugs.gentoo.org/726524
|
|
|
|
|
|
|
|
- Add ambiguous naming documentation.
- Update branch request documentation.
- Add mesonwrap token documentation.
- Update review guidelines.
|
|
|
|
Wrap: add local files support via *_filename
|
|
|
|
|
|
|
|
Renaming .ino files is not an option when working with the IDE. Meson should recognize it as C++ however.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Make the expected output check mandatory for failing-meson and warning-meson tests
|
|
and gcda files in a coverage enabled build. Otherwise, meson will crash when running from an MSI installation.
|
|
|
|
|
|
mintro: AST JSON printer
|
|
|
|
|
|
Unify present or absent test.json file cases in gather_tests
Make expected stdout mandatory in test.json for some test categories
Use a trivial TestCategory class rather than a tuple, to make it easier
to default category attributes
|
|
|
|
|
|
|