#------------------------------------------------------------------------------
#
# \brief	CMakeLists.txt file for "liblepto"
#
#------------------------------------------------------------------------------


cmake_minimum_required(VERSION 3.11)
project( fosh )


set(libfosh_SOURCES
					# src/main.cpp
               src/fosh.cpp
               src/commander.cpp
               src/command.cpp
               src/ansi.cpp
					# src/handler_freezer.cpp
               src/commands/date.cpp
					src/commands/time.cpp
               src/commands/hwclock.cpp
               src/commands/exit.cpp
               src/commands/info.cpp
               src/commands/voc.cpp
               src/commands/test.cpp
               src/commands/mem.cpp
               src/commands/temp.cpp
               src/commands/stop.cpp
               src/commands/freeze.cpp
					src/commands/spi_flash.cpp
               src/commands/i2c.cpp
					src/commands/signal.cpp
					src/commands/flash.cpp
)

set(libfosh_HEADERS
					include/fosh/fosh.hpp
					include/fosh/commands/date.hpp
					include/fosh/commands/time.h
					include/fosh/commands/flash.hpp
)

if ( NOT "${campo_SOURCE_DIR}" STREQUAL "" )
# if ( 1 )
	# campo_SOURCE_DIR
	set(libfosh_SOURCES
		${libfosh_SOURCES}
		src/commands/hwdata.cpp
		)

	set ( libfosh_HEADERS
		${libfosh_HEADERS}
		include/fosh/commands/hwdata.h
		)

endif( NOT "${campo_SOURCE_DIR}" STREQUAL "" )

if( "${MCU_REV}" MATCHES "l4" )
	set(libfosh_SOURCES
			${libfosh_SOURCES}
			src/commands/sd.cpp
		)
	set(libfosh_HEADERS
			${libfosh_HEADERS}
			include/fosh/commands/sd.hpp
		)
endif( "${MCU_REV}" MATCHES "l4" )


if ( "${MCU_PLATFORM}" MATCHES "linux" )
	set(libfosh_SOURCES
			${libfosh_SOURCES}
			src/commands/sd.cpp
		)
	set(libfosh_HEADERS
			${libfosh_HEADERS}
			include/fosh/commands/sd.hpp
		)
endif( "${MCU_REV}" MATCHES "l4" )


if ( "${MCU_PLATFORM}" MATCHES "linux" )
   # Check either Qt6 or Qt5
   find_package( QT NAMES Qt5 Qt6 COMPONENTS Core Network REQUIRED )
   find_package( Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Widgets Network )

   set(
      QtLibs
      Qt${QT_VERSION_MAJOR}::Core
      # Qt${QT_VERSION_MAJOR}::Gui
   )   # include_directories(${Qt5Widgets_INCLUDE_DIRS})
   # include_directories(${Qt5Core_INCLUDE_DIRS})
   # add_definitions(${Qt5Widgets_DEFINITIONS})
   # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
endif()

include_directories(
   include/
)


if ( NOT "${MCU_PLATFORM}" MATCHES "linux" )
	set(libfosh_SOURCES
		${libfosh_SOURCES}
      # ${CURRENT_BINARY_DIR}/foo.h
      src/commands/drift.cpp
#      src/commands/temp.cpp
#      src/commands/voc.cpp
   )
endif()


add_library( ${PROJECT_NAME} STATIC
			${libfosh_SOURCES}
			${libfosh_HEADERS}
)

if ( CAMPO )
   use_common_config_headers( ${PROJECT_NAME} )
endif( CAMPO )

target_link_libraries(
   ${PROJECT_NAME}
   biwak
   lepto
   ${QtLibs}
)

target_include_directories(
   ${PROJECT_NAME} INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include"
)


#------------------------------------------------------------------------------
