Fix doxygen doc generation if C++ wrapper is not built
[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         add_library(ftdipp1-static STATIC ${cpp_sources})
34         set_target_properties(ftdipp1-static PROPERTIES OUTPUT_NAME "ftdipp1")
35
36         # Prevent clobbering each other during the build
37         set_target_properties(ftdipp1 PROPERTIES CLEAN_DIRECT_OUTPUT 1)
38         set_target_properties(ftdipp1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
39
40         # Dependencies
41         target_link_libraries(ftdipp1 ftdi1 ${LIBUSB_LIBRARIES} ${BOOST_LIBRARIES})
42
43         # Install
44         if(${UNIX})
45             install( TARGETS ftdipp1
46                         LIBRARY DESTINATION lib${LIB_SUFFIX}
47                         COMPONENT sharedlibs
48                         )
49             install( TARGETS ftdipp1-static
50                         ARCHIVE DESTINATION lib${LIB_SUFFIX}
51                         COMPONENT staticlibs
52                         )
53             install( FILES ${cpp_headers}
54                         DESTINATION include/${PROJECT_NAME}
55                         COMPONENT headers
56                         )
57         endif(${UNIX})
58
59         if(${WIN32})
60             install( TARGETS ftdipp1
61                         DESTINATION bin
62                         COMPONENT sharedlibs
63                         )
64             install( TARGETS ftdipp1-static
65                         DESTINATION bin
66                         COMPONENT staticlibs
67                         )
68             install( FILES ${cpp_headers}
69                         DESTINATION include/${PROJECT_NAME}
70                         COMPONENT headers
71                         )
72         endif(${WIN32})
73
74     else(Boost_FOUND)
75         message(STATUS "Boost not found, won't build libftdi1++")
76     endif(Boost_FOUND)
77
78 else(FTDIPP)
79
80     message(STATUS "Not building libftdi1++")
81
82 endif(FTDIPP)