diff --git a/.gitignore b/.gitignore index eccd4e8..8900db3 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ !.gitignore !LICENSE !README.md +!toolchain*.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index fc82036..92a2fb4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,22 +1,14 @@ cmake_minimum_required(VERSION 3.16) project(PunkLauncher VERSION 1.0.0 LANGUAGES CXX) - -if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") - message(STATUS "In-source builds are not allowed. Please use a separate build directory.") - message(FATAL_ERROR "Please use a separate build directory: cd build & cmake ..") -endif() +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/app) set(CMAKE_AUTORCC ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -find_package(LibArchive REQUIRED) find_package(Qt6 REQUIRED COMPONENTS Widgets Network) qt_standard_project_setup() - -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Linux-app) - add_subdirectory(src/app) diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt index db22c10..21397d0 100644 --- a/src/app/CMakeLists.txt +++ b/src/app/CMakeLists.txt @@ -1,20 +1,24 @@ qt_add_executable(PunkLauncher main.cpp ui/mainwindow.cpp - launcher/launcher.cpp - launcher/profile_handler/forge1_12_2.cpp - backend/backend.cpp - settings/settings.cpp + launcher/launcher.cpp + launcher/profile_handler/forge1_12_2.cpp + backend/backend.cpp + settings/settings.cpp ../resources/resources.qrc ../resources/mainwindow.ui ) target_link_libraries(PunkLauncher PRIVATE - Qt6::Widgets - Qt6::Network - LibArchive::LibArchive) - -set_target_properties(PunkLauncher PROPERTIES - WIN32_EXECUTABLE ON - MACOSX_BUNDLE ON + Qt6::Widgets + Qt6::Network ) + +if(WIN32) + target_sources(PunkLauncher PRIVATE + ../resources/app.rc + ) + set_target_properties(PunkLauncher PROPERTIES + WIN32_EXECUTABLE ON + ) +endif() diff --git a/src/resources/app.ico b/src/resources/app.ico new file mode 100644 index 0000000..ffa3942 Binary files /dev/null and b/src/resources/app.ico differ diff --git a/src/resources/app.rc b/src/resources/app.rc new file mode 100644 index 0000000..80624c3 --- /dev/null +++ b/src/resources/app.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "app.ico" diff --git a/src/resources/mainwindow.ui b/src/resources/mainwindow.ui index c37bdb2..fc8fe5b 100644 --- a/src/resources/mainwindow.ui +++ b/src/resources/mainwindow.ui @@ -31,6 +31,10 @@ PunkLauncher + + + :/app.ico:/app.ico + QFrame#border_top, QFrame#border_bottom, QFrame#border_left, QFrame#border_right { /*background-color: rgb(217, 78, 108);*/ diff --git a/src/resources/resources.qrc b/src/resources/resources.qrc index 8fb3988..2bfb2dc 100644 --- a/src/resources/resources.qrc +++ b/src/resources/resources.qrc @@ -1,6 +1,7 @@ auth/logo.png + app.ico main/selected_profile.png main/settings_pressed_32x32.png main/settings_hover_32x32.png diff --git a/toolchain-win.cmake b/toolchain-win.cmake new file mode 100644 index 0000000..5b8aedd --- /dev/null +++ b/toolchain-win.cmake @@ -0,0 +1,19 @@ +set(CMAKE_SYSTEM_NAME Windows) +set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) +set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) +set(CMAKE_FIND_ROOT_PATH /home/xuy/x-tools/x86_64-w64-mingw32) + +# Режим поиска зависимостей +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) + +# Библиотеки +set(CMAKE_PREFIX_PATH /opt/qt6-mingw ${CMAKE_PREFIX_PATH}) +set(CMAKE_PREFIX_PATH /opt/deps/mingw ${CMAKE_PREFIX_PATH}) +set(CMAKE_PREFIX_PATH /opt/deps/mingw-icu ${CMAKE_PREFIX_PATH}) + +# Статическая сборка +set(QT_STATIC ON) +set(DBUILD_SHARED_LIBS OFF) +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static -static-libgcc -static-libstdc++")