8f581ef895609e168705efa98392826e40f19b38
[libftdi] / ftdipp / CMakeLists.txt
1 # Check
2 set(FTDI_BUILD_CPP False PARENT_SCOPE)
3
4 option ( FTDIPP "Build C++ binding library libftdi1++" ON )
5
6 # Targets
7 set(cpp_sources   ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.cpp CACHE INTERNAL "List of cpp sources" )
8 set(cpp_headers   ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.hpp CACHE INTERNAL "List of cpp headers" )
9         
10 if (FTDIPP)
11
12   if(Boost_FOUND)
13
14     # Includes
15     include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}
16                         ${CMAKE_CURRENT_SOURCE_DIR}
17                         ${CMAKE_SOURCE_DIR}/src)
18
19     include_directories(${Boost_INCLUDE_DIRS})
20
21
22
23     set(FTDI_BUILD_CPP True PARENT_SCOPE)
24     message(STATUS "Building libftdi1++")
25
26     # Shared library
27     add_library(ftdipp1 SHARED ${cpp_sources})
28
29     math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1")    # Compatiblity with previous releases
30     set_target_properties(ftdipp1 PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 2)
31
32     # Static library
33     if (STATICLIBS)
34         add_library(ftdipp1-static STATIC ${cpp_sources})
35         set_target_properties(ftdipp1-static PROPERTIES OUTPUT_NAME "ftdipp1")
36     endif (STATICLIBS)
37
38     # Prevent clobbering each other during the build
39     set_target_properties(ftdipp1 PROPERTIES CLEAN_DIRECT_OUTPUT 1)
40     if (STATICLIBS)
41         set_target_properties(ftdipp1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
42     endif (STATICLIBS)
43
44     # Dependencies
45     target_link_libraries(ftdipp1 ftdi1 ${LIBUSB_LIBRARIES} ${BOOST_LIBRARIES})
46
47     
48     install ( TARGETS ftdipp1
49               RUNTIME DESTINATION bin
50               LIBRARY DESTINATION lib${LIB_SUFFIX}
51               ARCHIVE DESTINATION lib${LIB_SUFFIX}
52             )
53     
54     if ( STATICLIBS )
55       install ( TARGETS ftdipp1-static
56                 ARCHIVE DESTINATION lib${LIB_SUFFIX}
57                 COMPONENT staticlibs
58               )
59     endif ()
60
61     install ( FILES ${cpp_headers}
62               DESTINATION include/${PROJECT_NAME}
63               COMPONENT headers
64             )
65
66   else ()
67     message(STATUS "Boost not found, won't build libftdi1++")
68   endif ()
69
70 else ()
71   message(STATUS "Not building libftdi1++")
72 endif ()