# 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} import! [metadata] cli = cli%exe{cli} ops = options cxx/options cxx/parser/options cxx/tree/options ./: exe{xsd}: {hxx ixx txx cxx}{** -{$ops} -version} \ {hxx ixx cxx}{$ops} \ {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 # Generated options parser. # # Note: tracking .cli dependencies manually. # cli_options = --std c++11 -I $src_root --generate-specifier \ --generate-file-scanner --suppress-undocumented \ --ostream-type ::std::wostream --exclude-base \ --include-with-brackets --option-length 28 \ --cxx-prologue '#include ' <{hxx ixx cxx}{options}>: cli{options} { cli_options += --include-prefix xsd --guard-prefix XSD } : cxx/cli{options} cli{options} { cli_options += --include-prefix xsd/cxx --guard-prefix XSD_CXX } : cxx/parser/cli{options} cxx/cli{options} \ cli{options} { cli_options += --include-prefix xsd/cxx/parser --guard-prefix XSD_CXX_PARSER } : cxx/tree/cli{options} cxx/cli{options} \ cli{options} { cli_options += --include-prefix xsd/cxx/tree --guard-prefix XSD_CXX_TREE } : cli{~'/\1/'} $cli { # Symlink the generated code in src for convenience of development. # backlink = true } {{ $cli $cli_options -o $directory($path($>[0])) $path($<[0]) }} # Build options. # # Pass the copyright notice extracted from the LICENSE file. # obj{xsd cxx/parser/generator cxx/tree/generator}: \ cxx.poptions += -DXSD_COPYRIGHT=\"$copyright\"