| @@ -27,13 +27,13 @@ export WINEPREFIX=~/.winepy3 | |||||
| export PYTHON_EXE="C:\\\\Python33\\\\python.exe" | export PYTHON_EXE="C:\\\\Python33\\\\python.exe" | ||||
| export CXFREEZE="wine $PYTHON_EXE C:\\\\Python33\\\\Scripts\\\\cxfreeze" | |||||
| export PYUIC="wine $PYTHON_EXE C:\\\\Python33\\\\Lib\\\\site-packages\\\\PyQt4\\\\uic\\\\pyuic.py" | export PYUIC="wine $PYTHON_EXE C:\\\\Python33\\\\Lib\\\\site-packages\\\\PyQt4\\\\uic\\\\pyuic.py" | ||||
| export PYRCC="wine C:\\\\Python33\\\\Lib\\\\site-packages\\\\PyQt4\\\\pyrcc4.exe -py3" | export PYRCC="wine C:\\\\Python33\\\\Lib\\\\site-packages\\\\PyQt4\\\\pyrcc4.exe -py3" | ||||
| export CFLAGS="-DPTW32_STATIC_LIB -I$MINGW_PATH/include" | export CFLAGS="-DPTW32_STATIC_LIB -I$MINGW_PATH/include" | ||||
| export CXXFLAGS="-DPTW32_STATIC_LIB -D__WINDOWS_ASIO__ -I$MINGW_PATH/include" | |||||
| # TODO: DirectSound DLLs for -D__WINDOWS_DS__ | |||||
| export CXXFLAGS="-DPTW32_STATIC_LIB -DFLUIDSYNTH_NOT_A_DLL -D__WINDOWS_ASIO__ -D__WINDOWS_DS__ -D__WINDOWS_MM__ -I$MINGW_PATH/include" | |||||
| export EXTRA_LIBS="-lglib-2.0 -lgthread-2.0 -lgig -lsndfile -lFLAC -lvorbisenc -lvorbis -logg -ldsound -lrpcrt4 -lwinmm" | |||||
| # Clean build | # Clean build | ||||
| make clean | make clean | ||||
| @@ -42,16 +42,30 @@ make clean | |||||
| make $JOBS UI RES WIDGETS | make $JOBS UI RES WIDGETS | ||||
| # Build discovery | # Build discovery | ||||
| make $JOBS -C source/discovery win32 | |||||
| make $JOBS -C source/discovery WIN32=true EXTRA_LIBS="$EXTRA_LIBS -lole32 -lws2_32" | |||||
| mv source/discovery/carla-discovery-native source/discovery/carla-discovery-win32.exe | |||||
| # Build backend | # Build backend | ||||
| make $JOBS -C source/backend/standalone ../libcarla_standalone.dll CARLA_RTAUDIO_SUPPORT=true CARLA_SAMPLERS_SUPPORT=false DGL_LIBS="" OBJSN="" | |||||
| if [ ! -f Makefile ]; then | |||||
| cd data/windows | |||||
| fi | |||||
| em -f pkg-config | |||||
| make $JOBS -C source/backend/standalone ../libcarla_standalone.dll CARLA_RTAUDIO_SUPPORT=true WIN32=true \ | |||||
| DGL_LIBS="" EXTRA_LIBS="$EXTRA_LIBS" OBJSN="" | |||||
| rm -rf ./data/windows/Carla | |||||
| $CXFREEZE --target-dir=".\\data\\windows\\Carla" ".\\source\\carla.py" | |||||
| cd data/windows | |||||
| mkdir Carla/backend | |||||
| mkdir Carla/bridges | |||||
| mkdir Carla/discovery | |||||
| cp ../../source/backend/*.dll Carla/backend/ | |||||
| cp ../../source/discovery/*.exe Carla/discovery/ | |||||
| cp $WINEPREFIX/drive_c/windows/syswow64/python33.dll Carla/ | |||||
| cp $WINEPREFIX/drive_c/Python33/Lib/site-packages/PyQt4/QtCore4.dll Carla/ | |||||
| cp $WINEPREFIX/drive_c/Python33/Lib/site-packages/PyQt4/QtGui4.dll Carla/ | |||||
| cp $WINEPREFIX/drive_c/Python33/Lib/site-packages/PyQt4/QtOpenGL4.dll Carla/ | |||||
| cp $WINEPREFIX/drive_c/Python33/Lib/site-packages/PyQt4/QtSvg4.dll Carla/ | |||||
| rm -f pkg-config | |||||
| # Testing: | # Testing: | ||||
| echo "export WINEPREFIX=~/.winepy3" | echo "export WINEPREFIX=~/.winepy3" | ||||
| @@ -27,13 +27,13 @@ export WINEPREFIX=~/.winepy3_x64 | |||||
| export PYTHON_EXE="C:\\\\Python33\\\\python.exe" | export PYTHON_EXE="C:\\\\Python33\\\\python.exe" | ||||
| export CXFREEZE="wine $PYTHON_EXE C:\\\\Python33\\\\Scripts\\\\cxfreeze" | |||||
| export PYUIC="wine $PYTHON_EXE C:\\\\Python33\\\\Lib\\\\site-packages\\\\PyQt4\\\\uic\\\\pyuic.py" | export PYUIC="wine $PYTHON_EXE C:\\\\Python33\\\\Lib\\\\site-packages\\\\PyQt4\\\\uic\\\\pyuic.py" | ||||
| export PYRCC="wine C:\\\\Python33\\\\Lib\\\\site-packages\\\\PyQt4\\\\pyrcc4.exe -py3" | export PYRCC="wine C:\\\\Python33\\\\Lib\\\\site-packages\\\\PyQt4\\\\pyrcc4.exe -py3" | ||||
| export CFLAGS="-DPTW32_STATIC_LIB -I$MINGW_PATH/include" | export CFLAGS="-DPTW32_STATIC_LIB -I$MINGW_PATH/include" | ||||
| export CXXFLAGS="-DPTW32_STATIC_LIB -D__WINDOWS_ASIO__ -I$MINGW_PATH/include" | |||||
| # TODO: DirectSound DLLs for -D__WINDOWS_DS__ | |||||
| export CXXFLAGS="-DPTW32_STATIC_LIB -DFLUIDSYNTH_NOT_A_DLL -D__WINDOWS_ASIO__ -D__WINDOWS_DS__ -D__WINDOWS_MM__ -I$MINGW_PATH/include" | |||||
| export EXTRA_LIBS="-lglib-2.0 -lgthread-2.0 -lgig -lsndfile -lFLAC -lvorbisenc -lvorbis -logg -ldsound -lrpcrt4 -lwinmm" | |||||
| # Clean build | # Clean build | ||||
| make clean | make clean | ||||
| @@ -42,16 +42,30 @@ make clean | |||||
| make $JOBS UI RES WIDGETS | make $JOBS UI RES WIDGETS | ||||
| # Build discovery | # Build discovery | ||||
| make $JOBS -C source/discovery win64 | |||||
| make $JOBS -C source/discovery WIN32=true EXTRA_LIBS="$EXTRA_LIBS -lole32 -lws2_32" | |||||
| mv source/discovery/carla-discovery-native source/discovery/carla-discovery-win64.exe | |||||
| # Build backend | # Build backend | ||||
| make $JOBS -C source/backend/standalone ../libcarla_standalone.dll CARLA_RTAUDIO_SUPPORT=true CARLA_SAMPLERS_SUPPORT=false DGL_LIBS="" OBJSN="" | |||||
| if [ ! -f Makefile ]; then | |||||
| cd data/windows | |||||
| fi | |||||
| em -f pkg-config | |||||
| make $JOBS -C source/backend/standalone ../libcarla_standalone.dll CARLA_RTAUDIO_SUPPORT=true WIN32=true \ | |||||
| DGL_LIBS="" EXTRA_LIBS="$EXTRA_LIBS" OBJSN="" | |||||
| rm -rf ./data/windows/Carla | |||||
| $CXFREEZE --target-dir=".\\data\\windows\\Carla" ".\\source\\carla.py" | |||||
| cd data/windows | |||||
| mkdir Carla/backend | |||||
| mkdir Carla/bridges | |||||
| mkdir Carla/discovery | |||||
| cp ../../source/backend/*.dll Carla/backend/ | |||||
| cp ../../source/discovery/*.exe Carla/discovery/ | |||||
| cp $WINEPREFIX/drive_c/windows/syswow64/python33.dll Carla/ | |||||
| cp $WINEPREFIX/drive_c/Python33/Lib/site-packages/PyQt4/QtCore4.dll Carla/ | |||||
| cp $WINEPREFIX/drive_c/Python33/Lib/site-packages/PyQt4/QtGui4.dll Carla/ | |||||
| cp $WINEPREFIX/drive_c/Python33/Lib/site-packages/PyQt4/QtOpenGL4.dll Carla/ | |||||
| cp $WINEPREFIX/drive_c/Python33/Lib/site-packages/PyQt4/QtSvg4.dll Carla/ | |||||
| rm -f pkg-config | |||||
| # Testing: | # Testing: | ||||
| echo "export WINEPREFIX=~/.winepy3_x64" | echo "export WINEPREFIX=~/.winepy3_x64" | ||||
| @@ -53,11 +53,13 @@ OBJS += \ | |||||
| rtaudio-4.0.11/RtAudio.cpp.o \ | rtaudio-4.0.11/RtAudio.cpp.o \ | ||||
| rtmidi-2.0.1/RtMidi.cpp.o | rtmidi-2.0.1/RtMidi.cpp.o | ||||
| # OBJS += \ | |||||
| # rtaudio-4.0.11/include/asio.cpp.o \ | |||||
| # rtaudio-4.0.11/include/asiodrivers.cpp.o \ | |||||
| # rtaudio-4.0.11/include/asiolist.cpp.o \ | |||||
| # rtaudio-4.0.11/include/iasiothiscallresolver.cpp.o | |||||
| ifeq ($(WIN32),true) | |||||
| OBJS += \ | |||||
| rtaudio-4.0.11/include/asio.cpp.o \ | |||||
| rtaudio-4.0.11/include/asiodrivers.cpp.o \ | |||||
| rtaudio-4.0.11/include/asiolist.cpp.o \ | |||||
| rtaudio-4.0.11/include/iasiothiscallresolver.cpp.o | |||||
| endif | |||||
| endif | endif | ||||
| SHARED = ../libcarla_engine.so | SHARED = ../libcarla_engine.so | ||||
| @@ -47,20 +47,23 @@ struct CarlaBackendStandalone { | |||||
| CarlaString lastError; | CarlaString lastError; | ||||
| CarlaString procName; | CarlaString procName; | ||||
| EngineOptions options; | EngineOptions options; | ||||
| QApplication* app; | |||||
| bool needsIdle; | |||||
| CarlaBackendStandalone() | CarlaBackendStandalone() | ||||
| : callback(nullptr), | : callback(nullptr), | ||||
| callbackPtr(nullptr), | callbackPtr(nullptr), | ||||
| engine(nullptr) | |||||
| engine(nullptr), | |||||
| app(qApp), | |||||
| needsIdle(app == nullptr) | |||||
| { | { | ||||
| QApplication* app = qApp; | |||||
| if (app != nullptr) | |||||
| return; | |||||
| if (app == nullptr) | |||||
| { | |||||
| static int argc = 0; | |||||
| static char** argv = nullptr; | |||||
| app = new QApplication(argc, argv, true); | |||||
| } | |||||
| static int argc = 0; | |||||
| static char** argv = nullptr; | |||||
| app = new QApplication(argc, argv, true); | |||||
| } | } | ||||
| } standalone; | } standalone; | ||||
| @@ -317,6 +320,9 @@ void carla_engine_idle() | |||||
| { | { | ||||
| CARLA_ASSERT(standalone.engine != nullptr); | CARLA_ASSERT(standalone.engine != nullptr); | ||||
| if (standalone.needsIdle) | |||||
| standalone.app->processEvents(); | |||||
| if (standalone.engine != nullptr) | if (standalone.engine != nullptr) | ||||
| standalone.engine->idle(); | standalone.engine->idle(); | ||||
| } | } | ||||
| @@ -61,6 +61,8 @@ LINK_FLAGS += $(shell pkg-config --libs ntk ntk_images) | |||||
| endif | endif | ||||
| endif | endif | ||||
| LINK_FLAGS += $(EXTRA_LIBS) | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| LIBS = ../libcarla_engine.a | LIBS = ../libcarla_engine.a | ||||
| @@ -674,6 +674,8 @@ CWD = sys.path[0] | |||||
| # make it work with cxfreeze | # make it work with cxfreeze | ||||
| if CWD.endswith("%scarla" % os.sep): | if CWD.endswith("%scarla" % os.sep): | ||||
| CWD = CWD.rsplit("%scarla" % os.sep, 1)[0] | CWD = CWD.rsplit("%scarla" % os.sep, 1)[0] | ||||
| elif CWD.endswith("carla.exe"): | |||||
| CWD = CWD.rsplit("carla.exe", 1)[0] | |||||
| # find carla_library_path | # find carla_library_path | ||||
| if os.path.exists(os.path.join(CWD, "backend", carla_libname)): | if os.path.exists(os.path.join(CWD, "backend", carla_libname)): | ||||
| @@ -38,6 +38,15 @@ WIN_32BIT_FLAGS = $(32BIT_FLAGS) | |||||
| WIN_64BIT_FLAGS = $(64BIT_FLAGS) | WIN_64BIT_FLAGS = $(64BIT_FLAGS) | ||||
| WIN_LINK_FLAGS = $(LINK_FLAGS) -static -mwindows -lole32 -luuid -lws2_32 | WIN_LINK_FLAGS = $(LINK_FLAGS) -static -mwindows -lole32 -luuid -lws2_32 | ||||
| ifeq ($(WIN32),true) | |||||
| NATIVE_BUILD_FLAGS = $(WIN_BUILD_FLAGS) | |||||
| NATIVE_LINK_FLAGS = $(WIN_LINK_FLAGS) | |||||
| NATIVE_LINK_FLAGS += $(EXTRA_LIBS) | |||||
| else | |||||
| NATIVE_BUILD_FLAGS = $(POSIX_BUILD_FLAGS) | |||||
| NATIVE_LINK_FLAGS = $(POSIX_LINK_FLAGS) | |||||
| endif | |||||
| ifeq ($(CARLA_PLUGIN_SUPPORT),true) | ifeq ($(CARLA_PLUGIN_SUPPORT),true) | ||||
| LIBS = ../libs/lilv.a | LIBS = ../libs/lilv.a | ||||
| LIBS_posix32 = ../libs/lilv.posix32.a | LIBS_posix32 = ../libs/lilv.posix32.a | ||||
| @@ -60,7 +69,7 @@ win64: carla-discovery-win64.exe | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| carla-discovery-native: $(OBJS) $(LIBS) | carla-discovery-native: $(OBJS) $(LIBS) | ||||
| $(CXX) $^ $(POSIX_BUILD_FLAGS) $(POSIX_LINK_FLAGS) $(NATIVE_FLAGS) -o $@ && $(STRIP) $@ | |||||
| $(CXX) $^ $(NATIVE_BUILD_FLAGS) $(NATIVE_FLAGS) $(NATIVE_LINK_FLAGS) -o $@ && $(STRIP) $@ | |||||
| carla-discovery-posix32: $(OBJS) $(LIBS_posix32) | carla-discovery-posix32: $(OBJS) $(LIBS_posix32) | ||||
| $(CXX) $^ $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) $(POSIX_LINK_FLAGS) -o $@ && $(STRIP) $@ | $(CXX) $^ $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) $(POSIX_LINK_FLAGS) -o $@ && $(STRIP) $@ | ||||