Dylan Baker
251dff56fb
interpreter: use typed_pos_args for install_headers
3 years ago
Dylan Baker
ea3d85a1c0
interpreter: use typed_kwargs for install_data
3 years ago
Dylan Baker
a551e76137
interpreter: use typed_pos_args for install_data
3 years ago
Dylan Baker
596c8d4af5
interpreter: use typed_kwargs for install_subdir
3 years ago
Dylan Baker
3d940fec98
interpreter: use typed_pos_args for install_subdir
3 years ago
Dylan Baker
a024f432dd
interpreter: add overload for source_strings_to_files
...
when only passing strings or Files we only get back Files. This is
useful for the install_* methods
3 years ago
Daniel Mensinger
7c757dff71
holders: Fix the remaining code to respect the holder changes
3 years ago
Daniel Mensinger
34c28dc92c
holders: remove unholder
3 years ago
Daniel Mensinger
84a3e459a8
holders: Introduce BothLibraries
3 years ago
Daniel Mensinger
c2c7f7c9d7
holders: Ensure that InterpreterBase is the sole instance for (un)holderifying
3 years ago
Daniel Mensinger
66b32a4591
holders: Introduce HoldableObject
3 years ago
Daniel Mensinger
d601227cb2
interpreter: Add FileHolder and remove specical case for File
3 years ago
Daniel Mensinger
63ade7d937
interpreter: Add a new MesonInterpreterObject for non-elementary objects
3 years ago
Dylan Baker
3ec2cf9c60
interpreter: add type annotations to build_incdir_object
...
and use textwrap.dedent to make the very large messages more readable
and not break method folding.
3 years ago
Xavier Claessens
b6d754a40c
interpreter: Extract dependency() logic into its own helper class
...
The dependency lookup is a lot of complex code. This refactor it all
into a single file/class outside of interpreter main class. This new
design allows adding more fallbacks candidates in the future (e.g. using
cc.find_library()) but does not yet add any extra API.
3 years ago
Dylan Baker
35bdaada1d
interpreter|build: Do Generator keyword argument checking in the interpreter
...
For qt we already have all of the necissary checking in place. Now in
the interpreter we have the same, the intrperter does all of the
checking, then passed the arguments to the Generator initializer, which
just assigns the passed values. This is nice, neat, and clean and fixes
the layering violatino between build and interpreter.
3 years ago
Dylan Baker
491c756dc9
interpreter: use typed_kwargs for func_generator
...
Do the type checking in a nice tidy way
3 years ago
Dylan Baker
d2c1ab40a0
interpreter|build: Pass just the executable down to Generator
...
This requires that the interpreter has done the validation, which it now
does at all callsites. This simplifies the Generator initializer.
3 years ago
Dylan Baker
2ac9b32391
interpreter: Do not create Generator in GeneratorHolder
...
This is an odd pattern, not the way most Holders work, and would be
problematic if a method wanted to return a Generator.
3 years ago
Dylan Baker
e2266e8708
interpreter: use typed_*args for test and benchmark
...
this also requires some changes to the Rust module, as it calls into the
test code.
3 years ago
Dylan Baker
86704261a7
interpreter: use typed_pos_args for func_test and func_benchmark
...
Requires a few small changes to the Rust module, as it calls `func_test`
3 years ago
Xavier Claessens
5a5ab79078
interpreter: Add missing FeatureNewKwarg for allow_fallback
3 years ago
Dylan Baker
98efec5c2b
interpreter: make helper methods protected
...
They really aren't meant to be called outside of the interpreter itself,
so don't expose them as public
3 years ago
Dylan Baker
bf656ce0ec
interpreter: Add type annotations for the add_*_arguments helpers
...
internally these all used a set of shared heleprs, add type annotations
for those as well
3 years ago
Dylan Baker
3f9a81e7f1
interpreter: use typed_kwargs for the add_*_arguments family
...
This makes use of the new convertor and validator arguments, so that we
can check that the languages passed are in fact vaild, and then convert
the native boolean into a MachineChoice internally.
3 years ago
Dylan Baker
3e998527a3
interpreter: use typed_pos_args for add_*_args
...
This just replaces stringArgs with the typed_pos_args, and it's better
error message.
3 years ago
Dylan Baker
b9f33c2380
Add C compiler when using Cython
...
Since cython transpiles to C.
3 years ago
Xavier Claessens
3340284805
modules: Stop using InterpreterObject
...
Custom objects returned by modules must be subclass of ModuleObject and
have the state argument in its methods.
Add MutableModuleObject base class for objects that needs to be deep
copied on assignation.
4 years ago
Xavier Claessens
a9959a3859
Vala: Add missing FeatureNew() when C is missing
...
It was previously an hard error, only permitted since 0.59.0.
4 years ago
Dylan Baker
17eb224aa7
interpreter: Automatically add 'c' to languages when 'vala' is used
...
This is so dumb, we can just insert C for you without you having to know
that you're using C under the hood. This is nicer because:
1) Meson doesn't make the user add a language they're not explicitly
using
2) If there was ever an implementaiton of Vala that didn't use C as
it's assembly language, this wouldn't make any sense.
4 years ago
Dylan Baker
7bd7d1cd73
interpreter: Pass unholdered sources into BuildTarget
...
The build level shouldn't be deal with interpreter objects, by the time
they leave the intpreter they should be in the Meson middle layer
representaiton
4 years ago
Dylan Baker
f2ae92368a
interpreter: Add docstring and fix types of source_strings_to_files
4 years ago
Xavier Claessens
aa700fe982
interpreter: Skip not_found_message and include_type in cache id
4 years ago
Xavier Claessens
ed57646475
interpreter: 'embed' kwarg is only valid in python module
4 years ago
Dylan Baker
d4e867809b
store the list of initializes subprojects in the coredata structure
...
We need to konw on rconfigure which options have already bee set not
just for the super project, but also for the subproject. However, using
first_invocation is not sufficient, as a reconfigure could add a new
subpproject that wasn't present before, and we need to initialize that
project's builtins.
4 years ago
Xavier Claessens
3af39a463b
Interpreter: Fallback when required is false but forcefallback is true
4 years ago
Jussi Pakkanen
e80a13af73
Xcode: do not reuse objs in both_libraries because Xcode fails on targets with no sources.
4 years ago
Xavier Claessens
b3a76fea64
interpreter: Add missing allow_fallback kwarg
4 years ago
Xavier Claessens
7ffe1b4a66
interpreter: Split permitted_kwargs dict
4 years ago
Xavier Claessens
558a7bc6ff
interpreter: Move to its own folder and split it
4 years ago
Xavier Claessens
3fb9311d10
Remove ConfigureFile and ConfigureFileHolder
...
They are not used anywhere.
4 years ago
Jussi Pakkanen
c8826e907a
Use find_program also in add_*_script for consistency.
4 years ago
Jussi Pakkanen
80c89a650b
Use find_program also in custom_target for consistency.
4 years ago
Xavier Claessens
37d4c86e5b
interpreter: Fix spurious warning in include_directories()
...
When doing include_directories('.') at the root of the subproject we
should not warn about sandboxing violation.
4 years ago
Xavier Claessens
1be13710ad
environment(): Allow stacking append() and prepend() ( #8547 )
...
* environment(): Allow stacking append() and prepend()
* Update docs/markdown/Reference-manual.md
Co-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Co-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
4 years ago
Jussi Pakkanen
9ab4dadef9
Remove -pipe from default list of args. Closes #8508 .
4 years ago
Xavier Claessens
8cd4d0b283
mlog: Do not print 'subproject|' for the message 'Executing subproject'
...
It already contains the full callstack and it's more visible when it's
standing on its own line.
4 years ago
Xavier Claessens
7c3418204f
interpreter: Do not print "method meson"
4 years ago
Xavier Claessens
3c1ccb923f
logs: Prepend current subproject name to all messages
...
Meson used to prepend '|' for each nested subproject to distinguish in
the logs where a subproject start and ends. It is more useful to print
the current subproject name.
Also print the call stack when starting a new subproject to better see
which subproject chain leads to to.
4 years ago
Dylan Baker
9016e4596c
Move OverrideProgram to programs
4 years ago