blob: 1f39ee774c1f97e72f518f4b5c958a00339765fa [file]
# Includes
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
)
# Version information
set(SNAPSHOT_VERSION "unknown")
execute_process(COMMAND git describe
OUTPUT_VARIABLE GIT_DESCRIBE_OUTPUT
RESULT_VARIABLE GIT_DESCRIBE_RESULT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(${GIT_DESCRIBE_RESULT} STREQUAL 0)
set(SNAPSHOT_VERSION ${GIT_DESCRIBE_OUTPUT})
endif(${GIT_DESCRIBE_RESULT} STREQUAL 0)
message(STATUS "Detected git snapshot version: ${SNAPSHOT_VERSION}")
configure_file(ftdi_version_i.h.in "${CMAKE_CURRENT_BINARY_DIR}/ftdi_version_i.h" @ONLY)
# Targets
set(c_sources ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.c ${CMAKE_CURRENT_SOURCE_DIR}/ftdi_stream.c CACHE INTERNAL "List of c sources" )
set(c_headers ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.h CACHE INTERNAL "List of c headers" )
add_library(ftdi1 SHARED ${c_sources})
math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1") # Compatiblity with previous releases
set_target_properties(ftdi1 PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 2)
# Static library
add_library(ftdi1-static STATIC ${c_sources})
set_target_properties(ftdi1-static PROPERTIES OUTPUT_NAME "ftdi1")
# Prevent clobbering each other during the build
set_target_properties(ftdi1 PROPERTIES CLEAN_DIRECT_OUTPUT 1)
set_target_properties(ftdi1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
# Dependencies
target_link_libraries(ftdi1 ${LIBUSB_LIBRARIES})
# Install
if(${UNIX})
install( TARGETS ftdi1
LIBRARY DESTINATION lib${LIB_SUFFIX}
COMPONENT sharedlibs
)
install( TARGETS ftdi1-static
ARCHIVE DESTINATION lib${LIB_SUFFIX}
COMPONENT staticlibs
)
install( FILES ${c_headers}
DESTINATION include/${PROJECT_NAME}
COMPONENT headers
)
endif(${UNIX})
if(${WIN32})
install( TARGETS ftdi1
DESTINATION bin
COMPONENT sharedlibs
)
install( TARGETS ftdi1-static
DESTINATION bin
COMPONENT staticlibs
)
install( FILES ${c_headers}
DESTINATION include/${PROJECT_NAME}
COMPONENT headers
)
endif(${WIN32})