meson release build target that generates tar.gz with vendor

This commit is contained in:
Daniel García Moreno 2017-11-09 20:57:21 +01:00
parent 9c32b24b3f
commit d0dac5e7ad
4 changed files with 46 additions and 0 deletions

1
.gitignore vendored
View file

@ -5,3 +5,4 @@ target
Makefile
_build
Cargo.lock
vendor

3
configure vendored
View file

@ -141,6 +141,9 @@ install:
uninstall:
${NINJA} ${NINJA_OPT} uninstall
release:
${NINJA} ${NINJA_OPT} release
check:
${MESONTEST} ${NINJA_OPT}
END

View file

@ -29,3 +29,8 @@ cargo_release = custom_target('cargo-build',
install: true,
install_dir: fractal_bindir,
command: ['FRACTAL_RES=' + fractal_datadir, cargo_script, '@CURRENT_SOURCE_DIR@', '@OUTPUT@'])
run_target('release', command: ['scripts/release.sh',
meson.project_name() + '-' + fractal_version
],
depends: [cargo_release])

37
scripts/release.sh Executable file
View file

@ -0,0 +1,37 @@
#!/bin/sh
VERSION=$1
DEST=${MESON_BUILD_ROOT}
DIST=$DEST/dist/$VERSION
cd "${MESON_SOURCE_ROOT}"
mkdir -p $DIST
# copying files
cp -rf src $DIST
cp build.rs $DIST
cp Cargo.toml $DIST
cp configure $DIST
cp meson.build $DIST
cp fractal.doap $DIST
cp LICENSE.txt $DIST
cp README.md $DIST
cp -rf res $DIST
cp -rf scripts $DIST
# cargo vendor
cargo vendor
mkdir $DIST/.cargo
cat <<EOF > $DIST/.cargo/config
[source.crates-io]
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "vendor"
EOF
cp -rf vendor $DIST/
# packaging
cd $DEST/dist
tar -czvf $VERSION.tar.gz $VERSION