diff --git a/cmake/toolchains/Ubuntu-MinGW-W64-64.cmake b/cmake/toolchains/Ubuntu-MinGW-W64-64.cmake index e10ae7311..a1b33ec67 100644 --- a/cmake/toolchains/Ubuntu-MinGW-W64-64.cmake +++ b/cmake/toolchains/Ubuntu-MinGW-W64-64.cmake @@ -1,2 +1,4 @@ +SET(CMAKE_TOOLCHAIN_FILE_32 "${CMAKE_CURRENT_LIST_DIR}/Ubuntu-MinGW-W64-32.cmake") + INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Win64.cmake) INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Ubuntu-MinGW-W64.cmake) diff --git a/cmake/toolchains/Ubuntu-MinGW-X-Trusty-64.cmake b/cmake/toolchains/Ubuntu-MinGW-X-Trusty-64.cmake index 705e41eae..0f448fef5 100644 --- a/cmake/toolchains/Ubuntu-MinGW-X-Trusty-64.cmake +++ b/cmake/toolchains/Ubuntu-MinGW-X-Trusty-64.cmake @@ -3,4 +3,7 @@ SET(MINGW_PREFIX32 /opt/mingw32) SET(WIN64 TRUE) +SET(CMAKE_TOOLCHAIN_FILE_32 "${CMAKE_CURRENT_LIST_DIR}/Ubuntu-MinGW-X-Trusty-32.cmake") +SET(CMAKE_PREFIX_PATH_32 "${MINGW_PREFIX32}") + INCLUDE(${CMAKE_CURRENT_LIST_DIR}/common/Ubuntu-MinGW-X-Trusty.cmake) diff --git a/plugins/vst_base/CMakeLists.txt b/plugins/vst_base/CMakeLists.txt index 4db8e0796..943631b92 100644 --- a/plugins/vst_base/CMakeLists.txt +++ b/plugins/vst_base/CMakeLists.txt @@ -30,7 +30,9 @@ SET(EXTERNALPROJECT_CMAKE_ARGS ) # build 32 bit version of RemoteVstPlugin -IF(LMMS_BUILD_WIN64 AND MSVC) +IF(LMMS_BUILD_WIN32 AND NOT LMMS_BUILD_WIN64) + ADD_SUBDIRECTORY(RemoteVstPlugin) +ELSEIF(LMMS_BUILD_WIN64 AND MSVC) SET(MSVC_VER ${CMAKE_CXX_COMPILER_VERSION}) IF(MSVC_VER VERSION_GREATER 19.0 OR MSVC_VER VERSION_EQUAL 19.0) @@ -56,9 +58,8 @@ IF(LMMS_BUILD_WIN64 AND MSVC) "${EXTERNALPROJECT_CMAKE_ARGS}" "-DCMAKE_PREFIX_PATH=${QT_32_PREFIX}" ) -ELSEIF(LMMS_BUILD_WIN32) - ADD_SUBDIRECTORY(RemoteVstPlugin) ELSEIF(LMMS_BUILD_LINUX) + # Use winegcc ExternalProject_Add(RemoteVstPlugin32 "${EXTERNALPROJECT_ARGS}" CMAKE_ARGS @@ -66,6 +67,16 @@ ELSEIF(LMMS_BUILD_LINUX) "-DCMAKE_CXX_COMPILER=${WINEGCC}" "-DCMAKE_CXX_FLAGS=-m32 -mwindows" ) +ELSEIF(CMAKE_TOOLCHAIN_FILE_32) + ExternalProject_Add(RemoteVstPlugin32 + "${EXTERNALPROJECT_ARGS}" + CMAKE_ARGS + "${EXTERNALPROJECT_CMAKE_ARGS}" + "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH_32}" + "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE_32}" + ) +ELSE() + message(SEND_ERROR "Can't build RemoteVstPlugin32, unknown environment. Please supply CMAKE_TOOLCHAIN_FILE_32 and optionally CMAKE_PREFIX_PATH_32") ENDIF() # build 64 bit version of RemoteVstPlugin diff --git a/plugins/vst_base/RemoteVstPlugin/CMakeLists.txt b/plugins/vst_base/RemoteVstPlugin/CMakeLists.txt index 59dfd1282..f6b3e9c4e 100644 --- a/plugins/vst_base/RemoteVstPlugin/CMakeLists.txt +++ b/plugins/vst_base/RemoteVstPlugin/CMakeLists.txt @@ -50,12 +50,12 @@ if(IS_MINGW) if(NOT HAS_STD_MUTEX) target_include_directories(${EXE_NAME} PRIVATE - "${CMAKE_SOURCE_DIR}/src/3rdparty/mingw-std-threads") + "${LMMS_SOURCE_DIR}/src/3rdparty/mingw-std-threads") target_compile_definitions(${EXE_NAME} PRIVATE -DUSE_MINGW_THREADS_REPLACEMENT) endif() endif() IF(STRIP) - ADD_CUSTOM_COMMAND(TARGET RemoteVstPlugin32 POST_BUILD COMMAND "${STRIP}" "$") + ADD_CUSTOM_COMMAND(TARGET ${EXE_NAME} POST_BUILD COMMAND "${STRIP}" "$") ENDIF()