src/platform/qt/CMakeLists.txt (view raw)
1cmake_minimum_required(VERSION 2.8.8)
2enable_language(CXX)
3
4set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -Wall -Wextra --std=c++11")
5set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -Wall -Wextra --std=c++11")
6
7if(BUILD_SDL)
8 find_package(SDL 1.2 REQUIRED)
9 set(PLATFORM_LIBRARY "${PLATFORM_LIBRARY};${SDL_LIBRARY};${SDLMAIN_LIBRARY}")
10 set(PLATFORM_SRC ${PLATFORM_SRC} ${CMAKE_SOURCE_DIR}/src/platform/sdl/sdl-events.c)
11 include_directories(${SDL_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/src/platform/sdl)
12endif()
13
14set(CMAKE_AUTOMOC ON)
15set(CMAKE_INCLUDE_CURRENT_DIR ON)
16
17find_package(Qt5Multimedia)
18find_package(Qt5OpenGL)
19find_package(Qt5Widgets)
20find_package(OpenGL)
21
22if(NOT Qt5Multimedia_FOUND OR NOT Qt5OpenGL_FOUND OR NOT Qt5Widgets_FOUND OR NOT OPENGL_FOUND)
23 set(BUILD_QT OFF PARENT_SCOPE)
24 return()
25endif()
26
27set(SOURCE_FILES
28 AudioDevice.cpp
29 AudioProcessor.cpp
30 Display.cpp
31 GBAApp.cpp
32 GameController.cpp
33 LoadSaveState.cpp
34 LogView.cpp
35 SavestateButton.cpp
36 Window.cpp
37 VFileDevice.cpp)
38
39qt5_wrap_ui(UI_FILES
40 LoadSaveState.ui
41 LogView.ui)
42
43if(USE_GDB_STUB)
44 set(SOURCE_FILES ${PLATFORM_SRC} ${SOURCE_FILES} GDBController.cpp GDBWindow.cpp)
45endif()
46set(MACOSX_BUNDLE_ICON_FILE mgba.icns)
47set(MACOSX_BUNDLE_BUNDLE_VERSION ${LIB_VERSION_STRING})
48set(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_NAME})
49set(MACOSX_BUNDLE_GUI_IDENTIFIER com.endrift.${BINARY_NAME}-qt)
50set_source_files_properties(${CMAKE_SOURCE_DIR}/res/mgba.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
51
52qt5_add_resources(RESOURCES resources.qrc)
53message(STATUS ${RESOURCES})
54add_executable(mGBA WIN32 MACOSX_BUNDLE main.cpp ${CMAKE_SOURCE_DIR}/res/mgba.icns ${SOURCE_FILES} ${UI_FILES} ${RESOURCES})
55set_target_properties(mGBA PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/res/info.plist.in)
56
57qt5_use_modules(mGBA Widgets Multimedia OpenGL)
58target_link_libraries(mGBA ${PLATFORM_LIBRARY} ${OPENGL_LIBRARY} ${BINARY_NAME} Qt5::Widgets)