2018-01-12 02:49:08 +00:00
cmake_minimum_required(VERSION 3.5)
set(CMAKE_MODULE_PATH
2019-07-01 13:16:58 +01:00
${CMAKE_CURRENT_SOURCE_DIR}/../../deps/Dependencies/cmake-modules
2018-01-12 02:49:08 +00:00
${CMAKE_MODULE_PATH}
)
include(Header)
project(PlayUI)
2021-06-24 07:51:50 -04:00
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()
2018-01-12 02:49:08 +00:00
if(NOT TARGET PlayCore)
add_subdirectory(
${CMAKE_CURRENT_SOURCE_DIR}/../
${CMAKE_CURRENT_BINARY_DIR}/Source
)
endif()
list(APPEND 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 PROJECT_LIBS 0 gsh_opengl)
2021-06-24 07:51:50 -04:00
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 PROJECT_LIBS 0 gsh_vulkan)
2021-08-04 10:23:51 -04:00
list(APPEND DEFINITIONS_LIST HAS_GSH_VULKAN=1)
2021-06-24 07:51:50 -04:00
endif()
2018-10-18 18:46:41 -04:00
if(NOT TARGET sh_openal)
2018-10-16 12:54:10 -04:00
add_subdirectory(
2018-10-18 18:46:41 -04:00
${CMAKE_CURRENT_SOURCE_DIR}/../../tools/PsfPlayer/Source/SH_OpenAL
${CMAKE_CURRENT_BINARY_DIR}/SH_OpenAL
2018-10-16 12:54:10 -04:00
)
2018-10-18 18:46:41 -04:00
endif()
list(APPEND PROJECT_LIBS sh_openal)
2018-10-16 12:54:10 -04:00
2018-01-12 02:49:08 +00:00
if(NOT TARGET iCade_Static)
add_subdirectory(
2019-07-01 13:16:58 +01:00
${CMAKE_CURRENT_SOURCE_DIR}/../../deps/Dependencies/build_cmake/iCade-iOS
2018-01-12 02:49:08 +00:00
${CMAKE_CURRENT_BINARY_DIR}/iCade-iOS
)
endif()
list(APPEND PROJECT_LIBS iCade_Static)
if(NOT TARGET SDWebImage_Static)
add_subdirectory(
2019-07-01 13:16:58 +01:00
${CMAKE_CURRENT_SOURCE_DIR}/../../deps/Dependencies/build_cmake/SDWebImage
2018-01-12 02:49:08 +00:00
${CMAKE_CURRENT_BINARY_DIR}/SDWebImage
)
endif()
list(APPEND PROJECT_LIBS SDWebImage_Static)
2019-07-05 23:55:34 +01:00
if(NOT TARGET ui_shared)
add_subdirectory(
${CMAKE_CURRENT_SOURCE_DIR}/../ui_shared
${CMAKE_CURRENT_BINARY_DIR}/ui_shared
)
2021-06-09 15:24:37 -04:00
endif()
2019-07-05 23:55:34 +01:00
list(APPEND PROJECT_LIBS ui_shared)
2021-06-09 15:24:37 -04:00
if(NOT TARGET AltKit)
add_subdirectory(
${CMAKE_CURRENT_SOURCE_DIR}/../../deps/AltKit
${CMAKE_CURRENT_BINARY_DIR}/AltKit
)
endif()
2018-01-12 02:49:08 +00:00
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
AppDelegate.mm
BackgroundLayer.m
CoverViewCell.m
2019-05-24 00:42:03 +01:00
CoverViewController.mm
2020-06-19 15:46:49 -04:00
DebuggerSimulator.cpp
2018-01-12 02:49:08 +00:00
EmulatorViewController.mm
GSH_OpenGLiOS.cpp
main.mm
2021-06-27 08:42:26 -04:00
PreferenceDefs.h
RenderView.mm
2021-07-03 19:30:43 -10:00
SaveStateViewController.m
2021-06-28 19:16:02 -04:00
SettingsListSelectorViewController.mm
2018-01-12 02:49:08 +00:00
SettingsViewController.mm
VirtualPadButton.mm
VirtualPadItem.mm
VirtualPadStick.mm
VirtualPadView.mm
)
set(OSX_HEADERS
AppDelegate.h
BackgroundLayer.h
CoverViewCell.h
CoverViewController.h
2020-06-19 15:46:49 -04:00
DebuggerSimulator.h
2018-01-12 02:49:08 +00:00
EmulatorViewController.h
GSH_OpenGLiOS.h
2021-06-27 08:42:26 -04:00
RenderView.h
2021-07-03 19:30:43 -10:00
SaveStateViewController.h
2021-06-28 19:16:02 -04:00
SettingsListSelectorViewController.h
2018-01-12 02:49:08 +00:00
SettingsViewController.h
VirtualPadButton.h
VirtualPadItem.h
VirtualPadStick.h
VirtualPadView.h
)
set(OSX_RES
${CMAKE_CURRENT_SOURCE_DIR}/../../patches.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
)
2021-06-24 07:51:50 -04:00
if(USE_GSH_VULKAN)
list(APPEND OSX_SOURCES GSH_VulkaniOS.cpp)
list(APPEND OSX_HEADERS GSH_VulkaniOS.h)
list(APPEND OSX_RES "$ENV{VULKAN_SDK}/../MoltenVK/dylib/iOS/libMoltenVK.dylib")
endif()
2018-01-12 02:49:08 +00:00
# Add our Executable
add_executable(Play MACOSX_BUNDLE ${OSX_SOURCES} ${OSX_HEADERS} ${OSX_RES})
set_target_properties(Play PROPERTIES COMPILE_FLAGS "-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})
2019-07-07 23:25:33 +01:00
target_link_libraries(Play ${PROJECT_LIBS} "-ObjC -lsqlite3 -framework OpenAL")
2018-01-12 02:49:08 +00:00
2021-08-04 10:23:51 -04:00
target_compile_definitions(Play PRIVATE ${DEFINITIONS_LIST})
2018-01-12 02:49:08 +00:00
# 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}"
)