Add VST64 targets for Linux ARM64 (#7687)
Initial support for winegcc on ARM64
This commit is contained in:
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -116,8 +116,6 @@ jobs:
|
||||
ccache --zero-stats
|
||||
cmake -S . \
|
||||
-B build \
|
||||
-DWANT_VST_32=OFF \
|
||||
-DWANT_VST_64=OFF \
|
||||
$CMAKE_OPTS
|
||||
- name: Build
|
||||
run: cmake --build build
|
||||
|
||||
@@ -9,7 +9,19 @@ FUNCTION(CheckWineGcc BITNESS WINEGCC_EXECUTABLE RESULT)
|
||||
return 0;
|
||||
}
|
||||
")
|
||||
EXECUTE_PROCESS(COMMAND ${WINEGCC_EXECUTABLE} "-m${BITNESS}"
|
||||
|
||||
# Handle non-Intel platforms
|
||||
IF(LMMS_HOST_X86_64 OR LMMS_HOST_X86)
|
||||
SET(MPLATFORM "-m${BITNESS}")
|
||||
ELSEIF(BITNESS EQUAL 64)
|
||||
SET(MPLATFORM "")
|
||||
ELSE()
|
||||
# Skip 32-bit for non-Intel
|
||||
SET(${RESULT} False PARENT_SCOPE)
|
||||
RETURN()
|
||||
ENDIF()
|
||||
|
||||
EXECUTE_PROCESS(COMMAND ${WINEGCC_EXECUTABLE} "${MPLATFORM}"
|
||||
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/winegcc_test.cxx"
|
||||
"-o" "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/winegcc_test"
|
||||
OUTPUT_QUIET ERROR_QUIET
|
||||
|
||||
@@ -73,8 +73,13 @@ FIND_PROGRAM(WINE_BUILD NAMES winebuild PATHS ${WINE_CXX_LOCATIONS} NO_DEFAULT_P
|
||||
# Detect wine paths and handle linking problems
|
||||
IF(WINE_CXX)
|
||||
# call wineg++ to obtain implied includes and libs
|
||||
execute_process(COMMAND ${WINE_CXX} -m32 -v /dev/zero OUTPUT_VARIABLE WINEBUILD_OUTPUT_32 ERROR_QUIET)
|
||||
execute_process(COMMAND ${WINE_CXX} -m64 -v /dev/zero OUTPUT_VARIABLE WINEBUILD_OUTPUT_64 ERROR_QUIET)
|
||||
if(LMMS_HOST_X86_64 OR LMMS_HOST_X86)
|
||||
execute_process(COMMAND ${WINE_CXX} -m32 -v /dev/zero OUTPUT_VARIABLE WINEBUILD_OUTPUT_32 ERROR_QUIET)
|
||||
execute_process(COMMAND ${WINE_CXX} -m64 -v /dev/zero OUTPUT_VARIABLE WINEBUILD_OUTPUT_64 ERROR_QUIET)
|
||||
else()
|
||||
execute_process(COMMAND ${WINE_CXX} -v /dev/zero OUTPUT_VARIABLE WINEBUILD_OUTPUT_64 ERROR_QUIET)
|
||||
endif()
|
||||
|
||||
_findwine_find_flags("${WINEBUILD_OUTPUT_32}" "^-isystem/usr/include$" BUGGED_WINEGCC)
|
||||
_findwine_find_flags("${WINEBUILD_OUTPUT_32}" "^-isystem" WINEGCC_INCLUDE_DIR)
|
||||
_findwine_find_flags("${WINEBUILD_OUTPUT_32}" "libwinecrt0\\.a.*" WINECRT_32)
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
IF(LMMS_BUILD_WIN64)
|
||||
ADD_SUBDIRECTORY(RemoteVstPlugin)
|
||||
ELSEIF(LMMS_BUILD_LINUX)
|
||||
if(LMMS_HOST_X86_64)
|
||||
set(CXX_FLAGS -m64)
|
||||
endif()
|
||||
ExternalProject_Add(RemoteVstPlugin64
|
||||
"${EXTERNALPROJECT_ARGS}"
|
||||
CMAKE_ARGS
|
||||
"${EXTERNALPROJECT_CMAKE_ARGS}"
|
||||
"-DCMAKE_CXX_COMPILER=${WINEGCC}"
|
||||
"-DCMAKE_CXX_FLAGS=-m64"
|
||||
"-DCMAKE_CXX_FLAGS=${CXX_FLAGS}"
|
||||
)
|
||||
INSTALL(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../RemoteVstPlugin64" "${CMAKE_CURRENT_BINARY_DIR}/../RemoteVstPlugin64.exe.so" DESTINATION "${PLUGIN_DIR}")
|
||||
ENDIF()
|
||||
|
||||
Reference in New Issue
Block a user