build: Use internal dependencies
We cannot rely on any build order, except the one we specify ourselves. St depends on various generated files; other targets depend on those files existing, so they can be included. There is no direct relationship between targets and files, unless we declare a dependency, using the Meson declare_dependency() constructor — which allows us to replace the various `link_with` directives with the more appropriate `dependencies` one, and also allows us to specify sources that must exist by the time we build those targets.
This commit is contained in:
parent
b0d21c3a37
commit
86995d724e
@ -101,6 +101,7 @@ libshell_menu_gir = gnome.generate_gir(libshell_menu,
|
|||||||
install: true
|
install: true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
libshell_menu_dep = declare_dependency(link_with: libshell_menu)
|
||||||
|
|
||||||
libshell_public_headers = [
|
libshell_public_headers = [
|
||||||
'shell-app.h',
|
'shell-app.h',
|
||||||
@ -209,16 +210,18 @@ libshell_no_gir_sources += dbus_generated
|
|||||||
|
|
||||||
libshell = library('gnome-shell',
|
libshell = library('gnome-shell',
|
||||||
sources: libshell_gir_sources + libshell_no_gir_sources,
|
sources: libshell_gir_sources + libshell_no_gir_sources,
|
||||||
dependencies: gnome_shell_deps + [mutter_dep, m_dep],
|
dependencies: gnome_shell_deps + [libshell_menu_dep, libst_dep, mutter_dep, m_dep],
|
||||||
include_directories: [conf_inc, st_inc, include_directories('tray')],
|
include_directories: [conf_inc, st_inc, include_directories('tray')],
|
||||||
c_args: gnome_shell_cflags,
|
c_args: gnome_shell_cflags,
|
||||||
link_with: [libshell_menu, libst, libtray],
|
link_with: [libtray],
|
||||||
link_args: rpath_link_args,
|
link_args: rpath_link_args,
|
||||||
install_rpath: install_rpath,
|
install_rpath: install_rpath,
|
||||||
install_dir: pkglibdir,
|
install_dir: pkglibdir,
|
||||||
install: true
|
install: true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
libshell_dep = declare_dependency(link_with: libshell)
|
||||||
|
|
||||||
libshell_gir_includes = [
|
libshell_gir_includes = [
|
||||||
'Clutter-@0@'.format(mutter_api_version),
|
'Clutter-@0@'.format(mutter_api_version),
|
||||||
'ClutterX11-@0@'.format(mutter_api_version),
|
'ClutterX11-@0@'.format(mutter_api_version),
|
||||||
@ -241,7 +244,6 @@ gnome.generate_gir(libshell,
|
|||||||
nsversion: '0.1',
|
nsversion: '0.1',
|
||||||
namespace: 'Shell',
|
namespace: 'Shell',
|
||||||
includes: libshell_gir_includes,
|
includes: libshell_gir_includes,
|
||||||
link_with: [libshell_menu, libst],
|
|
||||||
extra_args: ['--quiet'],
|
extra_args: ['--quiet'],
|
||||||
install_dir_gir: pkgdatadir,
|
install_dir_gir: pkgdatadir,
|
||||||
install_dir_typelib: pkglibdir,
|
install_dir_typelib: pkglibdir,
|
||||||
@ -252,8 +254,7 @@ executable('gnome-shell', 'main.c',
|
|||||||
c_args: gnome_shell_cflags + [
|
c_args: gnome_shell_cflags + [
|
||||||
'-DMUTTER_TYPELIB_DIR="@0@"'.format(mutter_typelibdir)
|
'-DMUTTER_TYPELIB_DIR="@0@"'.format(mutter_typelibdir)
|
||||||
],
|
],
|
||||||
dependencies: gnome_shell_deps + [mutter_dep],
|
dependencies: gnome_shell_deps + [libshell_dep, mutter_dep],
|
||||||
link_with: libshell,
|
|
||||||
include_directories: [conf_inc, st_inc, include_directories('tray')],
|
include_directories: [conf_inc, st_inc, include_directories('tray')],
|
||||||
link_args: rpath_link_args,
|
link_args: rpath_link_args,
|
||||||
install_rpath: install_rpath,
|
install_rpath: install_rpath,
|
||||||
|
@ -127,6 +127,10 @@ libst = shared_library('st-1.0',
|
|||||||
install: true
|
install: true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
libst_dep = declare_dependency(link_with: libst,
|
||||||
|
sources: st_built_sources
|
||||||
|
)
|
||||||
|
|
||||||
test_theme = executable('test-theme',
|
test_theme = executable('test-theme',
|
||||||
sources: 'test-theme.c',
|
sources: 'test-theme.c',
|
||||||
c_args: st_cflags,
|
c_args: st_cflags,
|
||||||
|
Loading…
Reference in New Issue
Block a user