cmake_minimum_required(VERSION 3.13)

project(IrFoxAnalyzer)

add_definitions(-DLOGIC2)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

include(ExternalAnalyzerSDK)

set(SOURCES
	src/IrFoxAnalyzer.cpp
	src/IrFoxAnalyzer.h
	src/IrFoxDecoder.cpp
	src/IrFoxDecoder.h
	src/IrFoxPacketClassifier.h
	src/IrFoxAnalyzerResults.cpp
	src/IrFoxAnalyzerResults.h
	src/IrFoxAnalyzerSettings.cpp
	src/IrFoxAnalyzerSettings.h
	src/IrFoxSimulationDataGenerator.cpp
	src/IrFoxSimulationDataGenerator.h
)

add_analyzer_plugin(${PROJECT_NAME} SOURCES ${SOURCES})

if(MSVC)
	target_compile_options(${PROJECT_NAME} PRIVATE /utf-8)
endif()

include(CTest)
if(BUILD_TESTING)
	add_executable(IrFoxPacketClassifierTests tests/IrFoxPacketClassifierTests.cpp)
	target_include_directories(IrFoxPacketClassifierTests PRIVATE src)
	add_test(NAME IrFoxPacketClassifierTests COMMAND IrFoxPacketClassifierTests)

	add_executable(IrFoxDecoderTests tests/IrFoxDecoderTests.cpp src/IrFoxDecoder.cpp)
	target_include_directories(IrFoxDecoderTests PRIVATE src)
	target_link_libraries(IrFoxDecoderTests PRIVATE Saleae::AnalyzerSDK)
	add_custom_command(TARGET IrFoxDecoderTests POST_BUILD
		COMMAND ${CMAKE_COMMAND} -E copy_if_different
			$<TARGET_FILE:Saleae::AnalyzerSDK>
			$<TARGET_FILE_DIR:IrFoxDecoderTests>)
	add_test(NAME IrFoxDecoderTests COMMAND IrFoxDecoderTests)
endif()
