# Engine/kernel source globs, relative to the repository root.
#
# SINGLE SOURCE OF TRUTH. Consumed by:
#   - cmake/SsSources.cmake  (the development build, both backends)
# Keep it a plain list of glob patterns, one per line.
# Blank lines and '#' comments are ignored. Globs are NOT recursive -- list each
# directory, so adding one is a deliberate act.
#
# Any path containing "hip" is dropped (ROCm sources are not part of the build).
#
# Not listed here, on purpose: src/app/{cli,gui}/ and src/backend/** -- their
# targets own those; and src/i18n/, which is its own leaf library (ss_i18n,
# cmake/SsI18n.cmake) because the backend libraries and their small test
# binaries need it too. app/webviewer/, app/TrainerCore.cpp and app/EvalMetrics.cpp
# ARE listed: they are shared by the CLI and the GUI, so they belong to the
# library rather than being compiled once per app target.

[cuda]
# Everything the CUDA `csrc` library compiles.
src/instantiations/*.cu
src/core/*.cpp
src/kernels/background/*.cu
src/kernels/bilagrid/*.cu
src/kernels/bilagrid/*.cpp
src/kernels/densify/*.cu
src/kernels/loss/*.cu
src/kernels/optim/*.cu
src/kernels/pixelwise/*.cu
src/kernels/ppisp/*.cu
src/kernels/projection/*.cu
src/kernels/raster/*.cu
src/kernels/tile/*.cu
src/kernels/visualize/*.cu
src/mesh/*.cu
src/mesh/*.cpp
src/engine/*.cpp
src/checkpoint/*.cpp
src/data/*.cpp
src/data/parsers/*.cpp
src/app/webviewer/*.cpp
src/app/TrainerCore.cpp
src/app/TrainForecast.cpp
src/app/EvalMetrics.cpp
src/external/*.cpp
src/external/*.c

[portable]
# The same list minus the CUDA kernels. Compiled as csrc_portable by the
# Vulkan build.
src/core/*.cpp
src/kernels/bilagrid/*.cpp
src/mesh/*.cpp
src/engine/*.cpp
src/checkpoint/*.cpp
src/data/*.cpp
src/data/parsers/*.cpp
src/app/webviewer/*.cpp
src/app/TrainerCore.cpp
src/app/TrainForecast.cpp
src/app/EvalMetrics.cpp
src/external/*.cpp
src/external/*.c
