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)