Migrate the build system to cmake

This commit is contained in:
Luis Ángel San Martín Rodríguez
2026-02-25 09:19:39 +01:00
parent 5f8951ac09
commit 865020fe11
63 changed files with 1859 additions and 2060 deletions

124
YACReader/CMakeLists.txt Normal file
View File

@ -0,0 +1,124 @@
# YACReader - Comic Viewer
qt_add_executable(YACReader WIN32
configuration.h
configuration.cpp
goto_dialog.h
goto_dialog.cpp
magnifying_glass.h
magnifying_glass.cpp
main_window_viewer.h
main_window_viewer.cpp
continuous_page_widget.h
continuous_page_widget.cpp
mouse_handler.h
mouse_handler.cpp
viewer.h
viewer.cpp
options_dialog.h
options_dialog.cpp
bookmarks_dialog.h
bookmarks_dialog.cpp
render.h
render.cpp
translator.h
translator.cpp
goto_flow_widget.h
goto_flow_widget.cpp
page_label_widget.h
page_label_widget.cpp
goto_flow_toolbar.h
goto_flow_toolbar.cpp
width_slider.h
width_slider.cpp
notifications_label_widget.h
notifications_label_widget.cpp
yacreader_local_client.h
yacreader_local_client.cpp
main.cpp
# App-specific themes + shared theme_manager (depends on app theme.h)
themes/theme.h
themes/theme_factory.h
themes/theme_factory.cpp
${CMAKE_SOURCE_DIR}/common/themes/theme_manager.h
${CMAKE_SOURCE_DIR}/common/themes/theme_manager.cpp
)
target_include_directories(YACReader PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/themes
)
target_compile_definitions(YACReader PRIVATE YACREADER)
# Resources
qt_add_resources(yacreader_images_rcc "${CMAKE_CURRENT_SOURCE_DIR}/yacreader_images.qrc")
qt_add_resources(yacreader_files_rcc "${CMAKE_CURRENT_SOURCE_DIR}/yacreader_files.qrc")
target_sources(YACReader PRIVATE
${yacreader_images_rcc}
${yacreader_files_rcc}
)
# Translations
qt_add_translations(YACReader
TS_FILES
yacreader_es.ts
yacreader_fr.ts
yacreader_ru.ts
yacreader_pt.ts
yacreader_nl.ts
yacreader_tr.ts
yacreader_de.ts
yacreader_zh_CN.ts
yacreader_zh_TW.ts
yacreader_zh_HK.ts
yacreader_it.ts
yacreader_en.ts
)
target_link_libraries(YACReader PRIVATE
Qt::Core
Qt::Gui
Qt::GuiPrivate
Qt::Network
Qt::Widgets
Qt::Multimedia
Qt::Svg
Qt::Core5Compat
comic_backend
common_gui
rhi_flow_reader
custom_widgets_reader
shortcuts_reader
cbx_backend
QsLog
)
# Platform-specific
if(WIN32)
target_sources(YACReader PRIVATE icon.rc)
target_link_libraries(YACReader PRIVATE oleaut32 ole32 shell32 user32)
endif()
if(APPLE)
target_sources(YACReader PRIVATE YACReader.icns)
set_source_files_properties(YACReader.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
set_target_properties(YACReader PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist"
MACOSX_BUNDLE_GUI_IDENTIFIER "com.yacreader.YACReader"
MACOSX_BUNDLE_BUNDLE_NAME "YACReader"
)
target_link_libraries(YACReader PRIVATE
"-framework Foundation"
"-framework ApplicationServices"
"-framework AppKit"
)
endif()
# Linux install
if(UNIX AND NOT APPLE)
target_compile_definitions(YACReader PRIVATE
"DATADIR=\"${CMAKE_INSTALL_FULL_DATADIR}\"")
install(TARGETS YACReader RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()