build: Place target in meson build dir

Instead of putting target/ and in the source
directory, we can tell our cargo script to put both target
and our cargo-home in meson's build directory. This means
that when triggering a rebuild through meson via tooling
like Builder, Fractal will actually rebuild.
This commit is contained in:
Christopher Davis 2019-04-22 01:54:26 -04:00 committed by Daniel Garcia Moreno
parent 63528416e7
commit 919037495f
3 changed files with 8 additions and 5 deletions

View file

@ -16,7 +16,7 @@ variables:
key: "flatpak"
paths:
- .flatpak-builder/cache/
- target/
- _build/target/
- target_docs/
- target_test/

View file

@ -46,6 +46,7 @@ cargo_release = custom_target('cargo-build',
command: [cargo_script,
'@SOURCE_ROOT@',
'@OUTPUT@',
meson.build_root(),
profile
])

View file

@ -1,13 +1,15 @@
#!/bin/sh
export CARGO_HOME=$1/target/cargo-home
export FRACTAL_PROFILE="$3"
export OUTPUT="$2"
export CARGO_TARGET_DIR="$3"/target
export CARGO_HOME="$CARGO_TARGET_DIR"/cargo-home
export FRACTAL_PROFILE="$4"
if [ "$FRACTAL_PROFILE" = "Devel" ]
then
echo "DEBUG MODE"
cargo build --manifest-path $1/Cargo.toml -p fractal-gtk && cp $1/target/debug/fractal-gtk $2
cargo build --manifest-path $1/Cargo.toml -p fractal-gtk && cp "$CARGO_TARGET_DIR"/debug/fractal-gtk "$OUTPUT"
else
echo "RELEASE MODE"
cargo build --manifest-path $1/Cargo.toml --release -p fractal-gtk && cp $1/target/release/fractal-gtk $2
cargo build --manifest-path $1/Cargo.toml --release -p fractal-gtk && cp "$CARGO_TARGET_DIR"/release/fractal-gtk "$OUTPUT"
fi