diff options
Diffstat (limited to 'org')
| -rw-r--r-- | org/spine_build_scaffold.org | 354 | 
1 files changed, 311 insertions, 43 deletions
diff --git a/org/spine_build_scaffold.org b/org/spine_build_scaffold.org index bbd23d5..cd21833 100644 --- a/org/spine_build_scaffold.org +++ b/org/spine_build_scaffold.org @@ -153,6 +153,11 @@ data/sisudir/media/text/viral_spiral.david_bollier.sst  ******* default  #+BEGIN_SRC makefile :tangle ../makefile +dub_upgrade: +	$(DUB) upgrade +#+END_SRC + +#+BEGIN_SRC makefile :tangle ../makefile  default: ldc  #+END_SRC @@ -196,15 +201,16 @@ all_debug: dmd_debug gdc_debug ldc_debug  ******** _meson_ build                                           :meson:  #+BEGIN_SRC makefile :tangle ../makefile -meson: -	rm -r build && mkdir build +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: -	rm -r build && mkdir build +	rm -r build; mkdir build  	meson --buildtype=debugoptimized build  	ninja -C build -mesonclean: clean skel tangle +mesonclean: clean skel tangle dub_upgrade  	meson --buildtype=debugoptimized build  	ninja -C build  #+END_SRC @@ -235,8 +241,9 @@ all_debug_clean_ver: clean tangle dmd_debug_ver gdc_debug_ver ldc_debug_ver  ******** default                                             :default:  #+BEGIN_SRC makefile :tangle ../makefile -dmd: +dmd: dub_upgrade  	$(DUB) --compiler=dmd --config=dmd -b release +	notify-send -t 0 'D dmd compiled test release executable ready' 'spine-dmd'  #+END_SRC  ******** debug                                                 :debug: @@ -251,7 +258,7 @@ dmd_debug:  - assumes git tags with program version  #+BEGIN_SRC makefile :tangle ../makefile -dmd_ver: +dmd_ver: dub_upgrade  	$(DUB) --compiler=dmd --config=dmd-version  	mv bin/spine-dmd-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-dmd  	notify-send -t 0 'D dmd compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-dmd' @@ -275,8 +282,9 @@ dmd_debug_tangle: tangle  ******** default                                             :default:  #+BEGIN_SRC makefile :tangle ../makefile -gdc: +gdc: dub_upgrade  	$(DUB) --compiler=gdc --config=gdc -b release +	notify-send -t 0 'D gdc compiled test release executable ready' 'spine-gdc'  #+END_SRC  ******** debug                                                 :debug: @@ -291,7 +299,7 @@ gdc_debug:  - assumes git tags with program version  #+BEGIN_SRC makefile :tangle ../makefile -gdc_ver: +gdc_ver: dub_upgrade  	$(DUB) --compiler=gdc --config=gdc-version  	mv bin/spine-gdc-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-gdc  	notify-send -t 0 'D gdc compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-gdc' @@ -315,8 +323,9 @@ gdc_debug_tangle: tangle  ******** default                                             :default:  #+BEGIN_SRC makefile :tangle ../makefile -ldc: +ldc: dub_upgrade  	$(DUB) --compiler=ldc2 --config=ldc -b release +	notify-send -t 0 'D ldc compiled test release executable ready' 'spine-ldc'  #+END_SRC  ******** debug                                                 :debug: @@ -331,7 +340,7 @@ ldc_debug:  - assumes git tags with program version  #+BEGIN_SRC makefile :tangle ../makefile -ldc_ver: +ldc_ver: dub_upgrade  	$(DUB) --compiler=ldc2 --config=ldc-version  	mv bin/spine-ldc-ver bin-archive/spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-ldc  	notify-send -t 0 'D ldc2 compiled test release executable ready' 'spine-$(PROG_VER_DECLARED)-tag-$(PROG_VER_GIT)-ldc' @@ -851,11 +860,11 @@ stringImportPaths   "./views"  buildRequirements   "allowWarnings"  targetType          "executable"  platforms           "posix" -dependency          "d2sqlite3"      version="~>0.18.3"      # https://code.dlang.org/packages/d2sqlite3     http://biozic.github.io/d2sqlite3/d2sqlite3.html +dependency          "d2sqlite3"      version="~>0.18.3"      # https://code.dlang.org/packages/d2sqlite3     http://biozic.github.io/d2sqlite3/d2sqlite3    subconfiguration  "d2sqlite3"      "all-included" -dependency          "imageformats"   version="~>7.0.1"       # https://code.dlang.org/packages/imageformats  https://github.com/lgvz/imageformats -dependency          "dyaml"          version="~>0.8.0" -dependency          "tinyendian"     version="~>0.2.0" // for dyaml +dependency          "imageformats"   version="~>7.0.2"       # https://code.dlang.org/packages/imageformats  https://github.com/lgvz/imageformats +dependency          "dyaml"          version="~>0.8.0"       # https://code.dlang.org/packages/dyaml         https://github.com/dlang-community/D-YAML +dependency          "tinyendian"     version="~>0.2.0"       # http://code.dlang.org/packages/tinyendian     https://github.com/dlang-community/tinyendian // dyaml dependency  #+END_SRC  ** default @@ -999,14 +1008,18 @@ http://mesonbuild.com/Dependencies.html#Dub  *** projects +ls -1 ./src/*/**/*.d  tree -fi ./src |rg "\.d$"  #+BEGIN_SRC sh :tangle ../meson.build  project('spine', 'd',    license: 'AGPL3', -  version: '0.26.5', +  version: '0.9.2',    meson_version: '>=0.46'  ) +#if meson.get_compiler('d').get_id() == 'gcc' +#    error('spine cannot be compiled with GDC at time. Sorry.') +#endif  spine_sources = [    'src/doc_reform/spine.d',    'src/doc_reform/conf/compile_time_info.d', @@ -1019,6 +1032,7 @@ spine_sources = [    'src/doc_reform/io_out/html.d',    'src/doc_reform/io_out/hub.d',    'src/doc_reform/io_out/latex.d', +  'src/doc_reform/io_out/metadata.d',    'src/doc_reform/io_out/odt.d',    'src/doc_reform/io_out/package.d',    'src/doc_reform/io_out/paths_output.d', @@ -1049,14 +1063,16 @@ spine_sources = [  source_root = meson.source_root()  sources_dir = include_directories('src/')  # Dependencies -dep_d2sqlite3    = dependency('d2sqlite3',      version: '>= 0.16.2', fallback: ['d2sqlite3',      'd2sqlite3_dep']) -dep_imageformats = dependency('imageformats-d', version: '>= 7.0.0',  fallback: ['imageformats-d', 'imageformats_dep']) -# executable -spine_exe = executable('dr', +dep_dyaml        = dependency('dyaml',          version: '>= 0.8.0',  fallback: ['dyaml',          'dyaml_dep']) +dep_d2sqlite3    = dependency('d2sqlite3',      version: '>= 0.18.3', fallback: ['d2sqlite3',      'd2sqlite3_dep']) +dep_imageformats = dependency('imageformats',   version: '>= 7.0.0',  fallback: ['imageformats',   'imageformats_dep']) +# Executable +spine_exe = executable('spine',    [spine_sources],    include_directories : [sources_dir],    d_import_dirs: [include_directories('views')],    dependencies : [ +    dep_dyaml,      dep_d2sqlite3,      dep_imageformats,    ], @@ -1066,42 +1082,290 @@ spine_exe = executable('dr',  ** subprojects -#+BEGIN_SRC sh :tangle ../subprojects/README -d2sqlite3 -- dub -  - https://code.dlang.org/packages/d2sqlite3 -- upstream -  - https://github.com/biozic/d2sqlite3 -- mathias -  - https://github.com/ximion/d2sqlite3.git - -imageformats -- dub -  - https://code.dlang.org/packages/imageformats -- upstream -  - https://github.com/lgvz/imageformats -- mathias -  - https://github.com/ximion/imageformats.git +#+BEGIN_SRC txt :tangle ../subprojects/README +- d2sqlite3 +  - dub +    - https://code.dlang.org/packages/d2sqlite3 +  - upstream +    - https://github.com/biozic/d2sqlite3 +- dyaml +  - dub +    - https://code.dlang.org/packages/dyaml +  - upstream +    - https://github.com/dlang-community/D-YAML +  - upstream git clone +    - https://github.com/dlang-community/D-YAML.git +- imageformats +  - dub +    - https://code.dlang.org/packages/imageformats +  - upstream git clone +    - https://github.com/lgvz/imageformats +- tinyendian (dyaml dependency) +  - dub +    - http://code.dlang.org/packages/tinyendian +  - upstream git clone +    - https://github.com/dlang-community/tinyendian.git  #+END_SRC  *** d2sqlite3 +****  wrap  #+BEGIN_SRC sh :tangle ../subprojects/d2sqlite3.wrap  [wrap-git]  directory = d2sqlite3 -url       = https://github.com/ximion/d2sqlite3.git +url       = https://github.com/biozic/d2sqlite3.git +revision  = head +#+END_SRC + +****  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' + +src_dir = include_directories('source/') +pkgc = import('pkgconfig') + +sqlite_dep = dependency('sqlite3') + +d2sqlite3_src = [ +  'source/d2sqlite3/database.d', +  'source/d2sqlite3/internal/memory.d', +  'source/d2sqlite3/internal/util.d', +  'source/d2sqlite3/library.d', +  'source/d2sqlite3/package.d', +  'source/d2sqlite3/results.d', +  'source/d2sqlite3/sqlite3.d', +  'source/d2sqlite3/statement.d', +] +install_subdir('source/d2sqlite3/', install_dir: 'include/d/d2sqlite3/') + +d2sqlite3_lib = library('d2sqlite3', +  [d2sqlite3_src], +  include_directories: [src_dir], +  dependencies: [sqlite_dep], +  install: true, +  version: meson.project_version(), +  soversion: project_soversion +) + +pkgc.generate(name: 'd2sqlite3', +  libraries: d2sqlite3_lib, +  subdirs: 'd/d2sqlite3/', +  version: meson.project_version(), +  requires: ['sqlite3'], +  description: 'A small wrapper around SQLite for the D programming language.' +) + +# for use by others which embed this as subproject +d2sqlite3_dep = declare_dependency( +  link_with: [d2sqlite3_lib], +  dependencies: [sqlite_dep], +  include_directories: [src_dir] +) +#+END_SRC + +*** dyaml +****  wrap + +#+BEGIN_SRC sh :tangle ../subprojects/dyaml.wrap +[wrap-git] +directory = dyaml +url       = https://github.com/dlang-community/D-YAML.git +revision  = head +#+END_SRC + +****  meson.build (provided by upstream) + +#+BEGIN_SRC sh :NO-tangle ../subprojects/D-YAML/meson.build +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] +) +#+END_SRC + +*** imageformats +****  wrap + +#+BEGIN_SRC sh :tangle ../subprojects/imageformats.wrap +[wrap-git] +directory = imageformats +url       = https://github.com/lgvz/imageformats.git  revision  = head  #+END_SRC -*** imageformats-d +****  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' +) + +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] +) +#+END_SRC + +*** tinyendian (dyaml dependency) +****  wrap -#+BEGIN_SRC sh :tangle ../subprojects/imageformats-d.wrap +#+BEGIN_SRC sh :NO-tangle ../subprojects/tinyendian.wrap  [wrap-git] -directory = imageformats-d -url       = https://github.com/ximion/imageformats.git +directory = tinyendian +url       = https://github.com/dlang-community/tinyendian.git  revision  = head  #+END_SRC +****  meson.build (provided by upstream) + +#+BEGIN_SRC sh :NO-tangle ../subprojects/tinyendian/meson.build +# -*- 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] +) +#+END_SRC +  * .gitignore                                                      :gitignore:  #+BEGIN_SRC sh :tangle ../.gitignore @@ -1113,7 +1377,7 @@ revision  = head  !README  !makefile  !version.txt -!dub*.json +!dub.json  !dub.sdl  !meson.build  !tangle @@ -1140,8 +1404,12 @@ revision  = head  !**/*.sst  !**/*.ssm  !subprojects -!**/*.wrap  !subprojects/*.wrap +# !subprojects/dyaml +!subprojects/d2sqlite3 +!subprojects/imageformats +# !subprojects/tinyendian +subprojects/*/.gitignore  !pod.manifest  !sisu_document_make  !config_local_site @@ -1168,7 +1436,7 @@ tmp/**  #\#*  #*.\#*  #!debian -#!debian/* +#!debian/**  #.reggae/**  #+END_SRC  | 
