cmake_minimum_required(VERSION 3.10)

project(Hexfin VERSION 0.1)

set(CMAKE_C_STANDARD 90)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

include_directories(
	${PROJECT_SOURCE_DIR}/../../src/
	${PROJECT_SOURCE_DIR}/utils
)

add_library(hexfin STATIC
	${PROJECT_SOURCE_DIR}/../../src/hexfin.h
	${PROJECT_SOURCE_DIR}/../../src/hexfin.c
)
if(UNIX)
	target_link_libraries(hexfin PRIVATE m)
endif()

add_executable(example1_wavfile
	${PROJECT_SOURCE_DIR}/examples/example1_wavfile.c
	${PROJECT_SOURCE_DIR}/utils/wavreader.c
	${PROJECT_SOURCE_DIR}/utils/wavreader.h
)
target_link_libraries(example1_wavfile PRIVATE hexfin)

add_executable(example2_tuner_jack
	${PROJECT_SOURCE_DIR}/examples/example2_tuner_jack.c
)
target_link_libraries(example2_tuner_jack PRIVATE hexfin)

add_executable(benchmark_hexfin_vs_amalgamated_q
	${PROJECT_SOURCE_DIR}/benchmarks/benchmark_hexfin_vs_amalgamated_q.cpp
	${PROJECT_SOURCE_DIR}/utils/wavreader.c
	${PROJECT_SOURCE_DIR}/utils/wavreader.h
	${PROJECT_SOURCE_DIR}/utils/amalgamated_q.cpp
	${PROJECT_SOURCE_DIR}/utils/amalgamated_q.h
)
target_link_libraries(benchmark_hexfin_vs_amalgamated_q PRIVATE hexfin)

add_executable(test_hexfin_vs_amalgamated_q
	${PROJECT_SOURCE_DIR}/tests/test_hexfin_vs_amalgamated_q.cpp
	${PROJECT_SOURCE_DIR}/utils/wavreader.c
	${PROJECT_SOURCE_DIR}/utils/wavreader.h
	${PROJECT_SOURCE_DIR}/utils/amalgamated_q.cpp
	${PROJECT_SOURCE_DIR}/utils/amalgamated_q.h
)
target_link_libraries(test_hexfin_vs_amalgamated_q PRIVATE hexfin)
