cmake_minimum_required (VERSION 3.5)
project(gatt-client-test)

# pkgconfig required to link cpputest
find_package(PkgConfig REQUIRED)

# CppuTest
pkg_check_modules(CPPUTEST REQUIRED CppuTest)
include_directories(${CPPUTEST_INCLUDE_DIRS})
link_directories(${CPPUTEST_LIBRARY_DIRS})
link_libraries(${CPPUTEST_LIBRARIES})

# set include paths
include_directories(.)
include_directories(../../src)
include_directories(../mock)
include_directories(../../platform/embedded)
include_directories(../../platform/posix)
include_directories( ${CMAKE_CURRENT_BINARY_DIR})

# common files
set(SOURCES
		../../src/btstack_linked_list.c
		../../src/btstack_util.c
		../../src/hci.c
		../../src/hci_cmd.c
		../../src/ad_parser.c
		../../src/l2cap.c
		../../src/l2cap_signaling.c
		../../src/btstack_memory.c
		../../src/btstack_run_loop.c
		../../src/hci_dump.c
		../../platform/posix/hci_dump_posix_stdout.c
		../../platform/embedded/btstack_run_loop_embedded.c
)

# Enable ASAN
add_compile_options( -g -fsanitize=address)
add_link_options(       -fsanitize=address)

# create static lib
add_library(btstack STATIC ${SOURCES})

# create targets
file(GLOB TEST_FILES_CPP "*_test.cpp")
foreach(TEST_FILE ${TEST_FILES_CPP})
	set (SOURCE_FILES ${TEST_FILE})
	get_filename_component(TEST_NAME ${TEST_FILE} NAME_WE)
	message("- " ${TEST_NAME})
	add_executable(${TEST_NAME} ${SOURCE_FILES} )
	target_link_libraries(${TEST_NAME} btstack)
endforeach(TEST_FILE)