summaryrefslogtreecommitdiff
path: root/xsd/buildfile
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2025-03-19 15:41:36 +0100
committerJörg Frings-Fürst <debian@jff.email>2025-03-19 15:41:36 +0100
commit018e1ba581ec6f01f069a45ec4cf89f152b44d5f (patch)
tree0e7dda4bb693a6714066fbe5efcd2f24ff7c1a65 /xsd/buildfile
parent1c188393cd2e271ed2581471b601fb5960777fd8 (diff)
remerge
Diffstat (limited to 'xsd/buildfile')
-rw-r--r--xsd/buildfile121
1 files changed, 0 insertions, 121 deletions
diff --git a/xsd/buildfile b/xsd/buildfile
deleted file mode 100644
index d4e7af5..0000000
--- a/xsd/buildfile
+++ /dev/null
@@ -1,121 +0,0 @@
-# file : xsd/buildfile
-# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-import libs = libxsd-frontend%lib{xsd-frontend}
-import libs += libcutl%lib{cutl}
-import libs += libxerces-c%lib{xerces-c}
-
-ops = options cxx/options cxx/parser/options cxx/tree/options
-
-./: exe{xsd}: {hxx ixx txx cxx}{** -version -{$ops} -pregenerated/**} \
- {hxx}{version} \
- $libs
-
-# Target metadata, see also --build2-metadata in xsd.cxx.
-#
-# Note that xsd does not query any environment variables.
-#
-exe{xsd}:
-{
- export.metadata = 1 xsd
- xsd.name = [string] xsd
- xsd.version = [string] $version
- xsd.checksum = [string] $version
-}
-
-hxx{version}: in{version} $src_root/manifest
-
-## Consumption build ($develop == false).
-#
-
-# Use pregenerated versions in the consumption build.
-#
-exe{xsd}: pregenerated/{hxx ixx cxx}{**}: include = (!$develop)
-
-if! $develop
- cxx.poptions =+ "-I($src_base/pregenerated)" # Note: must come first.
-
-# Distribute pregenerated versions only in the consumption build.
-#
-pregenerated/{hxx ixx cxx}{*}: dist = (!$develop)
-
-#
-##
-
-## Development build ($develop == true).
-#
-
-exe{xsd}: {hxx ixx cxx}{$ops}: include = $develop
-
-if $develop
- import! [metadata] cli = cli%exe{cli}
-
-# In the development build distribute regenerated {hxx ixx cxx}{options},
-# remapping their locations to the paths of the pregenerated versions (which
-# are only distributed in the consumption build; see above). This way we make
-# sure that the distributed files are always up-to-date.
-#
-for f: $ops
-{
- d = $directory($f) # empty, cxx/, etc.
-
- <{hxx ixx cxx}{$f}>: cli{$f}
- {
- dist = ($develop ? $relative([dir_path] "pregenerated/xsd/$d", $d) : false)
-
- # Symlink the generated code in src for convenience of development.
- #
- backlink = true
- }
-}
-
-<hxx{~'/(.*)/'} ixx{~'/\1/'} cxx{~'/\1/'}>: cli{~'/\1/'} $cli
-%
-if $develop
-{{
- t = $path($>[0]).t
-
- depdb dyndep --byproduct --file $t
-
- h = $path($>[0])
- i = $path($>[1])
- c = $path($>[2])
-
- d = $directory($h)
- p = $string($leaf($d, $out_root)) # xsd, xsd/cxx, etc
-
- options = --std c++11 -I $src_root --include-prefix $p \
- --guard-prefix $regex.replace($ucase($p), '[/\\]', '_') \
- --generate-specifier --generate-file-scanner \
- --suppress-undocumented --ostream-type ::std::wostream \
- --exclude-base --include-with-brackets --option-length 28 \
- --cxx-prologue '#include <xsd/options-parser.hxx>'
-
- $cli $options --generate-dep --dep-file $t -o $d $path($<[0])
-
- # If the result differs from the pregenerated version, copy it over.
- #
- d = [dir_path] $src_base/pregenerated/$p
-
- dh = $d/$leaf($h)
- di = $d/$leaf($i)
- dc = $d/$leaf($c)
-
- if diff $dh $h >- && \
- diff $di $i >- && \
- diff $dc $c >-
- exit
- end
-
- cp $h $dh
- cp $i $di
- cp $c $dc
-}}
-
-#
-##
-
-# Pass the copyright notice extracted from the LICENSE file.
-#
-obj{xsd cxx/parser/generator cxx/tree/generator}: \
- cxx.poptions += -DXSD_COPYRIGHT=\"$copyright\"