Commit | Line | Data |
---|---|---|
0b2d00fc MV |
1 | # Check |
2 | set(FTDI_BUILD_CPP False PARENT_SCOPE) | |
3 | ||
42ece760 | 4 | option(FTDIPP "Build C++ binding library libftdi1++" ON) |
0b2d00fc | 5 | |
5f70b4c1 MZ |
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 | ||
a03fea79 | 10 | if (FTDIPP) |
0b2d00fc | 11 | |
a03fea79 | 12 | if(Boost_FOUND) |
0b2d00fc | 13 | |
998266bf | 14 | # Includes |
a4eac204 | 15 | include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR} |
998266bf | 16 | ${CMAKE_CURRENT_SOURCE_DIR} |
a4eac204 TJ |
17 | ${CMAKE_SOURCE_DIR}/src) |
18 | ||
19 | include_directories(${Boost_INCLUDE_DIRS}) | |
b80aee72 | 20 | |
5f70b4c1 | 21 | |
0b2d00fc | 22 | |
998266bf | 23 | set(FTDI_BUILD_CPP True PARENT_SCOPE) |
42ece760 | 24 | message(STATUS "Building libftdi1++") |
0b2d00fc | 25 | |
998266bf | 26 | # Shared library |
42ece760 | 27 | add_library(ftdipp1 SHARED ${cpp_sources}) |
0b2d00fc | 28 | |
998266bf | 29 | math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1") # Compatiblity with previous releases |
42ece760 | 30 | set_target_properties(ftdipp1 PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 2) |
0b2d00fc | 31 | |
998266bf | 32 | # Static library |
6217bc0d MF |
33 | if (STATICLIBS) |
34 | add_library(ftdipp1-static STATIC ${cpp_sources}) | |
35 | set_target_properties(ftdipp1-static PROPERTIES OUTPUT_NAME "ftdipp1") | |
36 | endif (STATICLIBS) | |
b80aee72 | 37 | |
998266bf | 38 | # Prevent clobbering each other during the build |
42ece760 | 39 | set_target_properties(ftdipp1 PROPERTIES CLEAN_DIRECT_OUTPUT 1) |
6217bc0d MF |
40 | if (STATICLIBS) |
41 | set_target_properties(ftdipp1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) | |
42 | endif (STATICLIBS) | |
0b2d00fc | 43 | |
998266bf | 44 | # Dependencies |
42ece760 | 45 | target_link_libraries(ftdipp1 ftdi1 ${LIBUSB_LIBRARIES} ${BOOST_LIBRARIES}) |
a03fea79 | 46 | |
998266bf EB |
47 | # Install |
48 | if(${UNIX}) | |
42ece760 | 49 | install( TARGETS ftdipp1 |
998266bf EB |
50 | LIBRARY DESTINATION lib${LIB_SUFFIX} |
51 | COMPONENT sharedlibs | |
52 | ) | |
6217bc0d MF |
53 | if (STATICLIBS) |
54 | install( TARGETS ftdipp1-static | |
55 | ARCHIVE DESTINATION lib${LIB_SUFFIX} | |
56 | COMPONENT staticlibs | |
57 | ) | |
58 | endif (STATICLIBS) | |
998266bf EB |
59 | install( FILES ${cpp_headers} |
60 | DESTINATION include/${PROJECT_NAME} | |
61 | COMPONENT headers | |
62 | ) | |
63 | endif(${UNIX}) | |
a03fea79 | 64 | |
998266bf | 65 | if(${WIN32}) |
42ece760 | 66 | install( TARGETS ftdipp1 |
998266bf EB |
67 | DESTINATION bin |
68 | COMPONENT sharedlibs | |
69 | ) | |
6217bc0d MF |
70 | if (STATICLIBS) |
71 | install( TARGETS ftdipp1-static | |
72 | DESTINATION bin | |
73 | COMPONENT staticlibs | |
74 | ) | |
75 | endif (STATICLIBS) | |
998266bf EB |
76 | install( FILES ${cpp_headers} |
77 | DESTINATION include/${PROJECT_NAME} | |
78 | COMPONENT headers | |
79 | ) | |
80 | endif(${WIN32}) | |
a03fea79 GE |
81 | |
82 | else(Boost_FOUND) | |
42ece760 | 83 | message(STATUS "Boost not found, won't build libftdi1++") |
a03fea79 GE |
84 | endif(Boost_FOUND) |
85 | ||
86 | else(FTDIPP) | |
87 | ||
42ece760 | 88 | message(STATUS "Not building libftdi1++") |
a03fea79 GE |
89 | |
90 | endif(FTDIPP) |