cmake_minimum_required(VERSION 3.16)
project(oplabs-lv2-plugins
    VERSION 1.0.0
    DESCRIPTION "OPLabs LV2 Audio Plugin Collection"
    LANGUAGES CXX
)

# ── C++ Standard ─────────────────────────────────────────────────────
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# ── Position-independent code (required for shared libs) ─────────────
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

# ── Hide internal symbols by default ────────────────────────────────
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)

# ── Find LV2 ────────────────────────────────────────────────────────
find_path(LV2_INCLUDE_DIR
    NAMES lv2/core/lv2.h
    PATHS /usr/include /usr/local/include
)

find_path(LV2_STATE_INCLUDE_DIR
    NAMES lv2/state/state.h
    PATHS /usr/include /usr/local/include
)

if(NOT LV2_INCLUDE_DIR)
    message(FATAL_ERROR "LV2 headers not found. Install lv2-dev.")
endif()

message(STATUS "LV2 include dir: ${LV2_INCLUDE_DIR}")

# ── Subdirectories ──────────────────────────────────────────────────
add_subdirectory(src)
