73 lines
2.5 KiB
CMake
73 lines
2.5 KiB
CMake
# Check
|
|
set(FTDI_BUILD_CPP False PARENT_SCOPE)
|
|
|
|
option ( FTDIPP "Build C++ binding library libftdi1++" ON )
|
|
|
|
# Targets
|
|
set(cpp_sources ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.cpp CACHE INTERNAL "List of cpp sources" )
|
|
set(cpp_headers ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.hpp CACHE INTERNAL "List of cpp headers" )
|
|
|
|
if (FTDIPP)
|
|
|
|
if(Boost_FOUND)
|
|
|
|
set(FTDI_BUILD_CPP True PARENT_SCOPE)
|
|
message(STATUS "Building libftdi1++")
|
|
|
|
# Shared library
|
|
add_library(ftdipp1 SHARED ${cpp_sources})
|
|
|
|
target_include_directories(ftdipp1 BEFORE PUBLIC ${CMAKE_CURRENT_BINARY_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../src)
|
|
target_include_directories(ftdipp1 PUBLIC ${Boost_INCLUDE_DIRS})
|
|
|
|
math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1") # Compatiblity with previous releases
|
|
set_target_properties(ftdipp1 PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 3)
|
|
|
|
# Prevent clobbering each other during the build
|
|
set_target_properties(ftdipp1 PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
|
|
|
# Dependencies
|
|
target_link_libraries(ftdipp1 PUBLIC ftdi1 ${LIBUSB_LIBRARIES} ${BOOST_LIBRARIES})
|
|
|
|
if ( LIBFTDI_INSTALL )
|
|
install ( TARGETS ftdipp1
|
|
RUNTIME DESTINATION bin
|
|
LIBRARY DESTINATION lib${LIB_SUFFIX}
|
|
ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
|
)
|
|
endif()
|
|
|
|
# Static library
|
|
if ( LIBFTDI_STATICLIBS )
|
|
add_library(ftdipp1-static STATIC ${cpp_sources})
|
|
target_include_directories(ftdipp1-static BEFORE PUBLIC ${CMAKE_CURRENT_BINARY_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../src)
|
|
target_include_directories(ftdipp1-static PUBLIC ${Boost_INCLUDE_DIRS})
|
|
target_link_libraries(ftdipp1-static PUBLIC ftdi1 ${LIBUSB_LIBRARIES} ${BOOST_LIBRARIES})
|
|
set_target_properties(ftdipp1-static PROPERTIES OUTPUT_NAME "ftdipp1")
|
|
set_target_properties(ftdipp1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
|
|
|
|
if ( LIBFTDI_INSTALL )
|
|
install ( TARGETS ftdipp1-static
|
|
ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
|
COMPONENT staticlibs
|
|
)
|
|
endif()
|
|
endif ()
|
|
|
|
install ( FILES ${cpp_headers}
|
|
DESTINATION include/${PROJECT_NAME}
|
|
COMPONENT headers
|
|
)
|
|
|
|
else ()
|
|
message(STATUS "Boost not found, won't build libftdi1++")
|
|
endif ()
|
|
|
|
else ()
|
|
message(STATUS "Not building libftdi1++")
|
|
endif ()
|