2018-01-12 02:46:57 +00:00
|
|
|
cmake_minimum_required(VERSION 3.5)
|
|
|
|
|
|
|
|
set(CMAKE_MODULE_PATH
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../../Dependencies/cmake-modules
|
|
|
|
${CMAKE_MODULE_PATH}
|
|
|
|
)
|
|
|
|
include(Header)
|
|
|
|
|
|
|
|
project(PlayUI)
|
|
|
|
|
|
|
|
add_definitions(-DPLAY_VERSION="${PROJECT_Version}")
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
2018-05-23 03:11:24 +03:00
|
|
|
if (NOT TARGET glew_s)
|
|
|
|
add_subdirectory(
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../../Dependencies/glew-2.0.0
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/glew-2.0.0
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
list(APPEND PROJECT_LIBS glew_s)
|
|
|
|
|
|
|
|
if(TARGET_PLATFORM_UNIX)
|
|
|
|
find_package(LIBEVDEV REQUIRED)
|
|
|
|
list(APPEND PROJECT_LIBS ${LIBEVDEV_LIBRARY})
|
|
|
|
list(APPEND DEFINITIONS_LIST HAS_LIBEVDEV=1)
|
|
|
|
endif()
|
2018-01-12 02:46:57 +00:00
|
|
|
|
2018-10-16 12:54:10 -04:00
|
|
|
if(TARGET_PLATFORM_MACOS OR TARGET_PLATFORM_UNIX)
|
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
|
|
|
)
|
|
|
|
endif()
|
2018-10-18 18:46:41 -04:00
|
|
|
list(APPEND PROJECT_LIBS sh_openal)
|
2018-10-16 12:54:10 -04:00
|
|
|
endif()
|
|
|
|
|
2018-01-12 02:46:57 +00:00
|
|
|
set(QT_SOURCES
|
2018-07-31 18:43:01 -04:00
|
|
|
ControllerConfig/bindingmodel.cpp
|
|
|
|
ControllerConfig/bindingmodel.h
|
|
|
|
ControllerConfig/controllerconfigdialog.cpp
|
|
|
|
ControllerConfig/controllerconfigdialog.h
|
|
|
|
ControllerConfig/inputeventselectiondialog.cpp
|
|
|
|
ControllerConfig/inputeventselectiondialog.h
|
2018-01-12 02:46:57 +00:00
|
|
|
main.cpp
|
|
|
|
mainwindow.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
mainwindow.h
|
2018-10-05 13:35:24 -04:00
|
|
|
ContinuationChecker.cpp
|
|
|
|
ContinuationChecker.h
|
2018-01-12 02:46:57 +00:00
|
|
|
ElidedLabel.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
ElidedLabel.h
|
2018-01-12 02:46:57 +00:00
|
|
|
GSH_OpenGLQt.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
GSH_OpenGLQt.h
|
2018-11-19 13:20:46 -05:00
|
|
|
InputProviderQtKey.cpp
|
|
|
|
InputProviderQtKey.h
|
2018-01-12 02:46:57 +00:00
|
|
|
StatsManager.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
StatsManager.h
|
2018-10-09 13:07:52 -04:00
|
|
|
S3FileBrowser.cpp
|
|
|
|
S3FileBrowser.h
|
2018-01-12 02:46:57 +00:00
|
|
|
settingsdialog.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
settingsdialog.h
|
2018-01-12 02:46:57 +00:00
|
|
|
openglwindow.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
openglwindow.h
|
2018-01-12 02:46:57 +00:00
|
|
|
memorycardmanagerdialog.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
memorycardmanagerdialog.h
|
|
|
|
PreferenceDefs.h
|
2018-09-24 12:34:54 -04:00
|
|
|
QStringUtils.cpp
|
|
|
|
QStringUtils.h
|
2018-01-12 02:46:57 +00:00
|
|
|
vfsmanagerdialog.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
vfsmanagerdialog.h
|
2018-01-12 02:46:57 +00:00
|
|
|
vfsmodel.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
vfsmodel.h
|
2018-01-12 02:46:57 +00:00
|
|
|
vfsdiscselectordialog.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
vfsdiscselectordialog.h
|
2018-01-12 02:46:57 +00:00
|
|
|
VfsDevice.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
VfsDevice.h
|
2018-01-12 02:46:57 +00:00
|
|
|
GamePad/GamePadUtils.cpp
|
2018-08-09 12:58:41 -04:00
|
|
|
GamePad/GamePadUtils.h
|
2018-01-12 02:46:57 +00:00
|
|
|
)
|
2018-05-23 03:11:24 +03:00
|
|
|
if(LIBEVDEV_FOUND)
|
|
|
|
set(QT_SOURCES
|
|
|
|
${QT_SOURCES}
|
|
|
|
GamePad/GamePadInputEventListener.cpp
|
2018-07-31 18:45:11 -04:00
|
|
|
GamePad/GamePadInputEventListener.h
|
2018-05-23 03:11:24 +03:00
|
|
|
GamePad/GamePadDeviceListener.cpp
|
2018-07-31 18:45:11 -04:00
|
|
|
GamePad/GamePadDeviceListener.h
|
2018-05-23 03:11:24 +03:00
|
|
|
)
|
|
|
|
endif()
|
2018-10-18 08:20:35 -04:00
|
|
|
if(TARGET_PLATFORM_WIN32)
|
|
|
|
set(QT_SOURCES
|
|
|
|
${QT_SOURCES}
|
|
|
|
../../tools/PsfPlayer/Source/win32_ui/SH_WaveOut.cpp
|
|
|
|
)
|
|
|
|
list(APPEND PROJECT_LIBS winmm)
|
|
|
|
endif()
|
2018-01-12 02:46:57 +00:00
|
|
|
set(QT_MOC_HEADERS
|
2018-07-31 18:43:01 -04:00
|
|
|
ControllerConfig/bindingmodel.h
|
|
|
|
ControllerConfig/controllerconfigdialog.h
|
|
|
|
ControllerConfig/inputeventselectiondialog.h
|
2018-01-12 02:46:57 +00:00
|
|
|
mainwindow.h
|
2018-10-05 13:35:24 -04:00
|
|
|
ContinuationChecker.h
|
2018-01-12 02:46:57 +00:00
|
|
|
ElidedLabel.h
|
|
|
|
settingsdialog.h
|
|
|
|
openglwindow.h
|
|
|
|
memorycardmanagerdialog.h
|
2018-10-09 13:07:52 -04:00
|
|
|
S3FileBrowser.h
|
2018-01-12 02:46:57 +00:00
|
|
|
vfsmanagerdialog.h
|
|
|
|
vfsmodel.h
|
|
|
|
vfsdiscselectordialog.h
|
|
|
|
)
|
|
|
|
|
|
|
|
set(QT_UIS
|
2018-10-05 13:35:51 -04:00
|
|
|
Qt_ui/controllerconfigdialog.ui
|
|
|
|
Qt_ui/inputeventselectiondialog.ui
|
2018-01-12 02:46:57 +00:00
|
|
|
Qt_ui/mainwindow.ui
|
|
|
|
Qt_ui/memorycardmanager.ui
|
2018-10-09 13:07:52 -04:00
|
|
|
Qt_ui/s3filebrowser.ui
|
2018-10-05 13:35:51 -04:00
|
|
|
Qt_ui/settingsdialog.ui
|
2018-01-12 02:46:57 +00:00
|
|
|
Qt_ui/vfsmanagerdialog.ui
|
|
|
|
Qt_ui/vfsdiscselectordialog.ui
|
|
|
|
)
|
|
|
|
|
|
|
|
set(QT_RESOURCES
|
|
|
|
Qt_ui/resources.qrc
|
|
|
|
)
|
|
|
|
|
|
|
|
find_package(Qt5 REQUIRED COMPONENTS Widgets Core)
|
|
|
|
list(APPEND PROJECT_LIBS Qt5::Widgets Qt5::Core)
|
|
|
|
add_definitions(${QT_DEFINITIONS})
|
|
|
|
|
|
|
|
QT5_ADD_RESOURCES(QT_RES_SOURCES ${QT_RESOURCES})
|
|
|
|
QT5_WRAP_UI(QT_UI_HEADERS ${QT_UIS})
|
|
|
|
QT5_WRAP_CPP(QT_MOC_SRCS ${QT_MOC_HEADERS})
|
|
|
|
|
2018-05-23 03:31:35 +03:00
|
|
|
if(TARGET_PLATFORM_MACOS)
|
2018-10-23 01:40:35 +01:00
|
|
|
set(QT_SOURCES
|
|
|
|
${QT_SOURCES}
|
2018-11-19 13:20:46 -05:00
|
|
|
InputProviderMacOsHid.cpp
|
|
|
|
InputProviderMacOsHid.h
|
2018-10-23 01:40:35 +01:00
|
|
|
)
|
2018-05-23 03:31:35 +03:00
|
|
|
set(OSX_RES
|
2018-11-19 13:33:53 -05:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/macos/AppIcon.icns
|
2018-05-23 03:31:35 +03:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../patches.xml
|
|
|
|
)
|
|
|
|
add_executable(Play MACOSX_BUNDLE ${QT_SOURCES} ${QT_MOC_SRCS} ${QT_RES_SOURCES} ${QT_UI_HEADERS} ${OSX_RES})
|
|
|
|
# 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 "%d-%m-%Y")
|
|
|
|
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_ICON_FILE "AppIcon.icns"
|
2018-11-19 13:33:53 -05:00
|
|
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/macos/Info.plist.in"
|
2018-05-23 03:31:35 +03:00
|
|
|
RESOURCE "${OSX_RES}"
|
|
|
|
)
|
2018-10-23 01:40:35 +01:00
|
|
|
list(APPEND PROJECT_LIBS "-framework IOKit -framework CoreFoundation")
|
2018-10-23 13:07:11 -04:00
|
|
|
elseif(TARGET_PLATFORM_WIN32)
|
|
|
|
add_executable(Play WIN32 ${QT_SOURCES} ${QT_MOC_SRCS} ${QT_RES_SOURCES} ${QT_UI_HEADERS})
|
2018-05-23 03:31:35 +03:00
|
|
|
else()
|
|
|
|
add_executable(Play ${QT_SOURCES} ${QT_MOC_SRCS} ${QT_RES_SOURCES} ${QT_UI_HEADERS})
|
|
|
|
endif()
|
|
|
|
|
2018-01-12 02:46:57 +00:00
|
|
|
target_link_libraries(Play ${PROJECT_LIBS})
|
2018-05-23 03:11:24 +03:00
|
|
|
target_compile_definitions(Play PRIVATE ${DEFINITIONS_LIST})
|
|
|
|
|
2018-01-12 02:46:57 +00:00
|
|
|
target_include_directories(Play PRIVATE
|
|
|
|
./
|
|
|
|
../../
|
|
|
|
${LIBEVDEV_INCLUDE_DIR}
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}
|
|
|
|
)
|
2018-09-26 13:16:50 -04:00
|
|
|
|
|
|
|
if(TARGET_PLATFORM_WIN32)
|
|
|
|
add_custom_command(TARGET Play POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
|
|
$<TARGET_FILE:Qt5::Core> $<TARGET_FILE_DIR:Play>
|
|
|
|
)
|
|
|
|
add_custom_command(TARGET Play POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
|
|
$<TARGET_FILE:Qt5::Widgets> $<TARGET_FILE_DIR:Play>
|
|
|
|
)
|
|
|
|
add_custom_command(TARGET Play POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
|
|
$<TARGET_FILE:Qt5::Gui> $<TARGET_FILE_DIR:Play>
|
|
|
|
)
|
|
|
|
endif()
|