mirror of
https://github.com/YACReader/yacreader
synced 2026-04-12 15:49:53 -04:00
559 lines
20 KiB
CMake
559 lines
20 KiB
CMake
# YACReaderLibrary - Comic Library Manager
|
|
|
|
# --- library_common (shared with YACReaderLibraryServer) ---
|
|
add_library(library_common STATIC
|
|
library_creator.h
|
|
library_creator.cpp
|
|
package_manager.h
|
|
package_manager.cpp
|
|
bundle_creator.h
|
|
bundle_creator.cpp
|
|
initial_comic_info_extractor.h
|
|
initial_comic_info_extractor.cpp
|
|
xml_info_parser.h
|
|
xml_info_parser.cpp
|
|
xml_info_library_scanner.h
|
|
xml_info_library_scanner.cpp
|
|
yacreader_local_server.h
|
|
yacreader_local_server.cpp
|
|
comics_remover.h
|
|
comics_remover.cpp
|
|
yacreader_libraries.h
|
|
yacreader_libraries.cpp
|
|
comic_files_manager.h
|
|
comic_files_manager.cpp
|
|
ip_config_helper.h
|
|
ip_config_helper.cpp
|
|
libraries_update_coordinator.h
|
|
libraries_update_coordinator.cpp
|
|
)
|
|
target_include_directories(library_common PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/db
|
|
)
|
|
yacreader_apply_build_options(library_common)
|
|
target_link_libraries(library_common PUBLIC
|
|
Qt6::Core
|
|
Qt6::Core5Compat
|
|
Qt6::Network
|
|
Qt6::Sql
|
|
common_all
|
|
comic_backend
|
|
cbx_backend
|
|
db_helper
|
|
QsLog
|
|
)
|
|
|
|
# --- db_helper (database layer, shared with YACReaderLibraryServer) ---
|
|
add_library(db_helper STATIC
|
|
db_helper.h
|
|
db_helper.cpp
|
|
db/data_base_management.h
|
|
db/data_base_management.cpp
|
|
db/reading_list.h
|
|
db/reading_list.cpp
|
|
db/query_lexer.h
|
|
db/query_lexer.cpp
|
|
db/query_parser.h
|
|
db/query_parser.cpp
|
|
db/search_query.h
|
|
db/search_query.cpp
|
|
)
|
|
target_include_directories(db_helper PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/db
|
|
)
|
|
yacreader_apply_build_options(db_helper)
|
|
target_link_libraries(db_helper PUBLIC
|
|
Qt6::Core
|
|
Qt6::Sql
|
|
common_all
|
|
QsLog
|
|
)
|
|
|
|
# When BUILD_SERVER_STANDALONE=ON, only library_common and db_helper are built.
|
|
# The full YACReaderLibrary GUI app requires Qt6::Widgets and other full-build components.
|
|
if(NOT BUILD_SERVER_STANDALONE)
|
|
|
|
# --- YACReaderLibrary executable ---
|
|
qt_add_executable(YACReaderLibrary WIN32
|
|
main.cpp
|
|
library_window.h
|
|
library_window.cpp
|
|
library_window_actions.h
|
|
library_window_actions.cpp
|
|
create_library_dialog.h
|
|
create_library_dialog.cpp
|
|
add_library_dialog.h
|
|
add_library_dialog.cpp
|
|
rename_library_dialog.h
|
|
rename_library_dialog.cpp
|
|
properties_dialog.h
|
|
properties_dialog.cpp
|
|
options_dialog.h
|
|
options_dialog.cpp
|
|
export_library_dialog.h
|
|
export_library_dialog.cpp
|
|
import_library_dialog.h
|
|
import_library_dialog.cpp
|
|
export_comics_info_dialog.h
|
|
export_comics_info_dialog.cpp
|
|
import_comics_info_dialog.h
|
|
import_comics_info_dialog.cpp
|
|
server_config_dialog.h
|
|
server_config_dialog.cpp
|
|
comic_flow_widget.h
|
|
comic_flow_widget.cpp
|
|
no_libraries_widget.h
|
|
no_libraries_widget.cpp
|
|
import_widget.h
|
|
import_widget.cpp
|
|
trayicon_controller.h
|
|
trayicon_controller.cpp
|
|
yacreader_content_views_manager.h
|
|
yacreader_content_views_manager.cpp
|
|
yacreader_main_toolbar.h
|
|
yacreader_main_toolbar.cpp
|
|
comics_view.h
|
|
comics_view.cpp
|
|
comics_view_transition.h
|
|
comics_view_transition.cpp
|
|
classic_comics_view.h
|
|
classic_comics_view.cpp
|
|
grid_comics_view.h
|
|
grid_comics_view.cpp
|
|
no_search_results_widget.h
|
|
no_search_results_widget.cpp
|
|
folder_content_view.h
|
|
folder_content_view.cpp
|
|
recent_visibility_coordinator.h
|
|
recent_visibility_coordinator.cpp
|
|
library_comic_opener.h
|
|
library_comic_opener.cpp
|
|
db/comic_query_result_processor.h
|
|
db/comic_query_result_processor.cpp
|
|
db/folder_query_result_processor.h
|
|
db/folder_query_result_processor.cpp
|
|
db/folder_item.h
|
|
db/folder_item.cpp
|
|
db/folder_model.h
|
|
db/folder_model.cpp
|
|
db/comic_model.h
|
|
db/comic_model.cpp
|
|
db/comic_item.h
|
|
db/comic_item.cpp
|
|
db/reading_list_model.h
|
|
db/reading_list_model.cpp
|
|
db/reading_list_item.h
|
|
db/reading_list_item.cpp
|
|
yacreader_folders_view.h
|
|
yacreader_folders_view.cpp
|
|
yacreader_reading_lists_view.h
|
|
yacreader_reading_lists_view.cpp
|
|
add_label_dialog.h
|
|
add_label_dialog.cpp
|
|
yacreader_history_controller.h
|
|
yacreader_history_controller.cpp
|
|
yacreader_navigation_controller.h
|
|
yacreader_navigation_controller.cpp
|
|
empty_label_widget.h
|
|
empty_label_widget.cpp
|
|
empty_folder_widget.h
|
|
empty_folder_widget.cpp
|
|
empty_container_info.h
|
|
empty_container_info.cpp
|
|
empty_special_list.h
|
|
empty_special_list.cpp
|
|
empty_reading_list_widget.h
|
|
empty_reading_list_widget.cpp
|
|
info_comics_view.h
|
|
info_comics_view.cpp
|
|
yacreader_comics_selection_helper.h
|
|
yacreader_comics_selection_helper.cpp
|
|
yacreader_comic_info_helper.h
|
|
yacreader_comic_info_helper.cpp
|
|
current_comic_view_helper.h
|
|
current_comic_view_helper.cpp
|
|
# App-specific themes + shared theme_manager (depends on app theme.h)
|
|
themes/theme.h
|
|
themes/theme_factory.h
|
|
themes/theme_factory.cpp
|
|
${PROJECT_SOURCE_DIR}/common/themes/theme_manager.h
|
|
${PROJECT_SOURCE_DIR}/common/themes/theme_manager.cpp
|
|
)
|
|
yacreader_apply_build_options(YACReaderLibrary)
|
|
|
|
# macOS-specific sources
|
|
if(APPLE)
|
|
target_sources(YACReaderLibrary PRIVATE
|
|
trayhandler.h
|
|
trayhandler.mm
|
|
)
|
|
endif()
|
|
|
|
target_include_directories(YACReaderLibrary PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/db
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes
|
|
)
|
|
|
|
target_compile_definitions(YACReaderLibrary PRIVATE
|
|
SERVER_RELEASE
|
|
YACREADER_LIBRARY
|
|
)
|
|
|
|
# Resources
|
|
set(yacreaderlibrary_image_files
|
|
${PROJECT_SOURCE_DIR}/images/shortcuts/accept_shortcut.svg
|
|
${PROJECT_SOURCE_DIR}/images/shortcuts/clear_shortcut.svg
|
|
${PROJECT_SOURCE_DIR}/images/comic_vine/downArrow.svg
|
|
${PROJECT_SOURCE_DIR}/images/comic_vine/nextPage.svg
|
|
${PROJECT_SOURCE_DIR}/images/comic_vine/previousPage.svg
|
|
${PROJECT_SOURCE_DIR}/images/comic_vine/radioChecked.svg
|
|
${PROJECT_SOURCE_DIR}/images/comic_vine/radioUnchecked.svg
|
|
${PROJECT_SOURCE_DIR}/images/comic_vine/rowDown.svg
|
|
${PROJECT_SOURCE_DIR}/images/comic_vine/rowUp.svg
|
|
${PROJECT_SOURCE_DIR}/images/comic_vine/upArrow.svg
|
|
${PROJECT_SOURCE_DIR}/images/comic_vine/checkBoxTick.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/asignNumber.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/big_size_grid_zoom.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/editComic.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/getInfo.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/hideComicFlow.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/openInYACReader.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/selectAll.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/setReadButton.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/setUnread.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/showMarks.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/small_size_grid_zoom.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/trash.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/show_comic_info.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/setManga.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/setNormal.svg
|
|
${PROJECT_SOURCE_DIR}/images/comics_view_toolbar/showRecentIndicator.svg
|
|
${PROJECT_SOURCE_DIR}/images/defaultCover.png
|
|
${PROJECT_SOURCE_DIR}/images/library_dialogs/edit.svg
|
|
${PROJECT_SOURCE_DIR}/images/empty_container/empty_current_readings.svg
|
|
${PROJECT_SOURCE_DIR}/images/empty_container/empty_favorites.svg
|
|
${PROJECT_SOURCE_DIR}/images/empty_container/empty_folder.svg
|
|
${PROJECT_SOURCE_DIR}/images/empty_container/empty_label.svg
|
|
${PROJECT_SOURCE_DIR}/images/empty_container/empty_reading_list.svg
|
|
${PROJECT_SOURCE_DIR}/images/library_dialogs/exportComicsInfo.svg
|
|
${PROJECT_SOURCE_DIR}/images/library_dialogs/exportLibrary.svg
|
|
${PROJECT_SOURCE_DIR}/images/find_folder.svg
|
|
${PROJECT_SOURCE_DIR}/images/flow1.png
|
|
${PROJECT_SOURCE_DIR}/images/flow2.png
|
|
${PROJECT_SOURCE_DIR}/images/flow3.png
|
|
${PROJECT_SOURCE_DIR}/images/flow4.png
|
|
${PROJECT_SOURCE_DIR}/images/flow5.png
|
|
${PROJECT_SOURCE_DIR}/images/glowLine.svg
|
|
${PROJECT_SOURCE_DIR}/images/metadata_dialog/loadCustomCover.svg
|
|
${PROJECT_SOURCE_DIR}/images/import/coversToggle.svg
|
|
${PROJECT_SOURCE_DIR}/images/icon-new.svg
|
|
${PROJECT_SOURCE_DIR}/images/iconLibrary.png
|
|
${PROJECT_SOURCE_DIR}/images/import/importBottomCoversDecoration.svg
|
|
${PROJECT_SOURCE_DIR}/images/library_dialogs/importComicsInfo.svg
|
|
${PROJECT_SOURCE_DIR}/images/import/importingIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/library_dialogs/importLibrary.svg
|
|
${PROJECT_SOURCE_DIR}/images/import/importTopCoversDecoration.svg
|
|
${PROJECT_SOURCE_DIR}/images/main_toolbar/back.svg
|
|
${PROJECT_SOURCE_DIR}/images/main_toolbar/forward.svg
|
|
${PROJECT_SOURCE_DIR}/images/main_toolbar/settings.svg
|
|
${PROJECT_SOURCE_DIR}/images/main_toolbar/server.svg
|
|
${PROJECT_SOURCE_DIR}/images/main_toolbar/help.svg
|
|
${PROJECT_SOURCE_DIR}/images/main_toolbar/fullscreen.svg
|
|
${PROJECT_SOURCE_DIR}/images/main_toolbar/flow.svg
|
|
${PROJECT_SOURCE_DIR}/images/main_toolbar/grid.svg
|
|
${PROJECT_SOURCE_DIR}/images/main_toolbar/info.svg
|
|
${PROJECT_SOURCE_DIR}/images/main_toolbar/divider.svg
|
|
${PROJECT_SOURCE_DIR}/images/menus_icons/editIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/menus_icons/exportComicsInfoIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/menus_icons/exportLibraryIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/menus_icons/importComicsInfoIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/menus_icons/importLibraryIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/menus_icons/removeLibraryIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/menus_icons/updateLibraryIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/menus_icons/open_containing_folder.svg
|
|
${PROJECT_SOURCE_DIR}/images/menus_icons/update_current_folder.svg
|
|
${PROJECT_SOURCE_DIR}/images/library_dialogs/new.svg
|
|
${PROJECT_SOURCE_DIR}/images/metadata_dialog/nextCoverPage.svg
|
|
${PROJECT_SOURCE_DIR}/images/noLibrariesIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/noLibrariesLine.svg
|
|
${PROJECT_SOURCE_DIR}/images/notCover.png
|
|
${PROJECT_SOURCE_DIR}/images/library_dialogs/openLibrary.svg
|
|
${PROJECT_SOURCE_DIR}/images/metadata_dialog/previousCoverPage.svg
|
|
${PROJECT_SOURCE_DIR}/images/readingRibbon.svg
|
|
${PROJECT_SOURCE_DIR}/images/readRibbon.svg
|
|
${PROJECT_SOURCE_DIR}/images/metadata_dialog/resetCover.svg
|
|
${PROJECT_SOURCE_DIR}/images/search_result.svg
|
|
${PROJECT_SOURCE_DIR}/images/serverConfigBackground.svg
|
|
${PROJECT_SOURCE_DIR}/images/shortcuts/shortcuts_group_comics.svg
|
|
${PROJECT_SOURCE_DIR}/images/shortcuts/shortcuts_group_folders.svg
|
|
${PROJECT_SOURCE_DIR}/images/shortcuts/shortcuts_group_general.svg
|
|
${PROJECT_SOURCE_DIR}/images/shortcuts/shortcuts_group_libraries.svg
|
|
${PROJECT_SOURCE_DIR}/images/shortcuts/shortcuts_group_mglass.svg
|
|
${PROJECT_SOURCE_DIR}/images/shortcuts/shortcuts_group_page.svg
|
|
${PROJECT_SOURCE_DIR}/images/shortcuts/shortcuts_group_reading.svg
|
|
${PROJECT_SOURCE_DIR}/images/shortcuts/shortcuts_group_visualization.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/libraryIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/setRoot.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/expand.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/colapse.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/newLibraryIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/openLibraryIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/addNew_sidebar.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/delete_sidebar.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/addLabelIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/renameListIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/branch-closed.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/branch-open.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/folder.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/folder_finished.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/folder_read_overlay.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/libraryIconSelected.svg
|
|
${PROJECT_SOURCE_DIR}/images/sidebar/libraryOptions.svg
|
|
${PROJECT_SOURCE_DIR}/images/import/updatingIcon.svg
|
|
${PROJECT_SOURCE_DIR}/images/custom_dialog/custom_close_button.svg
|
|
${PROJECT_SOURCE_DIR}/images/whats_new/whatsnew_header.svg
|
|
${PROJECT_SOURCE_DIR}/images/lists/default_0.svg
|
|
${PROJECT_SOURCE_DIR}/images/lists/default_1.svg
|
|
${PROJECT_SOURCE_DIR}/images/lists/default_2.svg
|
|
${PROJECT_SOURCE_DIR}/images/lists/label_template.svg
|
|
${PROJECT_SOURCE_DIR}/images/lists/list.svg
|
|
${PROJECT_SOURCE_DIR}/images/clearSearchNew.svg
|
|
${PROJECT_SOURCE_DIR}/images/iconSearchNew.svg
|
|
)
|
|
set(yacreaderlibrary_file_files
|
|
${PROJECT_SOURCE_DIR}/files/about.html
|
|
${PROJECT_SOURCE_DIR}/files/helpYACReaderLibrary.html
|
|
)
|
|
set(yacreaderlibrary_file_files_es
|
|
${PROJECT_SOURCE_DIR}/files/about_es_ES.html
|
|
${PROJECT_SOURCE_DIR}/files/helpYACReaderLibrary_es_ES.html
|
|
)
|
|
set_source_files_properties(
|
|
${PROJECT_SOURCE_DIR}/files/about_es_ES.html
|
|
PROPERTIES QT_RESOURCE_ALIAS "about.html"
|
|
)
|
|
set_source_files_properties(
|
|
${PROJECT_SOURCE_DIR}/files/helpYACReaderLibrary_es_ES.html
|
|
PROPERTIES QT_RESOURCE_ALIAS "helpYACReaderLibrary.html"
|
|
)
|
|
set(yacreaderlibrary_qml_files
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/GridComicsView.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/FolderContentView.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/FlowView.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/InfoTick.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/InfoFavorites.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/InfoRating.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/InfoComicsView.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/tick.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/reading.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/star.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/page.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/info-indicator.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/info-shadow.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/info-top-shadow.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/ComicInfoView.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/info-favorites.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/info-rating.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/info-tag.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/info-tick.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/prerendered_cover_shadow.png
|
|
)
|
|
set(yacreaderlibrary_qml_translation_files
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/GridComicsView.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/FolderContentView.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/FlowView.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/InfoTick.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/InfoFavorites.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/InfoRating.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/InfoComicsView.qml
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/ComicInfoView.qml
|
|
)
|
|
set(yacreaderlibrary_theme_files
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_classic.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_light.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_light1.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_light2.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_light3.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_light4.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_light5.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_dark.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_dark1.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_dark2.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_dark3.json
|
|
${CMAKE_CURRENT_SOURCE_DIR}/themes/builtin_dark4.json
|
|
)
|
|
set(yacreaderlibrary_common_theme_image_files
|
|
${PROJECT_SOURCE_DIR}/images/appearance_config/theme-mode-system.svg
|
|
${PROJECT_SOURCE_DIR}/images/appearance_config/theme-mode-light.svg
|
|
${PROJECT_SOURCE_DIR}/images/appearance_config/theme-mode-dark.svg
|
|
${PROJECT_SOURCE_DIR}/images/appearance_config/theme-mode-custom.svg
|
|
)
|
|
|
|
qt_add_resources(YACReaderLibrary "yacreaderlibrary_images"
|
|
PREFIX "/"
|
|
BASE "${PROJECT_SOURCE_DIR}"
|
|
FILES
|
|
${yacreaderlibrary_image_files}
|
|
)
|
|
qt_add_resources(YACReaderLibrary "yacreaderlibrary_files"
|
|
PREFIX "/files"
|
|
BASE "${PROJECT_SOURCE_DIR}/files"
|
|
FILES
|
|
${yacreaderlibrary_file_files}
|
|
)
|
|
qt_add_resources(YACReaderLibrary "yacreaderlibrary_files_es"
|
|
PREFIX "/files"
|
|
LANG "es_ES"
|
|
BASE "${PROJECT_SOURCE_DIR}/files"
|
|
FILES
|
|
${yacreaderlibrary_file_files_es}
|
|
)
|
|
qt_add_resources(YACReaderLibrary "yacreaderlibrary_qml"
|
|
PREFIX "/"
|
|
BASE "${CMAKE_CURRENT_SOURCE_DIR}"
|
|
FILES
|
|
${yacreaderlibrary_qml_files}
|
|
)
|
|
qt_add_resources(YACReaderLibrary "yacreaderlibrary_themes"
|
|
PREFIX "/themes"
|
|
BASE "${CMAKE_CURRENT_SOURCE_DIR}/themes"
|
|
FILES
|
|
${yacreaderlibrary_theme_files}
|
|
)
|
|
qt_add_resources(YACReaderLibrary "yacreaderlibrary_common_theme_images"
|
|
PREFIX "/"
|
|
BASE "${PROJECT_SOURCE_DIR}"
|
|
FILES
|
|
${yacreaderlibrary_common_theme_image_files}
|
|
)
|
|
if(WIN32 OR (UNIX AND NOT APPLE))
|
|
set(yacreaderlibrary_windows_resource_files
|
|
${PROJECT_SOURCE_DIR}/images/viewer_toolbar/close.svg
|
|
${CMAKE_CURRENT_SOURCE_DIR}/icon.ico
|
|
)
|
|
set_source_files_properties(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/icon.ico
|
|
PROPERTIES QT_RESOURCE_ALIAS "icon.ico"
|
|
)
|
|
qt_add_resources(YACReaderLibrary "yacreaderlibrary_windows_resources"
|
|
PREFIX "/"
|
|
BASE "${PROJECT_SOURCE_DIR}"
|
|
FILES
|
|
${yacreaderlibrary_windows_resource_files}
|
|
)
|
|
endif()
|
|
if(APPLE)
|
|
qt_add_resources(YACReaderLibrary "yacreaderlibrary_macos_resources"
|
|
PREFIX "/"
|
|
BASE "${CMAKE_CURRENT_SOURCE_DIR}"
|
|
FILES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/macostrayicon.svg
|
|
)
|
|
endif()
|
|
|
|
# Translations
|
|
qt_add_translations(YACReaderLibrary
|
|
SOURCE_TARGETS
|
|
YACReaderLibrary
|
|
# Keep full C++ extraction via SOURCE_TARGETS and add the QML files directly
|
|
# so qsTr() strings in QML are collected too.
|
|
TS_FILES
|
|
yacreaderlibrary_es.ts
|
|
yacreaderlibrary_ru.ts
|
|
yacreaderlibrary_pt.ts
|
|
yacreaderlibrary_fr.ts
|
|
yacreaderlibrary_nl.ts
|
|
yacreaderlibrary_tr.ts
|
|
yacreaderlibrary_de.ts
|
|
yacreaderlibrary_zh_CN.ts
|
|
yacreaderlibrary_zh_TW.ts
|
|
yacreaderlibrary_zh_HK.ts
|
|
yacreaderlibrary_it.ts
|
|
yacreaderlibrary_source.ts
|
|
yacreaderlibrary_en.ts
|
|
SOURCES
|
|
${yacreaderlibrary_qml_translation_files}
|
|
)
|
|
|
|
target_link_libraries(YACReaderLibrary PRIVATE
|
|
Qt6::Core
|
|
Qt6::Gui
|
|
Qt6::GuiPrivate
|
|
Qt6::Network
|
|
Qt6::Widgets
|
|
Qt6::Sql
|
|
Qt6::Svg
|
|
Qt6::Quick
|
|
Qt6::Qml
|
|
Qt6::QuickWidgets
|
|
Qt6::QuickControls2
|
|
Qt6::Core5Compat
|
|
library_common
|
|
db_helper
|
|
comic_backend
|
|
common_gui
|
|
rhi_flow_library
|
|
custom_widgets_library
|
|
shortcuts_library
|
|
server
|
|
comic_vine
|
|
cbx_backend
|
|
concurrent_queue
|
|
worker
|
|
QsLog
|
|
QrCode
|
|
KDSignalThrottler
|
|
)
|
|
|
|
# Platform-specific
|
|
if(WIN32)
|
|
target_sources(YACReaderLibrary PRIVATE icon.rc)
|
|
target_link_libraries(YACReaderLibrary PRIVATE oleaut32 ole32 shell32 user32)
|
|
endif()
|
|
|
|
if(APPLE)
|
|
target_sources(YACReaderLibrary PRIVATE YACReaderLibrary.icns)
|
|
set_source_files_properties(YACReaderLibrary.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
|
|
set_target_properties(YACReaderLibrary PROPERTIES
|
|
MACOSX_BUNDLE TRUE
|
|
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist"
|
|
MACOSX_BUNDLE_GUI_IDENTIFIER "com.yacreader.YACReaderLibrary"
|
|
MACOSX_BUNDLE_BUNDLE_NAME "YACReaderLibrary"
|
|
)
|
|
target_link_libraries(YACReaderLibrary PRIVATE
|
|
"-framework Foundation"
|
|
"-framework ApplicationServices"
|
|
"-framework AppKit"
|
|
)
|
|
endif()
|
|
|
|
# Linux install
|
|
if(UNIX AND NOT APPLE)
|
|
target_compile_definitions(YACReaderLibrary PRIVATE
|
|
"LIBDIR=\"${CMAKE_INSTALL_FULL_LIBDIR}\""
|
|
"DATADIR=\"${CMAKE_INSTALL_FULL_DATADIR}\""
|
|
"BINDIR=\"${CMAKE_INSTALL_FULL_BINDIR}\"")
|
|
|
|
install(TARGETS YACReaderLibrary RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
install(FILES
|
|
"${PROJECT_SOURCE_DIR}/YACReaderLibrary.1"
|
|
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
|
install(FILES
|
|
"${PROJECT_SOURCE_DIR}/YACReaderLibrary.desktop"
|
|
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
|
|
install(FILES
|
|
"${PROJECT_SOURCE_DIR}/YACReaderLibrary.svg"
|
|
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps)
|
|
|
|
# Server web files (for bundled server mode)
|
|
if(NOT BUILD_SERVER_STANDALONE)
|
|
install(DIRECTORY "${PROJECT_SOURCE_DIR}/release/server"
|
|
DESTINATION ${CMAKE_INSTALL_DATADIR}/yacreader)
|
|
endif()
|
|
endif()
|
|
|
|
endif() # NOT BUILD_SERVER_STANDALONE (YACReaderLibrary executable)
|