From 8cc9ffc35582c20a8f680daae905618395b5a837 Mon Sep 17 00:00:00 2001 From: luisangelsm Date: Mon, 30 Mar 2026 15:56:27 +0200 Subject: [PATCH] Sanitize CMake source directory references --- CMakeLists.txt | 2 +- YACReader/CMakeLists.txt | 6 +++--- YACReaderLibrary/CMakeLists.txt | 6 +++--- YACReaderLibrary/comic_vine/CMakeLists.txt | 4 ++-- YACReaderLibraryServer/CMakeLists.txt | 4 ++-- cmake/Findpdfium.cmake | 12 +++++++----- cmake/Findunarr.cmake | 12 +++++++----- custom_widgets/CMakeLists.txt | 8 ++++---- shortcuts_management/CMakeLists.txt | 4 ++-- 9 files changed, 31 insertions(+), 27 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e000cfe6..095fd242 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ endif() # Install paths include(GNUInstallDirs) -list(PREPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") +list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") # Compiler options (MSVC flags) include(cmake/CompilerOptions.cmake) diff --git a/YACReader/CMakeLists.txt b/YACReader/CMakeLists.txt index dd20fed2..070fb9dd 100644 --- a/YACReader/CMakeLists.txt +++ b/YACReader/CMakeLists.txt @@ -42,8 +42,8 @@ qt_add_executable(YACReader WIN32 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 + ${PROJECT_SOURCE_DIR}/common/themes/theme_manager.h + ${PROJECT_SOURCE_DIR}/common/themes/theme_manager.cpp ) target_include_directories(YACReader PRIVATE @@ -57,7 +57,7 @@ target_compile_definitions(YACReader PRIVATE YACREADER) 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") qt_add_resources(yacreader_themes_rcc "${CMAKE_CURRENT_SOURCE_DIR}/themes/themes.qrc") -qt_add_resources(yacreader_common_images_rcc "${CMAKE_SOURCE_DIR}/common/themes/appearance_config_images.qrc") +qt_add_resources(yacreader_common_images_rcc "${PROJECT_SOURCE_DIR}/common/themes/appearance_config_images.qrc") target_sources(YACReader PRIVATE ${yacreader_images_rcc} ${yacreader_files_rcc} diff --git a/YACReaderLibrary/CMakeLists.txt b/YACReaderLibrary/CMakeLists.txt index 97c87db3..a86629fa 100644 --- a/YACReaderLibrary/CMakeLists.txt +++ b/YACReaderLibrary/CMakeLists.txt @@ -176,8 +176,8 @@ qt_add_executable(YACReaderLibrary WIN32 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 + ${PROJECT_SOURCE_DIR}/common/themes/theme_manager.h + ${PROJECT_SOURCE_DIR}/common/themes/theme_manager.cpp ) # macOS-specific sources @@ -204,7 +204,7 @@ qt_add_resources(yacreaderlibrary_images_rcc "${CMAKE_CURRENT_SOURCE_DIR}/images qt_add_resources(yacreaderlibrary_files_rcc "${CMAKE_CURRENT_SOURCE_DIR}/files.qrc") qt_add_resources(yacreaderlibrary_qml_rcc "${CMAKE_CURRENT_SOURCE_DIR}/qml.qrc") qt_add_resources(yacreaderlibrary_themes_rcc "${CMAKE_CURRENT_SOURCE_DIR}/themes/themes.qrc") -qt_add_resources(yacreaderlibrary_common_images_rcc "${CMAKE_SOURCE_DIR}/common/themes/appearance_config_images.qrc") +qt_add_resources(yacreaderlibrary_common_images_rcc "${PROJECT_SOURCE_DIR}/common/themes/appearance_config_images.qrc") target_sources(YACReaderLibrary PRIVATE ${yacreaderlibrary_images_rcc} ${yacreaderlibrary_files_rcc} diff --git a/YACReaderLibrary/comic_vine/CMakeLists.txt b/YACReaderLibrary/comic_vine/CMakeLists.txt index e6ea50d6..cc0ca1a1 100644 --- a/YACReaderLibrary/comic_vine/CMakeLists.txt +++ b/YACReaderLibrary/comic_vine/CMakeLists.txt @@ -56,8 +56,8 @@ target_include_directories(comic_vine PUBLIC ) # App-specific theme.h needed for themable.h → theme_manager.h → theme.h chain target_include_directories(comic_vine PRIVATE - ${CMAKE_SOURCE_DIR}/YACReaderLibrary/themes - ${CMAKE_SOURCE_DIR}/YACReaderLibrary/db + ${PROJECT_SOURCE_DIR}/YACReaderLibrary/themes + ${PROJECT_SOURCE_DIR}/YACReaderLibrary/db ) target_link_libraries(comic_vine PUBLIC Qt::Core diff --git a/YACReaderLibraryServer/CMakeLists.txt b/YACReaderLibraryServer/CMakeLists.txt index 94081193..42b5a27b 100644 --- a/YACReaderLibraryServer/CMakeLists.txt +++ b/YACReaderLibraryServer/CMakeLists.txt @@ -10,8 +10,8 @@ qt_add_executable(YACReaderLibraryServer target_include_directories(YACReaderLibraryServer PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/YACReaderLibrary - ${CMAKE_SOURCE_DIR}/YACReaderLibrary/db + ${PROJECT_SOURCE_DIR}/YACReaderLibrary + ${PROJECT_SOURCE_DIR}/YACReaderLibrary/db ) target_compile_definitions(YACReaderLibraryServer PRIVATE diff --git a/cmake/Findpdfium.cmake b/cmake/Findpdfium.cmake index 17689ecf..52699106 100644 --- a/cmake/Findpdfium.cmake +++ b/cmake/Findpdfium.cmake @@ -6,11 +6,13 @@ set(pdfium_TARGET "") set(pdfium_INCLUDE_DIRS "") set(pdfium_LIBRARIES "") +get_filename_component(_pdfium_bundled_root "${CMAKE_CURRENT_LIST_DIR}/../dependencies/pdfium" ABSOLUTE) + if(NOT TARGET pdfium::pdfium AND WIN32) yacreader_get_windows_arch_subdir(_pdfium_arch) - set(_pdfium_include_dir "${CMAKE_SOURCE_DIR}/dependencies/pdfium/win/public") - set(_pdfium_implib "${CMAKE_SOURCE_DIR}/dependencies/pdfium/win/${_pdfium_arch}/pdfium.lib") - set(_pdfium_dll "${CMAKE_SOURCE_DIR}/dependencies/pdfium/win/${_pdfium_arch}/pdfium.dll") + set(_pdfium_include_dir "${_pdfium_bundled_root}/win/public") + set(_pdfium_implib "${_pdfium_bundled_root}/win/${_pdfium_arch}/pdfium.lib") + set(_pdfium_dll "${_pdfium_bundled_root}/win/${_pdfium_arch}/pdfium.dll") if(EXISTS "${_pdfium_include_dir}/fpdfview.h" AND EXISTS "${_pdfium_implib}" AND EXISTS "${_pdfium_dll}") yacreader_add_imported_library(pdfium::pdfium TYPE SHARED @@ -23,8 +25,8 @@ if(NOT TARGET pdfium::pdfium AND WIN32) endif() if(NOT TARGET pdfium::pdfium AND APPLE) - set(_pdfium_include_dir "${CMAKE_SOURCE_DIR}/dependencies/pdfium/macx/include") - set(_pdfium_library "${CMAKE_SOURCE_DIR}/dependencies/pdfium/macx/bin/libpdfium.a") + set(_pdfium_include_dir "${_pdfium_bundled_root}/macx/include") + set(_pdfium_library "${_pdfium_bundled_root}/macx/bin/libpdfium.a") if(EXISTS "${_pdfium_include_dir}/fpdfview.h" AND EXISTS "${_pdfium_library}") yacreader_add_imported_library(pdfium::pdfium TYPE STATIC diff --git a/cmake/Findunarr.cmake b/cmake/Findunarr.cmake index 4aa9ef0a..aa0cb170 100644 --- a/cmake/Findunarr.cmake +++ b/cmake/Findunarr.cmake @@ -6,9 +6,11 @@ set(unarr_TARGET "") set(unarr_INCLUDE_DIRS "") set(unarr_LIBRARIES "") +get_filename_component(_unarr_bundled_root "${CMAKE_CURRENT_LIST_DIR}/../dependencies/unarr" ABSOLUTE) + if(NOT TARGET unarr::unarr AND APPLE) - set(_unarr_include_dir "${CMAKE_SOURCE_DIR}/dependencies/unarr/macx") - set(_unarr_library "${CMAKE_SOURCE_DIR}/dependencies/unarr/macx/libunarr.a") + set(_unarr_include_dir "${_unarr_bundled_root}/macx") + set(_unarr_library "${_unarr_bundled_root}/macx/libunarr.a") if(EXISTS "${_unarr_include_dir}/unarr.h" AND EXISTS "${_unarr_library}") yacreader_add_imported_library(unarr::unarr TYPE STATIC @@ -22,9 +24,9 @@ endif() if(NOT TARGET unarr::unarr AND WIN32) yacreader_get_windows_arch_subdir(_unarr_arch) - set(_unarr_include_dir "${CMAKE_SOURCE_DIR}/dependencies/unarr/win") - set(_unarr_implib "${CMAKE_SOURCE_DIR}/dependencies/unarr/win/${_unarr_arch}/unarr.lib") - set(_unarr_dll "${CMAKE_SOURCE_DIR}/dependencies/unarr/win/${_unarr_arch}/unarr.dll") + set(_unarr_include_dir "${_unarr_bundled_root}/win") + set(_unarr_implib "${_unarr_bundled_root}/win/${_unarr_arch}/unarr.lib") + set(_unarr_dll "${_unarr_bundled_root}/win/${_unarr_arch}/unarr.dll") if(EXISTS "${_unarr_include_dir}/unarr.h" AND EXISTS "${_unarr_implib}" AND EXISTS "${_unarr_dll}") yacreader_add_imported_library(unarr::unarr TYPE SHARED diff --git a/custom_widgets/CMakeLists.txt b/custom_widgets/CMakeLists.txt index 4e5b6f1d..aaa7ec25 100644 --- a/custom_widgets/CMakeLists.txt +++ b/custom_widgets/CMakeLists.txt @@ -40,7 +40,7 @@ add_library(custom_widgets_reader STATIC ${WIDGETS_COMMON_SOURCES}) target_include_directories(custom_widgets_reader PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) # App-specific theme.h needed because themable.h → theme_manager.h → theme.h target_include_directories(custom_widgets_reader PRIVATE - ${CMAKE_SOURCE_DIR}/YACReader/themes + ${PROJECT_SOURCE_DIR}/YACReader/themes ) target_compile_definitions(custom_widgets_reader PRIVATE YACREADER) target_link_libraries(custom_widgets_reader PUBLIC @@ -85,9 +85,9 @@ add_library(custom_widgets_library STATIC target_include_directories(custom_widgets_library PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) # App-specific theme.h + YACReaderLibrary headers needed by macosx_toolbar target_include_directories(custom_widgets_library PRIVATE - ${CMAKE_SOURCE_DIR}/YACReaderLibrary/themes - ${CMAKE_SOURCE_DIR}/YACReaderLibrary - ${CMAKE_SOURCE_DIR}/YACReaderLibrary/db + ${PROJECT_SOURCE_DIR}/YACReaderLibrary/themes + ${PROJECT_SOURCE_DIR}/YACReaderLibrary + ${PROJECT_SOURCE_DIR}/YACReaderLibrary/db ) target_compile_definitions(custom_widgets_library PRIVATE YACREADER_LIBRARY) target_link_libraries(custom_widgets_library PUBLIC diff --git a/shortcuts_management/CMakeLists.txt b/shortcuts_management/CMakeLists.txt index a658e412..4cbbd721 100644 --- a/shortcuts_management/CMakeLists.txt +++ b/shortcuts_management/CMakeLists.txt @@ -19,7 +19,7 @@ add_library(shortcuts_reader STATIC ${SHORTCUTS_SOURCES}) target_include_directories(shortcuts_reader PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) # App-specific theme.h needed because themable.h → theme_manager.h → theme.h target_include_directories(shortcuts_reader PRIVATE - ${CMAKE_SOURCE_DIR}/YACReader/themes + ${PROJECT_SOURCE_DIR}/YACReader/themes ) target_compile_definitions(shortcuts_reader PRIVATE YACREADER) target_link_libraries(shortcuts_reader PUBLIC Qt::Core Qt::Widgets yr_global common_gui) @@ -28,7 +28,7 @@ target_link_libraries(shortcuts_reader PUBLIC Qt::Core Qt::Widgets yr_global com add_library(shortcuts_library STATIC ${SHORTCUTS_SOURCES}) target_include_directories(shortcuts_library PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(shortcuts_library PRIVATE - ${CMAKE_SOURCE_DIR}/YACReaderLibrary/themes + ${PROJECT_SOURCE_DIR}/YACReaderLibrary/themes ) target_compile_definitions(shortcuts_library PRIVATE YACREADER_LIBRARY) target_link_libraries(shortcuts_library PUBLIC Qt::Core Qt::Widgets yr_global common_gui)