gazetk / Protocol / CMakeLists.txt @ cf5923cc
History | View | Annotate | Download (2.149 KB)
| 1 | 81eb8e16 | Thies Pfeiffer | cmake_minimum_required (VERSION 3.0) |
|---|---|---|---|
| 2 | |||
| 3 | project (GazeTkProtocol) |
||
| 4 | |||
| 5 | # Versioning |
||
| 6 | set (GazeTkProtocol_VERSION_MAJOR 0) |
||
| 7 | set (GazeTkProtocol_VERSION_MINOR 1) |
||
| 8 | |||
| 9 | # configure the header of the library |
||
| 10 | configure_file ( |
||
| 11 | "${PROJECT_SOURCE_DIR}/src_cpp/Protocol.h.in"
|
||
| 12 | "${PROJECT_BINARY_DIR}/Protocol.h"
|
||
| 13 | ) |
||
| 14 | |||
| 15 | # add the binary tree to the search path for include files |
||
| 16 | # so that the generated files are found |
||
| 17 | include_directories("${PROJECT_BINARY_DIR}")
|
||
| 18 | |||
| 19 | cf5923cc | Thies Pfeiffer | #SET(CMAKE_INSTALL_PREFIX "../../" CACHE PATH "Install path prefix" FORCE INTERNAL ) |
| 20 | |||
| 21 | 81eb8e16 | Thies Pfeiffer | # add the Google protobuf parts |
| 22 | find_package(Protobuf REQUIRED) |
||
| 23 | include_directories(${PROTOBUF_INCLUDE_DIRS})
|
||
| 24 | include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||
| 25 | set (PROTOBUF_IMPORT_DIRS specification) |
||
| 26 | 0cee33d5 | Thies Pfeiffer | PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS specification/basic_types.proto specification/eye_data.proto specification/gaze2d_data.proto specification/gaze3d_data.proto specification/messages.proto) |
| 27 | 81eb8e16 | Thies Pfeiffer | |
| 28 | cf5923cc | Thies Pfeiffer | #this dummy list will make all header files appear if you use qtcreator to open the cmake project |
| 29 | #file(GLOB HEADER_LIST RELATIVE ${CMAKE_CURRENT_BINARY_DIR}/ *.h )
|
||
| 30 | |||
| 31 | 81eb8e16 | Thies Pfeiffer | # add the library |
| 32 | add_library(GazeTkProtocol STATIC src_cpp/protocol.cc ${PROTO_SRCS} ${PROTO_HDRS})
|
||
| 33 | target_link_libraries(GazeTkProtocol ${PROTOBUF_LIBRARIES})
|
||
| 34 | cf5923cc | Thies Pfeiffer | |
| 35 | install(TARGETS GazeTkProtocol |
||
| 36 | RUNTIME DESTINATION bin COMPONENT libraries |
||
| 37 | LIBRARY DESTINATION lib COMPONENT libraries |
||
| 38 | PUBLIC_HEADER DESTINATION include COMPONENT libraries |
||
| 39 | ARCHIVE DESTINATION lib/static COMPONENT libraries) |
||
| 40 | |||
| 41 | install(DIRECTORY src_cpp/ DESTINATION include/GazeTkProtocol |
||
| 42 | FILES_MATCHING PATTERN "*.h") |
||
| 43 | |||
| 44 | # |
||
| 45 | # Installing the header files. |
||
| 46 | # Looks a little bit complicated, the headers are generated, so we have to search |
||
| 47 | # for them. However, if we do so, the install command creates empty subdirs according |
||
| 48 | # to initial structure. By excluding them, this is prohibited. Nicer solutions welcome! |
||
| 49 | # |
||
| 50 | install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ DESTINATION include/GazeTkProtocol
|
||
| 51 | FILES_MATCHING PATTERN "*.h" |
||
| 52 | PATTERN "Win32" EXCLUDE |
||
| 53 | PATTERN "GazeTkProtocol.dir" EXCLUDE |
||
| 54 | PATTERN "Debug" EXCLUDE |
||
| 55 | PATTERN "Release" EXCLUDE |
||
| 56 | PATTERN "CMakeFiles" EXCLUDE |
||
| 57 | ) |
||
| 58 |