Files
yacreader/custom_widgets/CMakeLists.txt
2026-03-30 18:24:58 +02:00

115 lines
3.5 KiB
CMake

# Custom widgets for YACReader
# Shared widgets + app-specific variants
# Files shared between both YACReader and YACReaderLibrary
set(WIDGETS_COMMON_SOURCES
help_about_dialog.h
help_about_dialog.cpp
yacreader_field_edit.h
yacreader_field_edit.cpp
yacreader_field_plain_text_edit.h
yacreader_field_plain_text_edit.cpp
yacreader_options_dialog.h
yacreader_options_dialog.cpp
yacreader_spin_slider_widget.h
yacreader_spin_slider_widget.cpp
yacreader_tool_bar_stretch.h
yacreader_tool_bar_stretch.cpp
yacreader_busy_widget.h
yacreader_busy_widget.cpp
rounded_corners_dialog.h
rounded_corners_dialog.cpp
whats_new_dialog.h
whats_new_dialog.cpp
whats_new_controller.h
whats_new_controller.cpp
yacreader_3d_flow_config_widget.h
yacreader_3d_flow_config_widget.cpp
)
# macOS toolbar (shared by both apps)
if(APPLE)
list(APPEND WIDGETS_COMMON_SOURCES
yacreader_macosx_toolbar.h
yacreader_macosx_toolbar.mm
)
endif()
# --- custom_widgets_reader (YACReader-specific) ---
add_library(custom_widgets_reader STATIC ${WIDGETS_COMMON_SOURCES})
target_include_directories(custom_widgets_reader PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
yacreader_apply_build_options(custom_widgets_reader)
# App-specific theme.h needed because themable.h → theme_manager.h → theme.h
target_include_directories(custom_widgets_reader PRIVATE
${PROJECT_SOURCE_DIR}/YACReader/themes
)
target_compile_definitions(custom_widgets_reader PRIVATE YACREADER)
if(BUILD_NUMBER)
target_compile_definitions(custom_widgets_reader PRIVATE "BUILD_NUMBER=\"${BUILD_NUMBER}\"")
endif()
target_link_libraries(custom_widgets_reader PUBLIC
Qt6::Core
Qt6::Widgets
Qt6::Network
common_gui
rhi_flow_reader
QsLog
)
if(APPLE)
target_link_libraries(custom_widgets_reader PRIVATE
"-framework Foundation"
"-framework AppKit"
)
endif()
# --- custom_widgets_library (YACReaderLibrary-specific) ---
set(LIBRARY_EXTRA_WIDGETS
yacreader_search_line_edit.h
yacreader_search_line_edit.cpp
yacreader_titled_toolbar.h
yacreader_titled_toolbar.cpp
yacreader_table_view.h
yacreader_table_view.cpp
yacreader_sidebar.h
yacreader_sidebar.cpp
yacreader_library_list_widget.h
yacreader_library_list_widget.cpp
yacreader_library_item_widget.h
yacreader_library_item_widget.cpp
yacreader_treeview.h
yacreader_treeview.cpp
yacreader_cover_label.h
yacreader_cover_label.cpp
)
add_library(custom_widgets_library STATIC
${WIDGETS_COMMON_SOURCES}
${LIBRARY_EXTRA_WIDGETS}
)
target_include_directories(custom_widgets_library PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
yacreader_apply_build_options(custom_widgets_library)
# App-specific theme.h + YACReaderLibrary headers needed by macosx_toolbar
target_include_directories(custom_widgets_library PRIVATE
${PROJECT_SOURCE_DIR}/YACReaderLibrary/themes
${PROJECT_SOURCE_DIR}/YACReaderLibrary
${PROJECT_SOURCE_DIR}/YACReaderLibrary/db
)
target_compile_definitions(custom_widgets_library PRIVATE YACREADER_LIBRARY)
if(BUILD_NUMBER)
target_compile_definitions(custom_widgets_library PRIVATE "BUILD_NUMBER=\"${BUILD_NUMBER}\"")
endif()
target_link_libraries(custom_widgets_library PUBLIC
Qt6::Core
Qt6::Widgets
Qt6::Network
common_gui
rhi_flow_library
QsLog
)
if(APPLE)
target_link_libraries(custom_widgets_library PRIVATE
"-framework Foundation"
"-framework AppKit"
)
endif()