build: Add ci profile that uses --release

As we add more rust crates in performance-critical places,
we run into some performance issues with debug builds.
This makes it hard to get a good feel for the performance
of the application, as something may be slow simply because
it's not been optimized by the compiler.

This commit adds a ci profile to our meson options,
and adjusts our CI configuration to use it. Regular
builds should continue to use the development profile.

Also renames `default` to `release`
This commit is contained in:
Christopher Davis 2023-03-01 08:42:22 -05:00
parent 6857f2c921
commit 5bcf534142
4 changed files with 11 additions and 8 deletions

View file

@ -7,6 +7,7 @@ variables:
MANIFEST_PATH: "build-aux/flatpak/org.gnome.Loupe.Devel.json" MANIFEST_PATH: "build-aux/flatpak/org.gnome.Loupe.Devel.json"
FLATPAK_MODULE: "loupe" FLATPAK_MODULE: "loupe"
APP_ID: "org.gnome.Loupe.Devel" APP_ID: "org.gnome.Loupe.Devel"
CONFIG_OPTS: "-Dprofile=ci"
RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo" RUNTIME_REPO: "https://nightly.gnome.org/gnome-nightly.flatpakrepo"
flatpak: flatpak:

View file

@ -22,7 +22,7 @@ iv_pkgdatadir = iv_datadir / meson.project_name()
profile = '' profile = ''
version_suffix = '' version_suffix = ''
if get_option('profile') == 'development' if get_option('profile') != 'release'
profile = '.Devel' profile = '.Devel'
vcs_tag = run_command('git', 'rev-parse', '--short', 'HEAD', check: false).stdout().strip() vcs_tag = run_command('git', 'rev-parse', '--short', 'HEAD', check: false).stdout().strip()
if vcs_tag == '' if vcs_tag == ''

View file

@ -1,9 +1,11 @@
option( option(
'profile', 'profile',
type: 'combo', type: 'combo',
description: 'The build profiles for the application. Use development or ci for the .Devel app ID. ci also produces optimized bundles.',
choices: [ choices: [
'default', 'release',
'development' 'development',
'ci',
], ],
value: 'default' value: 'release'
) )

View file

@ -18,13 +18,13 @@ run_command(
cargo_options = [ '--manifest-path', source_root / 'Cargo.toml' ] cargo_options = [ '--manifest-path', source_root / 'Cargo.toml' ]
cargo_options += [ '--target-dir', build_root / 'src' ] cargo_options += [ '--target-dir', build_root / 'src' ]
if get_option('profile') == 'default' if get_option('profile') == 'development'
rust_target = 'debug'
message('Building in debug mode')
else
cargo_options += [ '--release' ] cargo_options += [ '--release' ]
rust_target = 'release' rust_target = 'release'
message('Building in release mode') message('Building in release mode')
else
rust_target = 'debug'
message('Building in debug mode')
endif endif
cargo_env = { 'CARGO_HOME': build_root / 'cargo-home' } cargo_env = { 'CARGO_HOME': build_root / 'cargo-home' }