From 419faf03628af5ee56e0765e1534c0e20e98c7f9 Mon Sep 17 00:00:00 2001 From: James Westman Date: Fri, 22 Oct 2021 23:19:45 -0500 Subject: [PATCH] Use meson instead of setup.py This project will usually be used as a subproject, so it needs a meson file, and I'd like to not support two different buildsystems. --- .gitignore | 1 + .gitlab-ci.yml | 8 +++--- gtk-blueprint-tool.pc | 3 --- meson.build | 24 +++++++++++++++++ setup.py | 61 ------------------------------------------- 5 files changed, 30 insertions(+), 67 deletions(-) delete mode 100644 gtk-blueprint-tool.pc create mode 100644 meson.build delete mode 100644 setup.py diff --git a/.gitignore b/.gitignore index f4fe942..737953e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ __pycache__ /build /dist *.egg-info +gtk-blueprint-tool.pc diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index aa377f8..efb92c2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,7 @@ test: script: - - dnf install -y python3-pip - - python3 -m unittest - - pip3 install --user . + - dnf install -y meson + - meson _build + - ninja -C _build + - ninja -C _build test + - ninja -C _build install diff --git a/gtk-blueprint-tool.pc b/gtk-blueprint-tool.pc deleted file mode 100644 index 8d2888a..0000000 --- a/gtk-blueprint-tool.pc +++ /dev/null @@ -1,3 +0,0 @@ -Name: gtk-blueprint-tool -Description: Markup compiler for GTK user interface definitions -Version: 2021.1 \ No newline at end of file diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..fba217e --- /dev/null +++ b/meson.build @@ -0,0 +1,24 @@ +project('gtk-blueprint-tool', + version: '0.1.0', +) + +prefix = get_option('prefix') +libdir = join_paths(prefix, get_option('libdir')) + +py = import('python').find_installation('python3') + +configure_file( + input: 'gtk-blueprint-tool.pc.in', + output: 'gtk-blueprint-tool.pc', + configuration: { 'VERSION': meson.project_version() }, + install: not meson.is_subproject(), + install_dir: join_paths(libdir, 'pkgconfig'), +) + +meson.override_find_program('gtk-blueprint-tool', find_program('gtk-blueprint-tool.py')) + +if not meson.is_subproject() + install_subdir('gtkblueprinttool', install_dir: py.get_install_dir()) +endif + +test('tests', py, args: ['-m', 'unittest']) diff --git a/setup.py b/setup.py deleted file mode 100644 index 6f91520..0000000 --- a/setup.py +++ /dev/null @@ -1,61 +0,0 @@ -# SPDX-FileCopyrightText: 2021 GNOME Foundation -# SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-later - -# Adapted from the gi-docgen source code by James Westman - -import sys - -from gtkblueprinttool import main - -from distutils.command.build_py import build_py as _build_py -from setuptools import setup - - -class BuildCommand(_build_py): - - def generate_pkgconfig_file(self): - lines = [] - with open('gtk-blueprint-tool.pc.in', 'r') as f: - for line in f.readlines(): - new_line = line.strip().replace('@VERSION@', main.VERSION) - lines.append(new_line) - with open('gtk-blueprint-tool.pc', 'w') as f: - f.write('\n'.join(lines)) - - def run(self): - self.generate_pkgconfig_file() - return super().run() - - -def readme_md(): - '''Return the contents of the README.md file''' - return open('README.md').read() - - -entries = { - 'console_scripts': ['gtk-blueprint-tool=gtkblueprinttool.main:main'], -} - -packages = [ - 'gtkblueprinttool', -] - -data_files = [ - ('share/pkgconfig', ['gtk-blueprint-tool.pc']), -] - -if __name__ == '__main__': - setup( - cmdclass={ - 'build_py': BuildCommand, - }, - name='gtk-blueprint-tool', - version=main.VERSION, - license='GPL-3.0-or-later', - long_description=readme_md(), - long_description_content_type='text/markdown', - include_package_data=True, - packages=packages, - entry_points=entries, - data_files=data_files, - )