# ── OPLabsBandChannel shared library ─────────────────────────────────
add_library(OPLabsBandChannel SHARED
    OPLabsBandChannel.cpp
    OPLabsBandChannel.hpp
)

target_include_directories(OPLabsBandChannel
    PRIVATE
        ${LV2_INCLUDE_DIR}
)

target_compile_options(OPLabsBandChannel PRIVATE -Wall -Wextra -Wpedantic)

# Output .so directly into the LV2 bundle directory
set_target_properties(OPLabsBandChannel PROPERTIES
    LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lv2/OPLabsBandChannel.lv2"
    OUTPUT_NAME "OPLabsBandChannel"
    PREFIX ""
)

# Version script — export only lv2_descriptor
target_link_options(OPLabsBandChannel PRIVATE
    -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/OPLabsBandChannel.version
    -Wl,-z,nodelete
)

# ── OPLabsBandBus shared library ────────────────────────────────────
add_library(OPLabsBandBus SHARED
    OPLabsBandBus.cpp
    OPLabsBandBus.hpp
)

target_include_directories(OPLabsBandBus
    PRIVATE
        ${LV2_INCLUDE_DIR}
)

target_compile_options(OPLabsBandBus PRIVATE -Wall -Wextra -Wpedantic)

set_target_properties(OPLabsBandBus PROPERTIES
    LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/lv2/OPLabsBandBus.lv2"
    OUTPUT_NAME "OPLabsBandBus"
    PREFIX ""
)

target_link_options(OPLabsBandBus PRIVATE
    -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/OPLabsBandBus.version
    -Wl,-z,nodelete
)
