Add VST64 targets for Linux ARM64 (#7687)

Initial support for winegcc on ARM64
This commit is contained in:
Tres Finocchiaro
2025-02-13 01:23:37 -05:00
committed by GitHub
parent 7d271e4f39
commit e615046d78
4 changed files with 24 additions and 6 deletions

View File

@@ -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

View File

@@ -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)