#-----------------------------------------------------------------
# CMake file for the MRPT mrpt-hwdrivers
#  Run with "cmake ." at the root directory
#
#  October 2007, Jose Luis Blanco <jlblanco@ctima.uma.es>
#-----------------------------------------------------------------
PROJECT(mrpt-hwdrivers)

#MESSAGE(STATUS "Makefile for mrpt-hwdrivers library")

# ---------------------------------------------
# TARGET: The HWDRIVERS library
# ---------------------------------------------
# List of files:
SET(lib_srcs "")
FILE(GLOB_RECURSE lib_srcs ${CMAKE_SOURCE_DIR}/src/hwdrivers/*.cpp)

SET(lib_hdrs "")
FILE(GLOB_RECURSE lib_hdrs ${CMAKE_SOURCE_DIR}/include/mrpt/hwdrivers/*.h)


# Remove _LIN files when compiling under Windows, and _WIN files when compiling under Linux.
# ----------------------------------------------------------------------------------
SET(aux_var "")
FOREACH(FIL ${lib_srcs})
	SET(THIS_COUNTS 1)
	IF(${FIL} MATCHES ".*_LIN.cpp")
		IF(WIN32)
			SET(THIS_COUNTS 0)
		ENDIF(WIN32)
	ENDIF(${FIL} MATCHES ".*_LIN.cpp")

	IF(${FIL} MATCHES ".*_WIN.cpp")
		IF(UNIX)
			SET(THIS_COUNTS 0)
		ENDIF(UNIX)
	ENDIF(${FIL} MATCHES ".*_WIN.cpp")

	IF(THIS_COUNTS)
		SET(aux_var "${aux_var}" "${FIL}")
	ENDIF(THIS_COUNTS)
ENDFOREACH(FIL)
SET(lib_srcs ${aux_var})


# ----------------------------------------------------------------------------------
# 				Define the target:
# ----------------------------------------------------------------------------------
ADD_LIBRARY(mrpt-hwdrivers ${lib_srcs} ${lib_hdrs})

# Assure the MRPT library is updated:
ADD_DEPENDENCIES(mrpt-hwdrivers mrpt-core)

TARGET_LINK_LIBRARIES(mrpt-hwdrivers ${MRPT_LINKER_LIBS_RELorDEB})

# Build against ARIA also:
IF(CMAKE_MRPT_HAS_ARIA)
	ADD_DEPENDENCIES(mrpt-hwdrivers mrpt-aria)
	TARGET_LINK_LIBRARIES(mrpt-hwdrivers mrpt-aria${MRPT_LINKER_LIBS_POSTFIX})
	
	IF(NOT BUILD_SHARED_LIBS)
		ADD_DEFINITIONS(-DARIA_STATIC)
	ENDIF(NOT BUILD_SHARED_LIBS)
	
ENDIF(CMAKE_MRPT_HAS_ARIA)

# Build against XSENS also:
IF(CMAKE_MRPT_HAS_xSENS)
	ADD_DEPENDENCIES(mrpt-hwdrivers mrpt-xsens)
	IF(CMAKE_COMPILER_IS_GNUCXX AND UNIX)
		# We need to remove some of the cxx options for compat. with xSens headers....
		STRING(REPLACE "-Wall" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
		STRING(REPLACE "-pedantic" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
		SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes")
	ENDIF(CMAKE_COMPILER_IS_GNUCXX AND UNIX)

	TARGET_LINK_LIBRARIES(mrpt-hwdrivers mrpt-xsens)
ENDIF(CMAKE_MRPT_HAS_xSENS)


# For dynamic link numbering convenions in Linux:
SET_TARGET_PROPERTIES(mrpt-hwdrivers PROPERTIES
	VERSION "${CMAKE_MRPT_VERSION_NUMBER_MAJOR}.${CMAKE_MRPT_VERSION_NUMBER_MINOR}.${CMAKE_MRPT_VERSION_NUMBER_PATCH}"
	SOVERSION ${CMAKE_MRPT_VERSION_NUMBER_MAJOR}.${CMAKE_MRPT_VERSION_NUMBER_MINOR}
	)

SET_TARGET_PROPERTIES(mrpt-hwdrivers PROPERTIES PROJECT_LABEL lib-mrpt-hwdrivers)

# The target file will be "hwdriversd" for DEBUG, "hwdrivers" for the rest of configs:
# ----------------------------------------------------------------------------------
set(the_trg mrpt-hwdrivers)

SET_TARGET_PROPERTIES(${the_trg} PROPERTIES 
	OUTPUT_NAME ${MRPT_LIB_PREFIX}${the_trg}
	ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/"
	RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/"
	)

# make sure the library gets installed
INSTALL(TARGETS ${the_trg}
	RUNTIME DESTINATION ${libmrpt_hwdrivers_INSTALL_PREFIX}bin
	LIBRARY DESTINATION ${libmrpt_hwdrivers_INSTALL_PREFIX}lib${LIB_SUFFIX}
	ARCHIVE DESTINATION ${libmrpt_hwdrivers_INSTALL_PREFIX}lib${LIB_SUFFIX})

