Enable automatic dll installation for RemoteVstPlugin32
Co-Authored-By: Hyunjin Song <tteu.ingog@gmail.com>
This commit is contained in:
@@ -11,23 +11,35 @@ SET(REMOTE_VST_PLUGIN_FILEPATH_64 "RemoteVstPlugin64" CACHE STRING "Relative fil
|
||||
|
||||
ADD_SUBDIRECTORY(vstbase)
|
||||
|
||||
SET(LMMS_BINARY_DIR ${CMAKE_BINARY_DIR})
|
||||
SET(LMMS_SOURCE_DIR ${CMAKE_SOURCE_DIR})
|
||||
|
||||
SET(EXTERNALPROJECT_ARGS
|
||||
SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/RemoteVstPlugin"
|
||||
INSTALL_COMMAND ""
|
||||
#INSTALL_COMMAND ""
|
||||
BUILD_ALWAYS ON
|
||||
# Skip the install step.
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
|
||||
set(export_variables
|
||||
"LMMS_SOURCE_DIR"
|
||||
"LMMS_BINARY_DIR"
|
||||
"CMAKE_MODULE_PATH"
|
||||
"CMAKE_RUNTIME_OUTPUT_DIRECTORY"
|
||||
"CMAKE_BUILD_TYPE"
|
||||
"LMMS_BUILD_LINUX"
|
||||
"LMMS_BUILD_WIN32"
|
||||
"PLUGIN_DIR")
|
||||
|
||||
SET(EXTERNALPROJECT_CMAKE_ARGS
|
||||
"-DLMMS_SOURCE_DIR=${CMAKE_SOURCE_DIR}"
|
||||
"-DLMMS_BINARY_DIR=${CMAKE_BINARY_DIR}"
|
||||
"-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
|
||||
"-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}"
|
||||
"-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"
|
||||
"-DBUILD_WITH_EXTERNALPROJECT=ON"
|
||||
)
|
||||
|
||||
macro(_export_var_to_external var_name)
|
||||
list(APPEND EXTERNALPROJECT_CMAKE_ARGS "-D${var_name}=${${var_name}}")
|
||||
endmacro()
|
||||
foreach(var ${export_variables})
|
||||
_export_var_to_external(${var})
|
||||
endforeach()
|
||||
|
||||
# build 32 bit version of RemoteVstPlugin
|
||||
IF(WANT_VST_32)
|
||||
INCLUDE("${CMAKE_CURRENT_LIST_DIR}/RemoteVstPlugin32.cmake")
|
||||
|
||||
@@ -76,3 +76,18 @@ endif()
|
||||
IF(STRIP)
|
||||
ADD_CUSTOM_COMMAND(TARGET ${EXE_NAME} POST_BUILD COMMAND "${STRIP}" "$<TARGET_FILE:${EXE_NAME}>")
|
||||
ENDIF()
|
||||
|
||||
if(BITNESS EQUAL 32)
|
||||
INSTALL(TARGETS ${EXE_NAME} RUNTIME DESTINATION "${PLUGIN_DIR}/32")
|
||||
else()
|
||||
INSTALL(TARGETS ${EXE_NAME} RUNTIME DESTINATION "${PLUGIN_DIR}")
|
||||
endif()
|
||||
|
||||
if(BUILD_WITH_EXTERNALPROJECT)
|
||||
include(InstallTargetDependencies)
|
||||
INSTALL_TARGET_DEPENDENCIES(TARGETS ${EXE_NAME}
|
||||
DESTINATION "${PLUGIN_DIR}/32")
|
||||
else()
|
||||
# Needed to deploy dependencies of RemoteVstPlugin
|
||||
SET_PROPERTY(GLOBAL APPEND PROPERTY PLUGINS_BUILT "${EXE_NAME}")
|
||||
endif()
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
# INSTALL_EXTERNAL_PROJECT: install a project created with ExternalProject_Add in the
|
||||
# parent project's install time.
|
||||
#
|
||||
# Description:
|
||||
# In a regular scenario, cmake will install external projects
|
||||
# BEFORE actually building the parent project. Since the building
|
||||
# process may use installed components from the project.
|
||||
# We want to give the external project the ability to install
|
||||
# files directly to the parent's install. Therefore, we have to
|
||||
# manually trigger the install stage with the parent's INSTALL_PREFIX.
|
||||
MACRO(INSTALL_EXTERNAL_PROJECT name)
|
||||
ExternalProject_Get_Property(${name} BINARY_DIR)
|
||||
|
||||
install(CODE "include(\"${BINARY_DIR}/cmake_install.cmake\")")
|
||||
ENDMACRO()
|
||||
|
||||
IF(LMMS_BUILD_WIN32 AND NOT LMMS_BUILD_WIN64)
|
||||
ADD_SUBDIRECTORY(RemoteVstPlugin)
|
||||
IF(MSVC)
|
||||
SET(VCPKG_ROOT "${CMAKE_FIND_ROOT_PATH}")
|
||||
INSTALL(FILES "${VCPKG_ROOT}/bin/Qt5Core.dll" DESTINATION "${PLUGIN_DIR}/32")
|
||||
INSTALL(FILES "${VCPKG_ROOT}/bin/zlib1.dll" DESTINATION "${PLUGIN_DIR}/32")
|
||||
ELSE(MSVC)
|
||||
INSTALL(FILES "${MINGW_PREFIX}/bin/Qt5Core.dll" DESTINATION "${PLUGIN_DIR}/32")
|
||||
INSTALL(FILES "${MINGW_PREFIX}/bin/zlib1.dll" DESTINATION "${PLUGIN_DIR}/32")
|
||||
ENDIF(MSVC)
|
||||
INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../32/RemoteVstPlugin32.exe" DESTINATION "${PLUGIN_DIR}/32")
|
||||
ELSEIF(LMMS_BUILD_WIN64 AND MSVC)
|
||||
SET(MSVC_VER ${CMAKE_CXX_COMPILER_VERSION})
|
||||
|
||||
@@ -46,16 +53,7 @@ ELSEIF(LMMS_BUILD_WIN64 AND MSVC)
|
||||
"-DCMAKE_PREFIX_PATH=${QT_32_PREFIX}"
|
||||
)
|
||||
|
||||
INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../32/RemoteVstPlugin32.exe" DESTINATION "${PLUGIN_DIR}/32")
|
||||
|
||||
#TODO: find a solution when not using vcpkg for qt
|
||||
SET(VCPKG_ROOT_32 "${CMAKE_FIND_ROOT_PATH}/../x86-windows")
|
||||
|
||||
INSTALL(FILES "${VCPKG_ROOT_32}/bin/zlib1.dll" DESTINATION "${PLUGIN_DIR}/32")
|
||||
INSTALL(FILES "${VCPKG_ROOT_32}/bin/pcre2-16.dll" DESTINATION "${PLUGIN_DIR}/32")
|
||||
INSTALL(FILES "${VCPKG_ROOT_32}/bin/double-conversion.dll" DESTINATION "${PLUGIN_DIR}/32")
|
||||
INSTALL(FILES "${VCPKG_ROOT_32}/bin/qt5core.dll" DESTINATION "${PLUGIN_DIR}/32")
|
||||
|
||||
INSTALL_EXTERNAL_PROJECT(RemoteVstPlugin32)
|
||||
ELSEIF(LMMS_BUILD_LINUX)
|
||||
# Use winegcc
|
||||
INCLUDE(CheckWineGcc)
|
||||
@@ -82,9 +80,7 @@ ELSEIF(CMAKE_TOOLCHAIN_FILE_32)
|
||||
"-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH_32}"
|
||||
"-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE_32}"
|
||||
)
|
||||
INSTALL(FILES "${CMAKE_PREFIX_PATH_32}/bin/Qt5Core.dll" DESTINATION "${PLUGIN_DIR}/32")
|
||||
INSTALL(FILES "${CMAKE_PREFIX_PATH_32}/bin/zlib1.dll" DESTINATION "${PLUGIN_DIR}/32")
|
||||
INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../32/RemoteVstPlugin32.exe" DESTINATION "${PLUGIN_DIR}/32")
|
||||
INSTALL_EXTERNAL_PROJECT(RemoteVstPlugin32)
|
||||
ELSE()
|
||||
MESSAGE(WARNING "Can't build RemoteVstPlugin32, unknown environment. Please supply CMAKE_TOOLCHAIN_FILE_32 and optionally CMAKE_PREFIX_PATH_32")
|
||||
RETURN()
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
IF(LMMS_BUILD_WIN64)
|
||||
ADD_SUBDIRECTORY(RemoteVstPlugin)
|
||||
INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../RemoteVstPlugin64.exe" DESTINATION "${PLUGIN_DIR}")
|
||||
ELSEIF(LMMS_BUILD_LINUX)
|
||||
INCLUDE(CheckWineGcc)
|
||||
CheckWineGcc(64 "${WINEGCC}" WINEGCC_WORKING)
|
||||
|
||||
Reference in New Issue
Block a user