gazetk / Protocol / CMakeLists.txt @ cf5923cc
History | View | Annotate | Download (2.149 KB)
| 1 |
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 |
#SET(CMAKE_INSTALL_PREFIX "../../" CACHE PATH "Install path prefix" FORCE INTERNAL ) |
| 20 |
|
| 21 |
# 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 |
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 |
|
| 28 |
#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 |
# add the library |
| 32 |
add_library(GazeTkProtocol STATIC src_cpp/protocol.cc ${PROTO_SRCS} ${PROTO_HDRS})
|
| 33 |
target_link_libraries(GazeTkProtocol ${PROTOBUF_LIBRARIES})
|
| 34 |
|
| 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 |
|