diff options
Diffstat (limited to 'odb')
-rw-r--r-- | odb/manifest | 2 | ||||
-rw-r--r-- | odb/odb/buildfile | 14 | ||||
-rw-r--r-- | odb/odb/odb.cxx | 13 |
3 files changed, 21 insertions, 8 deletions
diff --git a/odb/manifest b/odb/manifest index 2ef8b08..3118581 100644 --- a/odb/manifest +++ b/odb/manifest @@ -12,7 +12,7 @@ doc-url: https://www.codesynthesis.com/products/odb/doc/manual.xhtml src-url: https://git.codesynthesis.com/cgit/odb/odb/ email: odb-users@codesynthesis.com build-warning-email: odb-builds@codesynthesis.com -builds: all +builds: all relocatable builds: -( +windows -gcc ) ; Requires MinGW GCC. builds: &gcc ; Requires GCC with plugin support enabled. builds: &gcc-5+ ; Requires GCC 5 or later. diff --git a/odb/odb/buildfile b/odb/odb/buildfile index 96eb95f..21b98ed 100644 --- a/odb/odb/buildfile +++ b/odb/odb/buildfile @@ -30,6 +30,8 @@ if ($cxx.target.class != 'windows') # # NOTE: see ODB_GCC_PLUGIN_DIR when adding this support. # +# NOTE: also think about relocatable installation. +# plugin{*}: install = bin/ import libs = libcutl%lib{cutl} @@ -43,11 +45,19 @@ import libs += libstudxml%lib{studxml} # 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 +exe{odb}: plugin{odb}: +{ + include = adhoc + + # @@ This work but triggers "incompatible libs{cutl} build". Feels like to + # solve this we will also need to say update_for_install=false which + # we currently cant. + # + #install = false +} # Target metadata, see also --build2-metadata in odb.cxx. # diff --git a/odb/odb/odb.cxx b/odb/odb/odb.cxx index 9899262..41063d5 100644 --- a/odb/odb/odb.cxx +++ b/odb/odb/odb.cxx @@ -185,6 +185,9 @@ main (int argc, char* argv[]) // Also modify LD_LIBRARY_PATH to include the lib path. // + // @@ Hm, I wonder why we are doing this? (One some platforms, like + // Fedora, the directory could be called something else, like lib64). + // #ifndef _WIN32 { #ifdef __APPLE__ @@ -546,12 +549,12 @@ main (int argc, char* argv[]) // // To allow executing the ODB compiler in-place we add the odb.exe.dlls/ // directory to PATH. It is a bit of hack but then DLL assemblies for - // DLLs is whole new level of insanity that we are unlikely to ever + // DLLs is a whole new level of insanity that we are unlikely to ever // touch. // // And it turns out we have the same problem in the installed case: if // the installation directory is not in PATH, then GCC won't find the - // DLLs the plugin needs. So we handle both here. + // DLLs the plugin needs. So we handle both cases here. // { path d (plugin.directory ()); @@ -1616,8 +1619,8 @@ plugin_path (path const& drv, char const plugin_ext[] = ".dll"; // While GCC 8 switched to using .dylib as the plugin extension, there is a -// bug in the extension stripping code. So for now we use the .so extension -// everywhere (see also buildfile if changing this). +// bug (86358) in the extension stripping code. So for now we use the .so +// extension everywhere (see also buildfile if changing this). // //#elif defined(__APPLE__) // char const plugin_ext[] = ".dylib"; @@ -1638,7 +1641,7 @@ plugin_path (path const& drv, if (dp.empty ()) { - cerr << drv << ": error: unable to resolve ODB driver path" << endl; + cerr << drv << ": error: unable to resolve ODB compiler driver path" << endl; return path (); } |