add_library(cpf_interfaces INTERFACE)
target_sources(cpf_interfaces INTERFACE
	system_time.cpp
	system_time.hpp
	interrupt_manager.hpp
	CTD_Interface.cpp
	CTD_Interface.hpp
	EnergyMonitor_Interface.hpp
	GPS_Interface.cpp
	GPS_Interface.hpp
	UART_Interface.hpp
	Timer_Interface.hpp
	PowerManager_Interface.hpp
	MotorController_Interface.cpp
	PowerSwitched_Device.hpp
	I2C_Interface.hpp
	BellowsPosition_Interface.cpp
	BellowsPosition_Interface.hpp
	Platform_Controller.cpp
	Platform_Controller.hpp
	StateEstimator_Interface.hpp
	MotorizedValve_Interface.hpp
	events/event_base_types.hpp
	events/event_handler.hpp
	events/event_queue.hpp
	events/event_queue_interface.hpp
	events/CPFEventTypes.hpp
)
target_include_directories(cpf_interfaces INTERFACE . events)

add_library(cpf_interfaces_include_dep INTERFACE)
target_include_directories(cpf_interfaces_include_dep INTERFACE . events)

add_library(cpf_interfaces_tests INTERFACE)
target_sources(cpf_interfaces_tests INTERFACE
	system_time_tests.cpp
	system_time_ondevice_tests.cpp
	GPS_tests.cpp
)
target_link_libraries(cpf_interfaces_tests INTERFACE cpf_interfaces)

add_library(cpf_offtarget_interfaces_tests INTERFACE)
target_sources(cpf_offtarget_interfaces_tests INTERFACE
	system_time_tests.cpp
	GPS_tests.cpp
)
target_link_libraries(cpf_offtarget_interfaces_tests INTERFACE cpf_interfaces)
