INCLUDE_DIRECTORIES(
	.
	../obdinfo/
)

FILE(GLOB GENERATOR_INCLUDES
	generators/*/CMakeInclude.cmake)
FOREACH(GENERATOR_INCLUDE ${GENERATOR_INCLUDES})
	INCLUDE(${GENERATOR_INCLUDE})
ENDFOREACH(GENERATOR_INCLUDE ${GENERATOR_INCLUDES})


INCLUDE(CheckSymbolExists)
INCLUDE(CheckFunctionExists)
CHECK_FUNCTION_EXISTS(ptsname_r HAVE_PTSNAME_R)
IF(HAVE_PTSNAME_R)
	ADD_DEFINITIONS(-DHAVE_PTSNAME_R)
ENDIF(HAVE_PTSNAME_R)

CHECK_FUNCTION_EXISTS(posix_openpt HAVE_POSIX_OPENPT)
IF(HAVE_POSIX_OPENPT)
	ADD_DEFINITIONS(-DHAVE_POSIX_OPENPT)
ENDIF(HAVE_POSIX_OPENPT)

CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
IF(HAVE_GETTIMEOFDAY)
	ADD_DEFINITIONS(-DAVE_GETTIMEOFDAY)
ENDIF(HAVE_GETTIMEOFDAY)

SET(OBDSIM_POSIXSRCS
	posixsimport.cc
	posixsimport.h
)

SET(OBDSIM_WINDOWSSRCS
	windowssimport.cc
	windowssimport.h
)

SET(OBDSIM_SRCS
	datasource.h
	obdsim.cc
	obdsim.h
	simport.cc
	simport.h
)

# For now, assume the choices are "windows" or "posix"
IF("${CMAKE_SYSTEM}" MATCHES "Windows")
	SET(OBDSIM_SRCS ${OBDSIM_SRCS} ${OBDSIM_WINDOWSSRCS})
	SET(OBDSIM_LIBS ${OBDSIM_LIBS} wsock32)
ELSE("${CMAKE_SYSTEM}" MATCHES "Windows")
	SET(OBDSIM_SRCS ${OBDSIM_SRCS} ${OBDSIM_POSIXSRCS})
	SET(OBDSIM_LIBS ${OBDSIM_LIBS} pthread dl)
ENDIF("${CMAKE_SYSTEM}" MATCHES "Windows")

SET(OBDSIM_LIBS
	${OBDSIM_LIBS}
	ckobdinfo ckobdconfigfile
	${GENERATOR_LIBS}
)

ADD_EXECUTABLE(obdsim ${OBDSIM_SRCS})

TARGET_LINK_LIBRARIES(obdsim ${OBDSIM_LIBS})

INSTALL(TARGETS obdsim
	RUNTIME DESTINATION bin)

