set(INC_DIR "../../include")

# same as add_library, but also links to libcore and librender
add_psdr_library(direct2    SHARED  direct2.cpp)
add_psdr_library(path2      SHARED  path2.cpp)
add_psdr_library(ptracer2   SHARED  ptracer2.cpp)
add_psdr_library(bdpt2      SHARED  bdpt2.cpp)
add_psdr_library(volpath    SHARED  volpath.cpp)
add_psdr_library(volpathBase    SHARED  volpathBase.cpp)

# enzyme will go over the library
add_enzyme_library(direct                   SHARED  direct.cpp)
add_enzyme_library(path                     SHARED  path.cpp)
add_enzyme_library(volpath2                 SHARED  volpath2.cpp)
add_enzyme_library(boundary_direct          SHARED  boundary_direct.cpp)
add_enzyme_library(boundary_indirect        SHARED  boundary_indirect.cpp)
add_enzyme_library(boundary_primary         SHARED  boundary_primary.cpp)
add_enzyme_library(boundary_pixel           SHARED  boundary_pixel.cpp)
add_enzyme_library(vol_boundary_direct      SHARED  vol_boundary_direct.cpp)
add_enzyme_library(vol_boundary_indirect    SHARED  vol_boundary_indirect.cpp)
add_enzyme_library(vol_boundary_primary     SHARED  vol_boundary_primary.cpp)

add_library(integrator INTERFACE)
target_link_libraries(integrator INTERFACE
    direct2
    path2
    ptracer2
    bdpt2
    volpath
    volpathBase
    volpath2
    direct
    path
    boundary_direct
    boundary_indirect
    boundary_primary
    boundary_pixel
    vol_boundary_direct
    vol_boundary_indirect
    vol_boundary_primary
)