diff options
-rw-r--r-- | .SRCINFO | 19 | ||||
-rw-r--r-- | 541.patch | 745 | ||||
-rw-r--r-- | PKGBUILD | 27 | ||||
-rw-r--r-- | cmake.patch | 24 |
4 files changed, 765 insertions, 50 deletions
@@ -1,22 +1,19 @@ pkgbase = apache-orc pkgdesc = A columnar storage for Hadoop workloads. - pkgver = 1.6.4 + pkgver = 1.6.6 pkgrel = 1 url = https://orc.apache.org arch = x86_64 license = Apache makedepends = cmake - makedepends = lz4-static - makedepends = protobuf-static - makedepends = snappy-static - makedepends = zlib-static - makedepends = zstd-static - depends = gcc-libs + depends = protobuf + depends = snappy + depends = zstd options = staticlibs - source = orc-1.6.4.tar.gz::https://github.com/apache/orc/archive/rel/release-1.6.4.tar.gz - source = cmake.patch - sha256sums = 3f25d70ee3a42c466837f03471a65e01e105b58c77a1dbff551b636572a5653f - sha256sums = 401ca18b23669d0f3240234a8c035505cf73da89c7d803b547f312e66e16e5da + source = orc-1.6.6.tar.gz::https://github.com/apache/orc/archive/rel/release-1.6.6.tar.gz + source = 541.patch + sha256sums = 9a92b3eaad1d8b88a18cee41058feb34eb43d919df363e0b74a0b857724e4ba0 + sha256sums = 372282c8853adfb7bf84f5c54eaaa58a0898417fb2e42948a08eba9d2aa0e872 pkgname = apache-orc diff --git a/541.patch b/541.patch new file mode 100644 index 000000000000..fc7327a2f887 --- /dev/null +++ b/541.patch @@ -0,0 +1,745 @@ +From 8c6406b01cf0c9e144466651c9fe7d833a2c5ca4 Mon Sep 17 00:00:00 2001 +From: Nehal J Wani <nehaljw.kkd1@gmail.com> +Date: Sat, 29 Aug 2020 13:37:21 -0400 +Subject: [PATCH] Partially rework cmake modules to accommodate library types + +This patch allows selectively linking each third party library +statically with a fallback to dynamic, if not available +--- + c++/src/CMakeLists.txt | 17 ++-- + c++/test/CMakeLists.txt | 16 ++-- + cmake_modules/FindGTest.cmake | 37 ++++++-- + cmake_modules/FindLZ4.cmake | 21 +++-- + cmake_modules/FindProtobuf.cmake | 27 ++++-- + cmake_modules/FindSnappy.cmake | 21 +++-- + cmake_modules/FindZLIB.cmake | 20 ++-- + cmake_modules/FindZSTD.cmake | 24 ++--- + cmake_modules/ThirdpartyToolchain.cmake | 118 +++++++++++++++++------- + tools/src/CMakeLists.txt | 3 +- + tools/test/CMakeLists.txt | 11 +-- + 11 files changed, 200 insertions(+), 115 deletions(-) + +diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt +index 7ff543dd78..772f4c6671 100644 +--- a/c++/src/CMakeLists.txt ++++ b/c++/src/CMakeLists.txt +@@ -155,7 +155,7 @@ CHECK_CXX_SOURCE_RUNS(" + ) + + set(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR}) +-set(CMAKE_REQUIRED_LIBRARIES zlib) ++set(CMAKE_REQUIRED_LIBRARIES orc_zlib) + CHECK_CXX_SOURCE_COMPILES(" + #define Z_PREFIX + #include<zlib.h> +@@ -174,12 +174,7 @@ configure_file ( + include_directories ( + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} +- ${PROTOBUF_INCLUDE_DIR} +- ${ZLIB_INCLUDE_DIR} +- ${SNAPPY_INCLUDE_DIR} +- ${LZ4_INCLUDE_DIR} + ${LIBHDFSPP_INCLUDE_DIR} +- ${ZSTD_INCLUDE_DIR} + ) + + add_custom_command(OUTPUT orc_proto.pb.h orc_proto.pb.cc +@@ -236,11 +231,11 @@ endif(BUILD_LIBHDFSPP) + add_library (orc STATIC ${SOURCE_FILES}) + + target_link_libraries (orc +- protobuf +- zlib +- snappy +- lz4 +- zstd ++ orc::protobuf ++ orc::zlib ++ orc::snappy ++ orc::lz4 ++ orc::zstd + ${LIBHDFSPP_LIBRARIES} + ) + +diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt +index ae4b807b16..da5ef577a6 100644 +--- a/c++/test/CMakeLists.txt ++++ b/c++/test/CMakeLists.txt +@@ -14,10 +14,6 @@ include_directories( + ${PROJECT_SOURCE_DIR}/c++/src + ${PROJECT_BINARY_DIR}/c++/include + ${PROJECT_BINARY_DIR}/c++/src +- ${PROTOBUF_INCLUDE_DIR} +- ${ZLIB_INCLUDE_DIR} +- ${SNAPPY_INCLUDE_DIR} +- ${GTEST_INCLUDE_DIR} + ) + + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAGS} ${WARN_FLAGS}") +@@ -54,11 +50,11 @@ add_executable (orc-test + + target_link_libraries (orc-test + orc +- lz4 +- protobuf +- snappy +- zlib +- ${GTEST_LIBRARIES} ++ orc::lz4 ++ orc::protobuf ++ orc::snappy ++ orc::zlib ++ orc::gmock + ) + + add_executable (create-test-files +@@ -67,7 +63,7 @@ add_executable (create-test-files + + target_link_libraries (create-test-files + orc +- protobuf ++ orc::protobuf + ) + + if (TEST_VALGRIND_MEMCHECK) +diff --git a/cmake_modules/FindGTest.cmake b/cmake_modules/FindGTest.cmake +index 3ae8954324..c1326ea5f0 100644 +--- a/cmake_modules/FindGTest.cmake ++++ b/cmake_modules/FindGTest.cmake +@@ -13,8 +13,10 @@ + # GTEST_HOME environmental variable is used to check for GTest headers and static library + + # GTEST_INCLUDE_DIR: directory containing headers +-# GTEST_LIBS: directory containing gtest libraries ++# GMOCK_LIBRARY: path to libgmock ++# GTEST_LIBRARY: path to libgtest + # GMOCK_STATIC_LIB: is set to gmock.a static library ++# GTEST_STATIC_LIB: is set to gtest.a static library + # GTEST_FOUND is set if GTEST is found + + if (NOT "${GTEST_HOME}" STREQUAL "") +@@ -28,24 +30,40 @@ find_path (GTEST_INCLUDE_DIR gmock/gmock.h HINTS + NO_DEFAULT_PATH + PATH_SUFFIXES "include") + +-find_library (GTEST_LIBRARIES NAMES gmock HINTS ++find_library (GMOCK_LIBRARY NAMES gmock HINTS + ${_gtest_path} + PATH_SUFFIXES "lib") + +-if (GTEST_INCLUDE_DIR AND GTEST_LIBRARIES) ++find_library (GTEST_LIBRARY NAMES gtest HINTS ++ ${_gtest_path} ++ PATH_SUFFIXES "lib") ++ ++find_library (GMOCK_STATIC_LIB NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX} HINTS ++ ${_gtest_path} ++ PATH_SUFFIXES "lib") ++ ++find_library (GTEST_STATIC_LIB NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} HINTS ++ ${_gtest_path} ++ PATH_SUFFIXES "lib") ++ ++if (GTEST_INCLUDE_DIR AND GMOCK_LIBRARY) + set (GTEST_FOUND TRUE) +- get_filename_component (GTEST_LIBS ${GTEST_LIBRARIES} PATH ) + set (GTEST_HEADER_NAME gmock/gmock.h) + set (GTEST_HEADER ${GTEST_INCLUDE_DIR}/${GTEST_HEADER_NAME}) +- set (GTEST_LIB_NAME gmock) +- set (GMOCK_STATIC_LIB ${GTEST_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${GTEST_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) + else () + set (GTEST_FOUND FALSE) + endif () + + if (GTEST_FOUND) + message (STATUS "Found the GTest header: ${GTEST_HEADER}") +- message (STATUS "Found the GTest library: ${GMOCK_STATIC_LIB}") ++ message (STATUS "Found the GTest library: ${GTEST_LIBRARY}") ++ message (STATUS "Found the GMock library: ${GMOCK_LIBRARY}") ++ if (GTEST_STATIC_LIB) ++ message (STATUS "Found the GTest static library: ${GTEST_STATIC_LIB}") ++ endif () ++ if (GMOCK_STATIC_LIB) ++ message (STATUS "Found the GMock static library: ${GMOCK_STATIC_LIB}") ++ endif () + else () + if (_gtest_path) + set (GTEST_ERR_MSG "Could not find GTest. Looked in ${_gtest_path}.") +@@ -63,6 +81,7 @@ endif () + mark_as_advanced ( + GTEST_INCLUDE_DIR + GMOCK_STATIC_LIB +- GTEST_LIBS +- GTEST_LIBRARIES ++ GTEST_STATIC_LIB ++ GMOCK_LIBRARY ++ GTEST_LIBRARY + ) +diff --git a/cmake_modules/FindLZ4.cmake b/cmake_modules/FindLZ4.cmake +index e522a6f76a..f57984940a 100644 +--- a/cmake_modules/FindLZ4.cmake ++++ b/cmake_modules/FindLZ4.cmake +@@ -13,7 +13,7 @@ + # LZ4_HOME environment variable is used to check for LZ4 headers and static library + + # LZ4_INCLUDE_DIR: directory containing headers +-# LZ4_LIBS: directory containing LZ4 libraries ++# LZ4_LIBRARY: path to liblz4 + # LZ4_STATIC_LIB: path to lz4.a + # LZ4_FOUND: whether LZ4 has been found + +@@ -28,24 +28,28 @@ find_path (LZ4_INCLUDE_DIR lz4.h HINTS + NO_DEFAULT_PATH + PATH_SUFFIXES "include") + +-find_library (LZ4_LIBRARIES NAMES lz4 HINTS ++find_library (LZ4_LIBRARY NAMES lz4 HINTS + ${_lz4_path} + PATH_SUFFIXES "lib" "lib64") + +-if (LZ4_INCLUDE_DIR AND LZ4_LIBRARIES) ++find_library (LZ4_STATIC_LIB NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}${LZ4_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} HINTS ++ ${_lz4_path} ++ PATH_SUFFIXES "lib" "lib64") ++ ++if (LZ4_INCLUDE_DIR AND LZ4_LIBRARY) + set (LZ4_FOUND TRUE) +- get_filename_component (LZ4_LIBS ${LZ4_LIBRARIES} PATH) + set (LZ4_HEADER_NAME lz4.h) + set (LZ4_HEADER ${LZ4_INCLUDE_DIR}/${LZ4_HEADER_NAME}) +- set (LZ4_LIB_NAME lz4) +- set (LZ4_STATIC_LIB ${LZ4_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${LZ4_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) + else () + set (LZ4_FOUND FALSE) + endif () + + if (LZ4_FOUND) + message (STATUS "Found the LZ4 header: ${LZ4_HEADER}") +- message (STATUS "Found the LZ4 library: ${LZ4_STATIC_LIB}") ++ message (STATUS "Found the LZ4 library: ${LZ4_LIBRARY}") ++ if (LZ4_STATIC_LIB) ++ message (STATUS "Found the LZ4 static library: ${LZ4_STATIC_LIB}") ++ endif () + else() + if (_lz4_path) + set (LZ4_ERR_MSG "Could not find LZ4. Looked in ${_lz4_path}.") +@@ -63,6 +67,5 @@ endif() + mark_as_advanced ( + LZ4_INCLUDE_DIR + LZ4_STATIC_LIB +- LZ4_LIBS +- LZ4_LIBRARIES ++ LZ4_LIBRARY + ) +diff --git a/cmake_modules/FindProtobuf.cmake b/cmake_modules/FindProtobuf.cmake +index d901c55a10..f2b6a7ca91 100644 +--- a/cmake_modules/FindProtobuf.cmake ++++ b/cmake_modules/FindProtobuf.cmake +@@ -14,8 +14,9 @@ + + # PROTOBUF_FOUND is set if Protobuf is found + # PROTOBUF_INCLUDE_DIR: directory containing headers +-# PROTOBUF_LIBS: directory containing Protobuf libraries ++# PROTOBUF_LIBRARY: location of libprotobuf + # PROTOBUF_STATIC_LIB: location of protobuf.a ++# PROTOC_LIBRARY: location of libprotoc + # PROTOC_STATIC_LIB: location of protoc.a + # PROTOBUF_EXECUTABLE: location of protoc + +@@ -40,10 +41,18 @@ find_library (PROTOBUF_LIBRARY NAMES protobuf HINTS + ${_protobuf_path} + PATH_SUFFIXES "lib") + ++find_library (PROTOBUF_STATIC_LIB NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}protobuf${CMAKE_STATIC_LIBRARY_SUFFIX} HINTS ++ ${_protobuf_path} ++ PATH_SUFFIXES "lib") ++ + find_library (PROTOC_LIBRARY NAMES protoc HINTS + ${_protobuf_path} + PATH_SUFFIXES "lib") + ++find_library (PROTOC_STATIC_LIB NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}protoc${CMAKE_STATIC_LIBRARY_SUFFIX} HINTS ++ ${_protobuf_path} ++ PATH_SUFFIXES "lib") ++ + find_program(PROTOBUF_EXECUTABLE protoc HINTS + ${_protobuf_path} + NO_DEFAULT_PATH +@@ -51,20 +60,23 @@ find_program(PROTOBUF_EXECUTABLE protoc HINTS + + if (PROTOBUF_INCLUDE_DIR AND PROTOBUF_LIBRARY AND PROTOC_LIBRARY AND PROTOBUF_EXECUTABLE) + set (PROTOBUF_FOUND TRUE) +- get_filename_component (PROTOBUF_LIBS ${PROTOBUF_LIBRARY} PATH) + set (PROTOBUF_LIB_NAME protobuf) + set (PROTOC_LIB_NAME protoc) +- set (PROTOBUF_STATIC_LIB ${PROTOBUF_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${PROTOBUF_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) +- set (PROTOC_STATIC_LIB ${PROTOBUF_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${PROTOC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) + else () + set (PROTOBUF_FOUND FALSE) + endif () + + if (PROTOBUF_FOUND) + message (STATUS "Found the Protobuf headers: ${PROTOBUF_INCLUDE_DIR}") +- message (STATUS "Found the Protobuf library: ${PROTOBUF_STATIC_LIB}") +- message (STATUS "Found the Protoc library: ${PROTOC_STATIC_LIB}") ++ message (STATUS "Found the Protobuf library: ${PROTOBUF_LIBRARY}") ++ message (STATUS "Found the Protoc library: ${PROTOC_LIBRARY}") + message (STATUS "Found the Protoc executable: ${PROTOBUF_EXECUTABLE}") ++ if (PROTOBUF_STATIC_LIB) ++ message (STATUS "Found the Protobuf static library: ${PROTOBUF_STATIC_LIB}") ++ endif () ++ if (PROTOC_STATIC_LIB) ++ message (STATUS "Found the Protoc static library: ${PROTOC_STATIC_LIB}") ++ endif () + else() + if (_protobuf_path) + set (PROTOBUF_ERR_MSG "Could not find Protobuf. Looked in ${_protobuf_path}.") +@@ -81,7 +93,8 @@ endif() + + mark_as_advanced ( + PROTOBUF_INCLUDE_DIR +- PROTOBUF_LIBS ++ PROTOBUF_LIBRARY + PROTOBUF_STATIC_LIB + PROTOC_STATIC_LIB ++ PROTOC_LIBRARY + ) +diff --git a/cmake_modules/FindSnappy.cmake b/cmake_modules/FindSnappy.cmake +index 5aeb88e78c..a834dd0ddf 100644 +--- a/cmake_modules/FindSnappy.cmake ++++ b/cmake_modules/FindSnappy.cmake +@@ -13,7 +13,7 @@ + # SNAPPY_HOME environmental variable is used to check for Snappy headers and static library + + # SNAPPY_INCLUDE_DIR: directory containing headers +-# SNAPPY_LIBS: directory containing snappy libraries ++# SNAPPY_LIBRARY: path to libsnappy + # SNAPPY_STATIC_LIB: path to libsnappy.a + # SNAPPY_FOUND: whether snappy has been found + +@@ -28,24 +28,28 @@ find_path (SNAPPY_INCLUDE_DIR snappy.h HINTS + NO_DEFAULT_PATH + PATH_SUFFIXES "include") + +-find_library (SNAPPY_LIBRARIES NAMES snappy HINTS ++find_library (SNAPPY_LIBRARY NAMES snappy HINTS + ${_snappy_path} + PATH_SUFFIXES "lib" "lib64") + +-if (SNAPPY_INCLUDE_DIR AND SNAPPY_LIBRARIES) ++find_library (SNAPPY_STATIC_LIB NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} HINTS ++ ${_snappy_path} ++ PATH_SUFFIXES "lib" "lib64") ++ ++if (SNAPPY_INCLUDE_DIR AND SNAPPY_LIBRARY) + set (SNAPPY_FOUND TRUE) +- get_filename_component (SNAPPY_LIBS ${SNAPPY_LIBRARIES} PATH) + set (SNAPPY_HEADER_NAME snappy.h) + set (SNAPPY_HEADER ${SNAPPY_INCLUDE_DIR}/${SNAPPY_HEADER_NAME}) +- set (SNAPPY_LIB_NAME snappy) +- set (SNAPPY_STATIC_LIB ${SNAPPY_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) + else () + set (SNAPPY_FOUND FALSE) + endif () + + if (SNAPPY_FOUND) + message (STATUS "Found the Snappy header: ${SNAPPY_HEADER}") +- message (STATUS "Found the Snappy library: ${SNAPPY_STATIC_LIB}") ++ message (STATUS "Found the Snappy library: ${SNAPPY_LIBRARY}") ++ if (SNAPPY_STATIC_LIB) ++ message (STATUS "Found the Snappy static library: ${SNAPPY_STATIC_LIB}") ++ endif() + else() + if (_snappy_path) + set (SNAPPY_ERR_MSG "Could not find Snappy. Looked in ${_snappy_path}.") +@@ -63,6 +67,5 @@ endif() + mark_as_advanced ( + SNAPPY_INCLUDE_DIR + SNAPPY_STATIC_LIB +- SNAPPY_LIBS +- SNAPPY_LIBRARIES ++ SNAPPY_LIBRARY + ) +diff --git a/cmake_modules/FindZLIB.cmake b/cmake_modules/FindZLIB.cmake +index 6c09640e97..968d14821a 100644 +--- a/cmake_modules/FindZLIB.cmake ++++ b/cmake_modules/FindZLIB.cmake +@@ -13,7 +13,7 @@ + # ZLIB_HOME environmental variable is used to check for ZLIB headers and static library + + # ZLIB_INCLUDE_DIR: directory containing headers +-# ZLIB_LIBS: directory containing ZLIB libraries ++# ZLIB_LIBRARY: path to libz/libzlib + # ZLIB_STATIC_LIB: path to zlib.a + # ZLIB_FOUND: whether ZLIB has been found + +@@ -32,23 +32,28 @@ if (NOT ZLIB_STATIC_LIB_NAME) + set (ZLIB_STATIC_LIB_NAME z) + endif() + +-find_library (ZLIB_LIBRARIES NAMES ${ZLIB_STATIC_LIB_NAME} HINTS ++find_library (ZLIB_LIBRARY NAMES z zlib ${ZLIB_STATIC_LIB_NAME} HINTS + ${_zlib_path} + PATH_SUFFIXES "lib") + +-if (ZLIB_INCLUDE_DIR AND ZLIB_LIBRARIES) ++find_library (ZLIB_STATIC_LIB NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} HINTS ++ ${_zlib_path} ++ PATH_SUFFIXES "lib") ++ ++if (ZLIB_INCLUDE_DIR AND ZLIB_LIBRARY) + set (ZLIB_FOUND TRUE) +- get_filename_component (ZLIB_LIBS ${ZLIB_LIBRARIES} PATH ) + set (ZLIB_HEADER_NAME zlib.h) + set (ZLIB_HEADER ${ZLIB_INCLUDE_DIR}/${ZLIB_HEADER_NAME}) +- set (ZLIB_STATIC_LIB ${ZLIB_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) + else () + set (ZLIB_FOUND FALSE) + endif () + + if (ZLIB_FOUND) + message (STATUS "Found the ZLIB header: ${ZLIB_HEADER}") +- message (STATUS "Found the ZLIB library: ${ZLIB_STATIC_LIB}") ++ message (STATUS "Found the ZLIB library: ${ZLIB_LIBRARY}") ++ if (ZLIB_STATIC_LIB) ++ message (STATUS "Found the ZLIB static library: ${ZLIB_STATIC_LIB}") ++ endif () + else() + if (_zlib_path) + set (ZLIB_ERR_MSG "Could not find ZLIB. Looked in ${_zlib_path}.") +@@ -66,6 +71,5 @@ endif() + mark_as_advanced ( + ZLIB_INCLUDE_DIR + ZLIB_STATIC_LIB +- ZLIB_LIBS +- ZLIB_LIBRARIES ++ ZLIB_LIBRARY + ) +diff --git a/cmake_modules/FindZSTD.cmake b/cmake_modules/FindZSTD.cmake +index e0889769b8..02c5889a6c 100644 +--- a/cmake_modules/FindZSTD.cmake ++++ b/cmake_modules/FindZSTD.cmake +@@ -13,7 +13,7 @@ + # ZSTD_HOME environmental variable is used to check for Zstd headers and static library + + # ZSTD_INCLUDE_DIR: directory containing headers +-# ZSTD_LIBS: directory containing zstd libraries ++# ZSTD_LIBRARY: path to libzstd + # ZSTD_STATIC_LIB: path to libzstd.a + # ZSTD_FOUND: whether zstd has been found + +@@ -23,32 +23,33 @@ endif() + + message (STATUS "ZSTD_HOME: ${ZSTD_HOME}") + +-if (NOT ZSTD_STATIC_LIB_NAME) +- set (ZSTD_STATIC_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}zstd) +-endif() +- + find_path (ZSTD_INCLUDE_DIR zstd.h HINTS + ${_zstd_path} + NO_DEFAULT_PATH + PATH_SUFFIXES "include") + +-find_library (ZSTD_LIBRARIES NAMES ${ZSTD_STATIC_LIB_NAME} HINTS ++find_library (ZSTD_LIBRARY NAMES zstd HINTS ++ ${_zstd_path} ++ PATH_SUFFIXES "lib") ++ ++find_library (ZSTD_STATIC_LIB NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}zstd${CMAKE_STATIC_LIBRARY_SUFFIX} HINTS + ${_zstd_path} + PATH_SUFFIXES "lib") + +-if (ZSTD_INCLUDE_DIR AND ZSTD_LIBRARIES) ++if (ZSTD_INCLUDE_DIR AND ZSTD_LIBRARY) + set (ZSTD_FOUND TRUE) +- get_filename_component (ZSTD_LIBS ${ZSTD_LIBRARIES} PATH) + set (ZSTD_HEADER_NAME zstd.h) + set (ZSTD_HEADER ${ZSTD_INCLUDE_DIR}/${ZSTD_HEADER_NAME}) +- set (ZSTD_STATIC_LIB ${ZSTD_LIBS}/${ZSTD_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) + else () + set (ZSTD_FOUND FALSE) + endif () + + if (ZSTD_FOUND) + message (STATUS "Found the zstd header: ${ZSTD_HEADER}") +- message (STATUS "Found the zstd library: ${ZSTD_STATIC_LIB}") ++ message (STATUS "Found the zstd library: ${ZSTD_LIBRARY}") ++ if (ZSTD_STATIC_LIB) ++ message (STATUS "Found the zstd static library: ${ZSTD_STATIC_LIB}") ++ endif () + else() + if (_ZSTD_path) + set (ZSTD_ERR_MSG "Could not find zstd. Looked in ${_zstd_path}.") +@@ -66,6 +67,5 @@ endif() + mark_as_advanced ( + ZSTD_INCLUDE_DIR + ZSTD_STATIC_LIB +- ZSTD_LIBS +- ZSTD_LIBRARIES ++ ZSTD_LIBRARY + ) +diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake +index 3a35325796..f3e1089c5d 100644 +--- a/cmake_modules/ThirdpartyToolchain.cmake ++++ b/cmake_modules/ThirdpartyToolchain.cmake +@@ -17,6 +17,13 @@ set(GTEST_VERSION "1.8.0") + set(PROTOBUF_VERSION "3.5.1") + set(ZSTD_VERSION "1.4.5") + ++option(ORC_PREFER_STATIC_PROTOBUF "Prefer static protobuf library, if available" ON) ++option(ORC_PREFER_STATIC_SNAPPY "Prefer static snappy library, if available" ON) ++option(ORC_PREFER_STATIC_LZ4 "Prefer static lz4 library, if available" ON) ++option(ORC_PREFER_STATIC_ZSTD "Prefer static zstd library, if available" ON) ++option(ORC_PREFER_STATIC_ZLIB "Prefer static zlib library, if available" ON) ++option(ORC_PREFER_STATIC_GMOCK "Prefer static gmock library, if available" ON) ++ + # zstd requires us to add the threads + FIND_PACKAGE(Threads REQUIRED) + +@@ -75,15 +82,21 @@ else () + ${THIRDPARTY_LOG_OPTIONS} + BUILD_BYPRODUCTS "${SNAPPY_STATIC_LIB}") + ++ set(SNAPPY_LIBRARY ${SNAPPY_STATIC_LIB}) + set(SNAPPY_VENDORED TRUE) + endif () + +-include_directories (SYSTEM ${SNAPPY_INCLUDE_DIR}) +-add_library (snappy STATIC IMPORTED) +-set_target_properties (snappy PROPERTIES IMPORTED_LOCATION ${SNAPPY_STATIC_LIB}) ++add_library (orc_snappy INTERFACE) ++add_library (orc::snappy ALIAS orc_snappy) ++if (ORC_PREFER_STATIC_SNAPPY AND ${SNAPPY_STATIC_LIB}) ++ target_link_libraries(orc_snappy INTERFACE ${SNAPPY_STATIC_LIB}) ++else () ++ target_link_libraries(orc_snappy INTERFACE ${SNAPPY_LIBRARY}) ++endif () ++target_include_directories (orc_snappy SYSTEM INTERFACE ${SNAPPY_INCLUDE_DIR}) + + if (SNAPPY_VENDORED) +- add_dependencies (snappy snappy_ep) ++ add_dependencies (orc_snappy snappy_ep) + if (INSTALL_VENDORED_LIBS) + install(FILES "${SNAPPY_STATIC_LIB}" + DESTINATION "lib") +@@ -117,15 +130,21 @@ else () + ${THIRDPARTY_LOG_OPTIONS} + BUILD_BYPRODUCTS "${ZLIB_STATIC_LIB}") + ++ set(ZLIB_LIBRARY ${ZLIB_STATIC_LIB}) + set(ZLIB_VENDORED TRUE) + endif () + +-include_directories (SYSTEM ${ZLIB_INCLUDE_DIR}) +-add_library (zlib STATIC IMPORTED) +-set_target_properties (zlib PROPERTIES IMPORTED_LOCATION ${ZLIB_STATIC_LIB}) ++add_library (orc_zlib INTERFACE) ++add_library (orc::zlib ALIAS orc_zlib) ++if (ORC_PREFER_STATIC_ZLIB AND ${ZLIB_STATIC_LIB}) ++ target_link_libraries (orc_zlib INTERFACE ${ZLIB_LIBRARY}) ++else () ++ target_link_libraries (orc_zlib INTERFACE ${ZLIB_STATIC_LIB}) ++endif () ++target_include_directories (orc_zlib SYSTEM INTERFACE ${ZLIB_INCLUDE_DIR}) + + if (ZLIB_VENDORED) +- add_dependencies (zlib zlib_ep) ++ add_dependencies (orc_zlib zlib_ep) + if (INSTALL_VENDORED_LIBS) + install(FILES "${ZLIB_STATIC_LIB}" + DESTINATION "lib") +@@ -166,15 +185,21 @@ else () + ${THIRDPARTY_LOG_OPTIONS} + BUILD_BYPRODUCTS ${ZSTD_STATIC_LIB}) + ++ set(ZSTD_LIBRARY ${ZSTD_STATIC_LIB}) + set(ZSTD_VENDORED TRUE) + endif () + +-include_directories (SYSTEM ${ZSTD_INCLUDE_DIR}) +-add_library (zstd STATIC IMPORTED) +-set_target_properties (zstd PROPERTIES IMPORTED_LOCATION ${ZSTD_STATIC_LIB}) ++add_library (orc_zstd INTERFACE) ++add_library (orc::zstd ALIAS orc_zstd) ++if (ORC_PREFER_STATIC_ZSTD AND ${ZSTD_STATIC_LIB}) ++ target_link_libraries (orc_zstd INTERFACE ${ZSTD_STATIC_LIB}) ++else () ++ target_link_libraries (orc_zstd INTERFACE ${ZSTD_LIBRARY}) ++endif () ++target_include_directories (orc_zstd SYSTEM INTERFACE ${ZSTD_INCLUDE_DIR}) + + if (ZSTD_VENDORED) +- add_dependencies (zstd zstd_ep) ++ add_dependencies (orc_zstd zstd_ep) + if (INSTALL_VENDORED_LIBS) + install(FILES "${ZSTD_STATIC_LIB}" + DESTINATION "lib") +@@ -208,15 +233,21 @@ else () + ${THIRDPARTY_LOG_OPTIONS} + BUILD_BYPRODUCTS ${LZ4_STATIC_LIB}) + ++ set(LZ4_LIBRARY ${LZ4_STATIC_LIB}) + set(LZ4_VENDORED TRUE) + endif () + +-include_directories (SYSTEM ${LZ4_INCLUDE_DIR}) +-add_library (lz4 STATIC IMPORTED) +-set_target_properties (lz4 PROPERTIES IMPORTED_LOCATION ${LZ4_STATIC_LIB}) ++add_library (orc_lz4 INTERFACE) ++add_library (orc::lz4 ALIAS orc_lz4) ++if (ORC_PREFER_STATIC_LZ4 AND ${LZ4_STATIC_LIB}) ++ target_link_libraries (orc_lz4 INTERFACE ${LZ4_STATIC_LIB}) ++else () ++ target_link_libraries (orc_lz4 INTERFACE ${LZ4_LIBRARY}) ++endif () ++target_include_directories (orc_lz4 SYSTEM INTERFACE ${LZ4_INCLUDE_DIR}) + + if (LZ4_VENDORED) +- add_dependencies (lz4 lz4_ep) ++ add_dependencies (orc_lz4 lz4_ep) + if (INSTALL_VENDORED_LIBS) + install(FILES "${LZ4_STATIC_LIB}" + DESTINATION "lib") +@@ -267,21 +298,33 @@ if (BUILD_CPP_TESTS) + CMAKE_ARGS ${GTEST_CMAKE_ARGS} + BUILD_BYPRODUCTS "${GMOCK_STATIC_LIB}") + ++ set(GMOCK_LIBRARY ${GMOCK_STATIC_LIB}) + set(GTEST_VENDORED TRUE) + endif () + +- include_directories (SYSTEM ${GTEST_INCLUDE_DIR}) +- +- add_library (gmock STATIC IMPORTED) +- set_target_properties (gmock PROPERTIES IMPORTED_LOCATION ${GMOCK_STATIC_LIB}) ++ # This is a bit special cased because gmock requires gtest and some ++ # distributions statically link gtest inside the gmock shared lib ++ add_library (orc_gmock INTERFACE) ++ add_library (orc::gmock ALIAS orc_gmock) ++ if (ORC_PREFER_STATIC_GMOCK AND ${GMOCK_STATIC_LIB}) ++ target_link_libraries (orc_gmock INTERFACE ${GMOCK_STATIC_LIB}) ++ if (NOT "${GTEST_STATIC_LIB}" STREQUAL "") ++ target_link_libraries (orc_gmock INTERFACE ${GTEST_STATIC_LIB}) ++ endif () ++ else () ++ target_link_libraries (orc_gmock INTERFACE ${GMOCK_LIBRARY}) ++ if (NOT "${GTEST_LIBRARY}" STREQUAL "") ++ target_link_libraries (orc_gmock INTERFACE ${GTEST_LIBRARY}) ++ endif () ++ endif () ++ target_include_directories (orc_gmock SYSTEM INTERFACE ${GTEST_INCLUDE_DIR}) + + if (GTEST_VENDORED) +- add_dependencies (gmock googletest_ep) ++ add_dependencies (orc_gmock googletest_ep) + endif () + +- set(GTEST_LIBRARIES gmock) + if (NOT APPLE AND NOT MSVC) +- list (APPEND GTEST_LIBRARIES pthread) ++ target_link_libraries (orc_gmock INTERFACE Threads::Threads) + endif () + endif () + +@@ -322,20 +365,33 @@ else () + ${THIRDPARTY_LOG_OPTIONS} + BUILD_BYPRODUCTS "${PROTOBUF_STATIC_LIB}" "${PROTOC_STATIC_LIB}") + ++ set(PROTOBUF_LIBRARY ${PROTOBUF_STATIC_LIB}) ++ set(PROTOC_LIBRARY ${PROTOC_STATIC_LIB}) + set(PROTOBUF_VENDORED TRUE) + endif () + +-include_directories (SYSTEM ${PROTOBUF_INCLUDE_DIR}) ++add_library (orc_protobuf INTERFACE) ++add_library (orc::protobuf ALIAS orc_protobuf) ++add_library (orc_protoc INTERFACE) ++add_library (orc::protoc ALIAS orc_protoc) + +-add_library (protobuf STATIC IMPORTED) +-set_target_properties (protobuf PROPERTIES IMPORTED_LOCATION ${PROTOBUF_STATIC_LIB}) ++if (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOBUF_STATIC_LIB}) ++ target_link_libraries (orc_protobuf INTERFACE ${PROTOBUF_STATIC_LIB}) ++else () ++ target_link_libraries (orc_protobuf INTERFACE ${PROTOBUF_LIBRARY}) ++endif() ++target_include_directories (orc_protobuf SYSTEM INTERFACE ${PROTOBUF_INCLUDE_DIR}) + +-add_library (protoc STATIC IMPORTED) +-set_target_properties (protoc PROPERTIES IMPORTED_LOCATION ${PROTOC_STATIC_LIB}) ++if (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOC_STATIC_LIB}) ++ target_link_libraries (orc_protoc INTERFACE ${PROTOC_STATIC_LIB}) ++else () ++ target_link_libraries (orc_protoc INTERFACE ${PROTOC_LIBRARY}) ++endif() ++target_include_directories (orc_protoc SYSTEM INTERFACE ${PROTOBUF_INCLUDE_DIR}) + + if (PROTOBUF_VENDORED) +- add_dependencies (protoc protobuf_ep) +- add_dependencies (protobuf protobuf_ep) ++ add_dependencies (orc_protoc protobuf_ep) ++ add_dependencies (orc_protobuf protobuf_ep) + if (INSTALL_VENDORED_LIBS) + install(FILES "${PROTOBUF_STATIC_LIB}" "${PROTOC_STATIC_LIB}" + DESTINATION "lib") +@@ -371,7 +427,7 @@ if(BUILD_LIBHDFSPP) + -DBUILD_SHARED_HDFSPP=FALSE) + + ExternalProject_Add (libhdfspp_ep +- DEPENDS protobuf ++ DEPENDS orc::protobuf + URL ${LIBHDFSPP_SRC_URL} + LOG_DOWNLOAD 0 + LOG_CONFIGURE 0 +diff --git a/tools/src/CMakeLists.txt b/tools/src/CMakeLists.txt +index f5a53ca838..4b6768c5ec 100644 +--- a/tools/src/CMakeLists.txt ++++ b/tools/src/CMakeLists.txt +@@ -22,7 +22,6 @@ include_directories ( + ${PROJECT_BINARY_DIR}/c++/include + ${PROJECT_SOURCE_DIR}/c++/src + ${PROJECT_BINARY_DIR}/c++/src +- ${PROTOBUF_INCLUDE_DIR} + ) + + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g ${CXX11_FLAGS} ${WARN_FLAGS}") +@@ -51,7 +50,7 @@ add_executable (orc-metadata + + target_link_libraries (orc-metadata + orc +- protobuf ++ orc::protobuf + ${CMAKE_THREAD_LIBS_INIT} + ) + +diff --git a/tools/test/CMakeLists.txt b/tools/test/CMakeLists.txt +index 505fc8d289..29f54cb11a 100644 +--- a/tools/test/CMakeLists.txt ++++ b/tools/test/CMakeLists.txt +@@ -16,9 +16,6 @@ include_directories( + ${PROJECT_SOURCE_DIR}/tools-c++/src + ${PROJECT_BINARY_DIR}/c++/include + ${PROJECT_BINARY_DIR}/c++/src +- ${PROTOBUF_INCLUDE_DIR} +- ${ZLIB_INCLUDE_DIR} +- ${GTEST_INCLUDE_DIR} + ) + + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAGS} ${WARN_FLAGS}") +@@ -36,10 +33,10 @@ add_executable (tool-test + + target_link_libraries (tool-test + orc +- protobuf +- zlib +- snappy +- ${GTEST_LIBRARIES} ++ orc::protobuf ++ orc::zlib ++ orc::snappy ++ orc::gmock + ) + + if (TEST_VALGRIND_MEMCHECK) @@ -1,30 +1,28 @@ # Maintainer: Guillaume Horel <guillaume.horel@gmail.com> pkgname='apache-orc' -pkgver=1.6.4 +pkgver=1.6.6 pkgrel=1 pkgdesc="A columnar storage for Hadoop workloads." arch=('x86_64') url="https://orc.apache.org" license=('Apache') -depends=('gcc-libs') +depends=('protobuf' 'snappy' 'zstd') options=('staticlibs') optdepends=() -makedepends=('cmake' 'lz4-static' 'protobuf-static' 'snappy-static' 'zlib-static' 'zstd-static') +makedepends=('cmake') source=("orc-$pkgver.tar.gz::https://github.com/apache/orc/archive/rel/release-$pkgver.tar.gz" - "cmake.patch") -sha256sums=('3f25d70ee3a42c466837f03471a65e01e105b58c77a1dbff551b636572a5653f' - '401ca18b23669d0f3240234a8c035505cf73da89c7d803b547f312e66e16e5da') + "541.patch") +sha256sums=('9a92b3eaad1d8b88a18cee41058feb34eb43d919df363e0b74a0b857724e4ba0' + '372282c8853adfb7bf84f5c54eaaa58a0898417fb2e42948a08eba9d2aa0e872') prepare() { - cd "$srcdir" - patch -p0 < cmake.patch - mkdir -p build + cd orc-rel-release-$pkgver + patch -p1 < ../541.patch } build(){ - cd "$srcdir/build" - cmake -DCMAKE_CXX_FLAGS="-fPIC -Wno-parentheses" \ + cmake -B build -DCMAKE_CXX_FLAGS="-fPIC -Wno-parentheses" \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_CPP_TESTS=OFF \ -DCMAKE_INSTALL_PREFIX="/usr" \ @@ -36,13 +34,12 @@ build(){ -DBUILD_JAVA=OFF \ -DZSTD_HOME="/usr" \ -DINSTALL_VENDORED_LIBS=OFF \ - ../orc-rel-release-$pkgver - make + orc-rel-release-$pkgver + make -C build } package(){ - cd "$srcdir/build" - make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" -C build install } # vim:ts=2:sw=2:et: diff --git a/cmake.patch b/cmake.patch deleted file mode 100644 index ac5ce6d51a12..000000000000 --- a/cmake.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -urN orc-rel-release-1.6.2-orig/cmake_modules/FindZSTD.cmake orc-rel-release-1.6.2/cmake_modules/FindZSTD.cmake ---- orc-rel-release-1.6.3-orig/cmake_modules/FindZSTD.cmake 2019-10-23 12:18:30.000000000 -0400 -+++ orc-rel-release-1.6.3/cmake_modules/FindZSTD.cmake 2019-11-13 13:38:47.394063996 -0500 -@@ -32,7 +32,7 @@ - NO_DEFAULT_PATH - PATH_SUFFIXES "include") - --find_library (ZSTD_LIBRARIES NAMES ${ZSTD_STATIC_LIB_NAME} HINTS -+find_library (ZSTD_LIBRARIES NAMES zstd HINTS - ${_zstd_path} - PATH_SUFFIXES "lib") - -diff -urN orc-rel-release-1.6.2-orig/cmake_modules/ThirdpartyToolchain.cmake orc-rel-release-1.6.2/cmake_modules/ThirdpartyToolchain.cmake ---- orc-rel-release-1.6.3-orig/cmake_modules/ThirdpartyToolchain.cmake 2019-10-23 12:18:30.000000000 -0400 -+++ orc-rel-release-1.6.3/cmake_modules/ThirdpartyToolchain.cmake 2019-11-13 13:38:25.926669476 -0500 -@@ -136,7 +136,7 @@ - # Zstd - - if (NOT "${ZSTD_HOME}" STREQUAL "") -- find_package (zstd REQUIRED) -+ find_package (ZSTD REQUIRED) - set(ZSTD_VENDORED FALSE) - else () - set(ZSTD_HOME "${THIRDPARTY_DIR}/zstd_ep-install") |