This commit is contained in:
leca 2025-03-08 17:35:05 +03:00
commit df522f07f7
3 changed files with 69 additions and 84 deletions

View File

@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.10)
project(checks-parser VERSION 0.1 LANGUAGES CXX) project(checks-parser VERSION 0.1 LANGUAGES CXX)
option(BUILD_TRANSLATIONS "Build translations?" ON)
set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC OFF) set(CMAKE_AUTORCC OFF)
@ -11,99 +13,82 @@ set(CMAKE_AUTOUIC_SEARCH_PATHS Designer)
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt5Core REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) find_package(Qt5 REQUIRED COMPONENTS LinguistTools)
find_package(Qt5 COMPONENTS LinguistTools) find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
set(PROJECT_SOURCES set(PROJECT_SOURCES
main.cpp main.cpp
mainwindow.cpp mainwindow.cpp
mainwindow.h mainwindow.h
mainwindow.ui mainwindow.ui
goods/goods.h goods/goods.cpp goods/goods.h goods/goods.cpp
check/check.h check/check.cpp check/check.h check/check.cpp
parser/parser.h parser/parser.cpp parser/parser.h parser/parser.cpp
parser/module.h parser/module.cpp parser/module.h parser/module.cpp
outputdialog.h outputdialog.cpp outputdialog.ui outputdialog.h outputdialog.cpp outputdialog.ui
output/output_options.h output/output_options.cpp output/output_options.h output/output_options.cpp
utils/utils.h utils/utils.cpp utils/utils.h utils/utils.cpp
image/checkimage.h image/checkimage.cpp image/checkimage.h image/checkimage.cpp
net/net.h net/net.cpp net/net.h net/net.cpp
settings/settings.h settings/settings.cpp settings/settings.h settings/settings.cpp
settingsdialog.h settingsdialog.cpp settingsdialog.ui settingsdialog.h settingsdialog.cpp settingsdialog.ui
adjustpicturedialog.h adjustpicturedialog.cpp adjustpicturedialog.ui adjustpicturedialog.h adjustpicturedialog.cpp adjustpicturedialog.ui
image_redactor/imageredactor.h image_redactor/imageredactor.cpp image_redactor/imageredactor.h image_redactor/imageredactor.cpp
solvecaptchadialog.h solvecaptchadialog.cpp solvecaptchadialog.ui solvecaptchadialog.h solvecaptchadialog.cpp solvecaptchadialog.ui
exceptions/ofdrequestexception.h exceptions/ofdrequestexception.cpp exceptions/ofdrequestexception.h exceptions/ofdrequestexception.cpp
) )
# Specify the UI files and source files for translation
set(TRANSLATION_SOURCES set(TRANSLATION_SOURCES
main.cpp main.cpp
mainwindow.cpp mainwindow.h mainwindow.ui mainwindow.cpp mainwindow.h mainwindow.ui
outputdialog.cpp outputdialog.h outputdialog.ui outputdialog.cpp outputdialog.h outputdialog.ui
settingsdialog.cpp settingsdialog.h settingsdialog.ui settingsdialog.cpp settingsdialog.h settingsdialog.ui
solvecaptchadialog.cpp solvecaptchadialog.h solvecaptchadialog.ui solvecaptchadialog.cpp solvecaptchadialog.h solvecaptchadialog.ui
adjustpicturedialog.cpp adjustpicturedialog.h adjustpicturedialog.ui adjustpicturedialog.cpp adjustpicturedialog.h adjustpicturedialog.ui
) )
set(TRANSLATION_FILES translations/en_US.ts translations/ru_RU.ts) set(TS_FILES
translations/en_US.ts
# set(QM_FILES "") translations/ru_RU.ts
# qt5_create_translation(QM_FILES "${TRANSLATION_SOURCES}" translations/en_US.ts translations/ru_RU.ts)
# foreach(TS_FILE IN LISTS "${TRANSLATION_FILES}")
# qt5_create_translation(QM_FILE "${TRANSLATION_SOURCES}" TS_FILE)
# set(QM_FILE "${CMAKE_CURRENT_BINARY_DIR}/${QM_FILE}")
# set(QM_FILES "${QM_FILES};${QM_FILE}")
# endforeach()
qt5_create_translation(QM_FILES "${TRANSLATION_SOURCES}" translations/en_US.ts translations/ru_RU.ts)
# message(STATUS ${CMAKE_CURRENT_BINARY_DIR})
qt5_add_resources(TRANSLATIONQRC translations.qrc OPTIONS --root ${CMAKE_CURRENT_BINARY_DIR})
add_custom_target(translations
DEPENDS ${QM_FILES}
DEPENDS ${TRANSLATIONQRC}
VERBATIM
) )
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) if (BUILD_TRANSLATIONS)
qt_add_executable(checks-parser qt5_create_translation(QM_FILES "${TRANSLATION_SOURCES}" ${TS_FILES})
MANUAL_FINALIZATION configure_file(${CMAKE_CURRENT_SOURCE_DIR}/translations.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc COPYONLY)
${PROJECT_SOURCES} qt5_add_resources(TRANSLATIONQRC ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc)
) add_custom_target(translations ALL DEPENDS ${QM_FILES})
else() add_custom_target(resources ALL DEPENDS ${TRANSLATIONQRC})
if(ANDROID) add_dependencies(resources translations)
add_library(checks-parser SHARED
${PROJECT_SOURCES}
)
else()
add_executable(checks-parser
${PROJECT_SOURCES}
# ${QM_FILES}
${TRANSLATIONQRC}
)
endif()
endif() endif()
target_link_libraries(checks-parser PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) set(SOURCES "")
if (BUILD_TRANSLATIONS)
list(APPEND SOURCES ${TRANSLATIONQRC})
endif()
if(ANDROID)
add_library(checks-parser SHARED
${PROJECT_SOURCES}
${SOURCES}
)
else()
add_executable(checks-parser
${PROJECT_SOURCES}
${SOURCES}
)
endif()
target_link_libraries(checks-parser PRIVATE Qt5::Widgets)
target_include_directories(checks-parser PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/image_redactor) target_include_directories(checks-parser PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/image_redactor)
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER org.foxarmy.checks-parser)
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
if(${QT_VERSION} VERSION_LESS 6.1.0)
set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.checks-parser)
endif()
set_target_properties(checks-parser PROPERTIES set_target_properties(checks-parser PROPERTIES
${BUNDLE_ID_OPTION} ${BUNDLE_ID_OPTION}
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
@ -119,18 +104,16 @@ install(TARGETS checks-parser
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
) )
if(QT_VERSION_MAJOR EQUAL 6)
qt_finalize_executable(checks-parser)
endif()
if(WIN32) if(WIN32)
# set(OPENCV_MAP_IMPORTED_CONFIG "") #????
set(OpenCV_DIR /usr/local/lib/cmake/opencv4) set(OpenCV_DIR /usr/local/lib/cmake/opencv4)
# set (OpenCV_DIR /usr/lib/x86_64-linux-gnu/cmake/opencv4)
endif() endif()
find_package(OpenCV REQUIRED)
find_package(OpenCV REQUIRED COMPONENTS core imgproc imgcodecs)
include_directories( ${OpenCV_INCLUDE_DIRS} ) include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries(checks-parser PRIVATE -lzbar) target_link_libraries(checks-parser PRIVATE -lzbar)
target_link_libraries(checks-parser PRIVATE -ltesseract) target_link_libraries(checks-parser PRIVATE -ltesseract)
target_link_libraries(checks-parser PRIVATE -lcurl) target_link_libraries(checks-parser PRIVATE -lcurl)

View File

@ -54,6 +54,9 @@ int main(int argc, char *argv[]) {
} else { } else {
lang = QString::fromStdString("en_US"); lang = QString::fromStdString("en_US");
} }
std::cout << "Using locale: " << lang.toStdString() << std::endl;
translator.load(":/translation/" + lang + ".qm"); translator.load(":/translation/" + lang + ".qm");
a.installTranslator(&translator); a.installTranslator(&translator);

View File

@ -3,5 +3,4 @@
<file>en_US.qm</file> <file>en_US.qm</file>
<file>ru_RU.qm</file> <file>ru_RU.qm</file>
</qresource> </qresource>
<qresource prefix="/translations"/>
</RCC> </RCC>