mirror of
https://github.com/jpd002/Play-.git
synced 2025-04-28 13:47:57 +03:00

Some checks are pending
Build Android / build_android (apk) (push) Waiting to run
Build Android / build_android (libretro) (push) Waiting to run
Build iOS / build_ios (push) Waiting to run
Build Linux ARM64 / build_linux_arm64 (push) Waiting to run
Build macOS / build_macos (push) Waiting to run
Build Windows Psf / build_windows_psf (off, x86_64, Visual Studio 16 2019, installer64.nsi, x64) (push) Waiting to run
Build Windows Psf / build_windows_psf (on, x86_64, Visual Studio 16 2019, installer64.nsi, x64) (push) Waiting to run
Check Format / run_clangformat (push) Waiting to run
Build JavaScript / build_js (push) Waiting to run
Build Linux / build_linux (push) Waiting to run
Build Linux ARM32 / build_linux_arm32 (push) Waiting to run
Build Windows / build_windows (x86_32, Visual Studio 16 2019, installer32.nsi, win32_msvc2019, Win32) (push) Waiting to run
Build Windows / build_windows (x86_64, Visual Studio 16 2019, installer64.nsi, win64_msvc2019_64, x64) (push) Waiting to run
197 lines
5.6 KiB
CMake
197 lines
5.6 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
|
|
set(CMAKE_MODULE_PATH
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../deps/Dependencies/cmake-modules
|
|
${CMAKE_MODULE_PATH}
|
|
)
|
|
include(Header)
|
|
|
|
project(PlayUI LANGUAGES C Swift)
|
|
|
|
set(USE_GSH_VULKAN OFF)
|
|
find_package(Vulkan)
|
|
if(Vulkan_FOUND)
|
|
set(USE_GSH_VULKAN ON)
|
|
message("Building with Vulkan support.")
|
|
else()
|
|
message("Building without Vulkan support. If you want to enable Vulkan, please make sure VULKAN_SDK is set and place its path inside CMAKE_PREFIX_PATH.")
|
|
endif()
|
|
|
|
if(NOT TARGET PlayCore)
|
|
add_subdirectory(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../
|
|
${CMAKE_CURRENT_BINARY_DIR}/Source
|
|
)
|
|
endif()
|
|
list(APPEND UI_IOS_PROJECT_LIBS PlayCore)
|
|
|
|
if(NOT TARGET gsh_opengl)
|
|
add_subdirectory(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../gs/GSH_OpenGL
|
|
${CMAKE_CURRENT_BINARY_DIR}/gs/GSH_OpenGL
|
|
)
|
|
endif()
|
|
list(INSERT UI_IOS_PROJECT_LIBS 0 gsh_opengl)
|
|
|
|
if(USE_GSH_VULKAN)
|
|
if(NOT TARGET gsh_vulkan)
|
|
add_subdirectory(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../gs/GSH_Vulkan
|
|
${CMAKE_CURRENT_BINARY_DIR}/gs/GSH_Vulkan
|
|
)
|
|
endif()
|
|
list(INSERT UI_IOS_PROJECT_LIBS 0 gsh_vulkan)
|
|
list(APPEND UI_IOS_DEFINITIONS_LIST HAS_GSH_VULKAN=1)
|
|
endif()
|
|
|
|
if(NOT TARGET sh_openal)
|
|
add_subdirectory(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../tools/PsfPlayer/Source/SH_OpenAL
|
|
${CMAKE_CURRENT_BINARY_DIR}/SH_OpenAL
|
|
)
|
|
endif()
|
|
list(APPEND UI_IOS_PROJECT_LIBS sh_openal)
|
|
|
|
if(NOT TARGET iCade_Static)
|
|
add_subdirectory(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../deps/Dependencies/build_cmake/iCade-iOS
|
|
${CMAKE_CURRENT_BINARY_DIR}/iCade-iOS
|
|
)
|
|
endif()
|
|
list(APPEND UI_IOS_PROJECT_LIBS iCade_Static)
|
|
|
|
if(NOT TARGET SDWebImage_Static)
|
|
add_subdirectory(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../deps/Dependencies/build_cmake/SDWebImage
|
|
${CMAKE_CURRENT_BINARY_DIR}/SDWebImage
|
|
)
|
|
endif()
|
|
list(APPEND UI_IOS_PROJECT_LIBS SDWebImage_Static)
|
|
|
|
if(NOT TARGET ui_shared)
|
|
add_subdirectory(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../ui_shared
|
|
${CMAKE_CURRENT_BINARY_DIR}/ui_shared
|
|
)
|
|
endif()
|
|
list(APPEND UI_IOS_PROJECT_LIBS ui_shared)
|
|
|
|
if(NOT TARGET AltKit)
|
|
add_subdirectory(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../deps/AltKit
|
|
${CMAKE_CURRENT_BINARY_DIR}/AltKit
|
|
)
|
|
endif()
|
|
list(APPEND UI_IOS_PROJECT_LIBS AltKit)
|
|
|
|
find_library(UIKIT_LIBRARY NAMES UIKit)
|
|
find_library(COREGRAPHICS_LIBRARY NAMES CoreGraphics)
|
|
find_library(GAMECONTROLLER_LIBRARY NAMES GameController)
|
|
find_library(QUARTZCORE_LIBRARY NAMES QuartzCore)
|
|
find_library(IMAGEIO_LIBRARY NAMES ImageIO)
|
|
|
|
set(OSX_SOURCES
|
|
AltServerJitService.mm
|
|
AppDelegate.mm
|
|
BackgroundLayer.m
|
|
CoverViewCell.m
|
|
CoverViewController.mm
|
|
DebuggerSimulator.cpp
|
|
EmulatorViewController.mm
|
|
GSH_OpenGLiOS.cpp
|
|
main.mm
|
|
PreferenceDefs.h
|
|
RenderView.mm
|
|
SaveStateViewController.m
|
|
SettingsListSelectorViewController.mm
|
|
SettingsViewController.mm
|
|
VirtualPadButton.mm
|
|
VirtualPadItem.mm
|
|
VirtualPadStick.mm
|
|
VirtualPadView.mm
|
|
)
|
|
|
|
set(OSX_HEADERS
|
|
AltServerJitService.h
|
|
AppDelegate.h
|
|
BackgroundLayer.h
|
|
CoverViewCell.h
|
|
CoverViewController.h
|
|
DebuggerSimulator.h
|
|
EmulatorViewController.h
|
|
GSH_OpenGLiOS.h
|
|
RenderView.h
|
|
SaveStateViewController.h
|
|
SettingsListSelectorViewController.h
|
|
SettingsViewController.h
|
|
VirtualPadButton.h
|
|
VirtualPadItem.h
|
|
VirtualPadStick.h
|
|
VirtualPadView.h
|
|
)
|
|
|
|
set(OSX_RES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../GameConfig.xml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Base.lproj/Main.storyboard
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/icon@2x.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/boxart.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/select.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/start.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/up.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/down.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/left.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/right.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/triangle.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/cross.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/circle.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/square.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/lr.png
|
|
${CMAKE_CURRENT_SOURCE_DIR}/Resources/analogstick.png
|
|
)
|
|
|
|
if(USE_GSH_VULKAN)
|
|
list(APPEND OSX_SOURCES GSH_VulkaniOS.cpp)
|
|
list(APPEND OSX_HEADERS GSH_VulkaniOS.h)
|
|
endif()
|
|
|
|
# Add our Executable
|
|
add_executable(Play MACOSX_BUNDLE ${OSX_SOURCES} ${OSX_HEADERS} ${OSX_RES})
|
|
target_compile_options(Play PRIVATE $<$<NOT:$<COMPILE_LANGUAGE:Swift>>:-x objective-c++ -fobjc-arc>)
|
|
|
|
# Probably a better way to set the framework link libraries.
|
|
target_link_libraries(Play ${UIKIT_LIBRARY})
|
|
target_link_libraries(Play ${COREGRAPHICS_LIBRARY})
|
|
target_link_libraries(Play ${GAMECONTROLLER_LIBRARY})
|
|
target_link_libraries(Play ${QUARTZCORE_LIBRARY})
|
|
target_link_libraries(Play ${IMAGEIO_LIBRARY})
|
|
target_link_libraries(Play ${UI_IOS_PROJECT_LIBS} "-ObjC -lsqlite3 -framework OpenAL")
|
|
|
|
target_compile_definitions(Play PRIVATE ${UI_IOS_DEFINITIONS_LIST})
|
|
|
|
# Set a custom plist file for the app bundle
|
|
# NOTE: for these values to be used Info.plist has to be edited
|
|
# NOTE: from cmake 3.7.0 you can use %b for month name abbreviations
|
|
string(TIMESTAMP DATE "%Y-%m-%d")
|
|
set_target_properties(
|
|
Play
|
|
PROPERTIES
|
|
MACOSX_BUNDLE_INFO_STRING "${PROJECT_NAME}"
|
|
MACOSX_BUNDLE_GUI_IDENTIFIER "com.virtualapplications.play"
|
|
MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_NAME} Version ${PROJECT_Version}"
|
|
MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME}
|
|
MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_Version}"
|
|
MACOSX_BUNDLE_BUNDLE_VERSION ${DATE}
|
|
MACOSX_BUNDLE_COPYRIGHT "© Virtual Applications, 2017"
|
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in"
|
|
XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2"
|
|
RESOURCE "${OSX_RES}"
|
|
)
|
|
|
|
if(USE_GSH_VULKAN)
|
|
set_target_properties(
|
|
Play
|
|
PROPERTIES
|
|
XCODE_EMBED_FRAMEWORKS "$ENV{VULKAN_SDK}/lib/MoltenVK.xcframework"
|
|
XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY TRUE
|
|
)
|
|
endif()
|