Commit Graph

6084 Commits

Author SHA1 Message Date
Jussi Pakkanen 2d8332e7f1
Merge pull request #8614 from mesonbuild/xcoderefactor
Refactor the Xcode backend
2021-04-05 12:13:07 +03:00
Jussi Pakkanen 2d30f8d124 Fix LGTM issues. 2021-04-04 21:03:49 +03:00
Jussi Pakkanen 3420957c73 Move constant to module level. 2021-04-04 19:30:36 +03:00
Jussi Pakkanen bf08bba371 Delete old implementation. 2021-04-04 19:26:54 +03:00
Jussi Pakkanen c43007408c Add last few things we skipped. 2021-04-04 19:05:29 +03:00
Jussi Pakkanen fb70490bd3 Fix all the minor things that got broken. 2021-04-04 18:54:52 +03:00
Jussi Pakkanen dc9e2d6269 Converted the last bit. 2021-04-04 17:48:03 +03:00
Jussi Pakkanen 3ce0ce86c9 Convert build configuration. 2021-04-04 17:20:22 +03:00
Jussi Pakkanen a026213145 Convert a few more. 2021-04-04 15:50:47 +03:00
Jussi Pakkanen 7a3fdf70cc Convert PBXGroup. 2021-04-04 13:40:54 +03:00
Jussi Pakkanen d78dba08a7 Convert a few more. 2021-04-04 00:32:03 +03:00
Jussi Pakkanen 87f1007ba7 Reduce verbosity. 2021-04-03 23:47:35 +03:00
Jussi Pakkanen 18f718299c Convert one more object type and some scaffolding. 2021-04-03 23:33:08 +03:00
Jussi Pakkanen 0967800705 Start refactoring the xcode backend by creating proper classes for pbx primitives. 2021-04-03 20:57:40 +03:00
Jussi Pakkanen 7ec9e81e6f
Merge pull request #8606 from dcbaker/submit/fix-for-build-env-variables
Fix _FOR_BUILD env variables
2021-04-03 20:42:21 +03:00
Xavier Claessens 558a7bc6ff interpreter: Move to its own folder and split it 2021-04-01 14:26:33 -04:00
Dylan Baker f99ed692c4 environment: get environment variables for both host and build machines
Fixes #8605
2021-04-01 09:54:43 -07:00
Dylan Baker 2cd0723c42 Split environment variable and command line cflags
They are supposed to have different behavior. The environment variables
apply to both the compiler and linker when the compiler acts as a
linker, but the command line ones do not.

Fixes #8345
2021-03-30 18:52:17 +03:00
Aleksandr Mezin 692f673312 scripts/meson_exe: fix stdout and stderr decoding
1. use `locale.getpreferredencoding()` to get encoding name.

`bytes.decode()` assumes `encoding='utf-8'` by default. It is incorrect on my
Windows setup, and causes `UnicodeDecodeError`.

2. use `errors='replace'`.

`bytes.decode()` assumes `errors='strict'` by default. Meson shouldn't crash
if subprocess outputs some garbage that can't be decoded.

`surrogateescape` doesn't work as expected on Windows. On Linux, default
`errors` for `sys.stdout` is `strict`, so `surrogateescape` can't be used there
too (at least until `sys.stdout` is reconfigured).

Fixes https://github.com/mesonbuild/meson/issues/8480
2021-03-30 18:47:09 +03:00
Jussi Pakkanen e80ff985fb Do not add custom target dir automatically when implicit false. 2021-03-29 18:57:34 +03:00
Seungha Yang 448b11cb7f wrap: Tell which wrap-redirect file is missing
Otherwise user cannot understand which wrap file is missing or wrong
2021-03-29 10:57:17 -04:00
Xavier Claessens 1ad469342b msubprojects: wrap-file should be re-extracted with --reset
When using --reset we should guarantee that next reconfigure will pick
the latest code. For wrap-file we have no way to know if the revision
changed, so we have to delete the source tree and extract again.

It is unlikely that user has local changes in non-git subprojects, and
--reset is known to be dangerous.
2021-03-28 23:24:01 +03:00
Dylan Baker 23c706add1 coredata: Fix dependency cache
The host cache had BUILD, which is wrong.
2021-03-28 22:44:21 +03:00
Olexa Bilaniuk 2579420a72 Strip host-compiler -std flag from NVCC line.
Closes #8523.
2021-03-28 20:12:45 +03:00
Olexa Bilaniuk 5941e94ff8 Retract "DQSQ" merging in NVCC arguments handling.
No coverage, no tests, unreadable, unused, likely premature
optimization.
2021-03-28 20:12:45 +03:00
Olexa Bilaniuk 3dbd493de2 Canonicalize and merge consecutive -Xcompiler flags together.
Makes command-line more readable.
2021-03-28 20:12:45 +03:00
Xavier Claessens 47633330da pkgconfig: Allow setting prefix in dataonly pc file
Some variables are reserved because meson set them automatically. But we
are not setting them for dataonly pc files, so there is no reason to
reserve them.

Fixes: #8583.
2021-03-26 23:41:03 +02:00
Xavier Claessens df4314c7b8 backends: Remove @PRIVATE_OUTDIR_(ABS)@ substitution
It is not documented and does not seems to be used anywhere.
2021-03-26 23:39:01 +02:00
Xavier Claessens 3fb9311d10 Remove ConfigureFile and ConfigureFileHolder
They are not used anywhere.
2021-03-26 23:39:01 +02:00
Dylan Baker b1d85f3cde modules/external_project: use typed_pos_args 2021-03-26 12:28:42 -07:00
Xavier Claessens 64775c0fd3 windows_proof_rmtree: Also retry os.chmod() part
It looks like when Windows media scanner holds files we can't change
their permission neither.
2021-03-26 18:12:35 +02:00
Jussi Pakkanen 54767ab482
Merge pull request #8568 from dcbaker/submit/qt-dependency-factory
QT: use a proper dependency factory
2021-03-24 22:52:15 +02:00
Jussi Pakkanen c8826e907a Use find_program also in add_*_script for consistency. 2021-03-24 22:50:10 +02:00
Jussi Pakkanen 80c89a650b Use find_program also in custom_target for consistency. 2021-03-24 22:50:10 +02:00
Jussi Pakkanen 9b27d110d1
Merge pull request #8571 from xclaesse/spurious-warning
Fix spurious sandbox violation warning
2021-03-24 17:53:10 +02:00
Hemmo Nieminen 01c6b50a77 depfixer: temporarily modify file permissions
If the installed files don't have suitable file permissions depfixer
will fail to process it. Temporarily lax file permissions to work around
this.
2021-03-24 17:51:57 +02:00
D Scott Phillips 703fd6d1fa
compilers: clang-cl: Also accept .s files (#8520)
* compilers: clang-cl: Also accept .s files

clang-cl has support for gas-compatible assembly files.

* Add clang-cl to '128 generated assembly' test
2021-03-24 12:43:51 +02:00
Dylan Baker c86c18066e deprecated QMAKE dependency type
Instead of using qmake, use config-tool. This is no different than when
we deprecated the other per-dependency config-tool types (sdl2-config,
llvm-config, etc) for just config-tool
2021-03-23 15:28:08 -07:00
Dylan Baker c211fea513 Refactor Qt Dependency into proper split classes with factories
Currently the Qt Dependencies still use the old "combined" method for
dependencies with multiple ways to be found. This is problematic as it
means that `get_variable()` and friends don't work, as the dependency
can't implement any of those methods. The correct solution is to make
use of multiple Dependency instances, and a factory to tie them
together. This does that.

To handle QMake, I've leveraged the existing config-tool mechanism,
which allows us to save a good deal of code, and use well tested code
instead of rolling more of our own code.

The one thing this doesn't do, but we probably should, is expose the
macOS ExtraFrameworks directly, instead of forcing them to be found
through QMake. That is a problem for another series, and someone who
cares more about macOS than I do.
2021-03-23 15:28:08 -07:00
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.
2021-03-23 18:07:18 -04:00
Xavier Claessens a9e9b7c750
devenv: Set GI_TYPELIB_PATH and LD_LIBRARY_PATH (#8548) 2021-03-23 23:35:05 +02:00
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>
2021-03-23 17:48:17 +02:00
Jussi Pakkanen de9df5128c
Merge pull request #7491 from xclaesse/callstack
RFC: logs: Prepend current subproject name to all messages
2021-03-23 17:28:26 +02:00
Jussi Pakkanen 9ab4dadef9 Remove -pipe from default list of args. Closes #8508. 2021-03-23 17:26:08 +02:00
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.
2021-03-22 21:29:14 -04:00
Xavier Claessens 7c3418204f interpreter: Do not print "method meson" 2021-03-22 21:29:14 -04:00
Xavier Claessens 60c2c25d5b mlog: Do not print 'subproject|' on empty lines 2021-03-22 21:29:14 -04:00
Xavier Claessens b33e7bca73 mlog: Add a space after 'subproject|' 2021-03-22 21:29:14 -04:00
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.
2021-03-22 21:29:14 -04:00
Dylan Baker d7ac2f1065 qt: move compilers_detect to the qt module
It's a method on the QtDependeny that exists purely for the consumption
of the qt module (in the form, return some stuff the module makes into
an instance variable). So put it where it actually belongs, and pass the
qt dependency into it.
2021-03-22 16:54:01 -07:00