Hack round a maybe delightful (for some values of delightful) and certainly evil...
[ardour.git] / gtk2_ardour / main.cc
index 353949c526b523141817909c629ac4938f80012e..a35cd1f3e7735a00ed3c10338319e14761b2a047 100644 (file)
@@ -31,6 +31,9 @@
 #include "pbd/textreceiver.h"
 #include "pbd/failed_constructor.h"
 #include "pbd/pthread_utils.h"
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
+#include "pbd/boost_debug.h"
+#endif
 
 #include <jack/jack.h>
 
@@ -106,7 +109,7 @@ Please consider the possibilities, and perhaps (re)start JACK."));
 extern void set_language_preference (); // cocoacarbon.mm
 
 void
-fixup_bundle_environment ()
+fixup_bundle_environment (int, char* [])
 {
        if (!getenv ("ARDOUR_BUNDLED")) {
                return;
@@ -210,7 +213,7 @@ fixup_bundle_environment ()
 
        setenv ("ARDOUR_CONTROL_SURFACE_PATH", path.c_str(), 1);
 
-       cstr = getenv ("LV2_PATH");
+       cstr = getenv ("ARDOUR_PANNER_PATH");
        if (cstr) {
                path = cstr;
                path += ':';
@@ -218,15 +221,20 @@ fixup_bundle_environment ()
                path = "";
        }
        path += dir_path;
-       path += "/../Plugins";
-
-       setenv ("LV2_PATH", path.c_str(), 1);
+       path += "/lib/panners";
+       
+       setenv ("ARDOUR_PANNER_PATH", path.c_str(), 1);
 
        path = dir_path;
        path += "/../Frameworks/clearlooks";
 
        setenv ("GTK_PATH", path.c_str(), 1);
 
+        /* unset GTK_RC_FILES so that we only load the RC files that we define
+         */
+
+        unsetenv ("GTK_RC_FILES");
+
        if (!ARDOUR::translations_are_disabled ()) {
 
                path = dir_path;
@@ -305,7 +313,7 @@ fixup_bundle_environment ()
 #else
 
 void
-fixup_bundle_environment (int argc, char* argv[])
+fixup_bundle_environment (int /*argc*/, char* argv[])
 {
        if (!getenv ("ARDOUR_BUNDLED")) {
                return;
@@ -319,8 +327,6 @@ fixup_bundle_environment (int argc, char* argv[])
        const char *cstr = getenv ("PATH");
         Glib::ustring userconfigdir = user_config_directory().to_string();
 
-        cerr << "Ardour: bundle root = " << dir_path << endl;
-
        /* ensure that we find any bundled executables (e.g. JACK),
           and find them before any instances of the same name
           elsewhere in PATH
@@ -393,7 +399,7 @@ fixup_bundle_environment (int argc, char* argv[])
        
        setenv ("ARDOUR_CONTROL_SURFACE_PATH", path.c_str(), 1);
 
-       cstr = getenv ("LV2_PATH");
+       cstr = getenv ("ARDOUR_PANNER_PATH");
        if (cstr) {
                path = cstr;
                path += ':';
@@ -401,15 +407,20 @@ fixup_bundle_environment (int argc, char* argv[])
                path = "";
        }
        path += dir_path;
-       path += "/lib/plugins";
+       path += "/lib/panners";
        
-       setenv ("LV2_PATH", path.c_str(), 1);
+       setenv ("ARDOUR_PANNER_PATH", path.c_str(), 1);
 
        path = dir_path;
        path += "/lib/clearlooks";
 
        setenv ("GTK_PATH", path.c_str(), 1);
 
+        /* unset GTK_RC_FILES so that we only load the RC files that we define
+         */
+
+        unsetenv ("GTK_RC_FILES");
+
        if (!ARDOUR::translations_are_disabled ()) {
                 path = dir_path;
                 path += "/share/locale";
@@ -525,12 +536,11 @@ int ardour_main (int argc, char *argv[])
 int main (int argc, char *argv[])
 #endif
 {
-#ifdef __APPLE__
-       fixup_bundle_environment ();
-#endif
+       fixup_bundle_environment (argc, argv);
 
-       if (!Glib::thread_supported())
+       if (!Glib::thread_supported()) {
                Glib::thread_init();
+        }
 
        gtk_set_locale ();
 
@@ -558,6 +568,12 @@ int main (int argc, char *argv[])
        text_receiver.listen_to (fatal);
        text_receiver.listen_to (warning);
 
+#ifdef BOOST_SP_ENABLE_DEBUG_HOOKS
+        if (getenv ("BOOST_DEBUG")) {
+                boost_debug_shared_ptr_show_live_debugging (true);
+        }
+#endif
+
        if (parse_opts (argc, argv)) {
                exit (1);
        }
@@ -581,7 +597,7 @@ int main (int argc, char *argv[])
        }
 
        if (no_splash) {
-               cerr << _("Copyright (C) 1999-2010 Paul Davis") << endl
+               cerr << _("Copyright (C) 1999-2011 Paul Davis") << endl
                     << _("Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker") << endl
                     << endl
                     << string_compose (_("%1 comes with ABSOLUTELY NO WARRANTY"), PROGRAM_NAME) << endl