aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2020-03-07 07:59:13 -0500
committerRalph Amissah <ralph.amissah@gmail.com>2020-03-14 15:17:41 -0400
commit466509b8fc225db0e37021f6e71d0d7648ffcf83 (patch)
tree1fee28daec7cf516e0dacc407367c804d56110cc
parentmeson build (diff)
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
-rw-r--r--.gitignore5
-rw-r--r--makefile29
-rw-r--r--org/spine_build_scaffold.org91
-rw-r--r--subprojects/D-YAML.wrap4
-rw-r--r--subprojects/d2sqlite3.dub.sdl (renamed from subprojects/d2sqlite3/dub.sdl)0
-rw-r--r--subprojects/d2sqlite3.meson.build (renamed from subprojects/d2sqlite3/meson.build)2
-rw-r--r--subprojects/d2sqlite3.wrap4
-rw-r--r--subprojects/d2sqlite3/.gitignore10
-rw-r--r--subprojects/dyaml/dub.json25
-rw-r--r--subprojects/dyaml/meson.build70
-rw-r--r--subprojects/imageformats.dub.sdl (renamed from subprojects/imageformats/dub.sdl)0
-rw-r--r--subprojects/imageformats.meson.build40
-rw-r--r--subprojects/imageformats.wrap4
-rw-r--r--subprojects/imageformats/meson.build40
-rw-r--r--subprojects/tinyendian/.gitignore4
-rw-r--r--subprojects/tinyendian/dub.json16
-rw-r--r--subprojects/tinyendian/meson.build41
17 files changed, 125 insertions, 260 deletions
diff --git a/.gitignore b/.gitignore
index 32de0fa..a3a6702 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,9 +34,10 @@
!**/*.ssm
!subprojects
!subprojects/*.wrap
+!subprojects/*.meson.build
# !subprojects/dyaml
-!subprojects/d2sqlite3
-!subprojects/imageformats
+# !subprojects/d2sqlite3
+# !subprojects/imageformats
# !subprojects/tinyendian
subprojects/*/.gitignore
!pod.manifest
diff --git a/makefile b/makefile
index 679f661..ee8acba 100644
--- a/makefile
+++ b/makefile
@@ -91,18 +91,33 @@ markup_dir_samples:
all: dmd ldc gdc
all_ver: dmd_ver ldc_ver gdc_ver
all_debug: dmd_debug gdc_debug ldc_debug
-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
all_clean: clean tangle dmd ldc gdc
all_ver_clean: clean tangle dmd_ver ldc_ver gdc_ver
all_debug_ver: dmd_debug_ver gdc_debug_ver ldc_debug_ver
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
diff --git a/subprojects/D-YAML.wrap b/subprojects/D-YAML.wrap
deleted file mode 100644
index 8b3f503..0000000
--- a/subprojects/D-YAML.wrap
+++ /dev/null
@@ -1,4 +0,0 @@
-[wrap-git]
-directory = dyaml
-url = https://github.com/dlang-community/D-YAML.git
-revision = head
diff --git a/subprojects/d2sqlite3/dub.sdl b/subprojects/d2sqlite3.dub.sdl
index f2bd29f..f2bd29f 100644
--- a/subprojects/d2sqlite3/dub.sdl
+++ b/subprojects/d2sqlite3.dub.sdl
diff --git a/subprojects/d2sqlite3/meson.build b/subprojects/d2sqlite3.meson.build
index 1726952..1685738 100644
--- a/subprojects/d2sqlite3/meson.build
+++ b/subprojects/d2sqlite3.meson.build
@@ -4,7 +4,7 @@ project('d2sqlite3', 'd',
version: '0.18.3'
)
-project_soversion = '0'
+project_soversion = '0'
src_dir = include_directories('source/')
pkgc = import('pkgconfig')
diff --git a/subprojects/d2sqlite3.wrap b/subprojects/d2sqlite3.wrap
deleted file mode 100644
index 78643b5..0000000
--- a/subprojects/d2sqlite3.wrap
+++ /dev/null
@@ -1,4 +0,0 @@
-[wrap-git]
-directory = d2sqlite3
-url = https://github.com/biozic/d2sqlite3.git
-revision = head
diff --git a/subprojects/d2sqlite3/.gitignore b/subprojects/d2sqlite3/.gitignore
deleted file mode 100644
index 8d7b4d4..0000000
--- a/subprojects/d2sqlite3/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-.dub
-dub.selections.json
-__test__*
-d2sqlite3-test*
-libd2sqlite3.a
-TODO.txt
-docs.json
-docs
-sqlite3.o
-lib/*/*.lib
diff --git a/subprojects/dyaml/dub.json b/subprojects/dyaml/dub.json
deleted file mode 100644
index 07ee17e..0000000
--- a/subprojects/dyaml/dub.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "name": "dyaml",
- "description": "YAML parser and emitter",
- "authors": [
- "Ferdinand Majerech",
- "Cameron \"Herringway\" Ross"
- ],
- "license": "BSL-1.0",
- "dependencies": {
- "tinyendian" : "~>0.2.0"
- },
- "homepage": "https://github.com/dlang-community/D-YAML",
- "copyright": "Copyright © 2011-2018, Ferdinand Majerech",
- "subPackages": [
- "examples/constructor",
- "examples/getting_started",
- "examples/representer",
- "examples/resolver",
- "examples/tojson",
- "examples/yaml_bench",
- "examples/yaml_gen",
- "examples/yaml_stats",
- "testsuite"
- ]
-}
diff --git a/subprojects/dyaml/meson.build b/subprojects/dyaml/meson.build
deleted file mode 100644
index 68d17c7..0000000
--- a/subprojects/dyaml/meson.build
+++ /dev/null
@@ -1,70 +0,0 @@
-project('D-YAML', 'd',
- meson_version: '>=0.40.0',
- subproject_dir: 'contrib',
- version: '0.8.0'
-)
-
-project_soversion = '0'
-
-src_dir = include_directories('source/')
-pkgc = import('pkgconfig')
-
-dyaml_src = [
- 'source/dyaml/composer.d',
- 'source/dyaml/constructor.d',
- 'source/dyaml/dumper.d',
- 'source/dyaml/emitter.d',
- 'source/dyaml/encoding.d',
- 'source/dyaml/escapes.d',
- 'source/dyaml/event.d',
- 'source/dyaml/exception.d',
- 'source/dyaml/linebreak.d',
- 'source/dyaml/loader.d',
- 'source/dyaml/node.d',
- 'source/dyaml/package.d',
- 'source/dyaml/parser.d',
- 'source/dyaml/queue.d',
- 'source/dyaml/reader.d',
- 'source/dyaml/representer.d',
- 'source/dyaml/resolver.d',
- 'source/dyaml/scanner.d',
- 'source/dyaml/serializer.d',
- 'source/dyaml/style.d',
- 'source/dyaml/tagdirective.d',
- 'source/dyaml/test/common.d',
- 'source/dyaml/test/compare.d',
- 'source/dyaml/test/constructor.d',
- 'source/dyaml/test/emitter.d',
- 'source/dyaml/test/errors.d',
- 'source/dyaml/test/inputoutput.d',
- 'source/dyaml/test/reader.d',
- 'source/dyaml/test/representer.d',
- 'source/dyaml/test/resolver.d',
- 'source/dyaml/test/tokens.d',
- 'source/dyaml/token.d'
-]
-install_subdir('source/dyaml', install_dir: 'include/d/yaml/')
-
-tinyendian_dep = dependency('tinyendian', version: '>=0.2.0', fallback: ['tinyendian', 'tinyendian_dep'])
-
-dyaml_lib = library('dyaml',
- [dyaml_src],
- include_directories: [src_dir],
- dependencies: [tinyendian_dep],
- install: true,
- version: meson.project_version(),
- soversion: project_soversion
-)
-pkgc.generate(name: 'dyaml',
- libraries: dyaml_lib,
- subdirs: 'd/yaml/',
- version: meson.project_version(),
- description: 'YAML parser and emitter for the D programming language.'
-)
-
-# Make D-YAML easy to use as subproject
-dyaml_dep = declare_dependency(
- link_with: dyaml_lib,
- include_directories: [src_dir],
- dependencies: [tinyendian_dep]
-)
diff --git a/subprojects/imageformats/dub.sdl b/subprojects/imageformats.dub.sdl
index 2814286..2814286 100644
--- a/subprojects/imageformats/dub.sdl
+++ b/subprojects/imageformats.dub.sdl
diff --git a/subprojects/imageformats.meson.build b/subprojects/imageformats.meson.build
new file mode 100644
index 0000000..f9c8855
--- /dev/null
+++ b/subprojects/imageformats.meson.build
@@ -0,0 +1,40 @@
+project('imageformats', 'd',
+ meson_version: '>=0.46',
+ license: 'BSL-1.0',
+ version: '7.0.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'
+]
+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
+)
+
+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.'
+)
+
+# for use by others which embed this as subproject
+imageformats_dep = declare_dependency(
+ link_with: [imageformats_lib],
+ include_directories: [src_dir]
+)
diff --git a/subprojects/imageformats.wrap b/subprojects/imageformats.wrap
deleted file mode 100644
index 09f342c..0000000
--- a/subprojects/imageformats.wrap
+++ /dev/null
@@ -1,4 +0,0 @@
-[wrap-git]
-directory = imageformats
-url = https://github.com/lgvz/imageformats.git
-revision = head
diff --git a/subprojects/imageformats/meson.build b/subprojects/imageformats/meson.build
deleted file mode 100644
index 584e2af..0000000
--- a/subprojects/imageformats/meson.build
+++ /dev/null
@@ -1,40 +0,0 @@
-project('imageformats', 'd',
- meson_version: '>=0.46',
- license: 'BSL-1.0',
- version: '7.0.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'
-]
-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
-)
-
-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.'
-)
-
-# for use by others which embed this as subproject
-imageformats_dep = declare_dependency(
- link_with: [imageformats_lib],
- include_directories: [src_dir]
-)
diff --git a/subprojects/tinyendian/.gitignore b/subprojects/tinyendian/.gitignore
deleted file mode 100644
index 0ed3f58..0000000
--- a/subprojects/tinyendian/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.dub
-*.o
-*.a
-*.lib
diff --git a/subprojects/tinyendian/dub.json b/subprojects/tinyendian/dub.json
deleted file mode 100644
index 6313cdd..0000000
--- a/subprojects/tinyendian/dub.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "tinyendian",
- "description": "Lightweight endianness handling library",
- "authors": [ "Ferdinand Majerech" ],
- "importPaths": ["source"],
- "license": "Boost 1.0",
- "homepage": "https://github.com/kiith-sa/tinyendian",
- "copyright": "Copyright © 2014, Ferdinand Majerech",
-
- "buildTypes":
- {
- "debug": { "buildOptions": ["debugMode", "debugInfoC"] },
- "release": { "buildOptions": ["releaseMode", "optimize", "inline", "noBoundsCheck"] },
- "profile": { "buildOptions": ["releaseMode", "optimize", "noBoundsCheck", "debugInfoC"] },
- },
-}
diff --git a/subprojects/tinyendian/meson.build b/subprojects/tinyendian/meson.build
deleted file mode 100644
index f666958..0000000
--- a/subprojects/tinyendian/meson.build
+++ /dev/null
@@ -1,41 +0,0 @@
-# -*- mode: python; -*-
-
-project(
- 'tinyendian',
- 'd',
- meson_version: '>=0.41',
- version: '0.2.0',
- default_options: ['buildtype=release'],
-)
-
-src_dir = include_directories('source/')
-pkgc = import('pkgconfig')
-
-tinyendian_src = [
- 'source/tinyendian.d'
-]
-
-install_headers(tinyendian_src, subdir: 'd/')
-
-tinyendian_lib = library(
- meson.project_name(),
- [tinyendian_src],
- include_directories: [src_dir],
- version: meson.project_version(),
- pic: true,
- install: true,
-)
-
-pkgc.generate(
- name: meson.project_name(),
- libraries: tinyendian_lib,
- subdirs: 'd/',
- version: meson.project_version(),
- description: 'Lightweight endianness library for D.'
-)
-
-# Make Tinyendian easy to use as subproject
-tinyendian_dep = declare_dependency(
- link_with: tinyendian_lib,
- include_directories: [src_dir]
-)