I have a file structure like this:
proj/ 
    includes/ 
        foo.h 
    src/ 
        foo.cpp 
    main.cpp

Here is my CMakeLists.txt for main.cpp:
    cmake_minimum_required(VERSION 3.18)
    project(proj)

    set(Torch_DIR /path/to/cmake/Torch)
    find_package(Torch REQUIRED)
    
    include_directories(${PROJECT_SOURCE_DIR}/includes ${TORCH_INCLUDE_DIR})
    add_subdirectory(includes)
    add_subdirectory(src)

    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")

    include_directories(includes) 
    include_directories(${OpenCV_INCLUDE_DIRS})
    include_directories(${TORCH_INCLUDE_DIR})

    add_executable(proj main.cpp)
    target_link_libraries(proj foo_lib ${OpenCV_LIBS} "${TORCH_LIBRARIES}")
    set_property(TARGET proj PROPERTY CXX_STANDARD 14)

Here is my CMakeLists.txt for includes:
    set(Torch_DIR /path/to/cmake/Torch)
    find_package(Torch REQUIRED)
    include_directories(${PROJECT_SOURCE_DIR}/includes ${TORCH_INCLUDE_DIR})

Here is my CMakeLists.txt for src:
    include_directories(${PROJECT_SOURCE_DIR}/includes)
    add_library(foo_lib foo.cpp)

Upon executing make I get:
    fatal error: torch/torch.h: No such file or directory
    1 | #include <torch/torch.h>

But it can link in main.cpp. So obviously my CMakeLists are not created correctly, so any advice on how to create these properly would be appreciated.