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} )