cmake: PROJECT_SOURCE_DIR вместо CMAKE_SOURCE_DIR для add_subdirectory #5

Merged
gx merged 1 commits from fix/cmake-subproject-include-path into main 2026-06-03 07:20:08 +01:00
Owner

При сборке cuframes как подпроекта родительского CMake-проекта (через add_subdirectory(third_party/cuframes)) переменная CMAKE_SOURCE_DIR указывает на корень родителя, а не cuframes. Из-за этого target_include_directories cuframes получал неверный путь и компиляция падала с

fatal error: cuframes/cuframes.h: No such file or directory

PROJECT_SOURCE_DIR всегда резолвится в каталог ближайшего project(), то есть указывает на корень cuframes независимо от способа подключения.

Standalone-сборка ведёт себя как раньше — оба пути одинаковы.

Обнаружено при сборке gx/cuframes-composer Phase 1 MVP, где cuframes подключается как submodule + add_subdirectory.

При сборке cuframes как подпроекта родительского CMake-проекта (через `add_subdirectory(third_party/cuframes)`) переменная `CMAKE_SOURCE_DIR` указывает на корень родителя, а не cuframes. Из-за этого `target_include_directories` cuframes получал неверный путь и компиляция падала с ``` fatal error: cuframes/cuframes.h: No such file or directory ``` `PROJECT_SOURCE_DIR` всегда резолвится в каталог ближайшего `project()`, то есть указывает на корень cuframes независимо от способа подключения. Standalone-сборка ведёт себя как раньше — оба пути одинаковы. Обнаружено при сборке `gx/cuframes-composer` Phase 1 MVP, где cuframes подключается как submodule + add_subdirectory.
gx added 1 commit 2026-06-03 04:45:29 +01:00
cmake: использовать PROJECT_SOURCE_DIR вместо CMAKE_SOURCE_DIR
build / cmake build (CUDA 12.4, Ubuntu 22.04) (pull_request) Failing after 5m19s
build / ffmpeg filter patch (out-of-tree) (pull_request) Has been skipped
build / cmake build (CUDA 12.4, Ubuntu 22.04) (push) Failing after 4m14s
build / ffmpeg filter patch (out-of-tree) (push) Has been skipped
655649f4d8
При сборке cuframes как подпроекта родительского CMake-проекта
(add_subdirectory) CMAKE_SOURCE_DIR указывает на корень родителя,
а не cuframes. Из-за этого target_include_directories cuframes
получал неверный путь и компиляция падала с

  fatal error: cuframes/cuframes.h: No such file or directory

PROJECT_SOURCE_DIR резолвится в каталог project(), то есть всегда
указывает на корень cuframes независимо от способа подключения.

Standalone-сборка ведёт себя как раньше — оба пути одинаковы.
gx merged commit 655649f4d8 into main 2026-06-03 07:20:08 +01:00
gx deleted branch fix/cmake-subproject-include-path 2026-06-03 07:20:08 +01:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gx/cuframes#5