mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 23:05:04 +01:00
VST support now builds a useful script and installs correctly; fix leftovers for solo_latch and solo_model in configuration changes
git-svn-id: svn://localhost/ardour2/trunk@932 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
c6964a4ccf
commit
3e6feb62ae
10 changed files with 52 additions and 18 deletions
17
SConstruct
17
SConstruct
|
|
@ -15,7 +15,7 @@ import SCons.Node.FS
|
||||||
SConsignFile()
|
SConsignFile()
|
||||||
EnsureSConsVersion(0, 96)
|
EnsureSConsVersion(0, 96)
|
||||||
|
|
||||||
version = '2.0beta2'
|
version = '2.0beta3'
|
||||||
|
|
||||||
subst_dict = { }
|
subst_dict = { }
|
||||||
|
|
||||||
|
|
@ -365,8 +365,8 @@ if env['VST']:
|
||||||
answer = sys.stdin.readline ()
|
answer = sys.stdin.readline ()
|
||||||
answer = answer.rstrip().strip()
|
answer = answer.rstrip().strip()
|
||||||
if answer != "yes" and answer != "y":
|
if answer != "yes" and answer != "y":
|
||||||
print 'You cannot build Ardour with VST support for distribution to others.\nIt is a violation of several different licenses. VST support disabled.'
|
print 'You cannot build Ardour with VST support for distribution to others.\nIt is a violation of several different licenses. Build with VST=false.'
|
||||||
env['VST'] = 0;
|
sys.exit (-1);
|
||||||
else:
|
else:
|
||||||
print "OK, VST support will be enabled"
|
print "OK, VST support will be enabled"
|
||||||
|
|
||||||
|
|
@ -680,9 +680,15 @@ if os.environ.has_key('DISTCC_HOSTS'):
|
||||||
env['ENV']['HOME'] = os.environ['HOME']
|
env['ENV']['HOME'] = os.environ['HOME']
|
||||||
|
|
||||||
final_prefix = '$PREFIX'
|
final_prefix = '$PREFIX'
|
||||||
install_prefix = '$DESTDIR/$PREFIX'
|
|
||||||
|
|
||||||
subst_dict['INSTALL_PREFIX'] = install_prefix;
|
if env['DESTDIR'] :
|
||||||
|
install_prefix = '$DESTDIR/$PREFIX'
|
||||||
|
else:
|
||||||
|
install_prefix = env['PREFIX']
|
||||||
|
|
||||||
|
subst_dict['%INSTALL_PREFIX%'] = install_prefix;
|
||||||
|
subst_dict['%FINAL_PREFIX%'] = final_prefix;
|
||||||
|
subst_dict['%PREFIX%'] = final_prefix;
|
||||||
|
|
||||||
if env['PREFIX'] == '/usr':
|
if env['PREFIX'] == '/usr':
|
||||||
final_config_prefix = '/etc'
|
final_config_prefix = '/etc'
|
||||||
|
|
@ -691,7 +697,6 @@ else:
|
||||||
|
|
||||||
config_prefix = '$DESTDIR' + final_config_prefix
|
config_prefix = '$DESTDIR' + final_config_prefix
|
||||||
|
|
||||||
|
|
||||||
# SCons should really do this for us
|
# SCons should really do this for us
|
||||||
|
|
||||||
conf = Configure (env)
|
conf = Configure (env)
|
||||||
|
|
|
||||||
|
|
@ -402,8 +402,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
||||||
bool shuttle_grabbed;
|
bool shuttle_grabbed;
|
||||||
double shuttle_fract;
|
double shuttle_fract;
|
||||||
|
|
||||||
static const double SHUTTLE_FRACT_SPEED1=0.48412291827; /* derived from A1,A2 */
|
|
||||||
|
|
||||||
Gtk::ToggleButton punch_in_button;
|
Gtk::ToggleButton punch_in_button;
|
||||||
Gtk::ToggleButton punch_out_button;
|
Gtk::ToggleButton punch_out_button;
|
||||||
Gtk::ToggleButton auto_return_button;
|
Gtk::ToggleButton auto_return_button;
|
||||||
|
|
|
||||||
|
|
@ -420,7 +420,7 @@ ARDOUR_UI::parameter_changed (const char* parameter_name)
|
||||||
map_some_state ("options", "CrossfadesActive", &Configuration::get_crossfades_active);
|
map_some_state ("options", "CrossfadesActive", &Configuration::get_crossfades_active);
|
||||||
} else if (PARAM_IS ("latched-record-enable")) {
|
} else if (PARAM_IS ("latched-record-enable")) {
|
||||||
map_some_state ("options", "LatchedRecordEnable", &Configuration::get_latched_record_enable);
|
map_some_state ("options", "LatchedRecordEnable", &Configuration::get_latched_record_enable);
|
||||||
} else if (PARAM_IS ("solo-latch")) {
|
} else if (PARAM_IS ("solo-latched")) {
|
||||||
map_some_state ("options", "LatchedSolo", &Configuration::get_solo_latched);
|
map_some_state ("options", "LatchedSolo", &Configuration::get_solo_latched);
|
||||||
} else if (PARAM_IS ("solo-model")) {
|
} else if (PARAM_IS ("solo-model")) {
|
||||||
} else if (PARAM_IS ("layer-model")) {
|
} else if (PARAM_IS ("layer-model")) {
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,7 @@ namespace ARDOUR {
|
||||||
const char* old;
|
const char* old;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const double SHUTTLE_FRACT_SPEED1=0.48412291827; /* derived from A1,A2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* how do we make these be within the Ardour namespace? */
|
/* how do we make these be within the Ardour namespace? */
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ CONFIG_VARIABLE (bool, mute_affects_pre_fader, "mute-affects-pre-fader", true)
|
||||||
CONFIG_VARIABLE (bool, mute_affects_post_fader, "mute-affects-post-fader", true)
|
CONFIG_VARIABLE (bool, mute_affects_post_fader, "mute-affects-post-fader", true)
|
||||||
CONFIG_VARIABLE (bool, mute_affects_control_outs, "mute-affects-control-outs", true)
|
CONFIG_VARIABLE (bool, mute_affects_control_outs, "mute-affects-control-outs", true)
|
||||||
CONFIG_VARIABLE (bool, mute_affects_main_outs, "mute-affects-main-outs", true)
|
CONFIG_VARIABLE (bool, mute_affects_main_outs, "mute-affects-main-outs", true)
|
||||||
CONFIG_VARIABLE (bool, solo_latch, "solo-latch", true)
|
|
||||||
CONFIG_VARIABLE (bool, use_hardware_monitoring, "use-hardware-monitoring", false)
|
CONFIG_VARIABLE (bool, use_hardware_monitoring, "use-hardware-monitoring", false)
|
||||||
CONFIG_VARIABLE (bool, use_sw_monitoring, "use-sw-monitoring", false)
|
CONFIG_VARIABLE (bool, use_sw_monitoring, "use-sw-monitoring", false)
|
||||||
CONFIG_VARIABLE (bool, use_external_monitoring, "use-external-monitoring", true)
|
CONFIG_VARIABLE (bool, use_external_monitoring, "use-external-monitoring", true)
|
||||||
|
|
|
||||||
|
|
@ -1418,8 +1418,6 @@ class Session : public sigc::trackable, public PBD::StatefulDestructible
|
||||||
|
|
||||||
/* mixer stuff */
|
/* mixer stuff */
|
||||||
|
|
||||||
bool _solo_latched;
|
|
||||||
SoloModel _solo_model;
|
|
||||||
bool solo_update_disabled;
|
bool solo_update_disabled;
|
||||||
bool currently_soloing;
|
bool currently_soloing;
|
||||||
|
|
||||||
|
|
@ -1630,8 +1628,6 @@ class Session : public sigc::trackable, public PBD::StatefulDestructible
|
||||||
|
|
||||||
vector<Route*> master_outs;
|
vector<Route*> master_outs;
|
||||||
|
|
||||||
EditMode pending_edit_mode;
|
|
||||||
|
|
||||||
/* range playback */
|
/* range playback */
|
||||||
|
|
||||||
list<AudioRange> current_audio_range;
|
list<AudioRange> current_audio_range;
|
||||||
|
|
|
||||||
|
|
@ -1986,7 +1986,7 @@ Session::route_solo_changed (void* src, shared_ptr<Route> route)
|
||||||
then leave it as it is.
|
then leave it as it is.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (_solo_latched) {
|
if (Config->get_solo_latched()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,9 @@ import os
|
||||||
import os.path
|
import os.path
|
||||||
import glob
|
import glob
|
||||||
|
|
||||||
Import('env install_prefix final_prefix config_prefix libraries')
|
from stat import *
|
||||||
|
|
||||||
|
Import('env install_prefix final_prefix config_prefix subst_dict libraries')
|
||||||
|
|
||||||
ardour_vst = env.Copy()
|
ardour_vst = env.Copy()
|
||||||
|
|
||||||
|
|
@ -49,6 +51,27 @@ ardour_vst.Merge ([
|
||||||
libraries['jack']
|
libraries['jack']
|
||||||
])
|
])
|
||||||
|
|
||||||
wine_executable = ardour_vst.Program (target = 'ardour_vst', source = sources)
|
#
|
||||||
|
# run winegcc to build a mini-win32 executable that wine can run. note: this also
|
||||||
|
# generates a script called 'ardour_vst' which we don't use
|
||||||
|
#
|
||||||
|
|
||||||
Default(wine_executable)
|
wine_generated_executable = ardour_vst.Program (target = 'ardour_vst', source = sources)
|
||||||
|
|
||||||
|
#
|
||||||
|
# generate a shell script that will run the .exe file correctly
|
||||||
|
#
|
||||||
|
|
||||||
|
wine_executable = ardour_vst.SubstInFile ('ardourvst', 'ardourvst.in', SUBST_DICT = subst_dict)
|
||||||
|
|
||||||
|
# make sure the scripts are executable
|
||||||
|
|
||||||
|
ardour_vst.AddPostAction (wine_executable, ardour_vst.Action (os.chmod ('ardevst', S_IRUSR|S_IROTH|S_IRGRP|S_IWUSR|S_IXUSR|S_IXOTH|S_IXGRP)))
|
||||||
|
ardour_vst.AddPostAction (wine_executable, ardour_vst.Action (os.chmod ('ardourvst', S_IRUSR|S_IROTH|S_IRGRP|S_IWUSR|S_IXUSR|S_IXOTH|S_IXGRP)))
|
||||||
|
|
||||||
|
Default([wine_generated_executable, wine_executable])
|
||||||
|
|
||||||
|
# the wine script - into the bin dir
|
||||||
|
env.Alias('install', env.Install(os.path.join(install_prefix, 'bin'), wine_executable))
|
||||||
|
# the win32 executable - into the lib dir since the wine script will look for it there
|
||||||
|
env.Alias('install', env.Install(os.path.join(install_prefix, 'lib/ardour2'), 'ardour_vst.exe.so'))
|
||||||
|
|
|
||||||
4
vst/ardevst
Executable file
4
vst/ardevst
Executable file
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
export ARDOUR_PATH=../gtk2_ardour/glade:../gtk2_ardour/pixmaps:../gtk2_ardour
|
||||||
|
export LD_LIBRARY_PATH=../gtk2_ardour:../libs/surfaces/control_protocol:../libs/ardour:../libs/midi++2:../libs/pbd:../libs/soundtouch:../libs/gtkmm2ext:../libs/sigc++2:../libs/glibmm2:../libs/gtkmm2/atk:../libs/gtkmm2/pango:../libs/gtkmm2/gdk:../libs/gtkmm2/gtk:../libs/libgnomecanvasmm:../libs/libsndfile:../libs/appleutility:$$LD_LIBRARY_PATH
|
||||||
|
exec wine ./ardour_vst.exe.so "$@"
|
||||||
8
vst/ardourvst.in
Normal file
8
vst/ardourvst.in
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# NOTE: the use of PREFIX is incorrect - it should be INSTALL_PREFIX,
|
||||||
|
# but somehow scons puts leading /'s on INSTALL_PREFIX and that causes
|
||||||
|
# wine to be unable to find the .exe.so file
|
||||||
|
|
||||||
|
LD_LIBRARY_PATH=%PREFIX%/lib/ardour2:$LD_LIBRARY_PATH exec wine %PREFIX%/lib/ardour2/ardour_vst.exe.so "$@"
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue