Skip to content

Commit

Permalink
meson, tox, ci: random improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
amezin committed Jan 1, 2025
1 parent 5e00b07 commit 6a8a6a2
Show file tree
Hide file tree
Showing 20 changed files with 304 additions and 217 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ jobs:
if-no-files-found: error

- name: Run checks
run: xvfb-run ../.github/faketty.sh meson test -v -j1 --no-suite eslint --no-suite reuse --no-suite markdownlint --no-suite flake8 --no-suite pytest
run: xvfb-run ../.github/faketty.sh meson test -v -j1 --logbase ${{ matrix.name }} --no-suite lint-source --no-suite eslint --no-suite reuse --no-suite pytest
working-directory: build
if: ${{ always() && steps.pack.conclusion == 'success' }}

Expand All @@ -222,7 +222,7 @@ jobs:
if: ${{ always() && steps.pack.conclusion == 'success' }}

- name: Run eslint on generated code
run: ../.github/faketty.sh meson test -v -j1 --suite eslint --logbase eslint-build-esm lint-build
run: ../.github/faketty.sh meson test -v -j1 --logbase eslint-${{ matrix.name }} eslint-output
working-directory: build
if: ${{ always() && steps.pack.conclusion == 'success' }}

Expand All @@ -231,10 +231,10 @@ jobs:
if: ${{ always() && steps.enable_eslint_errors.outcome == 'success' }}

- name: Check REUSE compliance of generated package
run: ../.github/faketty.sh meson test -v -j1 --suite reuse --no-rebuild lint-build
run: ../.github/faketty.sh meson test -v -j1 --no-rebuild reuse-lint-output
working-directory: build
if: ${{ always() && steps.pack.conclusion == 'success' }}

- name: Upload reports to Testspace
run: testspace --verbose "build/meson-logs/*.txt{lint}"
run: testspace --verbose "build/meson-logs/*${{ matrix.name }}.txt{lint}"
if: ${{ always() && steps.setup_testspace.outcome == 'success' }}
2 changes: 2 additions & 0 deletions bin/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ if gjs_shebang == ''
gjs_shebang = gjs.full_path()
endif

summary('Shebang', gjs_shebang)

pack += configure_file(
input: 'launcher.js',
output: 'com.github.amezin.ddterm',
Expand Down
2 changes: 1 addition & 1 deletion data/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ desktop_entry_final = i18n.merge_file(
)

test(
desktop_entry_final.full_path(),
fs.name(desktop_entry_final.full_path()),
desktop_file_validate_tool,
args: [desktop_entry_final],
suite: ['desktop-file-validate'],
Expand Down
18 changes: 13 additions & 5 deletions ddterm/app/fakeext/misc/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,16 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later

built_js += fs.copyfile(
'extensionUtils.js',
install: true,
install_dir: extension_dir / 'ddterm' / 'app' / 'fakeext' / 'misc',
)
app_fakeext_misc_js_out_files = []
app_fakeext_misc_js_src_files = files('extensionUtils.js')

foreach app_fakeext_misc_js_src_file : app_fakeext_misc_js_src_files
app_fakeext_misc_js_out_files += fs.copyfile(
app_fakeext_misc_js_src_file,
install: true,
install_dir: extension_dir / 'ddterm' / 'app' / 'fakeext' / 'misc',
)
endforeach

pack += app_fakeext_misc_js_out_files
eslint_out += app_fakeext_misc_js_out_files
4 changes: 2 additions & 2 deletions ddterm/app/icons/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ icon_files = files(
'uppercase-symbolic.svg',
)

foreach icon_file : icon_files
foreach f : icon_files
pack += fs.copyfile(
icon_file,
f,
install: true,
install_dir: extension_dir / 'ddterm' / 'app' / 'icons',
)
Expand Down
71 changes: 45 additions & 26 deletions ddterm/app/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later

app_js_files = files(
app_js_out_files = []
app_js_src_files = files(
'accellabel.js',
'application.js',
'appwindow.js',
Expand All @@ -26,47 +27,65 @@ app_js_files = files(
'waitstatus.js',
)

app_ui_files = files('menus.ui')

foreach app_file : app_js_files + app_ui_files + files(
'dependencies.json',
'dependencies.json.license',
'style.css',
)
pack += fs.copyfile(
app_file,
fs.name(app_file),
foreach app_js_src_file : app_js_src_files
app_js_out_files += fs.copyfile(
app_js_src_file,
install: true,
install_dir: extension_dir / 'ddterm' / 'app',
)
endforeach

app_prefsdialog_file = files(
get_option('esm') ? 'prefsdialog.js' : 'prefsdialog.legacy.js',
)
app_js_files += app_prefsdialog_file
if get_option('esm')
app_prefsdialog_src_file = files('prefsdialog.js')
else
app_prefsdialog_src_file = files('prefsdialog.legacy.js')

subdir('fakeext')
endif

pack += fs.copyfile(
app_prefsdialog_file,
app_js_src_files += app_prefsdialog_src_file
app_js_out_files += fs.copyfile(
app_prefsdialog_src_file,
'prefsdialog.js',
install: true,
install_dir: extension_dir / 'ddterm' / 'app',
)

subdir('icons')
pack += app_js_out_files
eslint_out += app_js_out_files

app_ui_src_files = files('menus.ui')

foreach app_ui_src_file : app_ui_src_files
pack += fs.copyfile(
app_ui_src_file,
install: true,
install_dir: extension_dir / 'ddterm' / 'app',
)

foreach app_ui_file : app_ui_files
test(
fs.parent(app_ui_file) / fs.name(app_ui_file),
fs.relative_to(app_ui_src_file, meson.project_source_root()),
gtk3_builder_tool,
args: ['validate', app_ui_file],
args: ['validate', app_ui_src_file],
suite: ['gtk-builder-validate'],
)
endforeach

if not get_option('esm')
subdir('fakeext')
endif
app_data_src_files = files(
'dependencies.json',
'dependencies.json.license',
'style.css',
)

fs.copyfile('dev-application.js')
fs.copyfile('dev-appwindow.js')
foreach app_data_src_file : app_data_src_files
pack += fs.copyfile(
app_data_src_file,
install: true,
install_dir: extension_dir / 'ddterm' / 'app',
)
endforeach

eslint_out += fs.copyfile('dev-application.js')
eslint_out += fs.copyfile('dev-appwindow.js')

subdir('icons')
32 changes: 15 additions & 17 deletions ddterm/pref/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later

pref_files = files(
pref_js_out_files = []
pref_js_src_files = files(
'adw.js',
'animation.js',
'behavior.js',
Expand All @@ -18,21 +19,18 @@ pref_files = files(
'widget.js',
)

pref_built_js = []

foreach pref_file : pref_files
foreach pref_js_src_file : pref_js_src_files
if get_option('esm')
pref_built_js += fs.copyfile(
pref_file,
fs.name(pref_file),
pref_js_out_files += fs.copyfile(
pref_js_src_file,
install: true,
install_dir: extension_dir / 'ddterm' / 'pref',
)
else
pref_built_js += custom_target(
pref_js_out_files += custom_target(
command: [gjs_translate_esm_command, '-d', meson.project_source_root()],
input: pref_file,
output: fs.name(pref_file),
input: pref_js_src_file,
output: '@PLAINNAME@',
install: true,
install_dir: extension_dir / 'ddterm' / 'pref',
)
Expand All @@ -45,31 +43,31 @@ else
pref_base_uri = '${imports.misc.extensionUtils.getCurrentExtension().dir.get_uri()}/ddterm/pref/'
endif

pref_util_configured = configure_file(
pref_util_conf_file = configure_file(
input: 'util.js',
output: 'util.conf.js',
configuration: {'PREF_BASE_URI': pref_base_uri},
)

if get_option('esm')
pref_built_js += fs.copyfile(
pref_util_configured,
pref_js_out_files += fs.copyfile(
pref_util_conf_file,
'util.js',
install: true,
install_dir: extension_dir / 'ddterm' / 'pref',
)
else
pref_built_js += custom_target(
pref_js_out_files += custom_target(
command: [gjs_translate_esm_command, '-d', meson.project_build_root()],
input: pref_util_configured,
input: pref_util_conf_file,
output: 'util.js',
install: true,
install_dir: extension_dir / 'ddterm' / 'pref',
)
endif

pref_files += files('util.js')
built_js += pref_built_js
pack += pref_js_out_files
eslint_out += pref_js_out_files

subdir('ui')
subdir('test')
5 changes: 0 additions & 5 deletions ddterm/pref/test/eslintrc-build.yml.in

This file was deleted.

16 changes: 4 additions & 12 deletions ddterm/pref/test/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,25 @@

pref_test_common_files = [
fs.copyfile('common.js'),
pref_built_js,
pref_js_out_files,
schema_copy,
schemas_compiled,
]

run_target(
'pref-gtk3-test',
command: [gjs, '-m', fs.copyfile('gtk3.js')],
depends: [pref_test_common_files, pref_ui_gtk3_files],
depends: [pref_test_common_files, pref_ui_gtk3_out_files],
)

run_target(
'pref-gtk4-test',
command: [gjs, '-m', fs.copyfile('gtk4.js')],
depends: [pref_test_common_files, pref_ui_gtk4_files],
depends: [pref_test_common_files, pref_ui_gtk4_out_files],
)

run_target(
'pref-adw-test',
command: [gjs, '-m', fs.copyfile('adw.js')],
depends: [pref_test_common_files, pref_ui_gtk4_files],
)

configure_file(
input: 'eslintrc-build.yml.in',
output: '.eslintrc.yml',
configuration: {
'DONT_EMIT_MESON_WARNING': 'YES', # https://github.com/mesonbuild/meson/issues/12792
},
depends: [pref_test_common_files, pref_ui_gtk4_out_files],
)
19 changes: 11 additions & 8 deletions ddterm/pref/ui/gtk3/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,28 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later

pref_ui_gtk3_files = []
pref_ui_gtk3_out_files = []

foreach pref_ui_file : pref_ui_files
out_file = custom_target(
foreach pref_ui_src_file : pref_ui_src_files
pref_ui_gtk3_out_file = custom_target(
command: [output_capture, gtk3_builder_tool, 'simplify', '@INPUT@'],
input: pref_ui_file,
input: pref_ui_src_file,
output: '@PLAINNAME@',
install: true,
install_dir: extension_dir / 'ddterm' / 'pref' / 'ui' / 'gtk3',
)

test(
out_file.full_path(),
fs.relative_to(
pref_ui_gtk3_out_file.full_path(),
meson.project_source_root(),
),
gtk3_builder_tool,
args: ['validate', out_file],
args: ['validate', pref_ui_gtk3_out_file],
suite: ['gtk-builder-validate'],
)

pref_ui_gtk3_files += out_file
pref_ui_gtk3_out_files += pref_ui_gtk3_out_file
endforeach

pack += pref_ui_gtk3_files
pack += pref_ui_gtk3_out_files
4 changes: 2 additions & 2 deletions ddterm/pref/ui/gtk4/3to4/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

pref_ui_gtk4_3to4_files = []

foreach pref_ui_fixup_file : pref_ui_gtk4_fixup_files
foreach pref_ui_gtk4_fixup_file : pref_ui_gtk4_fixup_files
pref_ui_gtk4_3to4_files += custom_target(
command: [
output_capture,
Expand All @@ -13,7 +13,7 @@ foreach pref_ui_fixup_file : pref_ui_gtk4_fixup_files
'--3to4',
'@INPUT@',
],
input: pref_ui_fixup_file,
input: pref_ui_gtk4_fixup_file,
output: '@PLAINNAME@',
)
endforeach
4 changes: 2 additions & 2 deletions ddterm/pref/ui/gtk4/fixup/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

pref_ui_gtk4_fixup_files = []

foreach pref_ui_file : pref_ui_files
foreach pref_ui_src_file : pref_ui_src_files
pref_ui_gtk4_fixup_files += custom_target(
command: [xsltproc, '-o', '@OUTPUT@', files('3to4-fixup.xsl'), '@INPUT@'],
input: pref_ui_file,
input: pref_ui_src_file,
output: '@PLAINNAME@',
)
endforeach
Loading

0 comments on commit 6a8a6a2

Please sign in to comment.