From d79e01ef9fec559d4ebe57d41539f4e4164ae78f Mon Sep 17 00:00:00 2001 From: Henry Robinson Date: Thu, 13 Jul 2017 13:03:54 -0700 Subject: [PATCH] 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 --- 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(-) delete mode 100644 cmake_modules/FindOpenSSL.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 130eb5b20..89cf7086e 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) diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt index 6f3acffad..10e47f3ae 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. diff --git a/cmake_modules/FindAvro.cmake b/cmake_modules/FindAvro.cmake index 3033a401b..eaa92cf7f 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 ) diff --git a/cmake_modules/FindBreakpad.cmake b/cmake_modules/FindBreakpad.cmake index 91a7b069f..0eed2d791 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 ) diff --git a/cmake_modules/FindFlatBuffers.cmake b/cmake_modules/FindFlatBuffers.cmake index 19ee58853..2ae4d3692 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) diff --git a/cmake_modules/FindGFlags.cmake b/cmake_modules/FindGFlags.cmake index 6ef88e643..735cc5968 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 ) diff --git a/cmake_modules/FindGLog.cmake b/cmake_modules/FindGLog.cmake index 992ac06ba..4e4c93db8 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 ) diff --git a/cmake_modules/FindGTest.cmake b/cmake_modules/FindGTest.cmake index 9fb043391..a8011650e 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) diff --git a/cmake_modules/FindHDFS.cmake b/cmake_modules/FindHDFS.cmake index f0916e164..640c1b832 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 ) diff --git a/cmake_modules/FindLdap.cmake b/cmake_modules/FindLdap.cmake index 533e8670c..550f7c4ec 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) diff --git a/cmake_modules/FindLz4.cmake b/cmake_modules/FindLz4.cmake index 33bc96daa..186bbfbfa 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 ) diff --git a/cmake_modules/FindOpenSSL.cmake b/cmake_modules/FindOpenSSL.cmake deleted file mode 100644 index 67b8322d1..000000000 --- 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 -) diff --git a/cmake_modules/FindRe2.cmake b/cmake_modules/FindRe2.cmake index 9c806bb7f..38dc23afd 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 ) diff --git a/cmake_modules/FindSasl.cmake b/cmake_modules/FindSasl.cmake index 14ffa0bd0..39455dec6 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 () diff --git a/cmake_modules/FindSnappy.cmake b/cmake_modules/FindSnappy.cmake index 378703bd8..4397aa3b9 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 ) diff --git a/cmake_modules/FindThrift.cmake b/cmake_modules/FindThrift.cmake index 6c18fc45e..68a39bf53 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/ diff --git a/cmake_modules/FindZlib.cmake b/cmake_modules/FindZlib.cmake index 239912871..013fb945d 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) diff --git a/cmake_modules/kudu_cmake_fns.txt b/cmake_modules/kudu_cmake_fns.txt index ebbf114dc..6f270811b 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)