1
0
forked from BRT/arc
arc/CMakeLists.txt
slava 712b73316c Remove CommonBirbankScript and its derived classes from the codebase
Deleted `CommonBirbankScript` and its associated derived classes (`GetLastDaysHistoryBirbankScript`, `LoginAndCheckAccountsBirbankScript`, `PayByCardBirbankScript`). Removed dependencies on these scripts, including XML parsing, account handling, and transaction workflows related to the Birbank app.
2026-03-21 17:41:05 +07:00

181 lines
6.8 KiB
CMake
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

cmake_minimum_required(VERSION 3.16)
project(ARCDesktopProject LANGUAGES CXX)
#mkdir build
#cd build
#cmake .. -A x64 -DCMAKE_PREFIX_PATH="C:/Qt/6.9.0/msvc2022_64" -DCMAKE_BUILD_TYPE=Release
#cmake .. -G "Visual Studio 17 2022" -A x64 -DCMAKE_PREFIX_PATH="C:/Qt/6.9.0/msvc2022_64" -DCMAKE_BUILD_TYPE=Release
#cmake --build . --config Release
#"C:\Qt\6.9.0\msvc2022_64\bin\windeployqt.exe" .\Release\ARCDesktopProject.exe
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
add_compile_definitions(QT_MESSAGELOGCONTEXT)
if (WIN32)
# Определяем целевую архитектуру.
# CMAKE_GENERATOR_PLATFORM (-A flag) — самый надёжный способ определения при кросс-компиляции.
# На ARM64 хосте CMAKE_SYSTEM_PROCESSOR может быть "ARM64" даже при сборке под x64,
# поэтому сначала проверяем явные x64-признаки.
if (CMAKE_GENERATOR_PLATFORM STREQUAL "x64"
OR CMAKE_GENERATOR_PLATFORM STREQUAL "Win64"
OR VCPKG_TARGET_TRIPLET MATCHES "x64")
message(STATUS "Detected x64 target architecture")
set(CMAKE_PREFIX_PATH "C:/Qt/6.9.0/msvc2022_64")
list(APPEND CMAKE_PREFIX_PATH "C:/Users/User/.vcpkg-clion/vcpkg/installed/x64-windows")
set(Tesseract_DIR "C:/Users/User/.vcpkg-clion/vcpkg/installed/x64-windows/share/tesseract")
elseif (VCPKG_TARGET_TRIPLET MATCHES "arm64"
OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64"
OR CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64"
OR CMAKE_CXX_COMPILER MATCHES "arm64")
message(STATUS "Detected ARM64 target architecture")
set(CMAKE_PREFIX_PATH "C:/Qt/6.9.0/msvc2022_arm64")
list(APPEND CMAKE_PREFIX_PATH "C:/Users/User/.vcpkg-clion/vcpkg/installed/arm64-windows")
set(Tesseract_DIR "C:/Users/User/.vcpkg-clion/vcpkg/installed/arm64-windows/share/tesseract")
else ()
message(STATUS "Detected x64 target architecture (default)")
set(CMAKE_PREFIX_PATH "C:/Qt/6.9.0/msvc2022_64")
list(APPEND CMAKE_PREFIX_PATH "C:/Users/User/.vcpkg-clion/vcpkg/installed/x64-windows")
set(Tesseract_DIR "C:/Users/User/.vcpkg-clion/vcpkg/installed/x64-windows/share/tesseract")
endif ()
find_package(Tesseract CONFIG REQUIRED)
elseif (APPLE)
# Укажи путь к Qt6
set(CMAKE_PREFIX_PATH "/opt/homebrew/opt/qt")
include_directories("/opt/homebrew/include")
link_directories("/opt/homebrew/lib")
endif ()
find_package(Qt6 REQUIRED COMPONENTS
Network
Widgets
Sql
Xml
)
file(GLOB_RECURSE DB_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/database/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/database/*.h"
)
file(GLOB_RECURSE VIEW_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/views/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/views/*.h"
)
file(GLOB_RECURSE SERVICES_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/services/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/services/*.h"
)
file(GLOB_RECURSE MODELS_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/models/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/models/*.h"
)
file(GLOB_RECURSE ANDROID_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/android/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/android/*.h"
)
if (WIN32)
add_executable(ARCDesktopProject WIN32
main.cpp
${VIEW_SOURCES}
${SERVICES_SOURCES}
${DB_SOURCES}
${MODELS_SOURCES}
${ANDROID_SOURCES}
views/bank/BankSettingsWindow.cpp
views/bank/BankSettingsWindow.h
views/log/FileLogWindow.cpp
views/log/FileLogWindow.h
database/dao/GeneralLogDAO.cpp
database/dao/GeneralLogDAO.h
)
elseif (APPLE)
add_executable(ARCDesktopProject
main.cpp
${VIEW_SOURCES}
${SERVICES_SOURCES}
${DB_SOURCES}
${MODELS_SOURCES}
${ANDROID_SOURCES}
views/bank/BankSettingsWindow.cpp
views/bank/BankSettingsWindow.h
views/log/FileLogWindow.cpp
views/log/FileLogWindow.h
database/dao/GeneralLogDAO.cpp
database/dao/GeneralLogDAO.h
)
endif ()
if (WIN32)
target_link_libraries(ARCDesktopProject
Qt6::Widgets
Qt6::Xml
Qt6::Sql
Qt6::Network
Tesseract::libtesseract
)
# Копирование изображений в директорию сборки
# file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/database/app_data.db" DESTINATION "${CMAKE_BINARY_DIR}/database")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/tutorials" DESTINATION "${CMAKE_BINARY_DIR}")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/images" DESTINATION "${CMAKE_BINARY_DIR}")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/rus.traineddata" DESTINATION "${CMAKE_BINARY_DIR}")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/eng.traineddata" DESTINATION "${CMAKE_BINARY_DIR}")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/config.ini" DESTINATION "${CMAKE_BINARY_DIR}")
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/tools/adb/windows" DESTINATION "${CMAKE_BINARY_DIR}/tools/adb")
add_custom_command(TARGET ARCDesktopProject POST_BUILD
COMMAND ${CMAKE_COMMAND} -E make_directory
"$<TARGET_FILE_DIR:ARCDesktopProject>/database"
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CMAKE_CURRENT_SOURCE_DIR}/tutorials"
"$<TARGET_FILE_DIR:ARCDesktopProject>/tutorials"
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CMAKE_CURRENT_SOURCE_DIR}/images"
"$<TARGET_FILE_DIR:ARCDesktopProject>/images"
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${CMAKE_CURRENT_SOURCE_DIR}/rus.traineddata"
"$<TARGET_FILE_DIR:ARCDesktopProject>/rus.traineddata"
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${CMAKE_CURRENT_SOURCE_DIR}/eng.traineddata"
"$<TARGET_FILE_DIR:ARCDesktopProject>/eng.traineddata"
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${CMAKE_CURRENT_SOURCE_DIR}/config.ini"
"$<TARGET_FILE_DIR:ARCDesktopProject>/config.ini"
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CMAKE_CURRENT_SOURCE_DIR}/tools/adb/windows"
"$<TARGET_FILE_DIR:ARCDesktopProject>/tools/adb/windows"
)
elseif (APPLE)
target_link_libraries(ARCDesktopProject
Qt6::Widgets
Qt6::Sql
Qt6::Xml
Qt6::Network
tesseract
leptonica
)
endif ()
target_include_directories(ARCDesktopProject PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/views
${CMAKE_CURRENT_SOURCE_DIR}/database
${CMAKE_CURRENT_SOURCE_DIR}/services
${CMAKE_CURRENT_SOURCE_DIR}/models
${CMAKE_CURRENT_SOURCE_DIR}/android
)