--- cmake/FindFluidSynth.cmake +++ cmake/FindFluidSynth.cmake @@ -65,7 +65,7 @@ pkg_check_modules(PC_FluidSynth QUIET fl find_library(FluidSynth_LIBRARIES NAMES fluidsynth HINTS - "${FluidSynth_DIR}/lib" + "${FluidSynth_DIR}/lib/arm64ec" ${PC_FluidSynth_LIBDIR} ) @@ -101,6 +101,6 @@ if(FluidSynth_FOUND AND NOT TARGET Fluid if(WIN32 AND FluidSynth_DIR) # On Windows, we need to figure out the location of our library files # so we can copy and package them. - set(FluidSynth_DLL_DIR "${FluidSynth_DIR}/bin" CACHE INTERNAL "") + set(FluidSynth_DLL_DIR "${FluidSynth_DIR}/bin/arm64ec" CACHE INTERNAL "") endif() endif() --- cmake/FindSDL2.cmake +++ cmake/FindSDL2.cmake @@ -44,16 +44,12 @@ endif() if(CMAKE_SIZEOF_VOID_P STREQUAL 8) find_path(SDL2_INCLUDE_DIR "SDL_version.h" HINTS - "${SDL2_DIR}/include" "${SDL2_DIR}/include/SDL2" - "${SDL2_DIR}/x86_64-w64-mingw32/include/SDL2" ${PC_SDL2_INCLUDE_DIRS}) else() find_path(SDL2_INCLUDE_DIR "SDL_version.h" HINTS - "${SDL2_DIR}/include" "${SDL2_DIR}/include/SDL2" - "${SDL2_DIR}/i686-w64-mingw32/include/SDL2" ${PC_SDL2_INCLUDE_DIRS}) endif() @@ -75,33 +71,14 @@ if(SDL2_INCLUDE_DIR AND EXISTS "${SDL2_I endif() # Find the SDL2 and SDL2main libraries -if(CMAKE_SIZEOF_VOID_P STREQUAL 8) find_library(SDL2_LIBRARY "SDL2" HINTS - "${SDL2_DIR}/lib" - "${SDL2_DIR}/lib/x64" - "${SDL2_DIR}/x86_64-w64-mingw32/lib" + "${SDL2_DIR}/lib/arm64ec" ${PC_SDL2_LIBRARY_DIRS}) find_library(SDL2_MAIN_LIBRARY "SDL2main" HINTS - "${SDL2_DIR}/lib" - "${SDL2_DIR}/lib/x64" - "${SDL2_DIR}/x86_64-w64-mingw32/lib" - ${PC_SDL2_LIBRARY_DIRS}) -else() - find_library(SDL2_LIBRARY "SDL2" - HINTS - "${SDL2_DIR}/lib" - "${SDL2_DIR}/lib/x86" - "${SDL2_DIR}/i686-w64-mingw32/lib" + "${SDL2_DIR}/lib/arm64ec" ${PC_SDL2_LIBRARY_DIRS}) - find_library(SDL2_MAIN_LIBRARY "SDL2main" - HINTS - "${SDL2_DIR}/lib" - "${SDL2_DIR}/lib/x86" - "${SDL2_DIR}/i686-w64-mingw32/lib" - ${PC_SDL2_LIBRARY_DIRS}) -endif() set(SDL2_LIBRARIES "${SDL2_MAIN_LIBRARY}" "${SDL2_LIBRARY}") include(FindPackageHandleStandardArgs) @@ -145,10 +122,10 @@ if(SDL2_FOUND) # On Windows, we need to figure out the location of our library files # so we can copy and package them. get_filename_component(SDL2_DLL_DIR "${SDL2_LIBRARY}" DIRECTORY) - if(EXISTS "${SDL2_DLL_DIR}/SDL2.dll") + if(EXISTS "${SDL2_DLL_DIR}/../../bin/arm64ec/SDL2.dll") set(SDL2_DLL_DIR "${SDL2_DLL_DIR}" CACHE INTERNAL "") - elseif(EXISTS "${SDL2_DLL_DIR}/../bin/SDL2.dll") - get_filename_component(SDL2_DLL_DIR "${SDL2_DLL_DIR}/../bin" REALPATH) + elseif(EXISTS "${SDL2_DLL_DIR}/../../bin/arm64ec/SDL2.dll") + get_filename_component(SDL2_DLL_DIR "${SDL2_DLL_DIR}/../../bin/arm64ec" REALPATH) set(SDL2_DLL_DIR "${SDL2_DLL_DIR}" CACHE INTERNAL "") else() message(ERROR "Can't find SDL2 dynamic library directory.") --- cmake/FindSDL2_mixer.cmake +++ cmake/FindSDL2_mixer.cmake @@ -44,16 +44,12 @@ endif() if(CMAKE_SIZEOF_VOID_P STREQUAL 8) find_path(SDL2_MIXER_INCLUDE_DIR "SDL_mixer.h" HINTS - "${SDL2_MIXER_DIR}/include" "${SDL2_MIXER_DIR}/include/SDL2" - "${SDL2_MIXER_DIR}/x86_64-w64-mingw32/include/SDL2" ${PC_SDL2_MIXER_INCLUDE_DIRS}) else() find_path(SDL2_MIXER_INCLUDE_DIR "SDL_mixer.h" HINTS - "${SDL2_MIXER_DIR}/include" "${SDL2_MIXER_DIR}/include/SDL2" - "${SDL2_MIXER_DIR}/i686-w64-mingw32/include/SDL2" ${PC_SDL2_MIXER_INCLUDE_DIRS}) endif() @@ -75,21 +71,10 @@ if(SDL2_MIXER_INCLUDE_DIR AND EXISTS "${ endif() # Find the library. -if(CMAKE_SIZEOF_VOID_P STREQUAL 8) - find_library(SDL2_MIXER_LIBRARY "SDL2_mixer" + find_library(SDL2_MIXER_LIBRARY "SDL2_mixer_static" HINTS - "${SDL2_MIXER_DIR}/lib" - "${SDL2_MIXER_DIR}/lib/x64" - "${SDL2_MIXER_DIR}/x86_64-w64-mingw32/lib" + "${SDL2_MIXER_DIR}/lib/arm64ec" ${PC_SDL2_MIXER_LIBRARY_DIRS}) -else() - find_library(SDL2_MIXER_LIBRARY "SDL2_mixer" - HINTS - "${SDL2_MIXER_DIR}/lib" - "${SDL2_MIXER_DIR}/lib/x86" - "${SDL2_MIXER_DIR}/i686-w64-mingw32/lib" - ${PC_SDL2_MIXER_LIBRARY_DIRS}) -endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(SDL2_mixer @@ -113,8 +98,8 @@ if(SDL2_MIXER_FOUND) get_filename_component(SDL2_MIXER_DLL_DIR "${SDL2_MIXER_LIBRARY}" DIRECTORY) if(EXISTS "${SDL2_MIXER_DLL_DIR}/SDL2_mixer.dll") set(SDL2_MIXER_DLL_DIR "${SDL2_MIXER_DLL_DIR}" CACHE INTERNAL "") - elseif(EXISTS "${SDL2_MIXER_DLL_DIR}/../bin/SDL2_mixer.dll") - get_filename_component(SDL2_MIXER_DLL_DIR "${SDL2_MIXER_DLL_DIR}/../bin" REALPATH) + elseif(EXISTS "${SDL2_MIXER_DLL_DIR}/../../bin/arm64ec/SDL2_mixer.dll") + get_filename_component(SDL2_MIXER_DLL_DIR "${SDL2_MIXER_DLL_DIR}/../../bin/arm64ec" REALPATH) set(SDL2_MIXER_DLL_DIR "${SDL2_MIXER_DLL_DIR}" CACHE INTERNAL "") else() message(ERROR "Can't find SDL2_mixer dynamic library directory.") --- cmake/FindSDL2_net.cmake +++ cmake/FindSDL2_net.cmake @@ -44,16 +44,12 @@ endif() if(CMAKE_SIZEOF_VOID_P STREQUAL 8) find_path(SDL2_NET_INCLUDE_DIR "SDL_net.h" HINTS - "${SDL2_NET_DIR}/include" "${SDL2_NET_DIR}/include/SDL2" - "${SDL2_NET_DIR}/x86_64-w64-mingw32/include/SDL2" ${PC_SDL2_NET_INCLUDE_DIRS}) else() find_path(SDL2_NET_INCLUDE_DIR "SDL_net.h" HINTS - "${SDL2_NET_DIR}/include" "${SDL2_NET_DIR}/include/SDL2" - "${SDL2_NET_DIR}/i686-w64-mingw32/include/SDL2" ${PC_SDL2_NET_INCLUDE_DIRS}) endif() @@ -75,21 +71,10 @@ if(SDL2_NET_INCLUDE_DIR AND EXISTS "${SD endif() # Find the library. -if(CMAKE_SIZEOF_VOID_P STREQUAL 8) - find_library(SDL2_NET_LIBRARY "SDL2_net" + find_library(SDL2_NET_LIBRARY "SDL2_net_static" HINTS - "${SDL2_NET_DIR}/lib" - "${SDL2_NET_DIR}/lib/x64" - "${SDL2_NET_DIR}/x86_64-w64-mingw32/lib" + "${SDL2_NET_DIR}/lib/arm64ec" ${PC_SDL2_NET_LIBRARY_DIRS}) -else() - find_library(SDL2_NET_LIBRARY "SDL2_net" - HINTS - "${SDL2_NET_DIR}/lib" - "${SDL2_NET_DIR}/lib/x86" - "${SDL2_NET_DIR}/i686-w64-mingw32/lib" - ${PC_SDL2_NET_LIBRARY_DIRS}) -endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(SDL2_net @@ -113,8 +98,8 @@ if(SDL2_NET_FOUND) get_filename_component(SDL2_NET_DLL_DIR "${SDL2_NET_LIBRARY}" DIRECTORY) if(EXISTS "${SDL2_NET_DLL_DIR}/SDL2_net.dll") set(SDL2_NET_DLL_DIR "${SDL2_NET_DLL_DIR}" CACHE INTERNAL "") - elseif(EXISTS "${SDL2_NET_DLL_DIR}/../bin/SDL2_net.dll") - get_filename_component(SDL2_NET_DLL_DIR "${SDL2_NET_DLL_DIR}/../bin" REALPATH) + elseif(EXISTS "${SDL2_NET_DLL_DIR}/../../bin/arm64ec/SDL2_net.dll") + get_filename_component(SDL2_NET_DLL_DIR "${SDL2_NET_DLL_DIR}/../../bin/arm64ec" REALPATH) set(SDL2_NET_DLL_DIR "${SDL2_NET_DLL_DIR}" CACHE INTERNAL "") else() message(ERROR "Can't find SDL2_net dynamic library directory.") --- CMakeLists.txt +++ CMakeLists.txt @@ -71,108 +71,10 @@ check_symbol_exists(strncasecmp "strings # # In some instances, we can do useful things if a library can't be found. -# SDL2. On Windows, we use the official development library. -if(NOT SDL2_DIR) - if(WIN32 AND NOT MSYS) - message(STATUS "Downloading SDL2 Development Library...") - set(pkgver "2.26.1") - if(MSVC) - file(DOWNLOAD - "https://github.com/libsdl-org/SDL/releases/download/release-${pkgver}/SDL2-devel-${pkgver}-VC.zip" - "${CMAKE_CURRENT_BINARY_DIR}/SDL2-VC.zip" - EXPECTED_HASH SHA256=256a8b46e4a278b7b2b649368bc38a400d943de5b3ef8c14e1b907725cd70072) - execute_process(COMMAND "${CMAKE_COMMAND}" -E tar xf - "${CMAKE_CURRENT_BINARY_DIR}/SDL2-VC.zip" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - else() - file(DOWNLOAD - "https://github.com/libsdl-org/SDL/releases/download/release-${pkgver}/SDL2-devel-${pkgver}-mingw.tar.gz" - "${CMAKE_CURRENT_BINARY_DIR}/SDL2-mingw.tar.gz" - EXPECTED_HASH SHA256=aa43e1531a89551f9f9e14b27953a81d4ac946a9e574b5813cd0f2b36e83cc1c) - execute_process(COMMAND "${CMAKE_COMMAND}" -E tar xf - "${CMAKE_CURRENT_BINARY_DIR}/SDL2-mingw.tar.gz" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - endif() - set(SDL2_DIR "${CMAKE_CURRENT_BINARY_DIR}/SDL2-${pkgver}") - endif() -endif() find_package(SDL2 2.0.7) - -# SDL2_mixer. On Windows, we use the official development library. -if(NOT SDL2_MIXER_DIR) - if(WIN32 AND NOT MSYS) - message(STATUS "Downloading SDL2_mixer Development Library...") - set(pkgver "2.6.2") - if(MSVC) - file(DOWNLOAD - "https://github.com/libsdl-org/SDL_mixer/releases/download/release-${pkgver}/SDL2_mixer-devel-${pkgver}-VC.zip" - "${CMAKE_CURRENT_BINARY_DIR}/SDL2_mixer-VC.zip" - EXPECTED_HASH SHA256=7f050663ccc7911bb9c57b11e32ca79578b712490186b8645ddbbe4e7d2fe1c9) - execute_process(COMMAND "${CMAKE_COMMAND}" -E tar xf - "${CMAKE_CURRENT_BINARY_DIR}/SDL2_mixer-VC.zip" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - else() - file(DOWNLOAD - "https://github.com/libsdl-org/SDL_mixer/releases/download/release-${pkgver}/SDL2_mixer-devel-${pkgver}-mingw.tar.gz" - "${CMAKE_CURRENT_BINARY_DIR}/SDL2_mixer-mingw.tar.gz" - EXPECTED_HASH SHA256=6c414d05a3b867e0d59e0f9b28ea7e5e64527e612ccf961735dc2478391315b3) - execute_process(COMMAND "${CMAKE_COMMAND}" -E tar xf - "${CMAKE_CURRENT_BINARY_DIR}/SDL2_mixer-mingw.tar.gz" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - endif() - set(SDL2_MIXER_DIR "${CMAKE_CURRENT_BINARY_DIR}/SDL2_mixer-${pkgver}") - endif() -endif() find_package(SDL2_mixer 2.0.2) - -# SDL2_net. On Windows, we use the official development library. -if(NOT SDL2_NET_DIR) - if(WIN32 AND NOT MSYS) - message(STATUS "Downloading SDL2_net Development Library...") - set(pkgver "2.2.0") - if(MSVC) - file(DOWNLOAD - "https://github.com/libsdl-org/SDL_net/releases/download/release-${pkgver}/SDL2_net-devel-${pkgver}-VC.zip" - "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net-VC.zip" - EXPECTED_HASH SHA256=f364e55babb44e47b41d039a43c640aa1f76615b726855591b555321c7d870dd) - execute_process(COMMAND "${CMAKE_COMMAND}" -E tar xf - "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net-VC.zip" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - else() - file(DOWNLOAD - "https://github.com/libsdl-org/SDL_net/releases/download/release-${pkgver}/SDL2_net-devel-${pkgver}-mingw.tar.gz" - "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net-mingw.tar.gz" - EXPECTED_HASH SHA256=369829e06c509d5e001fabdcbe006ff3efa934f3825dc0ae1b076f5ce9c183c4) - execute_process(COMMAND "${CMAKE_COMMAND}" -E tar xf - "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net-mingw.tar.gz" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - endif() - set(SDL2_NET_DIR "${CMAKE_CURRENT_BINARY_DIR}/SDL2_net-${pkgver}") - endif() -endif() find_package(SDL2_net) - -# FluidSynth backend -if (NOT FluidSynth_DIR) - if (WIN32 AND MSVC AND CMAKE_SIZEOF_VOID_P STREQUAL 4) - message(STATUS "Downloading FluidSynth Development Library...") - set(pkgver "2.3.0") - file(DOWNLOAD - "https://github.com/FluidSynth/fluidsynth/releases/download/v${pkgver}/fluidsynth-${pkgver}-winXP-x86.zip" - "${CMAKE_CURRENT_BINARY_DIR}/fluidsynth-x86.zip" - EXPECTED_HASH SHA256=ea84ee14b9c9f394085bbbe6651df7a119879b5e19ebed47d7fd096b18b56c09) - execute_process( - COMMAND "${CMAKE_COMMAND}" -E make_directory - "${CMAKE_CURRENT_BINARY_DIR}/fluidsynth-${pkgver}") - execute_process( - COMMAND "${CMAKE_COMMAND}" -E tar xf - "${CMAKE_CURRENT_BINARY_DIR}/fluidsynth-x86.zip" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/fluidsynth-${pkgver}") - set(FluidSynth_DIR "${CMAKE_CURRENT_BINARY_DIR}/fluidsynth-${pkgver}") - endif() -endif() -# 2.2.0 for unicode fopen on Windows -find_package(FluidSynth 2.2.0) +find_package(FluidSynth 2.0.0) # Python 3 find_package(Python3 COMPONENTS Interpreter)