mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
build: Set the module path in the build
Instead of trying to find the module by traversing from the executable, have meson hardcode the path. I *think* this is a little less fragile.
This commit is contained in:
parent
75475d1a45
commit
e78fae4f12
2 changed files with 26 additions and 18 deletions
|
@ -21,18 +21,19 @@
|
||||||
|
|
||||||
import os, sys
|
import os, sys
|
||||||
|
|
||||||
# Try to find the python module, assuming the current file is installed to (prefix)/bin
|
# These variables should be set by meson. If they aren't, we're running
|
||||||
dirname = os.path.join(os.path.dirname(os.path.dirname(__file__)), "share", "blueprint-compiler")
|
# uninstalled, and we might have to guess some values.
|
||||||
if os.path.isdir(os.path.join(dirname, "blueprintcompiler")):
|
|
||||||
sys.path.insert(0, dirname)
|
|
||||||
|
|
||||||
# Get the configured (or, if running from source, not configured) version number
|
|
||||||
version = "@VERSION@"
|
version = "@VERSION@"
|
||||||
|
module_path = "@MODULE_PATH@"
|
||||||
|
libdir = "@LIBDIR@"
|
||||||
|
|
||||||
def literal(key):
|
if version == "\u0040VERSION@":
|
||||||
return "@" + key + "@"
|
version = "uninstalled"
|
||||||
|
else:
|
||||||
|
# If Meson set the configuration values, insert the module path it set
|
||||||
|
sys.path.insert(0, module_path)
|
||||||
|
|
||||||
from blueprintcompiler import main
|
from blueprintcompiler import main
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main.main("uninstalled" if version == literal("VERSION") else version)
|
main.main(version)
|
||||||
|
|
25
meson.build
25
meson.build
|
@ -17,22 +17,29 @@ configure_file(
|
||||||
install_dir: join_paths(datadir, 'pkgconfig'),
|
install_dir: join_paths(datadir, 'pkgconfig'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
config = configuration_data({
|
||||||
|
'VERSION': meson.project_version(),
|
||||||
|
'LIBDIR': get_option('prefix') / get_option('libdir'),
|
||||||
|
})
|
||||||
|
|
||||||
|
if meson.is_subproject()
|
||||||
|
config.set('MODULE_PATH', meson.current_source_dir())
|
||||||
|
else
|
||||||
|
config.set('MODULE_PATH', py.get_install_dir())
|
||||||
|
endif
|
||||||
|
|
||||||
blueprint_compiler = configure_file(
|
blueprint_compiler = configure_file(
|
||||||
input: 'blueprint-compiler.py',
|
input: 'blueprint-compiler.py',
|
||||||
output: 'blueprint-compiler',
|
output: 'blueprint-compiler',
|
||||||
configuration: {
|
configuration: config,
|
||||||
'VERSION': meson.project_version(),
|
|
||||||
},
|
|
||||||
install: not meson.is_subproject(),
|
install: not meson.is_subproject(),
|
||||||
install_dir: get_option('bindir'),
|
install_dir: get_option('bindir'),
|
||||||
)
|
)
|
||||||
|
|
||||||
# Don't use the output configure_file here--that file is in the build directory
|
if meson.is_subproject()
|
||||||
# and won't be able to find the python modules in the source directory.
|
meson.override_find_program('blueprint-compiler', blueprint_compiler)
|
||||||
meson.override_find_program('blueprint-compiler', find_program('blueprint-compiler.py'))
|
else
|
||||||
|
install_subdir('blueprintcompiler', install_dir: py.get_install_dir())
|
||||||
if not meson.is_subproject()
|
|
||||||
install_subdir('blueprintcompiler', install_dir: datadir / 'blueprint-compiler')
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
subdir('tests')
|
subdir('tests')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue