-*- mode: org -*-
#+TITLE:       sisudoc configuration dub
#+DESCRIPTION: documents - structuring, various output representations & search
#+FILETAGS:    :spine:hub:
#+AUTHOR:      Ralph Amissah
#+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]]
#+COPYRIGHT:   Copyright (C) 2015 - 2024 Ralph Amissah
#+LANGUAGE:    en
#+STARTUP:     content hideblocks hidestars noindent entitiespretty
#+PROPERTY:    header-args  :exports code
#+PROPERTY:    header-args+ :noweb yes
#+PROPERTY:    header-args+ :results no
#+PROPERTY:    header-args+ :cache no
#+PROPERTY:    header-args+ :padline no
#+PROPERTY:    header-args+ :mkdirp yes
#+OPTIONS:     H:3 num:nil toc:t \n:t ::t |:t ^:nil -:t f:t *:t

- [[./doc-reform.org][doc-reform.org]]  [[./][org/]]

** spine project VERSION :version:set:project:

#+NAME: spine_version
#+HEADER: :noweb yes
#+BEGIN_SRC emacs-lisp
<<./sisudoc_spine_version_info_and_doc_header_including_copyright_and_license.org:spine_project_version()>>
#+END_SRC

** dub

- https://github.com/dlang/dub/
- https://code.dlang.org/getting_started
- https://code.dlang.org/docs/commandline

*** dub.json :dub:config:json:
**** dub.json
***** file-system download external dependencies

- d2sqlite3
- dyaml
  - tinyendian
- imageformats

#+HEADER:  :tangle ../dub.json
#+HEADER: :noweb yes
#+BEGIN_SRC json
{
  "authors": [
                               "Ralph Amissah"
  ],
  "copyright":                 "Copyright © 2015 - 2024 Ralph Amissah",
  "name":                      "spine",
  "version":                   "<<spine_version>>",
  "description":               "an object-centric sisu-like document parser",
  "homepage":                  "https://sisudoc.org",
  "license":                   "AGPL-3.0+",
  "targetPath":                "./bin",
  "sourcePaths":               [ "./src/sisudoc" ],
  "importPaths":               [ "./views" ],
  "stringImportPaths":         [ "./views" ],
  "buildRequirements":         [ "allowWarnings" ],
  "targetType":                "executable",
  "buildTypes": {
    "dmd": {
      "dflags":                [ "-O", "-J=views", "-I=src/sisudoc" ],
      "buildOptions":          [ "inline", "verbose" ],
      "buildRequirements":     [ "allowWarnings" ]
    },
    "ldc2": {
      "lflags":                [ "-O2", "-I=src/sisudoc" ],
      "buildOptions":          [ "optimize", "inline", "verbose" ],
      "buildRequirements":     [ "allowWarnings" ]
    },
    "ldmd2": {
      "dflags":                [ "-O", "-J=views", "-I=src/sisudoc" ],
      "buildOptions":          [ "optimize", "inline", "verbose" ],
      "buildRequirements":     [ "allowWarnings" ]
    },
    "gdc": {
      "lflags":                [ "-O2", "-J=views", "-I=src/sisudoc" ],
      "buildOptions":          [ "optimize", "inline" ],
      "buildRequirements":     [ "allowWarnings" ]
    },
    "gdmd": {
      "dflags":                [ "-O", "-J=views", "-I=src/sisudoc" ],
      "buildOptions":          [ "optimize", "inline" ],
      "buildRequirements":     [ "allowWarnings" ]
    }
  },
  "dependencies": {
    "spine:d2sqlite3":         "*",
    "spine:imageformats":      "*",
    "spine:dyaml":             "*"
  },
  "subPackages": [
    {
      "name":           "d2sqlite3",
      "description":    "A thin wrapper around SQLite 3",
      "homepage":       "https://github.com/dlang-community/d2sqlite3",
      "authors":        [ "Nicolas Sicard", "Other contributors: see Github repo" ],
      "copyright":      "Copyright 2011-18 Nicolas Sicard",
      "license":        "BSL-1.0",
      "sourcePaths":    [ "./src/ext_depends/d2sqlite3/source" ],
      "importPaths":    [ "./src/ext_depends/d2sqlite3/source" ],
      "configurations": [
        {
          "name":                "d2sqlite3",
          "targetType":          "library",
          "systemDependencies":  "SQLite version >= 3.8.7",
          "libs":                [ "sqlite3" ],
          "excludedSourceFiles": [ "source/tests.d" ]
        }
      ]
    },
    {
      "name":        "imageformats",
      "description": "Decoders for PNG, TGA, BMP, JPEG and encoders for PNG, TGA, BMP.",
      "authors":     [ "Tero Hänninen" ],
      "license":     "BSL-1.0",
      "sourcePaths": [ "./src/ext_depends/imageformats" ],
      "importPaths": [ "./src/ext_depends/imageformats" ]
    },
    {
      "name":        "dyaml",
      "description": "YAML parser and emitter",
      "authors": [
        "Ferdinand Majerech",
        "Cameron \"Herringway\" Ross"
      ],
      "license":     "BSL-1.0",
      "homepage":    "https://github.com/dlang-community/D-YAML",
      "copyright":   "Copyright © 2011-2018, Ferdinand Majerech",
      "sourcePaths": [
        "./src/ext_depends/D-YAML/source",
        "./src/ext_depends/tinyendian/source"
      ],
      "importPaths": [
        "./src/ext_depends/D-YAML/source",
        "./src/ext_depends/tinyendian/source"
      ],
      "preGenerateCommands": [
        "rm -rf ./src/ext_depends/D-YAML/examples",
        "rm -rf ./src/ext_depends/D-YAML/testsuite"
      ]
    }
  ],
  "configurations": [
    {
      "name":                  "default",
      "targetName":            "spine"
    },
    {
      "name":                  "ldc2",
      "targetName":            "spine-ldc"
    },
    {
      "name":                  "ldmd2",
      "targetName":            "spine-ldc"
    },
    {
      "name":                  "dmd",
      "targetName":            "spine-dmd"
    },
    {
      "name":                  "gdc",
      "targetName":            "spine-gdc"
    },
    {
      "name":                  "gdmd",
      "targetName":            "spine-gdc"
    }
  ]
}
#+END_SRC

*** dub.settings.json :dub:config:json:

#+HEADER: :NO-tangle ../dub.settings.json
#+BEGIN_SRC json
{
  "defaultArchitecture": "x86_64",
  "defaultCompiler":     "ldc"
}
#+END_SRC