all repos — mgba @ 0ef07f7c26d440aa216925b1d6ad4886fa3fde50

mGBA Game Boy Advance Emulator

src/platform/qt/CMakeLists.txt (view raw)

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