|
|
|
|
@@ -33,30 +33,32 @@ IF(LMMS_BUILD_LINUX AND NOT WANT_VST_NOWINE)
|
|
|
|
|
|
|
|
|
|
IF(LMMS_HOST_X86_64)
|
|
|
|
|
SET(EXTRA_FLAGS -m32)
|
|
|
|
|
|
|
|
|
|
# workaround for broken wineg++ in WINE 1.4 (shipped e.g. with Ubuntu Precise)
|
|
|
|
|
EXEC_PROGRAM( ${WINE_CXX} ARGS "-v -m32 /dev/zero" OUTPUT_VARIABLE WINEBUILD_OUTPUT)
|
|
|
|
|
IF("${WINEBUILD_OUTPUT}" MATCHES ".*x86_64-linux-gnu/wine/libwinecrt0.a.*")
|
|
|
|
|
SET(EXTRA_FLAGS ${EXTRA_FLAGS} -nodefaultlibs /usr/lib/i386-linux-gnu/wine/libwinecrt0.a -L/usr/lib/i386-linux-gnu/wine/ -luser32 -lkernel32 -lgdi32)
|
|
|
|
|
ENDIF()
|
|
|
|
|
#The following check works on Fedora systems
|
|
|
|
|
IF("${WINEBUILD_OUTPUT}" MATCHES ".*lib64/wine/libwinecrt0.a.*")
|
|
|
|
|
SET(EXTRA_FLAGS ${EXTRA_FLAGS} -nodefaultlibs /usr/lib/i386/wine/libwinecrt0.a -luser32 -lkernel32 -lgdi32)
|
|
|
|
|
IF(WINE_LIBRARY_FIX)
|
|
|
|
|
SET(EXTRA_FLAGS ${EXTRA_FLAGS} -nodefaultlibs ${WINE_LIBRARY_FIX}wine/libwinecrt0.a -L${WINE_LIBRARY_FIX}wine/ -luser32 -lkernel32 -lgdi32)
|
|
|
|
|
ENDIF()
|
|
|
|
|
ENDIF(LMMS_HOST_X86_64)
|
|
|
|
|
|
|
|
|
|
SET(WINE_CXX_FLAGS "" CACHE STRING "Extra flags passed to wineg++")
|
|
|
|
|
|
|
|
|
|
STRING(REPLACE "include/wine" "include" WINE_INCLUDE_BASE_DIR ${WINE_INCLUDE_DIR})
|
|
|
|
|
STRING(REPLACE "lib/libwine.so" "lib" WINE_LIBRARY_DIR ${WINE_LIBRARY})
|
|
|
|
|
STRING(REPLACE " " ";" WINE_BUILD_FLAGS ${CMAKE_CXX_FLAGS} " " ${CMAKE_EXE_LINKER_FLAGS} " " ${WINE_CXX_FLAGS})
|
|
|
|
|
ADD_CUSTOM_COMMAND(
|
|
|
|
|
SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/RemoteVstPlugin.cpp"
|
|
|
|
|
COMMAND ${WINE_CXX}
|
|
|
|
|
ARGS -I${CMAKE_BINARY_DIR} -I${CMAKE_SOURCE_DIR}/include -I${CMAKE_INSTALL_PREFIX}/include/wine/windows -I${CMAKE_INSTALL_PREFIX}/include -I/usr/include/wine/windows ${CMAKE_CURRENT_SOURCE_DIR}/RemoteVstPlugin.cpp -ansi -mwindows -lpthread ${EXTRA_FLAGS} -fno-omit-frame-pointer ${WINE_BUILD_FLAGS} -o ../RemoteVstPlugin
|
|
|
|
|
# Ensure correct file extension
|
|
|
|
|
COMMAND sh -c "mv ../RemoteVstPlugin.exe ../RemoteVstPlugin || true"
|
|
|
|
|
TARGET vstbase
|
|
|
|
|
OUTPUTS ../RemoteVstPlugin
|
|
|
|
|
)
|
|
|
|
|
SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/RemoteVstPlugin.cpp"
|
|
|
|
|
COMMAND ${WINE_CXX}
|
|
|
|
|
ARGS -I${CMAKE_BINARY_DIR}
|
|
|
|
|
-I${CMAKE_SOURCE_DIR}/include
|
|
|
|
|
-I${WINE_INCLUDE_BASE_DIR}
|
|
|
|
|
-L${WINE_LIBRARY_DIR}
|
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/RemoteVstPlugin.cpp
|
|
|
|
|
-ansi -mwindows -lpthread ${EXTRA_FLAGS} -fno-omit-frame-pointer
|
|
|
|
|
${WINE_BUILD_FLAGS}
|
|
|
|
|
-o ../RemoteVstPlugin
|
|
|
|
|
# Ensure correct file extension
|
|
|
|
|
COMMAND sh -c "mv ../RemoteVstPlugin.exe ../RemoteVstPlugin || true"
|
|
|
|
|
TARGET vstbase
|
|
|
|
|
OUTPUTS ../RemoteVstPlugin
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ../RemoteVstPlugin.exe.so)
|
|
|
|
|
INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../RemoteVstPlugin" "${CMAKE_CURRENT_BINARY_DIR}/../RemoteVstPlugin.exe.so" DESTINATION "${PLUGIN_DIR}")
|
|
|
|
|
|