mirror of
https://github.com/apache/impala.git
synced 2026-01-06 06:01:03 -05:00
Change-Id: I5bfe77f9a871018e7a67553ed270e2df53006962 Reviewed-on: http://gerrit.cloudera.org:8080/4361 Reviewed-by: Alex Behm <alex.behm@cloudera.com> Tested-by: Internal Jenkins
91 lines
2.9 KiB
CMake
91 lines
2.9 KiB
CMake
##############################################################################
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
##############################################################################
|
|
|
|
# - Find Thrift (a cross platform RPC lib/tool)
|
|
# THRIFT_ROOT hints the location
|
|
#
|
|
# This module defines
|
|
# THRIFT_VERSION, version string of ant if found
|
|
# THRIFT_INCLUDE_DIR, where to find THRIFT headers
|
|
# THRIFT_CONTRIB_DIR, where contrib thrift files (e.g. fb303.thrift) are installed
|
|
# THRIFT_LIBS, THRIFT libraries
|
|
# thriftstatic - imported static library
|
|
|
|
# prefer the thrift version supplied in THRIFT_HOME
|
|
message(STATUS "THRIFT_HOME: $ENV{THRIFT_HOME}")
|
|
find_path(THRIFT_INCLUDE_DIR thrift/Thrift.h HINTS
|
|
${THRIFT_ROOT}/include
|
|
$ENV{THRIFT_HOME}/include/
|
|
/usr/local/include/
|
|
/opt/local/include/
|
|
)
|
|
|
|
find_path(THRIFT_CONTRIB_DIR share/fb303/if/fb303.thrift HINTS
|
|
${THRIFT_ROOT}/include
|
|
$ENV{THRIFT_HOME}
|
|
/usr/local/
|
|
)
|
|
|
|
set(THRIFT_LIB_PATHS
|
|
${THRIFT_ROOT}/lib
|
|
$ENV{THRIFT_HOME}/lib
|
|
/usr/local/lib
|
|
/opt/local/lib)
|
|
|
|
find_path(THRIFT_STATIC_LIB_PATH libthrift.a PATHS ${THRIFT_LIB_PATHS})
|
|
|
|
# prefer the thrift version supplied in THRIFT_HOME
|
|
find_library(THRIFT_LIB NAMES thrift HINTS ${THRIFT_LIB_PATHS})
|
|
|
|
find_program(THRIFT_COMPILER thrift
|
|
${THRIFT_ROOT}/bin
|
|
$ENV{THRIFT_HOME}/bin
|
|
/usr/local/bin
|
|
/usr/bin
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
if (THRIFT_LIB)
|
|
set(THRIFT_LIBS ${THRIFT_LIB})
|
|
set(THRIFT_STATIC_LIB ${THRIFT_STATIC_LIB_PATH}/libthrift.a)
|
|
exec_program(${THRIFT_COMPILER}
|
|
ARGS -version OUTPUT_VARIABLE THRIFT_VERSION RETURN_VALUE THRIFT_RETURN)
|
|
if (NOT THRIFT_FIND_QUIETLY)
|
|
message(STATUS "Thrift version: ${THRIFT_VERSION}")
|
|
endif ()
|
|
set(THRIFT_FOUND TRUE)
|
|
# for static linking with Thrift, THRIFT_STATIC_LIB is set in FindThrift.cmake
|
|
add_library(thriftstatic STATIC IMPORTED)
|
|
set_target_properties(thriftstatic PROPERTIES IMPORTED_LOCATION ${THRIFT_STATIC_LIB})
|
|
|
|
else ()
|
|
set(THRIFT_FOUND FALSE)
|
|
message(FATAL_ERROR "Thrift compiler/libraries NOT found. "
|
|
"Thrift support will be disabled (${THRIFT_RETURN}, "
|
|
"${THRIFT_INCLUDE_DIR}, ${THRIFT_LIB})")
|
|
endif ()
|
|
|
|
|
|
mark_as_advanced(
|
|
THRIFT_LIB
|
|
THRIFT_COMPILER
|
|
THRIFT_INCLUDE_DIR
|
|
thriftstatic
|
|
)
|