CMake Path Length on Linux

Hello,

Very new to using CMake. Would appreciate any pointers. I have stumbled upon an issue where I cannot seem to include a path over 148 characters long.

For example with the following:

set(AA_PUBLIC_HEADERS
        ${AA_ROOT}/include
         /mnt/data/src/xam_pn19/uuos/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/am-media-audioutils-native/1.0-r0/recipe-sysroot-native/usr/include  #<- 149 chars
)

target_include_directories(${PROJECT_NAME} PUBLIC
  ${AA_PUBLIC_HEADERS}
)

When compiling I get:

cd /mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/src && /usr/bin/c++ -DFMT_LOCALE -DFMT_SHARED -DSIMDJSON_THREADS_ENABLED=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -I/mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/include -isystem /mnt/data/src/xam_pn19/uuos/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/am-media-audioutils-native/1.0-r0/recipe-sysroot-native/usr/share -std=gnu++20 -Wall -Wextra -Wpedantic -Werror -MD -MT src/CMakeFiles/ammediautils.dir/logger/avm/AVMLogAdapter.cpp.o -MF CMakeFiles/amaudioutils.dir/logger/avm/AVMLogAdapter.cpp.o.d -o CMakeFiles/ammediautils.dir/logger/avm/AVMLogAdapter.cpp.o -c /mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/src/logger/avm/AVMLogAdapter.cpp

The longer include path is not included. If I drop a single character (anywhere in the path) to bring it under 149 characters it works.
E.g.

set(AA_PUBLIC_HEADERS
        ${AA_ROOT}/include
         /mnt/data/src/xam_pn19/uuos/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/am-media-audioutils-native/1.0-r0/recipe-sysroot-native/usr/includ # <- Drop 'e' include
)

The path gets included:

cd /mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/src && /usr/bin/c++ -DFMT_LOCALE -DFMT_SHARED -DSIMDJSON_THREADS_ENABLED=1 -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -I/mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/include **-I/mnt/data/src/xam_pn19/uuos/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/am-media-audioutils-native/1.0-r0/recipe-sysroot-native/usr/includ** -isystem /mnt/data/src/xam_pn19/uuos/apps/apps_proc/poky/build/tmp-glibc/work/x86_64-linux/am-media-audioutils-native/1.0-r0/recipe-sysroot-native/usr/share -std=gnu++20 -Wall -Wextra -Wpedantic -Werror -MD -MT src/CMakeFiles/ammediautils.dir/logger/avm/AVMLogAdapter.cpp.o -MF CMakeFiles/amaudioutils.dir/logger/avm/AVMLogAdapter.cpp.o.d -o CMakeFiles/ammediautils.dir/logger/avm/AVMLogAdapter.cpp.o -c /mnt/data/src/xam_pn19/uuos/apps/apps_proc/vendor/am/audio/libs/internal/audioutils/src/logger/avm/AVMLogAdapter.cpp

I have tried setting things like:

set(CMAKE_OBJECT_PATH_MAX 4096)
set(CMAKE_OBJECT_NAME_MAX 254)

I cannot see any warning in logs (–trace / --debug-output) as to it dropping the path. Symbolic links resolve to the ‘full path’. Moving the folder anywhere works.

Is there a path length limitation somewhere or alternatively any tips to debug on what is triggering this?