No more wine

This commit is contained in:
Robin Gareus 2021-06-03 18:12:29 +02:00
parent 328585069a
commit a74b4e8ef0
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
18 changed files with 49 additions and 365 deletions

View File

@ -514,18 +514,11 @@ ARDOUR_UI::load_session_stage_two (const std::string& path, const std::string& s
_session->set_clean ();
}
#ifdef WINDOWS_VST_SUPPORT
fst_stop_threading();
#endif
{
Timers::TimerSuspender t;
flush_pending (10);
}
#ifdef WINDOWS_VST_SUPPORT
fst_start_threading();
#endif
retval = 0;
if (!mix_template.empty ()) {

View File

@ -169,34 +169,9 @@ WindowsVSTPluginUI::get_XID ()
return _vst->state()->xid;
}
#ifdef GDK_WINDOWING_X11
typedef int (*error_handler_t)( Display *, XErrorEvent *);
static Display *the_gtk_display;
static error_handler_t wine_error_handler;
static error_handler_t gtk_error_handler;
static int
fst_xerror_handler (Display* disp, XErrorEvent* ev)
{
if (disp == the_gtk_display) {
printf ("relaying error to gtk\n");
return gtk_error_handler (disp, ev);
} else {
printf( "relaying error to wine\n" );
return wine_error_handler (disp, ev);
}
}
#endif
void
windows_vst_gui_init (int *argc, char **argv[])
{
gtk_init (argc, argv);
#ifdef GDK_WINDOWING_X11
wine_error_handler = XSetErrorHandler (NULL);
the_gtk_display = gdk_x11_display_get_xdisplay (gdk_display_get_default());
gtk_error_handler = XSetErrorHandler (fst_xerror_handler);
#endif
}

View File

@ -455,13 +455,6 @@ def configure(conf):
autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp')
autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp')
# Add a waf `feature' to allow compilation of things using winegcc
from waflib.TaskGen import feature
@feature("wine")
def set_winegcc(self):
self.env.LINK_CXX = self.env.LINK_CC = 'wineg++'
self.env.CC = 'winegcc'
def _doPyp(infileName, deps = False):
outStr = ''
out = []
@ -604,60 +597,19 @@ def build(bld):
# obj.source += [ 'toolbar_test.cc', 'enums.cc']
if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
# Windows VST support w/wine
# If we require VST support we build a stub main() and the FST library
# here using winegcc, and link it to the GTK front-end library
obj = bld (features = 'cxx c cxxprogram wine')
obj.source = ( '../libs/fst/vstwin.c', '../vst/winmain.c' )
#
# XXX do we really need to explicitly link to all of these for the wine executable?
#
obj.use = [ 'libpbd',
'libmidipp',
'libardour',
'libardour_cp',
'libtemporal',
'libmidipp',
'libgtk2_ardour',
'libgtkmm2ext',
'libcanvas',
'libwaveview',
'libwidgets',
'libptformat',
]
obj.target = 'ardour-' + str (bld.env['VERSION']) + '-vst.exe.so'
obj.includes = [ '../libs/fst', '.' ]
obj.linkflags = ['-mwindows', '-Wl,--export-dynamic']
obj.linkflags += bld.env['LDFLAGS']
obj.defines = ['_POSIX_SOURCE', 'USE_WS_PREFIX']
obj.uselib = 'GLIB'
obj.install_path = bld.env['DLLDIR']
# end of the wine executable
# now the shared library containing the GTK GUI for ardour
obj = bld (features = 'cxx c cxxshlib')
# operate on copy to avoid adding sources twice
obj.source = list(gtk2_ardour_sources)
obj.includes = [ '../libs/fst', '.' ]
obj.name = 'libgtk2_ardour'
obj.target = 'gtk2_ardour'
obj.cflags = [ bld.env['compiler_flags_dict']['pic'] ]
# executable version of the GTK GUI
if bld.env['build_target'] == 'mingw':
obj = bld (features = 'cxx c cxxprogram winres')
else:
# just the normal executable version of the GTK GUI
if bld.env['build_target'] == 'mingw':
obj = bld (features = 'cxx c cxxprogram winres')
else:
obj = bld (features = 'cxx c cxxprogram')
# operate on copy to avoid adding sources twice
obj.source = list(gtk2_ardour_sources)
obj.target = 'ardour-' + str (bld.env['VERSION'])
obj.includes = ['.']
obj = bld (features = 'cxx c cxxprogram')
if bld.is_defined('WINDOWS_VST_SUPPORT'):
# Windows VST support mingw
obj.includes += [ '../libs/fst' ]
# operate on copy to avoid adding sources twice
obj.source = list(gtk2_ardour_sources)
obj.target = 'ardour-' + str (bld.env['VERSION'])
obj.includes = ['.']
if bld.is_defined('WINDOWS_VST_SUPPORT'):
obj.includes += [ '../libs/fst' ]
# at this point, "obj" refers to either the normal native executable
# OR the shared library built for use with wine on linux.
@ -716,8 +668,6 @@ def build(bld):
if bld.is_defined('WINDOWS_VST_SUPPORT'):
obj.source += [ 'windows_vst_plugin_ui.cc' ]
obj.defines += [ 'WINDOWS_VST_SUPPORT' ]
if bld.env['build_target'] != 'mingw':
obj.use += [ 'X11' ]
if bld.is_defined('LXVST_SUPPORT'):
obj.source += [ 'linux_vst_gui_support.cc', 'lxvst_plugin_ui.cc' ]
@ -781,15 +731,6 @@ def build(bld):
obj.install_path = bld.env['BINDIR']
set_subst_dict(obj, wrapper_subst_dict)
if bld.is_defined('WINDOWS_VST_SUPPORT'):
obj = bld(features = 'subst')
obj.source = '../vst/ardourvst.in'
obj.target = 'ardourvst' + str (bld.env['MAJOR'])
obj.chmod = Utils.O755
obj.dict = wrapper_subst_dict
obj.install_path = bld.env['BINDIR']
set_subst_dict(obj, wrapper_subst_dict)
# Font configuration
font_subst_dict = {}

View File

@ -30,8 +30,6 @@ def configure(conf):
def build(bld):
VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
return
# just the normal executable version of the GTK GUI
obj = bld (features = 'cxx c cxxprogram')
@ -40,10 +38,6 @@ def build(bld):
obj.source = hardour_sources
obj.target = 'hardour-' + str (bld.env['VERSION'])
obj.includes = ['.']
# at this point, "obj" refers to either the normal native executable
# OR the shared library built for use with wine on linux.
obj.use = [ 'libpbd',
'libardour',
'libardour_cp',

View File

@ -371,11 +371,9 @@ def configure(conf):
autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp')
autowaf.check_header(conf, 'cxx', 'boost/scoped_ptr.hpp')
autowaf.check_header(conf, 'cxx', 'boost/ptr_container/ptr_list.hpp')
if conf.env['WINDOWS_VST_SUPPORT'] == True and Options.options.dist_target == 'mingw':
conf.check(compiler='cxx',
lib='gdi32',
mandatory=True,
uselib_store='GDI32')
if conf.env['WINDOWS_VST_SUPPORT'] == True:
conf.check(compiler='cxx', lib='gdi32', mandatory=True, uselib_store='GDI32')
def build(bld):
@ -450,11 +448,10 @@ def build(bld):
if bld.is_defined('WINDOWS_VST_SUPPORT'):
obj.source += [ 'windows_vst_plugin.cc']
obj.includes += [ '../fst' ]
obj.defines += [ 'WINDOWS_VST_SUPPORT' ]
if bld.env['build_target'] == 'mingw':
obj.use += [ 'vstwin' ]
obj.uselib += ['GDI32']
obj.includes += [ '../fst' ]
obj.use += [ 'vstwin' ]
obj.uselib += ['GDI32']
if bld.is_defined('LXVST_SUPPORT'):
obj.source += [ 'lxvst_plugin.cc', 'linux_vst_support.cc' ]

View File

@ -73,13 +73,5 @@ def build(bld):
defines = [ 'HAVE_CONFIG_H', 'DEFAULT_SOUNDFONT=""' ]
)
# wine-gcc hacks:
# defining __MINGW32__ for wine-gcc is a workaround for fluidsynth's include
# strategy (which is made for mingw or windows) without it
# winsock2.h will complain about undeclared "u_short"
# we also need to explicitly define _WIN32
if bld.is_defined('WINDOWS_VST_SUPPORT') and not bld.env['build_target'] == 'mingw':
obj.defines += [ '_WIN32', '__MINGW32__' ]
def shutdown():
autowaf.shutdown()

View File

@ -47,8 +47,6 @@ LIBARDOUR_API void fst_destroy_editor (VSTState *);
LIBARDOUR_API void fst_move_window_into_view (VSTState *);
LIBARDOUR_API void fst_event_loop_remove_plugin (VSTState* fst);
LIBARDOUR_API void fst_start_threading(void);
LIBARDOUR_API void fst_stop_threading(void);
LIBARDOUR_API void fst_audio_master_idle(void);
#ifdef __cplusplus

View File

@ -1,2 +0,0 @@
#!/bin/sh
exec wine "`dirname "$0"`/ardour-vst-scanner.exe.so" "$@"

View File

@ -25,22 +25,13 @@
#define fst_error(...) fprintf(stderr, __VA_ARGS__)
#ifdef PLATFORM_WINDOWS
#ifndef PLATFORM_WINDOWS
#error VSTWIN ONLY WORKS ON WINDOWS
#endif
#include <pthread.h>
static UINT_PTR idle_timer_id = 0;
#else /* linux + wine */
#include <linux/limits.h> // PATH_MAX
#include <winnt.h>
#include <wine/exception.h>
#include <pthread.h>
static int gui_quit = 0;
static unsigned int idle_id = 0;
#endif
#ifndef COMPILER_MSVC
extern char * strdup (const char *);
#endif
@ -70,7 +61,6 @@ vstedit_wndproc (HWND w, UINT msg, WPARAM wp, LPARAM lp)
break;
case WM_SIZE:
#ifdef PLATFORM_WINDOWS
{
LRESULT rv = DefWindowProcA (w, msg, wp, lp);
RECT rect;
@ -88,7 +78,6 @@ vstedit_wndproc (HWND w, UINT msg, WPARAM wp, LPARAM lp)
}
return rv;
}
#endif
break;
case WM_CLOSE:
/* we don't care about windows closing ...
@ -137,31 +126,6 @@ idle_hands(
}
pthread_mutex_lock (&fst->lock);
#ifndef PLATFORM_WINDOWS /* linux + wine */
/* Dispatch messages to send keypresses to the plugin */
int i;
for (i = 0; i < fst->n_pending_keys; ++i) {
MSG msg;
/* I'm not quite sure what is going on here; it seems
* `special' keys must be delivered with WM_KEYDOWN,
* but that alphanumerics etc. must use WM_CHAR or
* they will be ignored. Ours is not to reason why ...
*/
if (fst->pending_keys[i].special != 0) {
msg.message = WM_KEYDOWN;
msg.wParam = fst->pending_keys[i].special;
} else {
msg.message = WM_CHAR;
msg.wParam = fst->pending_keys[i].character;
}
msg.hwnd = GetFocus ();
msg.lParam = 0;
DispatchMessageA (&msg);
}
fst->n_pending_keys = 0;
#endif
/* See comment for call below */
vststate_maybe_set_program (fst);
@ -237,13 +201,8 @@ fst_new (void)
VSTState* fst = (VSTState*) calloc (1, sizeof (VSTState));
vststate_init (fst);
#ifdef PLATFORM_WINDOWS
fst->voffset = 45;
fst->hoffset = 0;
#else /* linux + wine */
fst->voffset = 24;
fst->hoffset = 6;
#endif
return fst;
}
@ -263,22 +222,6 @@ fst_handle_new (void)
return fst;
}
#ifndef PLATFORM_WINDOWS /* linux + wine */
static gboolean
g_idle_call (gpointer ignored) {
if (gui_quit) return FALSE;
MSG msg;
if (PeekMessageA (&msg, NULL, 0, 0, 1)) {
TranslateMessage (&msg);
DispatchMessageA (&msg);
}
idle_hands(NULL, 0, 0, 0);
g_main_context_iteration(NULL, FALSE);
return gui_quit ? FALSE : TRUE;
}
#endif
int
fst_init (void* possible_hmodule)
{
@ -286,12 +229,8 @@ fst_init (void* possible_hmodule)
HMODULE hInst;
if (possible_hmodule) {
#ifdef PLATFORM_WINDOWS
fst_error ("Error in fst_init(): (module handle is unnecessary for Win32 build)");
return -1;
#else /* linux + wine */
hInst = (HMODULE) possible_hmodule;
#endif
} else if ((hInst = GetModuleHandleA (NULL)) == NULL) {
fst_error ("can't get module handle");
return -1;
@ -305,15 +244,9 @@ fst_init (void* possible_hmodule)
WNDCLASSEX wclass;
wclass.cbSize = sizeof(WNDCLASSEX);
#ifdef PLATFORM_WINDOWS
wclass.style = (CS_HREDRAW | CS_VREDRAW);
wclass.hIcon = NULL;
wclass.hCursor = LoadCursor(0, IDC_ARROW);
#else /* linux + wine */
wclass.style = 0;
wclass.hIcon = LoadIcon(hInst, "FST");
wclass.hCursor = LoadCursor(0, IDI_APPLICATION);
#endif
wclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wclass.lpfnWndProc = vstedit_wndproc;
wclass.cbClsExtra = 0;
@ -333,30 +266,6 @@ fst_init (void* possible_hmodule)
return 0;
}
void
fst_start_threading(void)
{
#ifndef PLATFORM_WINDOWS /* linux + wine */
if (idle_id == 0) {
gui_quit = 0;
idle_id = g_idle_add (g_idle_call, NULL);
}
#endif
}
void
fst_stop_threading(void) {
#ifndef PLATFORM_WINDOWS /* linux + wine */
if (idle_id != 0) {
gui_quit = 1;
PostQuitMessage (0);
g_main_context_iteration(NULL, FALSE);
//g_source_remove(idle_id);
idle_id = 0;
}
#endif
}
void
fst_exit (void)
{
@ -366,16 +275,9 @@ fst_exit (void)
while ((fst = fst_first))
fst_close (fst);
#ifdef PLATFORM_WINDOWS
if (idle_timer_id != 0) {
KillTimer(NULL, idle_timer_id);
}
#else /* linux + wine */
if (idle_id) {
gui_quit = 1;
PostQuitMessage (0);
}
#endif
host_initialized = FALSE;
pthread_mutex_destroy (&plugin_mutex);
@ -425,12 +327,6 @@ fst_run_editor (VSTState* fst, void* window_parent)
// of our plugin window.
SetParent((HWND)fst->windows_window, (HWND)window_parent);
fst->xid = 0;
#ifndef PLATFORM_WINDOWS /* linux + wine */
} else {
SetWindowPos (fst->windows_window, 0, 9999, 9999, 2, 2, 0);
ShowWindow (fst->windows_window, SW_SHOWNA);
fst->xid = (int) GetPropA (fst->windows_window, "__wine_x11_whole_window");
#endif
}
// This is the suggested order of calls.
@ -448,12 +344,10 @@ fst_run_editor (VSTState* fst, void* window_parent)
}
if (fst->windows_window) {
#ifdef PLATFORM_WINDOWS
if (idle_timer_id == 0) {
// Init the idle timer if needed, so that the main window calls us.
idle_timer_id = SetTimer(NULL, idle_timer_id, 50, (TIMERPROC) idle_hands);
}
#endif
fst_idle_timer_add_plugin (fst);
}
@ -482,15 +376,11 @@ void
fst_move_window_into_view (VSTState* fst)
{
if (fst->windows_window) {
#ifdef PLATFORM_WINDOWS
SetWindowPos ((HWND)(fst->windows_window),
HWND_TOP /*0*/,
fst->hoffset, fst->voffset,
fst->width, fst->height,
SWP_NOACTIVATE|SWP_NOOWNERZORDER);
#else /* linux + wine */
SetWindowPos ((HWND)(fst->windows_window), 0, 0, 0, fst->width + fst->hoffset, fst->height + fst->voffset, 0);
#endif
ShowWindow ((HWND)(fst->windows_window), SW_SHOWNA);
UpdateWindow ((HWND)(fst->windows_window));
}

View File

@ -23,18 +23,9 @@ def configure(conf):
conf.load('misc')
conf.load('compiler_cxx')
autowaf.configure(conf)
if conf.env['WINDOWS_VST_SUPPORT'] == True and Options.options.dist_target == 'mingw':
conf.check(compiler='cxx',
lib='gdi32',
mandatory=True,
uselib_store='GDI32')
# Add a waf `feature' to allow compilation of things using winegcc
from waflib.TaskGen import feature
@feature("wine")
def set_winegcc(self):
self.env.LINK_CXX = self.env.LINK_CC = 'wineg++'
self.env.CC = 'winegcc'
if conf.env['WINDOWS_VST_SUPPORT'] == True:
conf.check(compiler='cxx', lib='gdi32', mandatory=True, uselib_store='GDI32')
def build(bld):
VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
@ -66,30 +57,7 @@ def build(bld):
obj.install_path = os.path.join(bld.env['LIBDIR'])
if not (bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT') or bld.is_defined ('MACVST_SUPPORT')):
return
if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
# wine exec wrapper script
obj = bld(features = 'subst')
obj.source = 'scanner.wine'
obj.target = 'ardour-vst-scanner'
obj.chmod = Utils.O755
obj.install_path = os.path.join(bld.env['LIBDIR'])
obj.VERSION = bld.env['VERSION']
obj = bld (features = 'c cxx cxxprogram wine')
obj.source = (
'scanner.cc',
'vstwin.c',
)
obj.linkflags = ['-mwindows', '-Wl,--export-dynamic']
obj.linkflags += bld.env['LDFLAGS']
obj.target = 'ardour-vst-scanner.exe.so'
obj.uselib = ['GIOMM', 'DL']
obj.use = [ 'libpbd' ]
obj.cxxflags = [ bld.env['compiler_flags_dict']['pic'] ]
else:
if bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT') or bld.is_defined ('MACVST_SUPPORT'):
obj = bld (features = 'cxx c cxxprogram')
obj.source = ( 'scanner.cc' )
obj.target = 'ardour-vst-scanner'
@ -99,19 +67,19 @@ def build(bld):
obj.linkflags = ['-mwindows']
obj.use = [ 'libpbd', 'vstwin' ]
else:
obj.uselib = ['GIOMM', 'DL', 'OSX', 'XML', 'ARCHIVE', 'CURL']
obj.uselib = ['GIOMM', 'DL', 'OSX', 'XML' ]
obj.use = [ 'libpbd' ]
obj.includes = [ '../pbd/', '../ardour/', '.' ]
obj.defines = [
'_POSIX_SOURCE',
'USE_WS_PREFIX',
'VST_SCANNER_APP',
'PACKAGE="' + I18N_PACKAGE + str(bld.env['MAJOR']) + '"',
'LIBARDOUR="' + bld.env['lwrcase_dirname'] + '"',
]
if re.search ("bsd", sys.platform) != None:
obj.defines.append('_POSIX_C_SOURCE=200809')
obj.defines.append('_XOPEN_SOURCE=700')
obj.includes = [ '../pbd/', '../ardour/', '.' ]
obj.defines = [
'_POSIX_SOURCE',
'USE_WS_PREFIX',
'VST_SCANNER_APP',
'PACKAGE="' + I18N_PACKAGE + str(bld.env['MAJOR']) + '"',
'LIBARDOUR="' + bld.env['lwrcase_dirname'] + '"',
]
if re.search ("bsd", sys.platform) != None:
obj.defines.append('_POSIX_C_SOURCE=200809')
obj.defines.append('_XOPEN_SOURCE=700')
obj.install_path = os.path.join(bld.env['LIBDIR'])
obj.install_path = os.path.join(bld.env['LIBDIR'])

View File

@ -29,9 +29,6 @@
#endif
#include "pbd/pthread_utils.h"
#ifdef WINE_THREAD_SUPPORT
#include <fst.h>
#endif
#ifdef COMPILER_MSVC
DECLARE_DEFAULT_COMPARISONS (pthread_t) // Needed for 'DECLARE_DEFAULT_COMPARISONS'. Objects in an STL container can be
@ -61,16 +58,6 @@ namespace PBD
using namespace PBD;
static int
thread_creator (pthread_t* thread_id, const pthread_attr_t* attr, void* (*function) (void*), void* arg)
{
#ifdef WINE_THREAD_SUPPORT
return wine_pthread_create (thread_id, attr, function, arg);
#else
return pthread_create (thread_id, attr, function, arg);
#endif
}
void
PBD::notify_event_loops_about_thread_creation (pthread_t thread, const std::string& emitting_thread_name, int request_count)
{
@ -140,7 +127,7 @@ pthread_create_and_store (string name, pthread_t* thread, void* (*start_routine)
ThreadStartWithName* ts = new ThreadStartWithName (start_routine, arg, name);
if ((ret = thread_creator (thread, &default_attr, fake_thread_start, ts)) == 0) {
if ((ret = pthread_create (thread, &default_attr, fake_thread_start, ts)) == 0) {
pthread_mutex_lock (&thread_map_lock);
all_threads.push_back (*thread);
pthread_mutex_unlock (&thread_map_lock);

View File

@ -30,9 +30,6 @@ def build(bld):
VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
if not bld.is_defined('HAVE_READLINE'):
return;
# no wine
if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
return
# commandline luasession wrapper script
if bld.env['build_target'] != 'mingw':

View File

@ -21,10 +21,7 @@ def configure(conf):
print ('session-utils depend on the dummy backend.')
autowaf.display_msg(conf, 'build session-utils', 'no')
return
# no wine
if Options.options.windows_vst and Options.options.dist_target != 'mingw':
autowaf.display_msg(conf, 'build session-utils', 'no')
return
autowaf.display_msg(conf, 'build session-utils', 'yes')
conf.load('misc')
conf.load('compiler_cxx')
@ -79,9 +76,6 @@ def build(bld):
# session-utils depend on the dummy backend
if not "dummy" in bld.env['BACKENDS']:
return
# no wine
if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
return
pgmprefix = bld.env['PROGRAM_NAME'].lower() + str(bld.env['MAJOR'])

View File

@ -32,6 +32,7 @@ VENDOR=Ardour ;
EXENAME=ardour
GCC5ABI=false
USEWINE=false
WINEEXE=
BUILDTYPE=""
NOSTRIP="libsuil|libserd|libsord|liblilv|libsratom|liblrdf|libardour|libpbd|libevoral"
@ -258,15 +259,6 @@ fi
echo export 'PATH="/usr/local/bin:/opt/bin:$PATH"' >> $ENVIRONMENT
# create startup helper script
if test -d $BUILD_ROOT/vst; then
WINEEXE=wine
USEWINE=true
echo export INSTALL_DIR >> $ENVIRONMENT
else
WINEEXE=
fi
sed -e "/^%ENV%/r $ENVIRONMENT" -e '/^%ENV%/d' -e 's/%VER%/'"${release_version}"'/;s/%EXENAME%/'"${EXENAME}"'/;s/%WINE%/'"$WINEEXE"'/' < ardour.sh.in > $APPBIN/${EXENAME}${major_version}
rm $ENVIRONMENT && chmod 775 $APPBIN/${EXENAME}${major_version}

View File

@ -1,6 +0,0 @@
#!/bin/sh
TOP=`dirname "$0"`/..
. $TOP/build/gtk2_ardour/ardev_common_waf.sh
export LD_LIBRARY_PATH=$libs/../gtk2_ardour:$LD_LIBRARY_PATH
exec wine $libs/../gtk2_ardour/ardour-$ARDOURVERSION-vst.exe.so "$@"

View File

@ -1,18 +0,0 @@
#!/bin/sh
#
# Running Ardour requires these variables to be set
#
export ARDOUR_DATA_PATH=@DATADIR@
export ARDOUR_CONFIG_PATH=@CONFDIR@
export ARDOUR_DLL_PATH=@LIBDIR@
export VAMP_PATH=@LIBDIR@/vamp${VAMP_PATH:+:$VAMP_PATH}
export GTK_PATH=@LIBDIR@${GTK_PATH:+:$GTK_PATH}
export LD_LIBRARY_PATH=@LIBDIR@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
# NSM needs a path to this script
export ARDOUR_SELF="$0"
exec wine @LIBDIR@/ardour-@VERSION@-vst.exe.so "$@"

View File

@ -1,7 +0,0 @@
extern int ardour_main(int argc, char* argv[]);
int
main (int argc, char* argv[])
{
return ardour_main(argc, argv);
}

21
wscript
View File

@ -894,8 +894,10 @@ def options(opt):
help='Compile with -arch arm64 (macOS ONLY)')
opt.add_option('--versioned', action='store_true', default=False, dest='versioned',
help='Add revision information to executable name inside the build directory')
opt.add_option('--windows-vst', action='store_true', default=False, dest='windows_vst',
opt.add_option('--windows-vst', action='store_true', default=True, dest='windows_vst',
help='Compile with support for Windows VST')
opt.add_option('--no-windows-vst', action='store_false', dest='windows_vst',
help='Compile without support for Windows VST')
opt.add_option('--windows-key', type='string', action='store', dest='windows_key', default='Mod4><Super',
help='X Modifier(s) (Mod1,Mod2, etc) for the Windows key (X11 builds only). ' +
'Multiple modifiers must be separated by \'><\'')
@ -905,8 +907,6 @@ def options(opt):
help='additional include directory where header files can be found (split multiples with commas)')
opt.add_option('--also-libdir', type='string', action='store', dest='also_libdir', default='',
help='additional include directory where shared libraries can be found (split multiples with commas)')
opt.add_option('--wine-include', type='string', action='store', dest='wine_include', default='/usr/include/wine/windows',
help='directory where Wine\'s Windows header files can be found')
opt.add_option('--noconfirm', action='store_true', default=False, dest='noconfirm',
help='Do not ask questions that require confirmation during the build')
opt.add_option('--cxx11', action='store_true', default=False, dest='cxx11',
@ -1289,12 +1289,11 @@ int main () { return 0; }
#if opts.tranzport:
# conf.env['TRANZPORT'] = 1
if opts.windows_vst:
conf.define('WINDOWS_VST_SUPPORT', 1)
conf.env['WINDOWS_VST_SUPPORT'] = True
if not Options.options.dist_target == 'mingw':
conf.env.append_value('CFLAGS', '-I' + Options.options.wine_include)
conf.env.append_value('CXXFLAGS', '-I' + Options.options.wine_include)
autowaf.check_header(conf, 'cxx', 'windows.h', mandatory = True)
if Options.options.dist_target == 'mingw':
conf.define('WINDOWS_VST_SUPPORT', 1)
conf.env['WINDOWS_VST_SUPPORT'] = True
else:
conf.env['WINDOWS_VST_SUPPORT'] = False
if opts.lxvst:
if sys.platform == 'darwin':
conf.env['LXVST_SUPPORT'] = False
@ -1468,7 +1467,7 @@ const char* const ardour_config_info = "\\n\\
write_config_text('Libjack linking', conf.env['libjack_link'])
write_config_text('Libjack metadata', conf.is_defined ('HAVE_JACK_METADATA'))
write_config_text('Lua Binding Doc', conf.is_defined('LUABINDINGDOC'))
write_config_text('Lua Commandline Tool', conf.is_defined('HAVE_READLINE') and not (conf.is_defined('WINDOWS_VST_SUPPORT') and conf.env['build_target'] != 'mingw'))
write_config_text('Lua Commandline Tool', conf.is_defined('HAVE_READLINE'))
write_config_text('LV2 UI embedding', conf.is_defined('HAVE_SUIL'))
write_config_text('LV2 support', conf.is_defined('LV2_SUPPORT'))
write_config_text('LV2 extensions', conf.is_defined('LV2_EXTENDED'))
@ -1489,7 +1488,7 @@ const char* const ardour_config_info = "\\n\\
write_config_text('Unit tests', conf.env['BUILD_TESTS'])
write_config_text('Use LLD linker', opts.use_lld)
write_config_text('VST3 support', conf.is_defined('VST3_SUPPORT'))
write_config_text('Windows VST support', opts.windows_vst)
write_config_text('Windows VST support', conf.is_defined('WINDOWS_VST_SUPPORT'))
write_config_text('Wiimote support', conf.is_defined('BUILD_WIIMOTE'))
write_config_text('Windows key', opts.windows_key)
config_text.write("\\n\\\n")