Setting up Qt (#294)

* Initial Qt setup

* Fix copy paste derp

* Remove QApplication include

* Test MacOS Qt build

* Update Qt_Build.yml

* Update Qt_Build.yml

* Properly detect architecture for Qt

* Revert back to manual Qt installation to handle DLL nightmares

* Install Qt for MacOS CI

* AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* Rename lua.hpp to lua_manager.hpp

* Add Windows Qt deploy step

* Update Qt_Build.yml

* Update Qt_Build.yml

* Update Qt_Build.yml

* Update Qt_Build.yml

* AAAAAAAAAAAAAAAAAAAAAA

* Update Qt_Build.yml

* AAAAAAAAAAAAAA

* Update Qt_Build.yml

* Update Qt_Build.yml

* Update Qt_Build.yml

* Create mac-bundle-qt.sh

* Update Qt_Build.yml

* Update Qt_Build.yml

* Update mac-bundle-qt.sh

* Update Qt_Build.yml

* Update mac-bundle-qt.sh

* Update mac-bundle-qt.sh

* Update mac-bundle-qt.sh

* Update mac-bundle-qt.sh

* Recovering from heartbreak after the dylibbundler fork made me sad

* Help

* Update Qt_Build.yml

* Add mac dynlib manager from MelonDS

* Update mac-bundle-qt.sh

* Update mac-bundle-qt.sh

* Update mac-libs.rb

* Update mac-bundle-qt.sh

* Create linux-appimage-qt.sh

* Update Qt_Build.yml
This commit is contained in:
wheremyfoodat 2023-09-29 17:30:13 +03:00 committed by GitHub
parent 49368e0db6
commit 89ed176d97
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 492 additions and 3 deletions

View file

@ -37,6 +37,7 @@ option(ENABLE_USER_BUILD "Make a user-facing build. These builds have various as
option(ENABLE_HTTP_SERVER "Enable HTTP server. Used for Discord bot support" OFF)
option(ENABLE_DISCORD_RPC "Compile with Discord RPC support (disabled by default)" ON)
option(ENABLE_LUAJIT "Enable scripting with the Lua programming language" ON)
option(ENABLE_QT_GUI "Enable the Qt GUI. If not selected then the emulator uses a minimal SDL-based UI instead" OFF)
include_directories(${PROJECT_SOURCE_DIR}/include/)
include_directories(${PROJECT_SOURCE_DIR}/include/kernel)
@ -62,6 +63,15 @@ if(ENABLE_DISCORD_RPC AND NOT ANDROID)
include_directories(third_party/discord-rpc/include)
endif()
if (ENABLE_QT_GUI)
find_package(Qt6 REQUIRED COMPONENTS Widgets)
# We can't use qt_standard_project_setup since it's Qt 6.3+ and we don't need to set the minimum that high
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
endif()
set(SDL_STATIC ON CACHE BOOL "" FORCE)
set(SDL_SHARED OFF CACHE BOOL "" FORCE)
set(SDL_TEST OFF CACHE BOOL "" FORCE)
@ -196,7 +206,7 @@ set(HEADER_FILES include/emulator.hpp include/helpers.hpp include/termcolor.hpp
include/applets/applet.hpp include/applets/mii_selector.hpp include/math_util.hpp include/services/soc.hpp
include/services/news_u.hpp include/applets/software_keyboard.hpp include/applets/applet_manager.hpp include/fs/archive_user_save_data.hpp
include/services/amiibo_device.hpp include/services/nfc_types.hpp include/swap.hpp include/services/csnd.hpp include/services/nwm_uds.hpp
include/fs/archive_system_save_data.hpp include/lua.hpp
include/fs/archive_system_save_data.hpp include/lua_manager.hpp
)
cmrc_add_resource_library(
@ -362,6 +372,13 @@ if(ENABLE_VULKAN)
target_link_libraries(Alber PRIVATE Vulkan::Vulkan resources_renderer_vk)
endif()
if(ENABLE_QT_GUI)
target_compile_definitions(Alber PUBLIC "PANDA3DS_FRONTEND_QT=1")
target_link_libraries(Alber PRIVATE Qt6::Widgets)
else()
target_compile_definitions(Alber PUBLIC "PANDA3DS_FRONTEND_SDL=1")
endif()
if(GPU_DEBUG_INFO)
target_compile_definitions(Alber PRIVATE GPU_DEBUG_INFO=1)
endif()