diff options
Diffstat (limited to 'odb/buildfile')
-rw-r--r-- | odb/buildfile | 162 |
1 files changed, 5 insertions, 157 deletions
diff --git a/odb/buildfile b/odb/buildfile index 34a6329..78b5d08 100644 --- a/odb/buildfile +++ b/odb/buildfile @@ -1,161 +1,9 @@ -# file : odb/buildfile +# file : buildfile # license : GNU GPL v3; see accompanying LICENSE file -define plugin: libs +./: {*/ -build/ -m4/} doc{INSTALL NEWS README} legal{GPLv3 LICENSE} manifest -plugin{*}: -{ - bin.lib.prefix = # No lib prefix. - backlink = true # Backlink in forwarded configs (next to exe). -} - -# For now we use the .so extension everywhere except Windows (see -# plugin_path() in odb.cxx for details). -# -if ($cxx.target.class != 'windows') - plugin{*}: extension = so - -# By default install the plugin next to the driver. -# -# On Windows this is the only sane option where we want the plugin (odb.dll) -# to go into bin/ since failed that we won't be able to find libraries we -# depend on. -# -# On other platforms another option is to install into the GCC's plugin -# directory. This way the same driver can be used with multiple GCC versions -# and is something that distributions packagers sometimes want to do. -# -# So at some point we should also make it configurable, including support for -# installing into GCC's plugin directory. -# -# NOTE: see ODB_GCC_PLUGIN_DIR when adding this support. -# -plugin{*}: install = bin/ - -import libs = libcutl%lib{cutl} -import libs += libstudxml%lib{studxml} - -./: exe{odb} plugin{odb} - -# We need to make driver depend on plugin but not link it so that when, for -# example, driver is imported, plugin is updated as well. -# -# We, however, don't want to install via the driver since the same driver -# build could be used with multiple plugin builds (e.g., for different GCC -# versions, which is something distribution packagers sometimes want to do). -# @@ For this we will have to wait for operation-specific values support. -# -exe{odb}: cxx{odb} -exe{odb}: libus{odb}: bin.whole = false -exe{odb}: plugin{odb}: include = adhoc - -# Target metadata, see also --build2-metadata in odb.cxx. -# -# While ODB itself doesn't use any environment variables, it uses GCC -# underneath which does (see "Environment Variables Affecting GCC"). -# -exe{odb}: -{ - export.metadata = 1 odb - odb.name = [string] odb - odb.version = [string] $version - odb.checksum = [string] $version - odb.environment = [strings] CPATH CPLUS_INCLUDE_PATH GCC_EXEC_PREFIX COMPILER_PATH -} - -plugin{odb}: libus{odb} - -switch $cxx.target.system -{ - # On Windows we have to link the import stub. - # - case 'mingw32' - plugin{odb}: cxx.libs += $plugin_dir/cc1plus.exe.a - - # On Mac OS we have to allow undefined symbols. - # - case 'darwin' - plugin{odb}: cxx.loptions += -undefined dynamic_lookup -} - -libus{odb}: {hxx ixx txx cxx}{** -odb -options -pregenerated/**} $libs - -# Build options. -# -# Note: escape backslashes in gxx_name. -# -cxx.poptions += "-I$plugin_dir/include" -cxx.poptions += "-DODB_GXX_NAME=\"$regex.replace($gxx_name, '\\', '\\\\')\"" -cxx.poptions += -DODB_BUILD2 # @@ TMP while supporting other build systems. - -## Consumption build ($develop == false). -# - -# Use pregenerated versions in the consumption build. -# -libus{odb}: 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). -# - -libus{odb}: {hxx ixx cxx}{options}: 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. -# -<{hxx ixx cxx}{options}>: cli{options} $cli -{ - dist = ($develop ? pregenerated/odb/ : false) - - # Symlink the generated code in src for convenience of development. - # - backlink = true -} -% -if $develop -{{ - options = --include-with-brackets --include-prefix odb --guard-prefix ODB \ - --generate-file-scanner --generate-specifier --generate-modifier \ - --generate-description --suppress-undocumented \ - --cxx-prologue '#include <odb/option-parsers.hxx>' - - $cli $options -o $out_base $path($<[0]) - - # If the result differs from the pregenerated version, copy it over. - # - if diff $src_base/pregenerated/odb/options.hxx $path($>[0]) >- && \ - diff $src_base/pregenerated/odb/options.ixx $path($>[1]) >- && \ - diff $src_base/pregenerated/odb/options.cxx $path($>[2]) >- - exit - end - - cp $path($>[0]) $src_base/pregenerated/odb/options.hxx - cp $path($>[1]) $src_base/pregenerated/odb/options.ixx - cp $path($>[2]) $src_base/pregenerated/odb/options.cxx -}} - -# -## - -# Pass the copyright notice extracted from the LICENSE file. -# -obj{odb}: cxx.poptions += -DODB_COPYRIGHT=\"$copyright\" - -# Don't install any of the plugin's headers. +# Don't install tests or the INSTALL file. # -{hxx ixx txx}{*}: install = false +tests/: install = false +doc{INSTALL}@./: install = false |