Simplify build-system further
Remove Fragile from the list of dependencies It is not necessary for building 'gio' anymore, since the upgrade to 'glib v2_58'. Remove "online" and "reset_lock" Meson-options Building Squeekboard should work offline. Use a single "Cargo.toml"-file instead of splitting it into parts and putting it back together when building. Part-of: <https://gitlab.gnome.org/World/Phosh/squeekboard/-/merge_requests/623>
This commit is contained in:
@ -1,4 +0,0 @@
|
|||||||
# Dependencies which are only used with online, crates.io builds.
|
|
||||||
[patch.crates-io]
|
|
||||||
# Dependency was yanked, but gio 0.7 needs it.
|
|
||||||
fragile = { git = "https://source.puri.sm/dorota.czaplejewicz/fragile.git", tag = "0.3.0" }
|
|
||||||
@ -1,11 +1,38 @@
|
|||||||
# Dependencies and tools which change based on build flags
|
[package]
|
||||||
# For the newer-than-Byzantium config
|
name = "rs"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[lib]
|
||||||
|
name = "rs"
|
||||||
|
path = "@path@/src/lib.rs"
|
||||||
|
crate-type = ["staticlib", "rlib"]
|
||||||
|
|
||||||
|
# Cargo can't do autodiscovery if Cargo.toml is not in the root.
|
||||||
|
[[bin]]
|
||||||
|
name = "test_layout"
|
||||||
|
path = "@path@/src/bin/test_layout.rs"
|
||||||
|
|
||||||
|
[[example]]
|
||||||
|
name = "test_layout"
|
||||||
|
path = "@path@/examples/test_layout.rs"
|
||||||
|
|
||||||
|
[[example]]
|
||||||
|
name = "find_orphan_layouts"
|
||||||
|
path = "@path@/examples/find_orphan_layouts.rs"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
zbus_v1_5 = []
|
||||||
|
clap_v4 = []
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
maplit = "1.0.*"
|
||||||
|
serde = { version = "1.0.*", features = ["derive"] }
|
||||||
|
serde_yaml = "0.8.*"
|
||||||
bitflags = "1.3.*"
|
bitflags = "1.3.*"
|
||||||
clap = { version = "4.4.*", features=["std"], default-features = false }
|
clap = { version = "4.4.*", features=["std"], default-features = false }
|
||||||
zbus = "1.9.*"
|
zbus = "1.9.*"
|
||||||
zvariant = "2.10.*"
|
zvariant = "2.10.*"
|
||||||
# Newer versions seem to confuse the version of Cargo on Debian Bullseye
|
|
||||||
zvariant_derive = "2.10.*"
|
zvariant_derive = "2.10.*"
|
||||||
xkbcommon = { version = "0.5.*", features = ["wayland"] }
|
xkbcommon = { version = "0.5.*", features = ["wayland"] }
|
||||||
|
|
||||||
@ -1,33 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "rs"
|
|
||||||
version = "0.1.0"
|
|
||||||
edition = "2021"
|
|
||||||
|
|
||||||
[lib]
|
|
||||||
name = "rs"
|
|
||||||
path = "@path@/src/lib.rs"
|
|
||||||
crate-type = ["staticlib", "rlib"]
|
|
||||||
|
|
||||||
# Cargo can't do autodiscovery if Cargo.toml is not in the root.
|
|
||||||
[[bin]]
|
|
||||||
name = "test_layout"
|
|
||||||
path = "@path@/src/bin/test_layout.rs"
|
|
||||||
|
|
||||||
[[example]]
|
|
||||||
name = "test_layout"
|
|
||||||
path = "@path@/examples/test_layout.rs"
|
|
||||||
|
|
||||||
[[example]]
|
|
||||||
name = "find_orphan_layouts"
|
|
||||||
path = "@path@/examples/find_orphan_layouts.rs"
|
|
||||||
|
|
||||||
[features]
|
|
||||||
zbus_v1_5 = []
|
|
||||||
clap_v4 = []
|
|
||||||
|
|
||||||
# Dependencies which don't change based on build flags
|
|
||||||
[dependencies]
|
|
||||||
maplit = "1.0.*"
|
|
||||||
serde = { version = "1.0.*", features = ["derive"] }
|
|
||||||
serde_yaml = "0.8.*"
|
|
||||||
# Here is inserted the Cargo.deps file
|
|
||||||
4
debian/rules
vendored
4
debian/rules
vendored
@ -29,7 +29,3 @@ export RUSTFLAGS = --remap-path-prefix=$(CURDIR)=/remap-pwd $(xgot)
|
|||||||
|
|
||||||
# The Debian version of linked-hash-map doesn't provide any hash,
|
# The Debian version of linked-hash-map doesn't provide any hash,
|
||||||
# causing Cargo to refuse to build with a crates.io copy
|
# causing Cargo to refuse to build with a crates.io copy
|
||||||
override_dh_auto_configure:
|
|
||||||
dh_auto_configure -- -Donline=false
|
|
||||||
|
|
||||||
override_dh_autoreconf:
|
|
||||||
|
|||||||
36
meson.build
36
meson.build
@ -85,45 +85,15 @@ summary = [
|
|||||||
]
|
]
|
||||||
message('\n'.join(summary))
|
message('\n'.join(summary))
|
||||||
|
|
||||||
# Rust deps are changing, depending on compile flags. Cargo can't handle it alone.
|
|
||||||
# As a side effect, Cargo.toml never gets used.
|
|
||||||
cargo_toml_in = files('Cargo.toml.in')
|
|
||||||
path_data = configuration_data()
|
path_data = configuration_data()
|
||||||
path_data.set('path', meson.source_root())
|
path_data.set('path', meson.source_root())
|
||||||
cargo_toml_base = configure_file(
|
cargo_toml = configure_file(
|
||||||
input: 'Cargo.toml.in',
|
input: 'Cargo.toml',
|
||||||
output: 'Cargo.toml.base',
|
output: 'Cargo.toml',
|
||||||
configuration: path_data,
|
configuration: path_data,
|
||||||
)
|
)
|
||||||
|
|
||||||
cargo_patch = []
|
|
||||||
|
|
||||||
cargo_build_flags += ['--features', 'zbus_v1_5,clap_v4']
|
cargo_build_flags += ['--features', 'zbus_v1_5,clap_v4']
|
||||||
cargo_deps = files('Cargo.deps')
|
|
||||||
cargo_lock = files('Cargo.lock')
|
|
||||||
|
|
||||||
if get_option('online') == true
|
|
||||||
cargo_patch = [files('Cargo.deps.online')]
|
|
||||||
endif
|
|
||||||
|
|
||||||
cat = find_program('cat')
|
|
||||||
cargo_toml = custom_target(
|
|
||||||
'Cargo.toml',
|
|
||||||
output: 'Cargo.toml',
|
|
||||||
command: [cat, cargo_toml_base, cargo_deps] + cargo_patch,
|
|
||||||
capture: true,
|
|
||||||
)
|
|
||||||
|
|
||||||
cargo_deps = [cargo_toml]
|
|
||||||
if get_option('online') == true and get_option('reset_lock') == true
|
|
||||||
cargo_lock = custom_target(
|
|
||||||
'Cargo.lock',
|
|
||||||
output: 'Cargo.lock',
|
|
||||||
command: [cat, cargo_lock],
|
|
||||||
capture: true,
|
|
||||||
)
|
|
||||||
cargo_deps += [cargo_lock]
|
|
||||||
endif
|
|
||||||
|
|
||||||
dep_cargo = find_program('cargo')
|
dep_cargo = find_program('cargo')
|
||||||
cargo_script = find_program('cargo.sh')
|
cargo_script = find_program('cargo.sh')
|
||||||
|
|||||||
@ -11,14 +11,6 @@ option('find_orphans',
|
|||||||
type: 'boolean', value: false,
|
type: 'boolean', value: false,
|
||||||
description: 'Check if all present layout files are included in resources.')
|
description: 'Check if all present layout files are included in resources.')
|
||||||
|
|
||||||
option('online',
|
|
||||||
type: 'boolean', value: true,
|
|
||||||
description: 'Pull packages from the internet while building, as opposed to a local registry.')
|
|
||||||
|
|
||||||
option('reset_lock',
|
|
||||||
type: 'boolean', value: false,
|
|
||||||
description: 'Resets Cargo.lock to the one found in the source repo. Does not affect builds with online == false.')
|
|
||||||
|
|
||||||
option('strict',
|
option('strict',
|
||||||
type: 'boolean', value: true,
|
type: 'boolean', value: true,
|
||||||
description: 'Turn more warnings into errors')
|
description: 'Turn more warnings into errors')
|
||||||
|
|||||||
@ -52,7 +52,6 @@ deps = [
|
|||||||
cc.find_library('rt'),
|
cc.find_library('rt'),
|
||||||
cc.find_library('dl'),
|
cc.find_library('dl'),
|
||||||
cc.find_library('pthread'),
|
cc.find_library('pthread'),
|
||||||
# dependency('libxklavier'), # FIXME remove
|
|
||||||
]
|
]
|
||||||
|
|
||||||
rslibs = custom_target(
|
rslibs = custom_target(
|
||||||
@ -63,7 +62,6 @@ rslibs = custom_target(
|
|||||||
install: false,
|
install: false,
|
||||||
console: true,
|
console: true,
|
||||||
command: [cargo_build] + ['@OUTPUT@', '--lib'] + cargo_build_flags,
|
command: [cargo_build] + ['@OUTPUT@', '--lib'] + cargo_build_flags,
|
||||||
depends: cargo_deps,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
build_rstests = custom_target(
|
build_rstests = custom_target(
|
||||||
@ -78,7 +76,7 @@ build_rstests = custom_target(
|
|||||||
install: false,
|
install: false,
|
||||||
console: true,
|
console: true,
|
||||||
command: [cargo_script, 'test', '--no-run'] + cargo_build_flags,
|
command: [cargo_script, 'test', '--no-run'] + cargo_build_flags,
|
||||||
depends: [rslibs, cargo_deps], # no point building tests if the code itself fails
|
depends: [rslibs], # no point building tests if the code itself fails
|
||||||
)
|
)
|
||||||
|
|
||||||
test(
|
test(
|
||||||
@ -86,9 +84,9 @@ test(
|
|||||||
cargo_script,
|
cargo_script,
|
||||||
args: ['test'] + cargo_build_flags,
|
args: ['test'] + cargo_build_flags,
|
||||||
env: ['SOURCE_DIR=' + meson.source_root()],
|
env: ['SOURCE_DIR=' + meson.source_root()],
|
||||||
# this is a whole Carg-based test suite, let it run for a while
|
# This is a whole Cargo-based test suite, let it run for a while
|
||||||
timeout: 900,
|
timeout: 900,
|
||||||
depends: [build_rstests, cargo_deps],
|
depends: [build_rstests],
|
||||||
)
|
)
|
||||||
|
|
||||||
libsqueekboard = static_library('libsqueekboard',
|
libsqueekboard = static_library('libsqueekboard',
|
||||||
|
|||||||
@ -16,5 +16,4 @@ test_layout = custom_target('squeekboard-test-layout',
|
|||||||
+ cargo_build_flags,
|
+ cargo_build_flags,
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: bindir,
|
install_dir: bindir,
|
||||||
depends: cargo_deps,
|
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user