cmake_minimum_required(VERSION 3.22)
project(TubeNumerics LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
foreach(v baseline native sub2 sub4 clock4)
 set(src ${CMAKE_CURRENT_BINARY_DIR}/generated/${v}/SAK-TUBE/SAK-TUBE/Source)
 add_library(tube_${v} SHARED ../tube-forensics/bridge.cpp ${src}/DSP/Amplifier.cpp)
 target_include_directories(tube_${v} PRIVATE ${src} ../tube-forensics)
 if(MSVC)
  target_compile_options(tube_${v} PRIVATE /O2 /fp:precise /W4)
 endif()
endforeach()
set(prod ${CMAKE_CURRENT_SOURCE_DIR}/../../SAK-TUBE/SAK-TUBE/Source)
add_library(audio_product SHARED audio_bridge.cpp ${prod}/DSP/Amplifier.cpp)
target_include_directories(audio_product PRIVATE ${prod} ../tube-forensics)
if(MSVC)
 target_compile_options(audio_product PRIVATE /O2 /fp:precise /W4)
endif()
foreach(v baseline clock4)
 set(src ${CMAKE_CURRENT_BINARY_DIR}/generated/${v}/SAK-TUBE/SAK-TUBE/Source)
 add_library(audio_${v} SHARED audio_bridge.cpp ${src}/DSP/Amplifier.cpp)
 target_include_directories(audio_${v} PRIVATE ${src} ../tube-forensics)
 if(MSVC)
  target_compile_options(audio_${v} PRIVATE /O2 /fp:precise /W4)
 endif()
endforeach()
