You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by he...@apache.org on 2017/07/19 02:45:23 UTC

incubator-impala git commit: IMPALA-5659: Begin standardizing treatment of thirdparty libraries

Repository: incubator-impala
Updated Branches:
  refs/heads/master bc2250f84 -> d79e01ef9


IMPALA-5659: Begin standardizing treatment of thirdparty libraries

If Impala was built with --build_shared_libs, some thirdparty libraries
were still statically linked; this could cause runtime errors if the
libraries were also linked into a .so. This patch fixes that issue (for
gflags, glog and protobuf at least) by ensuring that build_shared_libs
is respected for those libraries.

* Standardize thirdparty library handling w/CMake by adding
  IMPALA_ADD_THIRDPARTY_LIB. This creates a symbolic name for each
  library, allowing us to switch the underlying library
  files (e.g. change from static to dynamic linking) without having to
  individually change the link clauses for each target.

* Remove most cases of add_library() from cmake_modules/* - that is all
  handled by IMPALA_ADD_THIRDPARTY_LIB.

* Add shared library detection for a couple of thirdparty
  dependencies (many only detect static libraries), just to prove the concept.

* All thirdparty libraries now print a standard set of messages. For example:

-- ----------> Adding thirdparty library protoc. <----------
-- Header files: /data/henry/src/cloudera/impala-toolchain/protobuf-2.6.1/include
-- Added shared library dependency protoc: /data/henry/src/cloudera/impala-toolchain/protobuf-2.6.1/lib/libprotoc.so
-- ----------> Adding thirdparty library libev. <----------
-- Header files: /data/henry/src/cloudera/impala-toolchain/libev-4.20/include
-- Added shared library dependency libev: /data/henry/src/cloudera/impala-toolchain/libev-4.20/lib/libev.so

* Some libraries don't quite fit this pattern (LLVM and Boost) - leave
  them as is for now.

* Remove FindOpenSSL.cmake - the toolchain one is more modern.

Change-Id: Ib7a6bc5610aaf2450f91348d94cfb984c6a4b78d
Reviewed-on: http://gerrit.cloudera.org:8080/7418
Tested-by: Impala Public Jenkins
Reviewed-by: Tim Armstrong <ta...@cloudera.com>


Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/d79e01ef
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/d79e01ef
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/d79e01ef

Branch: refs/heads/master
Commit: d79e01ef9fec559d4ebe57d41539f4e4164ae78f
Parents: bc2250f
Author: Henry Robinson <he...@cloudera.com>
Authored: Thu Jul 13 13:03:54 2017 -0700
Committer: Henry Robinson <he...@cloudera.com>
Committed: Wed Jul 19 02:44:18 2017 +0000

----------------------------------------------------------------------
 CMakeLists.txt                      | 206 +++++++++++--------------------
 be/CMakeLists.txt                   |  38 +++---
 cmake_modules/FindAvro.cmake        |   4 -
 cmake_modules/FindBreakpad.cmake    |   4 -
 cmake_modules/FindFlatBuffers.cmake |   6 +-
 cmake_modules/FindGFlags.cmake      |  11 +-
 cmake_modules/FindGLog.cmake        |   9 +-
 cmake_modules/FindGTest.cmake       |  33 +++--
 cmake_modules/FindHDFS.cmake        |  33 ++---
 cmake_modules/FindLdap.cmake        |  10 +-
 cmake_modules/FindLz4.cmake         |   4 -
 cmake_modules/FindOpenSSL.cmake     |  54 --------
 cmake_modules/FindRe2.cmake         |   6 +-
 cmake_modules/FindSasl.cmake        |  12 +-
 cmake_modules/FindSnappy.cmake      |   3 -
 cmake_modules/FindThrift.cmake      |   4 +-
 cmake_modules/FindZlib.cmake        |  15 +--
 cmake_modules/kudu_cmake_fns.txt    |   4 +-
 18 files changed, 155 insertions(+), 301 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 130eb5b..89cf708 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -118,82 +118,69 @@ if (CMAKE_DEBUG)
   set(Boost_DEBUG TRUE)
 endif()
 
+# Adds a third-party library with name ${NAME}. If BUILD_SHARED_LIBS is true, the new
+# library refers to ${SHARED_LIB}; otherwise it refers to ${STATIC_LIB}. If only one
+# library (static or shared) is provided, it is used regardless of BUILD_SHARED_LIBS. The
+# library's headers are added to the system include path.
+function(IMPALA_ADD_THIRDPARTY_LIB NAME HEADER STATIC_LIB SHARED_LIB)
+  message(STATUS "----------> Adding thirdparty library ${NAME}. <----------")
+  if (HEADER)
+    include_directories(SYSTEM ${HEADER})
+    message(STATUS "Header files: ${HEADER}")
+  endif()
+  if (NOT STATIC_LIB AND NOT SHARED_LIB)
+    message(FATAL_ERROR "Library '${NAME}' has neither shared nor static library files")
+    return ()
+  endif()
+
+  if ((BUILD_SHARED_LIBS AND SHARED_LIB) OR NOT STATIC_LIB)
+    ADD_THIRDPARTY_LIB(${NAME} SHARED_LIB ${SHARED_LIB})
+  else()
+    ADD_THIRDPARTY_LIB(${NAME} STATIC_LIB ${STATIC_LIB})
+  endif()
+endfunction()
+
+
 find_package(Boost REQUIRED COMPONENTS thread regex filesystem system date_time)
 include_directories(${Boost_INCLUDE_DIRS})
-set(LIBS ${LIBS} ${Boost_LIBRARIES})
 message(STATUS "Boost include dir: " ${Boost_INCLUDE_DIRS})
 message(STATUS "Boost libraries: " ${Boost_LIBRARIES})
 
 find_package(OpenSSL REQUIRED)
-include_directories(${OPENSSL_INCLUDE_DIR})
-set(OPENSSL_LIBS ${OPENSSL_SSL} ${OPENSSL_CRYPTO})
-message(STATUS "OpenSSL: ${OPENSSL_LIBS}")
+IMPALA_ADD_THIRDPARTY_LIB(openssl_ssl ${OPENSSL_INCLUDE_DIR} "" ${OPENSSL_SSL_LIBRARY})
+IMPALA_ADD_THIRDPARTY_LIB(openssl_crypto "" "" ${OPENSSL_CRYPTO_LIBRARY})
 
 find_package(Bzip2 REQUIRED)
-include_directories(${BZIP2_INCLUDE_DIR})
+IMPALA_ADD_THIRDPARTY_LIB(bzip2 ${BZIP2_INCLUDE_DIR} ${BZIP2_STATIC_LIBRARIES} "")
 
 find_package(Zlib REQUIRED)
-include_directories(${ZLIB_INCLUDE_DIR})
-message(STATUS "zlib: Static -> ${ZLIB_STATIC}, Other -> ${ZLIB_LIBRARIES}")
-
-if(NOT BUILD_SHARED_LIBS)
-  # Panic if we cannot find the static libraries as they are supposed to be
-  # in the toolchain.
-  if (NOT BZIP2_STATIC_FOUND)
-    message(FATAL_ERROR "bzip2 static library libbz2.a not found in $ENV{IMPALA_TOOLCHAIN}")
-  endif()
-  if (NOT ZLIB_STATIC_FOUND)
-    message(FATAL_ERROR "zlib static library libz.a not found in $ENV{IMPALA_TOOLCHAIN}")
-  endif()
-
-  set(LIBBZ2 BZIP2_STATIC)
-  set(LIBZ ZLIB_STATIC)
-else()
-  set(LIBBZ2 ${BZIP2_LIBRARIES})
-  set(LIBZ ${ZLIB_LIBRARIES})
-endif ()
+IMPALA_ADD_THIRDPARTY_LIB(zlib ${ZLIB_INCLUDE_DIR} ${ZLIB_STATIC_LIBRARIES}
+  ${ZLIB_SHARED_LIBRARIES})
 
 # find HDFS headers and libs
+set(HDFS_FIND_QUIETLY TRUE)
 find_package(HDFS REQUIRED)
-include_directories(${HDFS_INCLUDE_DIR})
-
-if(BUILD_SHARED_LIBS)
-  set(LIBS ${LIBS} ${HDFS_LIBRARIES})
-  set(HDFS_LIB ${HDFS_LIBRARIES})
-else()
-  set(LIBS ${LIBS} HDFS_STATIC)
-  set(HDFS_LIB HDFS_STATIC)
-endif()
+IMPALA_ADD_THIRDPARTY_LIB(hdfs ${HDFS_INCLUDE_DIR} ${HDFS_STATIC_LIB} ${HDFS_SHARED_LIB})
 
 # find GLog headers and libs.  Must include glog headers before the other
 # google libraries.  They all have a config.h and we want glog's to be picked
 # up first.
 find_package(GLog REQUIRED)
-include_directories(${GLOG_INCLUDE_DIR})
-set(LIBS ${LIBS} ${GLOG_LIBS})
-message(STATUS "GLog include dir: " ${GLOG_INCLUDE_DIR})
+IMPALA_ADD_THIRDPARTY_LIB(glog ${GLOG_INCLUDE_DIR} ${GLOG_STATIC_LIB} ${GLOG_SHARED_LIB})
 
-# find GFlags headers and libs (needed for GLog)
+# find GFlags headers and libs
 find_package(GFlags REQUIRED)
-include_directories(${GFLAGS_INCLUDE_DIR})
-set(LIBS ${LIBS} ${GFLAGS_LIBS})
-message(STATUS "GFlags include dir: " ${GFLAGS_INCLUDE_DIR})
-message(STATUS "GFlags lib dir: " ${GFLAGS_LIBS})
+IMPALA_ADD_THIRDPARTY_LIB(gflags ${GFLAGS_INCLUDE_DIR} ${GFLAGS_STATIC_LIB}
+  ${GFLAGS_SHARED_LIB})
 
 # find PProf libs
 find_package(PProf REQUIRED)
-include_directories(${PPROF_INCLUDE_DIR})
-set (LIBS ${LIBS} ${PPROF_LIBRARIES})
-message(STATUS "PProf include dir: " ${PPROF_INCLUDE_DIR})
-message(STATUS "PProf static lib: " ${PPROF_STATIC_LIB})
+IMPALA_ADD_THIRDPARTY_LIB(pprof ${PPROF_INCLUDE_DIR} ${PPROF_STATIC_LIB} "")
 
 # find GTest headers and libs
+set (GTEST_FIND_QUIETLY TRUE)
 find_package(GTest REQUIRED)
-include_directories(${GTEST_INCLUDE_DIR})
-set(LIBS ${LIBS} ${GTEST_LIBRARIES})
-
-message(STATUS "GTest include dir: " ${GTEST_INCLUDE_DIR})
-message(STATUS "GTest library: " ${GTEST_LIBRARY})
+IMPALA_ADD_THIRDPARTY_LIB(gtest ${GTEST_INCLUDE_DIR} ${GTEST_STATIC_LIB} "")
 
 # Use LLVM release binaries.
 set(LLVM_BINARIES_ROOT ${LLVM_ROOT})
@@ -211,23 +198,16 @@ message(STATUS "LLVM_ROOT: " ${LLVM_ROOT})
 
 find_package(Llvm REQUIRED)
 include_directories(${LLVM_INCLUDE_DIR})
-set(LIBS ${LIBS} ${LLVM_MODULE_LIBS})
 
 # find Sasl
+set(SASL_FIND_QUIETLY TRUE)
 find_package(Sasl REQUIRED)
-include_directories(${SASL_INCLUDE_DIR})
-add_library(sasllib SHARED IMPORTED)
-set_target_properties(sasllib PROPERTIES IMPORTED_LOCATION ${SASL_SHARED_LIB})
-set(SASL_LIBRARY sasllib)
-message(STATUS "Sasl include dir: " ${SASL_INCLUDE_DIR})
-message(STATUS "Sasl library: " ${SASL_LIBRARY})
+IMPALA_ADD_THIRDPARTY_LIB(cyrus_sasl ${SASL_INCLUDE_DIR} "" ${SASL_SHARED_LIB})
 
 # find openldap
 find_package(Ldap REQUIRED)
-include_directories(${LDAP_INCLUDE_DIR})
-set(LDAP_LIBRARY ldapstatic)
-set(LBER_LIBRARY lberstatic)
-message(STATUS "LDAP: ${LDAP_INCLUDE_DIR}")
+IMPALA_ADD_THIRDPARTY_LIB(ldap ${LDAP_INCLUDE_DIR} ${LDAP_STATIC_LIBRARY} "")
+IMPALA_ADD_THIRDPARTY_LIB(lber "" ${LBER_STATIC_LIBRARY} "")
 
 # The environment variable $THRIFT_HOME is set in impala-config.sh
 # Make sure it's consistent with $THRIFT_ROOT.
@@ -236,43 +216,30 @@ if (NOT ($ENV{THRIFT_HOME} STREQUAL ${THRIFT_ROOT}))
       "variable THRIFT_HOME ($ENV{THRIFT_HOME}).")
 endif()
 # find thrift headers and libs
+set(THRIFT_FIND_QUIETLY TRUE)
 find_package(Thrift REQUIRED)
-include_directories(${THRIFT_INCLUDE_DIR})
-set(LIBS ${LIBS} ${THRIFT_LIBS})
-message(STATUS "Thrift include dir: ${THRIFT_INCLUDE_DIR}")
+IMPALA_ADD_THIRDPARTY_LIB(thrift ${THRIFT_INCLUDE_DIR} ${THRIFT_STATIC_LIB} "")
+message(STATUS "Thrift version: ${THRIFT_VERSION}")
 message(STATUS "Thrift contrib dir: ${THRIFT_CONTRIB_DIR}")
-message(STATUS "Thrift library path: ${THRIFT_LIBS}")
-message(STATUS "Thrift static library: ${THRIFT_STATIC_LIB}")
 message(STATUS "Thrift compiler: ${THRIFT_COMPILER}")
 
 # find flatbuffers headers, lib and compiler
 find_package(FlatBuffers REQUIRED)
-include_directories(${FLATBUFFERS_INCLUDE_DIR})
-set(LIBS ${LIBS} ${FLATBUFFERS_LIBS})
-message(STATUS "FlatBuffers include dir: ${FLATBUFFERS_INCLUDE_DIR}")
-message(STATUS "FlatBuffers library path: ${FLATBUFFERS_LIBS}")
+IMPALA_ADD_THIRDPARTY_LIB(flatbuffers ${FLATBUFFERS_INCLUDE_DIR}
+  ${FLATBUFFERS_STATIC_LIB} "")
 message(STATUS "FlatBuffers compiler: ${FLATBUFFERS_COMPILER}")
 
 # find Snappy headers and libs
 find_package(Snappy REQUIRED)
-include_directories(${SNAPPY_INCLUDE_DIR})
-set(LIBS ${LIBS} ${SNAPPY_LIBRARIES})
-message(STATUS "Snappy include dir: " ${SNAPPY_INCLUDE_DIR})
-message(STATUS "Snappy library: " "${SNAPPY_STATIC_LIB}")
+IMPALA_ADD_THIRDPARTY_LIB(snappy ${SNAPPY_INCLUDE_DIR} ${SNAPPY_STATIC_LIB} "")
 
 # find lz4 lib
 find_package(Lz4 REQUIRED)
-include_directories(${LZ4_INCLUDE_DIR})
-set(LIBS ${LIBS} ${LZ4_LIBRARIES})
-message(STATUS "Lz4 include dir: " ${LZ4_INCLUDE_DIR})
-message(STATUS "Lz4 library: " "${LZ4_STATIC_LIB}")
+IMPALA_ADD_THIRDPARTY_LIB(lz4 ${LZ4_INCLUDE_DIR} ${LZ4_STATIC_LIB} "")
 
 # find re2 headers and libs
 find_package(Re2 REQUIRED)
-include_directories(${RE2_INCLUDE_DIR})
-set(LIBS ${LIBS} ${RE2_LIBRARIES})
-message(STATUS "Re2 include dir: " ${RE2_INCLUDE_DIR})
-message(STATUS "Re2 library: " ${RE2_STATIC_LIB})
+IMPALA_ADD_THIRDPARTY_LIB(re2 ${RE2_INCLUDE_DIR} ${RE2_STATIC_LIB} "")
 
 # find rapidjson headers
 find_package(RapidJson REQUIRED)
@@ -281,23 +248,34 @@ message(STATUS "RapidJson include dir: " ${RAPIDJSON_INCLUDE_DIR})
 
 # find Avro headers and libs
 find_package(Avro REQUIRED)
-include_directories(${AVRO_INCLUDE_DIR})
-set(LIBS ${LIBS} ${AVRO_STATIC_LIB})
-message(STATUS "Avro include dir: " ${AVRO_INCLUDE_DIR})
-message(STATUS "Avro static library: " ${AVRO_STATIC_LIB})
+IMPALA_ADD_THIRDPARTY_LIB(avro ${AVRO_INCLUDE_DIR} ${AVRO_STATIC_LIB} "")
 
-###################################################################
-# These dependencies use Kudu's CMake functions
+# find protobuf headers, libs and compiler
+find_package(Protobuf REQUIRED)
+IMPALA_ADD_THIRDPARTY_LIB(protobuf ${PROTOBUF_INCLUDE_DIR} ${PROTOBUF_STATIC_LIBRARY}
+  ${PROTOBUF_SHARED_LIBRARY})
+IMPALA_ADD_THIRDPARTY_LIB(protoc ${PROTOBUF_INCLUDE_DIR} ${PROTOBUF_PROTOC_STATIC_LIBRARY}
+  ${PROTOBUF_PROTOC_SHARED_LIBRARY})
 
-ADD_THIRDPARTY_LIB(glog
-  STATIC_LIB ${GLOG_STATIC_LIB})
-ADD_THIRDPARTY_LIB(gflags
-  STATIC_LIB ${GFLAGS_STATIC_LIB})
-ADD_THIRDPARTY_LIB(zlib
-  STATIC_LIB ${ZLIB_STATIC_LIBRARIES})
-ADD_THIRDPARTY_LIB(cyrus_sasl
-  SHARED_LIB ${SASL_SHARED_LIB})
+# find libev headers and libs
+find_package(LibEv REQUIRED)
+IMPALA_ADD_THIRDPARTY_LIB(libev ${LIBEV_INCLUDE_DIR} ${LIBEV_STATIC_LIB}
+  ${LIBEV_SHARED_LIB})
+
+# Find crcutil headers and libs
+find_package(Crcutil REQUIRED)
+IMPALA_ADD_THIRDPARTY_LIB(crcutil ${CRCUTIL_INCLUDE_DIR} ${CRCUTIL_STATIC_LIB}
+  ${CRCUTIL_SHARED_LIB})
 
+# find jni headers and libs
+find_package(JNI REQUIRED)
+IMPALA_ADD_THIRDPARTY_LIB(java_jvm "${JNI_INCLUDE_DIRS}" ${JAVA_JVM_LIBRARY} "")
+
+# find breakpad headers and libs
+find_package(Breakpad REQUIRED)
+IMPALA_ADD_THIRDPARTY_LIB(breakpad ${BREAKPAD_INCLUDE_DIR} ${BREAKPAD_STATIC_LIB} "")
+
+# System dependencies
 if (NOT APPLE)
   find_library(RT_LIB_PATH rt)
   if(NOT RT_LIB_PATH)
@@ -314,29 +292,7 @@ if (NOT APPLE)
     SHARED_LIB "${DL_LIB_PATH}")
 endif()
 
-# find protobuf headers, libs and compiler
-find_package(Protobuf REQUIRED)
-include_directories(SYSTEM ${PROTOBUF_INCLUDE_DIR})
-message(STATUS "Protobuf include dir: " ${PROTOBUF_INCLUDE_DIR})
-
-ADD_THIRDPARTY_LIB(protobuf
-  STATIC_LIB "${PROTOBUF_STATIC_LIBRARY}")
-ADD_THIRDPARTY_LIB(protoc
-  STATIC_LIB "${PROTOBUF_PROTOC_STATIC_LIBRARY}"
-  DEPS protobuf)
-
-find_package(LibEv REQUIRED)
-include_directories(SYSTEM ${LIBEV_INCLUDE_DIR})
-ADD_THIRDPARTY_LIB(libev
-  STATIC_LIB "${LIBEV_STATIC_LIB}")
-
-find_package(Crcutil REQUIRED)
-include_directories(SYSTEM ${CRCUTIL_INCLUDE_DIR})
-ADD_THIRDPARTY_LIB(crcutil
-  STATIC_LIB "${CRCUTIL_STATIC_LIB}")
-
 ###################################################################
-
 # KuduClient can use GLOG
 add_definitions(-DKUDU_HEADERS_USE_GLOG)
 if(NOT $ENV{KUDU_CLIENT_DIR} EQUAL "")
@@ -354,20 +310,6 @@ endif()
 find_package(kuduClient REQUIRED NO_DEFAULT_PATH)
 include_directories(SYSTEM ${KUDU_CLIENT_INCLUDE_DIR})
 
-# find jni headers and libs
-find_package(JNI REQUIRED)
-include_directories(${JNI_INCLUDE_DIRS})
-set(LIBS ${LIBS} ${JNI_LIBRARIES})
-message(STATUS "JNI_INCLUDE_DIRS: ${JNI_INCLUDE_DIRS}")
-message(STATUS "JNI_LIBRARIES: ${JNI_LIBRARIES}")
-
-# find breakpad headers and libs
-find_package(Breakpad REQUIRED)
-include_directories(${BREAKPAD_INCLUDE_DIR})
-set(LIBS ${LIBS} ${BREAKPAD_LIBRARIES})
-message(STATUS "Breakpad include dir: " ${BREAKPAD_INCLUDE_DIR})
-message(STATUS "Breakpad library: " ${BREAKPAD_STATIC_LIB})
-
 # compile these subdirs using their own CMakeLists.txt
 add_subdirectory(common/function-registry)
 add_subdirectory(common/thrift)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/be/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt
index 6f3acff..10e47f3 100644
--- a/be/CMakeLists.txt
+++ b/be/CMakeLists.txt
@@ -350,27 +350,28 @@ if (BUILD_SHARED_LIBS)
 endif ()
 
 set (IMPALA_DEPENDENCIES
-  ${SNAPPY_STATIC_LIB}
-  ${LZ4_STATIC_LIB}
-  ${RE2_STATIC_LIB}
+  snappy
+  lz4
+  re2
   ${Boost_LIBRARIES}
   ${LLVM_MODULE_LIBS}
-  thriftstatic
-  ${SASL_LIBRARY}
-  ${LDAP_LIBRARY}
-  ${LBER_LIBRARY}
+  thrift
+  cyrus_sasl
+  ldap
+  lber
   ThriftSaslTransport
-  ${OPENSSL_LIBS}
+  openssl_ssl
+  openssl_crypto
   gutil
-  glogstatic
-  gflagsstatic
-  pprofstatic
+  glog
+  gflags
+  pprof
   breakpad
-  ${HDFS_LIB}
-  ${LIBZ}
-  ${LIBBZ2}
-  ${AVRO_STATIC_LIB}
-  ${JAVA_JVM_LIBRARY}
+  hdfs
+  zlib
+  bzip2
+  avro
+  java_jvm
   kudu_client)
 
 # Add all external dependencies. They should come after the impala libs.
@@ -396,8 +397,9 @@ endif()
 # library. The result will not compile as libhdfs.a is not compiled with -fpic. The same
 # is true for other system dependencies that we don't have control over.
 set(IMPALA_LINK_LIBS_DYNAMIC_TARGETS ${IMPALA_LINK_LIBS_NO_TCMALLOC})
-list(REMOVE_ITEM IMPALA_LINK_LIBS_DYNAMIC_TARGETS HDFS_STATIC)
-set(IMPALA_LINK_LIBS_DYNAMIC_TARGETS ${IMPALA_LINK_LIBS_DYNAMIC_TARGETS} ${HDFS_LIBRARIES})
+list(REMOVE_ITEM IMPALA_LINK_LIBS_DYNAMIC_TARGETS hdfs)
+set(IMPALA_LINK_LIBS_DYNAMIC_TARGETS ${IMPALA_LINK_LIBS_DYNAMIC_TARGETS}
+  ${HDFS_SHARED_LIB})
 
 # Link libs for test executables.  Although not all tests need all libs,
 # the build time for the tests is rather small and not worth the trouble.

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindAvro.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindAvro.cmake b/cmake_modules/FindAvro.cmake
index 3033a40..eaa92cf 100644
--- a/cmake_modules/FindAvro.cmake
+++ b/cmake_modules/FindAvro.cmake
@@ -22,7 +22,6 @@
 #  AVRO_INCLUDE_DIR, directory containing headers
 #  AVRO_STATIC_LIB, path to libavrocpp_s.a
 #  AVRO_FOUND
-#  avro - static library
 set(AVRO_SEARCH_HEADER_PATHS
   ${AVRO_ROOT}/include
   $ENV{IMPALA_HOME}/thirdparty/avro-c-$ENV{IMPALA_AVRO_VERSION}/src)
@@ -45,8 +44,6 @@ if(NOT AVRO_STATIC_LIB)
   set(AVRO_FOUND FALSE)
 else()
   set(AVRO_FOUND TRUE)
-  add_library(avro STATIC IMPORTED)
-  set_target_properties(avro PROPERTIES IMPORTED_LOCATION "${AVRO_STATIC_LIB}")
 endif ()
 
 set(AVRO_FOUND ${AVRO_STATIC_LIB_FOUND})
@@ -55,5 +52,4 @@ mark_as_advanced(
   AVRO_INCLUDE_DIR
   AVRO_STATIC_LIB
   AVRO_FOUND
-  avro
 )

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindBreakpad.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindBreakpad.cmake b/cmake_modules/FindBreakpad.cmake
index 91a7b06..0eed2d7 100644
--- a/cmake_modules/FindBreakpad.cmake
+++ b/cmake_modules/FindBreakpad.cmake
@@ -21,7 +21,6 @@
 # This module defines
 #  BREAKPAD_INCLUDE_DIR, directory containing headers
 #  BREAKPAD_STATIC_LIB, path to libbreakpad_client.a
-#  breakpad, imported static library
 
 set(BREAKPAD_SEARCH_LIB_PATH
   ${BREAKPAD_ROOT}/lib
@@ -41,8 +40,6 @@ if (BREAKPAD_LIB_PATH)
   set(BREAKPAD_LIBS ${BREAKPAD_SEARCH_LIB_PATH})
   set(BREAKPAD_STATIC_LIB ${BREAKPAD_SEARCH_LIB_PATH}/libbreakpad_client.a)
   set(BREAKPAD_FOUND TRUE)
-  add_library(breakpad STATIC IMPORTED)
-  set_target_properties(breakpad PROPERTIES IMPORTED_LOCATION "${BREAKPAD_STATIC_LIB}")
 else ()
   message(FATAL_ERROR "Breakpad library NOT found. "
     "in ${BREAKPAD_SEARCH_LIB_PATH}")
@@ -53,5 +50,4 @@ mark_as_advanced(
   BREAKPAD_INCLUDE_DIR
   BREAKPAD_LIBS
   BREAKPAD_STATIC_LIB
-  breakpad
 )

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindFlatBuffers.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindFlatBuffers.cmake b/cmake_modules/FindFlatBuffers.cmake
index 19ee588..2ae4d36 100644
--- a/cmake_modules/FindFlatBuffers.cmake
+++ b/cmake_modules/FindFlatBuffers.cmake
@@ -20,7 +20,7 @@
 # Find FLATBUFFERS (flatbuffers/include, libflatbuffers.a, flatc)
 # This module defines:
 # FLATBUFFERS_INCLUDE_DIR, directory containing headers
-# FLATBUFFERS_LIBS, path to flatbuffers's static library
+# FLATBUFFERS_STATIC_LIB, path to flatbuffers's static library
 # FLATBUFFERS_COMPILER, path to flatc compiler
 
 find_path(FLATBUFFERS_INCLUDE_DIR flatbuffers/flatbuffers.h
@@ -28,7 +28,7 @@ find_path(FLATBUFFERS_INCLUDE_DIR flatbuffers/flatbuffers.h
   NO_CMAKE_SYSTEM_PATH
   NO_SYSTEM_ENVIRONMENT_PATH)
 
-find_library(FLATBUFFERS_LIBS libflatbuffers.a
+find_library(FLATBUFFERS_STATIC_LIB libflatbuffers.a
   PATHS ${FLATBUFFERS_ROOT}/lib
   NO_CMAKE_SYSTEM_PATH
   NO_SYSTEM_ENVIRONMENT_PATH)
@@ -40,4 +40,4 @@ find_program(FLATBUFFERS_COMPILER flatc
 
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(FLATBUFFERS REQUIRED_VARS
-  FLATBUFFERS_INCLUDE_DIR FLATBUFFERS_LIBS FLATBUFFERS_COMPILER)
+  FLATBUFFERS_INCLUDE_DIR FLATBUFFERS_STATIC_LIB FLATBUFFERS_COMPILER)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindGFlags.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindGFlags.cmake b/cmake_modules/FindGFlags.cmake
index 6ef88e6..735cc59 100644
--- a/cmake_modules/FindGFlags.cmake
+++ b/cmake_modules/FindGFlags.cmake
@@ -24,7 +24,7 @@
 #  GFLAGS_INCLUDE_DIR, directory containing headers
 #  GFLAGS_LIBS, directory containing gflag libraries
 #  GFLAGS_STATIC_LIB, path to libgflags.a
-#  gflagsstatic
+#  GFLAGS_SHARED_LIB, path to libgflags.so
 
 set(GFLAGS_SEARCH_HEADER_PATHS
   ${GFLAGS_ROOT}/include
@@ -44,23 +44,20 @@ find_path(GFLAGS_INCLUDE_DIR gflags/gflags.h PATHS
 
 find_library(GFLAGS_LIBS NAMES gflags PATHS ${GFLAGS_SEARCH_LIB_PATH})
 find_library(GFLAGS_STATIC_LIB NAMES libgflags.a PATHS ${GFLAGS_SEARCH_LIB_PATH})
+find_library(GFLAGS_SHARED_LIB NAMES libgflags.so PATHS ${GFLAGS_SEARCH_LIB_PATH})
 
-if (NOT GFLAGS_LIBS OR NOT GFLAGS_STATIC_LIB)
+if (NOT GFLAGS_LIBS OR NOT GFLAGS_STATIC_LIB OR NOT GFLAGS_SHARED_LIB)
   message(FATAL_ERROR "GFlags includes and libraries NOT found. "
     "Looked for headers in ${GFLAGS_SEARCH_HEADER_PATHS}, "
     "and for libs in ${GFLAGS_SEARCH_LIB_PATH}")
   set(GFLAGS_FOUND FALSE)
 else()
   set(GFLAGS_FOUND TRUE)
-  # for static linking with GFLAGS, GFLAGS_STATIC_LIB is set in GFLAGS' find module
-  add_library(gflagsstatic STATIC IMPORTED)
-  set_target_properties(gflagsstatic PROPERTIES IMPORTED_LOCATION ${GFLAGS_STATIC_LIB})
-
 endif ()
 
 mark_as_advanced(
   GFLAGS_INCLUDE_DIR
   GFLAGS_LIBS
   GFLAGS_STATIC_LIB
-  gflagsstatic
+  GFLAGS_SHARED_LIB
 )

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindGLog.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindGLog.cmake b/cmake_modules/FindGLog.cmake
index 992ac06..4e4c93d 100644
--- a/cmake_modules/FindGLog.cmake
+++ b/cmake_modules/FindGLog.cmake
@@ -24,7 +24,6 @@
 #  GLOG_INCLUDE_DIR, directory containing headers
 #  GLOG_LIBS, directory containing glog libraries
 #  GLOG_STATIC_LIB, path to libglog.a
-#  glogstatic
 
 set(THIRDPARTY $ENV{IMPALA_HOME}/thirdparty)
 
@@ -45,6 +44,7 @@ find_path(GLOG_INCLUDE_DIR glog/logging.h PATHS
 
 find_library(GLOG_LIBS NAMES glog PATHS ${GLOG_SEARCH_LIB_PATH})
 find_library(GLOG_STATIC_LIB NAMES libglog.a PATHS ${GLOG_SEARCH_LIB_PATH})
+find_library(GLOG_SHARED_LIB NAMES libglog.so PATHS ${GLOG_SEARCH_LIB_PATH})
 
 if (NOT GLOG_LIBS OR NOT GLOG_STATIC_LIB)
   message(FATAL_ERROR "GLog includes and libraries NOT found. "
@@ -53,16 +53,11 @@ if (NOT GLOG_LIBS OR NOT GLOG_STATIC_LIB)
   set(GLOG_FOUND FALSE)
 else()
   set(GLOG_FOUND TRUE)
-  # for static linking with GLOG, GLOG_STATIC_LIB is set in GLOG's find module
-  add_library(glogstatic STATIC IMPORTED)
-  # TODO: Is this directive required for all libraries? Seems to make no difference.
-  set_target_properties(glogstatic PROPERTIES IMPORTED_LOCATION ${GLOG_STATIC_LIB})
-
 endif ()
 
 mark_as_advanced(
   GLOG_INCLUDE_DIR
   GLOG_LIBS
   GLOG_STATIC_LIB
-  glogstatic
+  GLOG_SHARED_LIB
 )

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindGTest.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindGTest.cmake b/cmake_modules/FindGTest.cmake
index 9fb0433..a801165 100644
--- a/cmake_modules/FindGTest.cmake
+++ b/cmake_modules/FindGTest.cmake
@@ -27,48 +27,43 @@
 # This module defines
 # GTEST_INCLUDE_DIR, where to find gtest include files, etc.
 # GTEST_LIBRARIES, the libraries to link against to use gtest.
-# GTest_FOUND, If false, do not try to use gtest.
-
-# also defined, but not for general use are
-# GTEST_LIBRARY, where to find the GTest library.
-# gtest
+# GTEST_FOUND, If false, do not try to use gtest.
+# GTEST_STATIC_LIB, where to find the GTest library.
 
 set(GTEST_H gtest/gtest.h)
 
 find_path(GTEST_INCLUDE_DIR ${GTEST_H}
   PATHS ${GTEST_ROOT}/include
-        $ENV{IMPALA_HOME}/thirdparty/gtest-1.6.0/include
+        $ENV{IMPALA_HOME}/thirdparty/gtest-$ENV{IMPALA_GTEST_VERSION}/include
         NO_DEFAULT_PATH
   DOC   "Path to the ${GTEST_H} file"
 )
 
-find_library(GTEST_LIBRARY NAMES gtest
+find_library(GTEST_STATIC_LIB NAMES libgtest.a
   PATHS ${GTEST_ROOT}/lib
-        $ENV{IMPALA_HOME}/thirdparty/gtest-1.6.0
+        $ENV{IMPALA_HOME}/thirdparty/gtest-$ENV{IMPALA_GTEST_VERSION}
         NO_DEFAULT_PATH
   DOC   "Google's framework for writing C++ tests (gtest)"
 )
 
-find_library(GTEST_MAIN_LIBRARY NAMES gtest_main
+find_library(GTEST_MAIN_LIBRARY NAMES libgtest_main.a
   PATHS ${GTEST_ROOT}/lib
-        $ENV{IMPALA_HOME}/thirdparty/gtest-1.6.0
+        $ENV{IMPALA_HOME}/thirdparty/gtest-$ENV{IMPALA_GTEST_VERSION}
         NO_DEFAULT_PATH
   DOC   "Google's framework for writing C++ tests (gtest_main)"
 )
 
-if(GTEST_INCLUDE_DIR AND GTEST_LIBRARY AND GTEST_MAIN_LIBRARY)
-  set(GTEST_LIBRARIES ${GTEST_LIBRARY} ${GTEST_MAIN_LIBRARY})
+if(GTEST_INCLUDE_DIR AND GTEST_STATIC_LIB AND GTEST_MAIN_LIBRARY)
+  set(GTEST_LIBRARIES ${GTEST_STATIC_LIB} ${GTEST_MAIN_LIBRARY})
   set(GTEST_FOUND TRUE)
-else(GTEST_INCLUDE_DIR AND GTEST_LIBRARY AND GTEST_MAIN_LIBRARY)
+else(GTEST_INCLUDE_DIR AND GTEST_STATIC_LIB AND GTEST_MAIN_LIBRARY)
   set(GTEST_FOUND FALSE)
-endif(GTEST_INCLUDE_DIR AND GTEST_LIBRARY AND GTEST_MAIN_LIBRARY)
+endif(GTEST_INCLUDE_DIR AND GTEST_STATIC_LIB AND GTEST_MAIN_LIBRARY)
 
 if(GTEST_FOUND)
-  if(NOT GTest_FIND_QUIETLY)
+  if(NOT GTEST_FIND_QUIETLY)
     message(STATUS "Found GTest: ${GTEST_LIBRARIES}")
-  endif(NOT GTest_FIND_QUIETLY)
-  add_library(gtest STATIC IMPORTED)
-  set_target_properties(gtest PROPERTIES IMPORTED_LOCATION "${GTEST_LIBRARY}")
+  endif(NOT GTEST_FIND_QUIETLY)
 else(GTEST_FOUND)
   message(FATAL_ERROR "Could not find the GTest Library")
 endif(GTEST_FOUND)
@@ -76,4 +71,4 @@ endif(GTEST_FOUND)
 mark_as_advanced(
   GTEST_INCLUDE_DIR
   GTEST_LIBRARIES
-  gtest)
+  GTEST_STATIC_LIB)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindHDFS.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindHDFS.cmake b/cmake_modules/FindHDFS.cmake
index f0916e1..640c1b8 100644
--- a/cmake_modules/FindHDFS.cmake
+++ b/cmake_modules/FindHDFS.cmake
@@ -43,25 +43,26 @@ else ()
   set(arch_hint "x86")
 endif()
 
-message(STATUS "Architecture: ${arch_hint}")
 set(HDFS_LIB_PATHS $ENV{HADOOP_LIB_DIR}/native)
 
-message(STATUS "HDFS_LIB_PATHS: ${HDFS_LIB_PATHS}")
+if (NOT HDFS_FIND_QUIETLY)
+  message(STATUS "Architecture: ${arch_hint}")
+  message(STATUS "HDFS_LIB_PATHS: ${HDFS_LIB_PATHS}")
+endif()
 
-find_library(HDFS_LIB NAMES hdfs PATHS
+find_library(HDFS_STATIC_LIB NAMES libhdfs.a PATHS
   ${HDFS_LIB_PATHS}
   # make sure we don't accidentally pick up a different version
   NO_DEFAULT_PATH
-)
+  )
+find_library(HDFS_SHARED_LIB NAMES libhdfs.so PATHS
+  ${HDFS_LIB_PATHS}
+  # make sure we don't accidentally pick up a different version
+  NO_DEFAULT_PATH
+  )
 
-if (HDFS_LIB)
+if (HDFS_STATIC_LIB AND HDFS_SHARED_LIB)
   set(HDFS_FOUND TRUE)
-  set(HDFS_LIBRARIES ${HDFS_LIB})
-  set(HDFS_STATIC_LIB ${HDFS_LIB_PATHS}/libhdfs.a)
-
-  add_library(HDFS_STATIC STATIC IMPORTED)
-  set_target_properties(HDFS_STATIC PROPERTIES IMPORTED_LOCATION ${HDFS_STATIC_LIB})
-
 else ()
   set(HDFS_FOUND FALSE)
 endif ()
@@ -70,17 +71,17 @@ if (HDFS_FOUND)
   if (NOT HDFS_FIND_QUIETLY)
     message(STATUS "${Hadoop_VERSION}")
     message(STATUS "HDFS_INCLUDE_DIR: ${HDFS_INCLUDE_DIR}")
-    message(STATUS "HDFS_LIBRARIES: ${HDFS_LIBRARIES}")
-    message(STATUS "HDFS_STATIC: ${HDFS_STATIC_LIB}")
+    message(STATUS "HDFS_STATIC_LIB: ${HDFS_STATIC_LIB}")
+    message(STATUS "HDFS_SHARED_LIB: ${HDFS_SHARED_LIB}")
   endif ()
 else ()
-  message(FATAL_ERROR "HDFS includes and libraries NOT found."
-    "Thrift support will be disabled (${Thrift_RETURN}, "
+  message(FATAL_ERROR "HDFS includes and libraries NOT found. "
     "${HDFS_INCLUDE_DIR}, ${HDFS_LIB})")
 endif ()
 
 mark_as_advanced(
-  HDFS_LIBRARIES
+  HDFS_STATIC_LIB
+  HDFS_SHARED_LIB
   HDFS_INCLUDE_DIR
   HDFS_STATIC
 )

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindLdap.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindLdap.cmake b/cmake_modules/FindLdap.cmake
index 533e867..550f7c4 100644
--- a/cmake_modules/FindLdap.cmake
+++ b/cmake_modules/FindLdap.cmake
@@ -24,7 +24,6 @@
 #  LDAP_INCLUDE_DIR, where to find LDAP headers
 #  LDAP_STATIC_LIBRARY, the LDAP library to use.
 #  LBER_STATIC_LIBRARY, a support library for LDAP.
-#  ldapstatic, lberstatic, imported libraries
 
 set(THIRDPARTY_LDAP $ENV{IMPALA_HOME}/thirdparty/openldap-$ENV{IMPALA_OPENLDAP_VERSION})
 
@@ -57,17 +56,10 @@ if (NOT LDAP_STATIC_LIBRARY OR NOT LBER_STATIC_LIBRARY OR
   set(LDAP_FOUND TRUE)
 else()
   set(LDAP_FOUND FALSE)
-  add_library(ldapstatic STATIC IMPORTED)
-  set_target_properties(ldapstatic PROPERTIES IMPORTED_LOCATION ${LDAP_STATIC_LIBRARY})
-  add_library(lberstatic STATIC IMPORTED)
-  set_target_properties(lberstatic PROPERTIES IMPORTED_LOCATION ${LBER_STATIC_LIBRARY})
 endif ()
 
 
 mark_as_advanced(
   LDAP_STATIC_LIBRARY
   LBER_STATIC_LIBRARY
-  LDAP_INCLUDE_DIR
-  ldapstatic
-  lberstatic
-)
+  LDAP_INCLUDE_DIR)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindLz4.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindLz4.cmake b/cmake_modules/FindLz4.cmake
index 33bc96d..186bbfb 100644
--- a/cmake_modules/FindLz4.cmake
+++ b/cmake_modules/FindLz4.cmake
@@ -24,7 +24,6 @@
 # LZ4_INCLUDE_DIR, directory containing headers
 # LZ4_LIBS, directory containing lz4 libraries
 # LZ4_STATIC_LIB, path to liblz4.a
-# lz4 - static library
 
 set(LZ4_SEARCH_LIB_PATH
   ${LZ4_ROOT}/lib
@@ -61,13 +60,10 @@ if (NOT LZ4_LIBS OR NOT LZ4_STATIC_LIB)
   set(LZ4_FOUND FALSE)
 else()
   set(LZ4_FOUND TRUE)
-  add_library(lz4 STATIC IMPORTED)
-  set_target_properties(lz4 PROPERTIES IMPORTED_LOCATION "${LZ4_STATIC_LIB}")
 endif ()
 
 mark_as_advanced(
   LZ4_INCLUDE_DIR
   LZ4_LIBS
   LZ4_STATIC_LIB
-  lz4
 )

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindOpenSSL.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindOpenSSL.cmake b/cmake_modules/FindOpenSSL.cmake
deleted file mode 100644
index 67b8322..0000000
--- a/cmake_modules/FindOpenSSL.cmake
+++ /dev/null
@@ -1,54 +0,0 @@
-##############################################################################
-# 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.
-##############################################################################
-
-# OPENSSL_ROOT hints the location
-# Provides
-#  - OPENSSL_LIBRARIES,
-#  - OPENSSL_STATIC,
-#  - OPENSSL_INCLUDE_DIR,
-#  - OPENSSL_FOUND
-set(_OPENSSL_SEARCH_DIR)
-
-if (OPENSSL_ROOT)
-set(_OPENSSL_SEARCH_DIR PATHS ${OPENSSL_ROOT} NO_DEFAULT_PATH)
-endif()
-
-find_path(OPENSSL_INCLUDE_DIR openssl/opensslconf.h
-  ${_OPENSSL_SEARCH_DIR} PATH_SUFFIXES include)
-
-# Add dynamic and static libraries
-find_library(OPENSSL_SSL ssl  ${_OPENSSL_SEARCH_DIR} PATH_SUFFIXES lib lib64)
-find_library(OPENSSL_CRYPTO crypto  ${_OPENSSL_SEARCH_DIR} PATH_SUFFIXES lib lib64)
-
-if (NOT OPENSSL_SSL AND
-    NOT OPENSSL_CRYPTO)
-  message(FATAL_ERROR "OpenSSL not found in ${OPENSSL_ROOT}")
-  set(OPENSSL_FOUND FALSE)
-else()
-  set(OPENSSL_FOUND TRUE)
-  message(STATUS "OpenSSL: ${OPENSSL_INCLUDE_DIR}")
-  set(OPENSSL_LIBRARIES ${OPENSSL_SSL} ${OPENSSL_CRYPTO})
-endif()
-
-mark_as_advanced(
-  OPENSSL_INCLUDE_DIR
-  OPENSSL_LIBRARIES
-  OPENSSL_CRYPTO
-  OPENSSL_SSL
-)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindRe2.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindRe2.cmake b/cmake_modules/FindRe2.cmake
index 9c806bb..38dc23a 100644
--- a/cmake_modules/FindRe2.cmake
+++ b/cmake_modules/FindRe2.cmake
@@ -22,7 +22,6 @@
 # This module defines
 #  RE2_INCLUDE_DIR, directory containing headers
 #  RE2_STATIC_LIB, path to libsnappy.a
-#  re2 imported static library
 
 set(RE2_SEARCH_HEADER_PATHS
   ${RE2_ROOT}/include
@@ -61,14 +60,11 @@ if (NOT RE2_INCLUDE_DIR OR NOT RE2_LIBS OR
     "Looked for headers in ${RE2_SEARCH_HEADER_PATH}, "
     "and for libs in ${RE2_SEARCH_LIB_PATH}")
 else()
-    set(RE2_FOUND TRUE)
-    add_library(re2 STATIC IMPORTED)
-    set_target_properties(re2 PROPERTIES IMPORTED_LOCATION "${RE2_STATIC_LIB}")
+  set(RE2_FOUND TRUE)
 endif ()
 
 mark_as_advanced(
   RE2_INCLUDE_DIR
   RE2_LIBS
   RE2_STATIC_LIB
-  re2
 )

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindSasl.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindSasl.cmake b/cmake_modules/FindSasl.cmake
index 14ffa0b..39455de 100644
--- a/cmake_modules/FindSasl.cmake
+++ b/cmake_modules/FindSasl.cmake
@@ -51,18 +51,18 @@ if (CYRUS_SASL_FOUND)
     # the crypt function is in the system C library: no special linker options required.
     set(CYRUS_SASL_LIB_DEPS dl)
   endif ()
-  if (NOT CyrusSASL_FIND_QUIETLY)
-    message(STATUS "Found the CyrusSASL library: ${CYRUS_SASL_SHARED_LIB}")
+  if (NOT SASL_FIND_QUIETLY)
+    message(STATUS "Found the CyrusSASL library: ${SASL_SHARED_LIB}")
   endif ()
 else ()
-  if (NOT Sasl_FIND_QUIETLY)
+  if (NOT SASL_FIND_QUIETLY)
     set(CYRUS_SASL_ERR_MSG "Could not find the CyrusSASL Library.")
     set(CYRUS_SASL_ERR_MSG "Install libsasl2-dev or cyrus-sasl-devel packages to build.")
-    if (Sasl_FIND_REQUIRED)
+    if (SASL_FIND_REQUIRED)
       message(FATAL_ERROR "${CYRUS_SASL_ERR_MSG}")
-    else (Sasl_FIND_REQUIRED)
+    else ()
       message(STATUS "${CYRUS_SASL_ERR_MSG}")
-    endif (Sasl_FIND_REQUIRED)
+    endif ()
   endif ()
 endif ()
 

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindSnappy.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindSnappy.cmake b/cmake_modules/FindSnappy.cmake
index 378703b..4397aa3 100644
--- a/cmake_modules/FindSnappy.cmake
+++ b/cmake_modules/FindSnappy.cmake
@@ -61,13 +61,10 @@ if (NOT SNAPPY_LIBS OR NOT SNAPPY_STATIC_LIB)
   set(SNAPPY_FOUND FALSE)
 else()
   set(SNAPPY_FOUND TRUE)
-  add_library(snappy STATIC IMPORTED)
-  set_target_properties(snappy PROPERTIES IMPORTED_LOCATION "${SNAPPY_STATIC_LIB}")
 endif ()
 
 mark_as_advanced(
   SNAPPY_INCLUDE_DIR
   SNAPPY_LIBS
   SNAPPY_STATIC_LIB
-  snappy
 )

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindThrift.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindThrift.cmake b/cmake_modules/FindThrift.cmake
index 6c18fc4..68a39bf 100644
--- a/cmake_modules/FindThrift.cmake
+++ b/cmake_modules/FindThrift.cmake
@@ -28,7 +28,9 @@
 #  thriftstatic - imported static library
 
 # prefer the thrift version supplied in THRIFT_HOME
-message(STATUS "THRIFT_HOME: $ENV{THRIFT_HOME}")
+if (NOT THRIFT_FIND_QUIETLY)
+  message(STATUS "THRIFT_HOME: $ENV{THRIFT_HOME}")
+endif()
 find_path(THRIFT_INCLUDE_DIR thrift/Thrift.h HINTS
   ${THRIFT_ROOT}/include
   $ENV{THRIFT_HOME}/include/

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/FindZlib.cmake
----------------------------------------------------------------------
diff --git a/cmake_modules/FindZlib.cmake b/cmake_modules/FindZlib.cmake
index 2399128..013fb94 100644
--- a/cmake_modules/FindZlib.cmake
+++ b/cmake_modules/FindZlib.cmake
@@ -22,6 +22,7 @@
 # - ZLIB,
 # - ZLIB_LIBRARIES,
 # - ZLIB_STATIC,
+# - ZLIB_SHARED
 # - ZLIB_FOUND
 
 set(_ZLIB_SEARCH_DIR)
@@ -34,15 +35,15 @@ find_path(ZLIB_INCLUDE_DIR zlib.h ${_ZLIB_SEARCH_DIR}
 
 find_library(ZLIB_STATIC_LIBRARIES libz.a
   ${_ZLIB_SEARCH_DIR} PATH_SUFFIXES lib lib64)
+find_library(ZLIB_SHARED_LIBRARIES libz.so
+  ${_ZLIB_SEARCH_DIR} PATH_SUFFIXES lib lib64)
 
-if (ZLIB_STATIC_LIBRARIES)
-  add_library(ZLIB_STATIC STATIC IMPORTED)
-  set_target_properties(ZLIB_STATIC PROPERTIES
-    IMPORTED_LOCATION ${ZLIB_STATIC_LIBRARIES})
-  set(ZLIB_STATIC_FOUND ON)
+if (ZLIB_STATIC_LIBRARIES AND ZLIB_SHARED_LIBRARIES)
+  set(ZLIB_FOUND ON)
 else()
-  set(ZLIB_STATIC_FOUND OFF)
-  set(ZLIB_STATIC ${ZLIB_STATIC_LIBRARIES})
+  message(FATAL_ERROR "zlib headers and libraries NOT found. "
+    "Looked for both ${_ZLIB_SEARCH_DIR}.")
+  set(ZLIB_FOUND OFF)
 endif()
 
 set(ZLIB_NAMES z zlib zdll zlib1 zlibd zlibd1)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/d79e01ef/cmake_modules/kudu_cmake_fns.txt
----------------------------------------------------------------------
diff --git a/cmake_modules/kudu_cmake_fns.txt b/cmake_modules/kudu_cmake_fns.txt
index ebbf114..6f27081 100644
--- a/cmake_modules/kudu_cmake_fns.txt
+++ b/cmake_modules/kudu_cmake_fns.txt
@@ -92,12 +92,12 @@ function(ADD_THIRDPARTY_LIB LIB_NAME)
     add_library(${LIB_NAME} STATIC IMPORTED)
     set_target_properties(${LIB_NAME}
       PROPERTIES IMPORTED_LOCATION "${ARG_STATIC_LIB}")
-    message("Added static library dependency ${LIB_NAME}: ${ARG_STATIC_LIB}")
+    message(STATUS "Added static library dependency ${LIB_NAME}: ${ARG_STATIC_LIB}")
   else()
     add_library(${LIB_NAME} SHARED IMPORTED)
     set_target_properties(${LIB_NAME}
       PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
-    message("Added shared library dependency ${LIB_NAME}: ${ARG_SHARED_LIB}")
+    message(STATUS "Added shared library dependency ${LIB_NAME}: ${ARG_SHARED_LIB}")
   endif()
 
   if(ARG_DEPS)