X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsystem_exec.cc;h=aec89564223511a08834ca51b2e180850d16e010;hb=baa00942a20856cf332f547086ed5ebd2ff9078e;hp=c99863f2e5372a4addff9420f9282f3989d6ed4b;hpb=543099afbafe83a0bb334f2a016c0d849fe2ca47;p=ardour.git diff --git a/libs/ardour/system_exec.cc b/libs/ardour/system_exec.cc index c99863f2e5..aec8956422 100644 --- a/libs/ardour/system_exec.cc +++ b/libs/ardour/system_exec.cc @@ -19,42 +19,64 @@ */ #include -#include "pbd/pathscanner.h" #include "pbd/file_utils.h" #include "pbd/error.h" #include "ardour/filesystem_paths.h" #include "ardour/system_exec.h" -using namespace ARDOUR; +namespace ARDOUR { char * SystemExec::_vfork_exec_wrapper = NULL; static char *vfork_exec_wrapper_path() { +#ifdef PLATFORM_WINDOWS + return NULL; +#else std::string vfork_exec_wrapper; - if (!PBD::find_file_in_search_path ( - PBD::Searchpath(Glib::build_filename(ARDOUR::ardour_dll_directory(), "vfork")), + if (!PBD::find_file ( + PBD::Searchpath( + ARDOUR::ardour_dll_directory() // deployed + + G_SEARCHPATH_SEPARATOR_S + Glib::build_filename(ARDOUR::ardour_dll_directory(), "vfork") // src, build (ardev, etc) + ), "ardour-exec-wrapper", vfork_exec_wrapper)) { - PBD::warning << "vfork exec wrapper not found..'" << endmsg; - return NULL; + PBD::fatal << "vfork exec wrapper 'ardour-exec-wrapper' was not found in $PATH." << endmsg; + abort(); /*NOTREACHED*/ } return strdup(vfork_exec_wrapper.c_str()); +#endif } SystemExec::SystemExec (std::string c, char ** a) : PBD::SystemExec(c, a) { +#ifndef PLATFORM_WINDOWS if (!_vfork_exec_wrapper) { _vfork_exec_wrapper = vfork_exec_wrapper_path(); } +#endif } SystemExec::SystemExec (std::string c, std::string a) : PBD::SystemExec(c, a) { +#ifndef PLATFORM_WINDOWS if (!_vfork_exec_wrapper) { _vfork_exec_wrapper = vfork_exec_wrapper_path(); } +#endif +} + +SystemExec::SystemExec (std::string c, const std::map subs) + : PBD::SystemExec(c, subs) +{ +#ifndef PLATFORM_WINDOWS + if (!_vfork_exec_wrapper) { + _vfork_exec_wrapper = vfork_exec_wrapper_path(); + } +#endif } SystemExec::~SystemExec() { } + +} // namespace ARDOUR