* Add some missing libraries to the OS X build.
+ * Fix libltdl search path on OS X.
+
2013-10-12 Carl Hetherington <cth@carlh.net>
* Version 1.13 released.
#include <sys/sysctl.h>
#include <mach-o/dyld.h>
#endif
+#include "exceptions.h"
using std::pair;
using std::list;
return info;
}
+#ifdef DCPOMATIC_OSX
+/** @return Path of the Contents directory in the .app */
+boost::filesystem::path
+app_contents ()
+{
+ uint32_t size = 1024;
+ char buffer[size];
+ if (_NSGetExecutablePath (buffer, &size)) {
+ throw StringError ("_NSGetExecutablePath failed");
+ }
+
+ boost::filesystem::path path (buffer);
+ path = boost::filesystem::canonical (path);
+ std::cout << "start " << path << "\n";
+ path = path.parent_path ();
+ std::cout << "then " << path << "\n";
+ path = path.parent_path ();
+ std::cout << "and then " << path << "\n";
+ return path;
+}
+#endif
+
void
run_ffprobe (boost::filesystem::path content, boost::filesystem::path out, shared_ptr<Log> log)
{
#endif
#ifdef DCPOMATIC_OSX
- uint32_t size = 1024;
- char buffer[size];
- if (_NSGetExecutablePath (buffer, &size)) {
- log->log ("_NSGetExecutablePath failed");
- return;
- }
-
- boost::filesystem::path path (buffer);
- path.remove_filename ();
+ boost::filesystem::path path = app_contents();
+ path /= "MacOS";
path /= "ffprobe";
string ffprobe = path.string() + " \"" + content.string() + "\" 2> \"" + out.string() + "\"";
extern void run_ffprobe (boost::filesystem::path, boost::filesystem::path, boost::shared_ptr<Log>);
extern std::list<std::pair<std::string, std::string> > mount_info ();
extern boost::filesystem::path openssl_path ();
+#ifdef DCPOMATIC_OSX
+extern boost::filesystem::path app_contents ();
+#endif
avfilter_register_all ();
+#ifdef DCPOMATIC_OSX
+ /* Add our lib directory to the libltdl search path so that
+ xmlsec can find xmlsec1-openssl.
+ */
+ boost::filesystem::path lib = app_contents ();
+ lib /= "lib";
+ setenv ("LTDL_LIBRARY_PATH", lib.c_str (), 1);
+#endif
+
libdcp::init ();
Ratio::setup_ratios ();