| Age | Commit message (Collapse) | Author |
|
This will be handled by target binary link. And if it's not compatible
with what Rust uses, it wouldn't work anyway.
|
|
iOS should not use -undefined,dynamic_lookup; whereas macOS should revert from
-dynamiclib to -bundle, as was the case before commit cfb5a48e0 ("linkers: darwin:
do not use -bundle for shared_modules", 2025-03-24), because Postgres wants to
use -bundle_loader and that is only possible together with -bundle.
Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Apple linkers need to use different arguments on macOS and iOS-like platforms.
Pass the system to the constructor so that it can be examined.
Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
All of iOS, tvOS, visionOS, watchOS use the XNU kernel. Report that and also
make them return true for is_darwin() which is really more like "is_xnu()".
Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
|
|
|
As documented in https://docs.python.org/3/library/os.html#os.walk:
> dirnames is a list of the names of the subdirectories in dirpath
> (including symlinks to directories, and excluding '.' and '..')
So currently, we treat any symlink to a directory as a directory instead
of as a symlink. In practice, this means symlinks to directories are
installed as empty directories instead of as symlinks.
Let's make sure the symlinks are kept intact by checking for symlinks
when we iterate over the directory names and treating any symlinks we
find as files instead of as symlinks.
|
|
In AIX, when we use ar -q to archive then if there is a shared object already existing with the same name a duplicate one is created if one tries to archive again.
Meson archives shared library during build time and relinks again during install time. At this stage when shared object is again made and archived again, creating two shared objects in the archive.
When we use "ar -rs" then we ensure it is only one.
Reference: https://www.ibm.com/docs/en/aix/7.1?topic=ar-command
This patch is a fix to the same.
Before patch output:
rwxr-xr-x 0/0 5018 Apr 14 05:57 2025 libmylib.so
rwxr-xr-x 0/0 5018 Apr 14 05:58 2025 libmylib.so
After patch output:
rwxr-xr-x 0/0 5018 Apr 14 07:23 2025 libmylib.so
|
|
This makes it possible to run tests ("1 trivial" passes).
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Use the custom suffix instead of .dylib, so that executables that are linked to
a custom-suffix library can be ran from the build tree.
Fixes: #14470
|
|
|
|
If the user specifies java sources as input to a non-jar build
target, raise an error with a message directing them to use the jar
target instead.
Fixes: https://github.com/mesonbuild/meson/issues/13870
|
|
This method call xgettext to extract translatable
string from source files into a .pot translation template.
It differs from a plain CustomTarget in three ways:
- It accepts build targets as sources, and automatically resolves source
files from those build targets;
- It detects command lines that are too long, and writes, at config
time, the list of source files into a text file to be consumed by the
xgettext command;
- It detects dependencies between pot extraction targets, based on the
dependencies between source targets.
|
|
Because we will need to call it from a module in a followup commit.
|
|
|
|
Cover ":foo" syntax in default_options as well.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Previously, root-project options (key.subproject == '') would always be
stored as an augment or as pending_project_options. But they might actually
be included in self.options instead, so exclude them from the initial test.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
This actually tests the handling of deprecated options
when passed to meson instead of just as default_options.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Allow proper handling of deprecated and read-only options, which is missing from
set_value.
Fixes: #14433
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
The structure of the "if" statements in the cmd_line_options iteration
is a bit different from the others due to the need to raise an error
for some kinds of unknown options. Reduce the dissimilarity by
checking key.subproject is None just before raising the exception.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
|
if needed
Fixes communicating the RPATH to g-i-scanner in macOS.
See #14169
|
|
This was only being used by the introspection interpreter, which meant
the two interpreters had different behavior. They still do, which is
really bad because the IntrospectionInterpreter doesn't have the command
line options or project_default_options. I have a plan to fix that
later, and I don't want to spend time on it here, as it's not a
regression of this patch, it's just the status quo.
This also fixes an issue caused by dead code being left, and hit, due to
the option refactor branch.
Fixes: #14382
|
|
"prefix" has a lot of special handling that has to go on because so many
other options depend on prefix. It was also regressed by the option
refactor changes, so having a test feels appropriate.
This was verified against the 1.7 release, so it has the same behavior
as pre-option refactor Meson.
|
|
The key can be an OptionKey, particularly in the next patch.
|
|
Machine files provide a `Mapping[OptionKey, ElementaryOptionValues]`,
but the expectation listed was that they provided options in the raw DSL
format.
|
|
|
|
|
|
|
|
|
|
The latter is needed for vulkan.pc now, but let's add vulkan-headers
explicitly while at it.
|
|
Workaround for cmake-4.0 vs wxwidgets-gtk2 by setting CMAKE_POLICY_VERSION_MINIMUM=3.5.
|
|
See https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/thread/BJO756KHSCBPDMXVGFMGPHPUMW4PZK6T/#SLVEVFEFOCT3R5RCSVZPQN3GZSZYAEXL.
Use sdl2-compat-devel instead. I did try 'pkgconfig(sdl2)' but it failed
with some resolver error I didn't probe further.
|
|
|
|
We document --wrapper and --wrap works only by expanding it automatically
to --wrapper as it is unambiguous.
|
|
Don't add "<project_source_dir>/<subproject>/__CMake_build" directory
to include directories.
Fixes #12351
|
|
Since dmd frontend version 2.111 integer debug and version statements
error during parsing:
https://dlang.org/changelog/2.111.0.html#dmd.deprecation-version-debug-number
|
|
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Because rustc does not support extract_objects, QEMU creates a static library
with all the C objects. It then passes this static library as link_whole,
together with another static library containing general purpose utility
functions which is passed as link_with.
However, this is brittle because the two have a circular dependency and
they cannot be merged because of the link_whole/link_with difference.
While lld seems to have the --start-group/--end-group semantics
automatically, ld.bfd can fail if these options are needed. This can
cause difference between distros depending on how Rust is packaged
(e.g. Ubuntu 22.04 and Debian bookworm seem to use ld.bfd).
The simplest solution is for Meson to implement "objects:" properly
for Rust. Then QEMU can use the same internal dependency objects that it
already has in place for C programs.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Allow reusing it for Rust targets.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
|
This is required to resolve ambiguous LINK_LIBRARIES passed as bare
names.
|
|
This was broken twice, so check that it does not regress.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Move building the -std option to the new get_option_std_args method,
special casing CUDA to never include the option from the host compiler.
This fixes again #8523, which was broken by the option refactoring
(unsurprisingly, since the fix was ripped out unceremoniously without
a replacement).
Fixes: #14365
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Allow CUDA to completely override the -std arguments but not the rest.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
The white text previously used (inadvertently) doesn't show up well
against the blue color used as the background for Note boxes.
|
|
Since the comment saying we need a generic way to do this is a little
outdated.
|