Files
minecraft-launcher/CMakeLists.txt
T

83 lines
3.2 KiB
CMake

cmake_minimum_required(VERSION 3.16)
project(Minecraft_launcher VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# CorePrivate нужен ради QZipReader — им распаковываются нативные библиотеки LWJGL.
find_package(Qt6 REQUIRED COMPONENTS Quick QuickControls2 Core CorePrivate Gui Network)
qt_standard_project_setup(REQUIRES 6.8)
qt_add_executable(appMinecraft_launcher
main.cpp
)
qt_add_qml_module(appMinecraft_launcher
URI Minecraft_launcher
SOURCES
launcherbackend.h
launcherbackend.cpp
launcherpaths.h
launcherpaths.cpp
minecraftversion.h
minecraftversion.cpp
javalocator.h
javalocator.cpp
javaruntime.h
javaruntime.cpp
javaruntimeservice.h
javaruntimeservice.cpp
javainstaller.h
javainstaller.cpp
authservice.h
authservice.cpp
gamelauncher.h
gamelauncher.cpp
versionmanifestservice.h
versionmanifestservice.cpp
versioninstaller.h
versioninstaller.cpp
modloader.h
modloaderversionservice.h
modloaderversionservice.cpp
modloaderinstaller.h
modloaderinstaller.cpp
buildarchiveworker.h
buildarchiveworker.cpp
buildswitcher.h
buildswitcher.cpp
QML_FILES
Main.qml
DarkCombo.qml
VersionPickerDialog.qml
JavaPickerDialog.qml
LabelledField.qml
BuildsDialog.qml
LoaderRow.qml
ProgressPanel.qml
RESOURCES images/Folder/Folder_Active.svg images/Folder/Folder_Idle.svg images/Folder/Folder_Pressed.svg images/Options/Options_active.svg images/Options/Options_Idle.svg images/Options/Options_Pressed.svg images/Play_Button/Play_Active.svg images/Play_Button/Play_Idle.svg images/Play_Button/Play_pressed.svg images/Profile_Box/Asset_23.jpg images/Profile_Box/Asset_23.svg images/Profile_Box/Asset_24.jpg images/Profile_Box/Asset_24.svg images/Profile_Box/Kishka_Profile_Active.svg images/Profile_Box/Kishka_Profile_Idle.svg images/Profile_Box/Kishka_Profile_open.svg images/Scroll/Scroll_Lever.svg images/Scroll/Scroll_palka.svg images/Version_box/Kishka_Profile_Open.svg images/Version_box/Kishka_Ver_Active.svg images/Version_box/Kishka_Ver_idle.svg images/Trash.svg images/Pencil.svg images/GovuztTW8AAHqBf.jpeg images/photo_2025-12-16_15-04-17.jpg images/photo_2025-12-21_02-30-09.jpg
)
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
set_target_properties(appMinecraft_launcher PROPERTIES
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appMinecraft_launcher
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
target_link_libraries(appMinecraft_launcher
PRIVATE Qt6::Quick Qt6::QuickControls2 Qt6::Core Qt6::CorePrivate Qt6::Gui Qt6::Network
)
include(GNUInstallDirs)
install(TARGETS appMinecraft_launcher
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)