Browse Source

Fix most build errors

Signed-off-by: crueter <crueter@eden-emu.dev>
lizzie/ios-port-sud
crueter 3 months ago
committed by lizzie
parent
commit
858c49a648
  1. 11
      .ci/ios/build.sh
  2. 2
      .ci/ios/ios-toolchain.cmake
  3. 14
      CMakeLists.txt
  4. 6
      externals/CMakeLists.txt
  5. 8
      externals/cmake-modules/DetectArchitecture.cmake
  6. 5
      externals/cpmfile.json
  7. 3
      src/core/CMakeLists.txt
  8. 3
      src/frontend_common/CMakeLists.txt
  9. 3
      src/ios/CMakeLists.txt
  10. 5
      src/ios/VMA.cpp
  11. 3
      src/qt_common/CMakeLists.txt
  12. 7
      src/video_core/vulkan_common/vma.h

11
.ci/ios/build.sh

@ -6,9 +6,9 @@
WORK_DIR="$PWD" WORK_DIR="$PWD"
xcrun --sdk iphoneos --show-sdk-path xcrun --sdk iphoneos --show-sdk-path
# TODO(crueter): FFmpeg for iOS
# TODO: support iphonesimulator sdk
cmake -G Xcode -B build \
cmake -G Xcode -B build/ios \
-DCMAKE_TOOLCHAIN_FILE="$WORK_DIR/.ci/ios/ios-toolchain.cmake" \ -DCMAKE_TOOLCHAIN_FILE="$WORK_DIR/.ci/ios/ios-toolchain.cmake" \
-DPLATFORM=OS64 \ -DPLATFORM=OS64 \
-DARCHS="arm64" \ -DARCHS="arm64" \
@ -19,8 +19,7 @@ cmake -G Xcode -B build \
-DENABLE_QT=OFF \ -DENABLE_QT=OFF \
-DENABLE_WEB_SERVICE=OFF \ -DENABLE_WEB_SERVICE=OFF \
-DENABLE_CUBEB=OFF \ -DENABLE_CUBEB=OFF \
-DYUZU_USE_EXTERNAL_FFMPEG=ON \
-DYUZU_USE_EXTERNAL_SDL2=ON \
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_BUILD_TYPE=Release \
"$@"
cmake --build build -t eden-ios
cmake --build build/ios -t eden-ios --config Release

2
.ci/ios/ios-toolchain.cmake

@ -157,7 +157,7 @@
# command. # command.
# #
cmake_minimum_required(VERSION 3.8.0)
cmake_minimum_required(VERSION 3.10)
# CMake invokes the toolchain file twice during the first build, but only once during subsequent rebuilds. # CMake invokes the toolchain file twice during the first build, but only once during subsequent rebuilds.
# NOTE: To improve single-library build-times, provide the flag "OS_SINGLE_BUILD" as a build argument. # NOTE: To improve single-library build-times, provide the flag "OS_SINGLE_BUILD" as a build argument.

14
CMakeLists.txt

@ -169,24 +169,24 @@ if (MSVC AND NOT CXX_CLANG)
set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} /W3 /WX-") set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} /W3 /WX-")
endif() endif()
# TODO(crueter): Cleanup, each dep that has a bundled option should allow to choose between bundled, external, system
cmake_dependent_option(YUZU_USE_EXTERNAL_SDL2 "Build SDL2 from external source" OFF "NOT MSVC;NOT ANDROID" OFF)
cmake_dependent_option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MSVC}" "NOT ANDROID" OFF)
option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
set(EXT_DEFAULT OFF) set(EXT_DEFAULT OFF)
if (MSVC OR ANDROID OR IOS) if (MSVC OR ANDROID OR IOS)
set(EXT_DEFAULT ON) set(EXT_DEFAULT ON)
endif() endif()
# TODO(crueter): Cleanup, each dep that has a bundled option should allow to choose between bundled, external, system
cmake_dependent_option(YUZU_USE_EXTERNAL_SDL2 "Build SDL2 from external source" OFF "NOT MSVC;NOT ANDROID" OFF)
cmake_dependent_option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${EXT_DEFAULT}" "NOT ANDROID" OFF)
option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
# ffmpeg # ffmpeg
option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT}) option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT})
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${PLATFORM_SUN}" "NOT WIN32 AND NOT ANDROID" OFF) cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${PLATFORM_SUN}" "NOT WIN32 AND NOT ANDROID" OFF)
# sirit # sirit
set(BUNDLED_SIRIT_DEFAULT OFF) set(BUNDLED_SIRIT_DEFAULT OFF)
if ((MSVC AND NOT (CMAKE_BUILD_TYPE MATCHES "Deb")) OR ANDROID)
if ((MSVC AND NOT (CMAKE_BUILD_TYPE MATCHES "Deb")) OR ANDROID OR IOS)
set(BUNDLED_SIRIT_DEFAULT ON) set(BUNDLED_SIRIT_DEFAULT ON)
endif() endif()

6
externals/CMakeLists.txt

@ -225,6 +225,12 @@ if (VulkanMemoryAllocator_ADDED)
endif() endif()
endif() endif()
# httplib
if (IOS)
set(HTTPLIB_USE_BROTLI_IF_AVAILABLE OFF)
endif()
AddJsonPackage(httplib)
# cpp-jwt # cpp-jwt
if (ENABLE_WEB_SERVICE OR ENABLE_UPDATE_CHECKER) if (ENABLE_WEB_SERVICE OR ENABLE_UPDATE_CHECKER)
AddJsonPackage(cpp-jwt) AddJsonPackage(cpp-jwt)

8
externals/cmake-modules/DetectArchitecture.cmake

@ -41,12 +41,12 @@ if (CMAKE_OSX_ARCHITECTURES)
if (IOS) if (IOS)
# TODO: Right... the toolchain file won't properly accomodate OSX_ARCHITECTURE # TODO: Right... the toolchain file won't properly accomodate OSX_ARCHITECTURE
# they aren't defining it as a list properly I assume? # they aren't defining it as a list properly I assume?
set(ARCHITECTURE_arm64 1 PARENT_SCOPE)
set(ARCHITECTURE_arm64 1)
add_definitions(-DARCHITECTURE_arm64=1) add_definitions(-DARCHITECTURE_arm64=1)
else () else ()
# hope and pray the architecture names match # hope and pray the architecture names match
foreach(ARCH IN ${CMAKE_OSX_ARCHITECTURES})
set(ARCHITECTURE_${ARCH} 1 PARENT_SCOPE)
foreach(ARCH ${CMAKE_OSX_ARCHITECTURES})
set(ARCHITECTURE_${ARCH} 1)
add_definitions(-DARCHITECTURE_${ARCH}=1) add_definitions(-DARCHITECTURE_${ARCH}=1)
endforeach() endforeach()
endif() endif()
@ -223,4 +223,4 @@ if (NOT DEFINED ARCHITECTURE)
add_definitions(-DARCHITECTURE_GENERIC=1) add_definitions(-DARCHITECTURE_GENERIC=1)
endif() endif()
message(STATUS "[DetectArchitecture] Target architecture: ${ARCHITECTURE}")
message(STATUS "[DetectArchitecture] Target architecture: ${ARCHITECTURE}")

5
externals/cpmfile.json

@ -23,10 +23,7 @@
"package": "sirit", "package": "sirit",
"name": "sirit", "name": "sirit",
"repo": "eden-emulator/sirit", "repo": "eden-emulator/sirit",
"version": "1.0.4",
"disabled_platforms": [
"ios-aarch64"
]
"version": "1.0.5"
}, },
"httplib": { "httplib": {
"repo": "yhirose/cpp-httplib", "repo": "yhirose/cpp-httplib",

3
src/core/CMakeLists.txt

@ -1273,9 +1273,6 @@ endif()
target_sources(core PRIVATE hle/service/ssl/ssl_backend_openssl.cpp) target_sources(core PRIVATE hle/service/ssl/ssl_backend_openssl.cpp)
target_link_libraries(core PRIVATE OpenSSL::SSL OpenSSL::Crypto) target_link_libraries(core PRIVATE OpenSSL::SSL OpenSSL::Crypto)
if (NOT IOS)
target_compile_definitions(core PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
endif()
# TODO # TODO

3
src/frontend_common/CMakeLists.txt

@ -23,9 +23,6 @@ if (ENABLE_UPDATE_CHECKER)
update_checker.cpp update_checker.cpp
update_checker.h) update_checker.h)
target_link_libraries(frontend_common PRIVATE OpenSSL::SSL OpenSSL::Crypto) target_link_libraries(frontend_common PRIVATE OpenSSL::SSL OpenSSL::Crypto)
if (NOT IOS)
target_compile_definitions(frontend_common PUBLIC CPPHTTPLIB_OPENSSL_SUPPORT)
endif()
endif() endif()
create_target_directory_groups(frontend_common) create_target_directory_groups(frontend_common)

3
src/ios/CMakeLists.txt

@ -15,6 +15,7 @@ add_executable(eden-ios
EmulationSession.mm EmulationSession.mm
EmulationWindow.h EmulationWindow.h
EmulationWindow.mm EmulationWindow.mm
VMA.cpp
) )
# Keep bundle identifier as-is, for compatibility sake # Keep bundle identifier as-is, for compatibility sake
set_target_properties(eden-ios PROPERTIES set_target_properties(eden-ios PROPERTIES
@ -26,5 +27,5 @@ set_target_properties(eden-ios PROPERTIES
) )
target_link_libraries(eden-ios PRIVATE common core input_common frontend_common video_core sirit::sirit) target_link_libraries(eden-ios PRIVATE common core input_common frontend_common video_core sirit::sirit)
target_link_libraries(eden-ios PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads) target_link_libraries(eden-ios PRIVATE ${PLATFORM_LIBRARIES} Threads::Threads)
target_link_libraries(eden-ios PRIVATE SDL2::SDL2 glad)
target_link_libraries(eden-ios PRIVATE SDL2::SDL2 glad stb::headers)
create_target_directory_groups(eden-ios) create_target_directory_groups(eden-ios)

5
src/ios/VMA.cpp

@ -0,0 +1,5 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
#define VMA_IMPLEMENTATION
#include "video_core/vulkan_common/vma.h"

3
src/qt_common/CMakeLists.txt

@ -50,9 +50,6 @@ if (USE_DISCORD_PRESENCE)
if (YUZU_USE_BUNDLED_OPENSSL) if (YUZU_USE_BUNDLED_OPENSSL)
target_link_libraries(qt_common PUBLIC OpenSSL::SSL OpenSSL::Crypto) target_link_libraries(qt_common PUBLIC OpenSSL::SSL OpenSSL::Crypto)
if (NOT IOS)
target_compile_definitions(qt_common PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
endif()
endif() endif()
target_compile_definitions(qt_common PUBLIC USE_DISCORD_PRESENCE) target_compile_definitions(qt_common PUBLIC USE_DISCORD_PRESENCE)

7
src/video_core/vulkan_common/vma.h

@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later // SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
@ -13,9 +13,14 @@
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning( push ) #pragma warning( push )
#pragma warning( disable : 4189 ) #pragma warning( disable : 4189 )
#elif defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
#endif #endif
#include "vk_mem_alloc.h" #include "vk_mem_alloc.h"
#ifdef _MSC_VER #ifdef _MSC_VER
#pragma warning( pop ) #pragma warning( pop )
#elif defined(__clang__)
#pragma clang diagnostic pop
#endif #endif
Loading…
Cancel
Save