CodeCompass
/
FindThrift.cmake
50 строк · 1.6 Кб
1# - Try to find LibThrift
2# LIBTHRIFT_FOUND - System has LibThrift
3# LIBTHRIFT_INCLUDE_DIRS - The LibThrift include directories
4# LIBTHRIFT_LIBRARIES - The libraries needed to use LibThrift
5# LIBTHRIFT_DEFINITIONS - Compiler switches required for using LibThrift
6
7find_package(PkgConfig QUIET)
8pkg_check_modules(PC_LIBTHRIFT QUIET "libthrift")
9set(LIBTHRIFT_DEFINITIONS ${PC_LIBTHRIFT_CFLAGS_OTHER})
10
11find_path(libthrift_INCLUDE_DIR
12NAMES thrift/Thrift.h
13HINTS ${PC_LIBTHRIFT_INCLUDE_DIR})
14
15find_library(libthrift_LIBRARY
16NAMES thrift libthrift
17HINTS
18${THIRFT_LIBRARY_PATH}
19${PC_LIBTHIRFT_LIBRARY_DIRS})
20
21find_program(thrift_BIN
22NAMES thrift
23HINTS
24${libthrift_INCLUDE_DIR}/../bin)
25
26mark_as_advanced(libthrift_INCLUDE_DIR libthrift_LIBRARY thrift_BIN)
27
28set(THRIFT_LIBTHRIFT_INCLUDE_DIRS ${libthrift_INCLUDE_DIR}
29CACHE STRING "Thrift libthrift include dirs")
30set(THRIFT_LIBTHRIFT_LIBRARIES ${libthrift_LIBRARY}
31CACHE STRING "Thrift libthrift library")
32set(THRIFT_EXECUTABLE ${thrift_BIN}
33CACHE STRING "Thrift executable")
34
35if(THRIFT_LIBTHRIFT_INCLUDE_DIRS AND THRIFT_LIBTHRIFT_LIBRARIES)
36set(THRIFT_LIBTHRIFT_FOUND TRUE)
37endif()
38
39if(Thrift_FIND_REQUIRED AND
40(NOT THRIFT_LIBTHRIFT_FOUND OR NOT THRIFT_EXECUTABLE))
41message(FATAL_ERROR "Couldn't find Thrift.")
42endif()
43
44set(THRIFT_INCLUDE_DIRS ${THRIFT_LIBTHRIFT_INCLUDE_DIRS})
45set(THRIFT_LIBRARIES ${THRIFT_LIBTHRIFT_LIBRARIES})
46
47execute_process(COMMAND ${THRIFT_EXECUTABLE} --version
48OUTPUT_VARIABLE Thrift_VERSION
49OUTPUT_STRIP_TRAILING_WHITESPACE)
50message(STATUS "Found ${Thrift_VERSION}: ${THRIFT_EXECUTABLE}")
51