From 466509b8fc225db0e37021f6e71d0d7648ffcf83 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sat, 7 Mar 2020 07:59:13 -0500 Subject: meson build (subproject imageformats pinned 7.0.0) - subprojects with "manual" git download where upstream git lacks meson.build - imageformats git tag (version) pinned, else build fails --- org/spine_build_scaffold.org | 91 ++++++++++++++++++++++++++++---------------- 1 file changed, 59 insertions(+), 32 deletions(-) (limited to 'org/spine_build_scaffold.org') diff --git a/org/spine_build_scaffold.org b/org/spine_build_scaffold.org index cd21833..711014b 100644 --- a/org/spine_build_scaffold.org +++ b/org/spine_build_scaffold.org @@ -200,19 +200,38 @@ all_debug: dmd_debug gdc_debug ldc_debug ******** _meson_ build :meson: +- bug in build of imageformats > v7.0.0 (currently at 7.0.2) + checkout of v7.0.0 hopefully a tmp fix + (remove when possible & use upstream head) + #+BEGIN_SRC makefile :tangle ../makefile -meson: dub_upgrade - rm -r build; mkdir build - meson --buildtype=debugoptimized build - ninja -C build - notify-send -t 0 'D meson build ldc compiled test release executable ready' 'spine' -mesonredo: +meson_clean_build_dir: rm -r build; mkdir build +meson_get_subprojects: meson_clean_build_dir + rm -rf subprojects/d2sqlite3; rm -rf subprojects/imageformats + rm -rf subprojects/dyaml; rm -rf subprojects/tinyendian + git clone https://github.com/biozic/d2sqlite3.git subprojects/d2sqlite3 + git clone https://github.com/lgvz/imageformats.git subprojects/imageformats + cd subprojects/d2sqlite3; \ + git checkout -b add_meson_build_patch; \ + cp ../d2sqlite3.meson.build meson.build; \ + git add . ; git commit -m"project meson.build added"; \ + cd ../.. + cd subprojects/imageformats; \ + git checkout -b add_meson_build_patch v7.0.0; \ + cp ../imageformats.meson.build meson.build; \ + git add . ; git commit -m"project meson.build added"; \ + cd ../.. +mesonclean: clean skel tangle dub_upgrade meson --buildtype=debugoptimized build ninja -C build -mesonclean: clean skel tangle dub_upgrade +meson_build: meson_clean_build_dir meson --buildtype=debugoptimized build ninja -C build + notify-send -t 0 'D meson build ldc compiled test release executable ready' 'spine' +meson_upgrade: dub_upgrade meson_get_subprojects +meson_upgrade_and_build: dub_upgrade meson_get_subprojects meson_clean_build_dir meson_build +meson: meson_clean_build_dir meson_build #+END_SRC ******* clean & tangle :clean:tangle: @@ -1011,6 +1030,11 @@ http://mesonbuild.com/Dependencies.html#Dub ls -1 ./src/*/**/*.d tree -fi ./src |rg "\.d$" +tree -if src | rg ".+\.d$" > spine_sources.txt && \ +for i in spine_sources.txt; do; \ +sed -i "s/\(.\+\.d$\)/ '\1',/g" $i; done && \ +cat spine_sources.txt + #+BEGIN_SRC sh :tangle ../meson.build project('spine', 'd', license: 'AGPL3', @@ -1110,23 +1134,24 @@ spine_exe = executable('spine', *** d2sqlite3 **** wrap -#+BEGIN_SRC sh :tangle ../subprojects/d2sqlite3.wrap +#+BEGIN_SRC sh :NO-tangle ../subprojects/d2sqlite3.wrap [wrap-git] directory = d2sqlite3 url = https://github.com/biozic/d2sqlite3.git revision = head +# revision = add_meson_build_patch #+END_SRC **** meson.build -#+BEGIN_SRC sh :tangle ../subprojects/d2sqlite3/meson.build +#+BEGIN_SRC sh :tangle ../subprojects/d2sqlite3.meson.build project('d2sqlite3', 'd', meson_version: '>=0.46', license: 'BSL-1.0', version: '0.18.3' ) -project_soversion = '0' +project_soversion = '0' src_dir = include_directories('source/') pkgc = import('pkgconfig') @@ -1258,49 +1283,50 @@ dyaml_dep = declare_dependency( *** imageformats **** wrap -#+BEGIN_SRC sh :tangle ../subprojects/imageformats.wrap +#+BEGIN_SRC sh :NO-tangle ../subprojects/imageformats.wrap [wrap-git] directory = imageformats url = https://github.com/lgvz/imageformats.git revision = head +# revision = add_meson_build_patch #+END_SRC **** meson.build -#+BEGIN_SRC sh :tangle ../subprojects/imageformats/meson.build +#+BEGIN_SRC sh :tangle ../subprojects/imageformats.meson.build project('imageformats', 'd', - meson_version: '>=0.46', - license: 'BSL-1.0', - version: '7.0.0' + meson_version: '>=0.46', + license: 'BSL-1.0', + version: '7.0.0' ) -project_soversion = '0' +project_soversion = '0' src_dir = include_directories('.') pkgc = import('pkgconfig') imageformats_src = [ - 'imageformats/bmp.d', - 'imageformats/jpeg.d', - 'imageformats/package.d', - 'imageformats/png.d', - 'imageformats/tga.d' + 'imageformats/bmp.d', + 'imageformats/jpeg.d', + 'imageformats/package.d', + 'imageformats/png.d', + 'imageformats/tga.d' ] install_subdir('imageformats/', install_dir: 'include/d/imageformats-d/') imageformats_lib = library('imageformats-d', - [imageformats_src], - include_directories: [src_dir], - install: true, - version: meson.project_version(), - soversion: project_soversion + [imageformats_src], + include_directories: [src_dir], + install: true, + version: meson.project_version(), + soversion: project_soversion ) pkgc.generate(name: 'imageformats-d', - libraries: imageformats_lib, - subdirs: 'd/imageformats-d/', - version: meson.project_version(), - description: 'Decoders for PNG, TGA, BMP, JPEG and encoders for PNG, TGA, BMP.' + libraries: imageformats_lib, + subdirs: 'd/imageformats-d/', + version: meson.project_version(), + description: 'Decoders for PNG, TGA, BMP, JPEG and encoders for PNG, TGA, BMP.' ) # for use by others which embed this as subproject @@ -1405,9 +1431,10 @@ tinyendian_dep = declare_dependency( !**/*.ssm !subprojects !subprojects/*.wrap +!subprojects/*.meson.build # !subprojects/dyaml -!subprojects/d2sqlite3 -!subprojects/imageformats +# !subprojects/d2sqlite3 +# !subprojects/imageformats # !subprojects/tinyendian subprojects/*/.gitignore !pod.manifest -- cgit v1.2.3