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 CXFREEZE="wine $PYTHON_EXE C:\\\\Python33\\\\Scripts\\\\cxfreeze"
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 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
make clean
@@ -42,16 +42,30 @@ make clean
make $JOBS UI RES WIDGETS

# 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
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:
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 CXFREEZE="wine $PYTHON_EXE C:\\\\Python33\\\\Scripts\\\\cxfreeze"
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 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
make clean
@@ -42,16 +42,30 @@ make clean
make $JOBS UI RES WIDGETS

# 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
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:
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 \
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

SHARED = ../libcarla_engine.so


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

@@ -47,20 +47,23 @@ struct CarlaBackendStandalone {
CarlaString lastError;
CarlaString procName;
EngineOptions options;
QApplication* app;
bool needsIdle;

CarlaBackendStandalone()
: callback(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;
@@ -317,6 +320,9 @@ void carla_engine_idle()
{
CARLA_ASSERT(standalone.engine != nullptr);

if (standalone.needsIdle)
standalone.app->processEvents();

if (standalone.engine != nullptr)
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

LINK_FLAGS += $(EXTRA_LIBS)

# --------------------------------------------------------------

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
if CWD.endswith("%scarla" % os.sep):
CWD = CWD.rsplit("%scarla" % os.sep, 1)[0]
elif CWD.endswith("carla.exe"):
CWD = CWD.rsplit("carla.exe", 1)[0]

# find carla_library_path
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_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)
LIBS = ../libs/lilv.a
LIBS_posix32 = ../libs/lilv.posix32.a
@@ -60,7 +69,7 @@ win64: carla-discovery-win64.exe
# --------------------------------------------------------------

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)
$(CXX) $^ $(POSIX_BUILD_FLAGS) $(POSIX_32BIT_FLAGS) $(POSIX_LINK_FLAGS) -o $@ && $(STRIP) $@


Loading…
Cancel
Save