Browse Source

Fix Windows build, now working :)

tags/1.9.4
falkTX 12 years ago
parent
commit
6709e63c30
7 changed files with 85 additions and 36 deletions
  1. +25
    -11
      data/windows/build-win32.sh
  2. +25
    -11
      data/windows/build-win64.sh
  3. +7
    -5
      source/backend/engine/Makefile
  4. +14
    -8
      source/backend/standalone/CarlaStandalone.cpp
  5. +2
    -0
      source/backend/standalone/Makefile
  6. +2
    -0
      source/carla_shared.py
  7. +10
    -1
      source/discovery/Makefile

+ 25
- 11
data/windows/build-win32.sh View File

@@ -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"


+ 25
- 11
data/windows/build-win64.sh View File

@@ -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"


+ 7
- 5
source/backend/engine/Makefile View File

@@ -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


+ 14
- 8
source/backend/standalone/CarlaStandalone.cpp View File

@@ -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();
} }


+ 2
- 0
source/backend/standalone/Makefile View File

@@ -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


+ 2
- 0
source/carla_shared.py View File

@@ -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)):


+ 10
- 1
source/discovery/Makefile View File

@@ -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) $@


Loading…
Cancel
Save