From: Carl Hetherington Date: Mon, 14 Sep 2020 11:04:16 +0000 (+0200) Subject: Add xsd_path() and use it to fix access to .xsd files on Linux (#1830). X-Git-Tag: v2.15.102~10 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=4c804a0d92ebd03b70bfc7f736fcaf5f77cb3bb7 Add xsd_path() and use it to fix access to .xsd files on Linux (#1830). --- diff --git a/src/lib/cross.h b/src/lib/cross.h index 64cb2e6b8..0ba43cc40 100644 --- a/src/lib/cross.h +++ b/src/lib/cross.h @@ -54,6 +54,7 @@ extern boost::filesystem::path disk_writer_path (); extern void maybe_open_console (); #endif extern boost::filesystem::path shared_path (); +extern boost::filesystem::path xsd_path (); extern FILE * fopen_boost (boost::filesystem::path, std::string); extern int dcpomatic_fseek (FILE *, int64_t, int); extern void start_batch_converter (); diff --git a/src/lib/cross_linux.cc b/src/lib/cross_linux.cc index e17f188b9..95bd975f8 100644 --- a/src/lib/cross_linux.cc +++ b/src/lib/cross_linux.cc @@ -103,11 +103,23 @@ shared_path () { char const * p = getenv ("DCPOMATIC_LINUX_SHARE_PREFIX"); if (p) { - return p; + return boost::filesystem::path(p) / "dcpomatic2"; + } + return boost::filesystem::canonical(LINUX_SHARE_PREFIX) / "dcpomatic2"; +} + + +boost::filesystem::path +xsd_path () +{ + char const * p = getenv ("DCPOMATIC_LINUX_SHARE_PREFIX"); + if (p) { + return boost::filesystem::path(p) / "libdcp" / "xsd"; } - return boost::filesystem::canonical (LINUX_SHARE_PREFIX); + return boost::filesystem::canonical(LINUX_SHARE_PREFIX) / "libdcp" / "xsd"; } + void run_ffprobe (boost::filesystem::path content, boost::filesystem::path out) { diff --git a/src/lib/cross_osx.cc b/src/lib/cross_osx.cc index e91d3df16..412259e6a 100644 --- a/src/lib/cross_osx.cc +++ b/src/lib/cross_osx.cc @@ -123,6 +123,13 @@ shared_path () } +boost::filesystem::path +xsd_path () +{ + return shared_path() / "xsd"; +} + + void run_ffprobe (boost::filesystem::path content, boost::filesystem::path out) { diff --git a/src/lib/cross_windows.cc b/src/lib/cross_windows.cc index 337750dcb..272467bd3 100644 --- a/src/lib/cross_windows.cc +++ b/src/lib/cross_windows.cc @@ -199,6 +199,13 @@ shared_path () } +boost::filesystem::path +xsd_path () +{ + return directory_containing_executable().parent_path() / "xsd"; +} + + boost::filesystem::path openssl_path () { diff --git a/src/lib/verify_dcp_job.cc b/src/lib/verify_dcp_job.cc index 3d28fe759..f6dc10063 100644 --- a/src/lib/verify_dcp_job.cc +++ b/src/lib/verify_dcp_job.cc @@ -68,7 +68,7 @@ VerifyDCPJob::update_stage (string s, optional path) void VerifyDCPJob::run () { - _notes = dcp::verify (_directories, bind (&VerifyDCPJob::update_stage, this, _1, _2), bind (&VerifyDCPJob::set_progress, this, _1, false), shared_path() / "xsd"); + _notes = dcp::verify (_directories, bind (&VerifyDCPJob::update_stage, this, _1, _2), bind (&VerifyDCPJob::set_progress, this, _1, false), xsd_path()); bool failed = false; BOOST_FOREACH (dcp::VerificationNote i, _notes) { diff --git a/wscript b/wscript index f9aa78439..00665bbac 100644 --- a/wscript +++ b/wscript @@ -198,7 +198,7 @@ def configure(conf): if conf.env.TARGET_LINUX: conf.env.append_value('CXXFLAGS', '-mfpmath=sse') conf.env.append_value('CXXFLAGS', '-DLINUX_LOCALE_PREFIX="%s/share/locale"' % conf.env['INSTALL_PREFIX']) - conf.env.append_value('CXXFLAGS', '-DLINUX_SHARE_PREFIX="%s/share/dcpomatic2"' % conf.env['INSTALL_PREFIX']) + conf.env.append_value('CXXFLAGS', '-DLINUX_SHARE_PREFIX="%s/share"' % conf.env['INSTALL_PREFIX']) conf.env.append_value('CXXFLAGS', '-DDCPOMATIC_LINUX') conf.env.append_value('CXXFLAGS', ['-Wlogical-op', '-Wcast-align']) conf.check(lib='dl', uselib_store='DL', msg='Checking for library dl')