mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 18:31:15 +08:00
[orc] add apache orc library (#4496)
* [orc] add apache orc library * [orc] Simplify patch. Note in usage that no targets are available. Don't build tools on windows because they are not supported. * [orc] Move tools to tools/orc/ to fix Linux build. * [orc] fix tools ouput folder
This commit is contained in:
parent
eb46ce1fbb
commit
03266cc498
141
ports/orc/0001-dependencies-from-vcpkg.patch
Normal file
141
ports/orc/0001-dependencies-from-vcpkg.patch
Normal file
@ -0,0 +1,141 @@
|
||||
diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt
|
||||
index 91c67d5..4377b83 100644
|
||||
--- a/c++/src/CMakeLists.txt
|
||||
+++ b/c++/src/CMakeLists.txt
|
||||
@@ -197,11 +197,12 @@ endif(BUILD_LIBHDFSPP)
|
||||
add_library (orc STATIC ${SOURCE_FILES})
|
||||
|
||||
target_link_libraries (orc
|
||||
- protobuf
|
||||
- zlib
|
||||
- snappy
|
||||
- lz4
|
||||
- ${LIBHDFSPP_LIBRARIES}
|
||||
+ PUBLIC
|
||||
+ protobuf::libprotobuf
|
||||
+ ZLIB::ZLIB
|
||||
+ Snappy::snappy
|
||||
+ ${LZ4_STATIC_LIB}
|
||||
+ ${LIBHDFSPP_LIBRARIES}
|
||||
)
|
||||
|
||||
install(TARGETS orc DESTINATION lib)
|
||||
\ No newline at end of file
|
||||
diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt
|
||||
index 015814a..2b55f4e 100644
|
||||
--- a/c++/test/CMakeLists.txt
|
||||
+++ b/c++/test/CMakeLists.txt
|
||||
@@ -48,10 +48,6 @@ add_executable (orc-test
|
||||
|
||||
target_link_libraries (orc-test
|
||||
orc
|
||||
- lz4
|
||||
- protobuf
|
||||
- snappy
|
||||
- zlib
|
||||
${GTEST_LIBRARIES}
|
||||
)
|
||||
|
||||
diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
|
||||
index 0272263..8b79a12 100644
|
||||
--- a/cmake_modules/ThirdpartyToolchain.cmake
|
||||
+++ b/cmake_modules/ThirdpartyToolchain.cmake
|
||||
@@ -51,8 +51,8 @@ endif ()
|
||||
# ----------------------------------------------------------------------
|
||||
# Snappy
|
||||
|
||||
-if (NOT "${SNAPPY_HOME}" STREQUAL "")
|
||||
- find_package (Snappy REQUIRED)
|
||||
+if (NOT "${SNAPPY_HOME}" STREQUAL "" OR 1)
|
||||
+ find_package (Snappy CONFIG REQUIRED)
|
||||
set(SNAPPY_VENDORED FALSE)
|
||||
else ()
|
||||
set(SNAPPY_HOME "${THIRDPARTY_DIR}/snappy_ep-install")
|
||||
@@ -70,10 +70,6 @@ else ()
|
||||
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})
|
||||
-
|
||||
if (SNAPPY_VENDORED)
|
||||
add_dependencies (snappy snappy_ep)
|
||||
if (INSTALL_VENDORED_LIBS)
|
||||
@@ -85,7 +81,7 @@ endif ()
|
||||
# ----------------------------------------------------------------------
|
||||
# ZLIB
|
||||
|
||||
-if (NOT "${ZLIB_HOME}" STREQUAL "")
|
||||
+if (NOT "${ZLIB_HOME}" STREQUAL "" OR 1)
|
||||
find_package (ZLIB REQUIRED)
|
||||
set(ZLIB_VENDORED FALSE)
|
||||
else ()
|
||||
@@ -112,10 +108,6 @@ else ()
|
||||
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})
|
||||
-
|
||||
if (ZLIB_VENDORED)
|
||||
add_dependencies (zlib zlib_ep)
|
||||
if (INSTALL_VENDORED_LIBS)
|
||||
@@ -127,8 +119,8 @@ endif ()
|
||||
# ----------------------------------------------------------------------
|
||||
# LZ4
|
||||
|
||||
-if (NOT "${LZ4_HOME}" STREQUAL "")
|
||||
- find_package (LZ4 REQUIRED)
|
||||
+if (NOT "${LZ4_HOME}" STREQUAL "" OR 1)
|
||||
+ find_library(LZ4_STATIC_LIB NAMES lz4d lz4)
|
||||
set(LZ4_VENDORED FALSE)
|
||||
else ()
|
||||
set(LZ4_PREFIX "${THIRDPARTY_DIR}/lz4_ep-install")
|
||||
@@ -154,8 +146,6 @@ else ()
|
||||
endif ()
|
||||
|
||||
include_directories (SYSTEM ${LZ4_INCLUDE_DIR})
|
||||
-add_library (lz4 STATIC IMPORTED)
|
||||
-set_target_properties (lz4 PROPERTIES IMPORTED_LOCATION ${LZ4_STATIC_LIB})
|
||||
|
||||
if (LZ4_VENDORED)
|
||||
add_dependencies (lz4 lz4_ep)
|
||||
@@ -230,8 +220,8 @@ endif ()
|
||||
# ----------------------------------------------------------------------
|
||||
# Protobuf
|
||||
|
||||
-if (NOT "${PROTOBUF_HOME}" STREQUAL "")
|
||||
- find_package (Protobuf REQUIRED)
|
||||
+if (NOT "${PROTOBUF_HOME}" STREQUAL "" OR 1)
|
||||
+ find_package(protobuf CONFIG REQUIRED)
|
||||
set(PROTOBUF_VENDORED FALSE)
|
||||
else ()
|
||||
set(PROTOBUF_PREFIX "${THIRDPARTY_DIR}/protobuf_ep-install")
|
||||
@@ -266,13 +256,8 @@ else ()
|
||||
set(PROTOBUF_VENDORED TRUE)
|
||||
endif ()
|
||||
|
||||
-include_directories (SYSTEM ${PROTOBUF_INCLUDE_DIR})
|
||||
|
||||
-add_library (protobuf STATIC IMPORTED)
|
||||
-set_target_properties (protobuf PROPERTIES IMPORTED_LOCATION ${PROTOBUF_STATIC_LIB})
|
||||
|
||||
-add_library (protoc STATIC IMPORTED)
|
||||
-set_target_properties (protoc PROPERTIES IMPORTED_LOCATION ${PROTOC_STATIC_LIB})
|
||||
|
||||
if (PROTOBUF_VENDORED)
|
||||
add_dependencies (protoc protobuf_ep)
|
||||
diff --git a/tools/src/CMakeLists.txt b/tools/src/CMakeLists.txt
|
||||
index 667fab4..eb6d232 100644
|
||||
--- a/tools/src/CMakeLists.txt
|
||||
+++ b/tools/src/CMakeLists.txt
|
||||
@@ -49,7 +49,6 @@ add_executable (orc-metadata
|
||||
|
||||
target_link_libraries (orc-metadata
|
||||
orc
|
||||
- protobuf
|
||||
)
|
||||
|
||||
add_executable (orc-statistics
|
13
ports/orc/0002-fix-executable-output-folder.patch
Normal file
13
ports/orc/0002-fix-executable-output-folder.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/tools/src/CMakeLists.txt b/tools/src/CMakeLists.txt
|
||||
index eb6d232..5a99f5c 100644
|
||||
--- a/tools/src/CMakeLists.txt
|
||||
+++ b/tools/src/CMakeLists.txt
|
||||
@@ -87,4 +87,7 @@ install(TARGETS
|
||||
orc-contents
|
||||
orc-metadata
|
||||
orc-statistics
|
||||
- DESTINATION bin)
|
||||
+ orc-scan
|
||||
+ orc-memory
|
||||
+ csv-import
|
||||
+ DESTINATION tools/orc)
|
4
ports/orc/CONTROL
Normal file
4
ports/orc/CONTROL
Normal file
@ -0,0 +1,4 @@
|
||||
Source: orc
|
||||
Version: 1.5.2-f47e02c-2
|
||||
Build-Depends: zlib, protobuf, lz4, snappy, gtest
|
||||
Description: The smallest, fastest columnar storage for Hadoop workloads.
|
64
ports/orc/portfile.cmake
Normal file
64
ports/orc/portfile.cmake
Normal file
@ -0,0 +1,64 @@
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO apache/orc
|
||||
REF f47e02cfbf346f14d7f38c3ddd45d39e3b515847
|
||||
SHA512 5a389f4ab3b0ce4e7c8869493cf9e91feb4917a42bf2740abd71602fa03a2a53217b572e60af7328b7568dab084c07275ea275438ec8ae87f230a87fb60f2601
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
0001-dependencies-from-vcpkg.patch
|
||||
0002-fix-executable-output-folder.patch
|
||||
)
|
||||
|
||||
file(REMOVE "${SOURCE_PATH}/cmake_modules/FindGTest.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake_modules/FindLZ4.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake_modules/FindProtobuf.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake_modules/FindSnappy.cmake")
|
||||
file(REMOVE "${SOURCE_PATH}/cmake_modules/FindZLIB.cmake")
|
||||
|
||||
if(CMAKE_HOST_WIN32)
|
||||
set(PROTOBUF_EXECUTABLE ${CURRENT_INSTALLED_DIR}/tools/protobuf/protoc.exe)
|
||||
else()
|
||||
set(PROTOBUF_EXECUTABLE ${CURRENT_INSTALLED_DIR}/tools/protobuf/protoc)
|
||||
endif()
|
||||
|
||||
if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
||||
set(BUILD_TOOLS OFF)
|
||||
else()
|
||||
set(BUILD_TOOLS ON)
|
||||
endif()
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
OPTIONS
|
||||
-DBUILD_TOOLS=${BUILD_TOOLS}
|
||||
-DBUILD_CPP_TESTS=OFF
|
||||
-DBUILD_JAVA=OFF
|
||||
-DINSTALL_VENDORED_LIBS=OFF
|
||||
-DBUILD_LIBHDFSPP=OFF
|
||||
-DPROTOBUF_EXECUTABLE:FILEPATH=${PROTOBUF_EXECUTABLE}
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
file(GLOB TOOLS ${CURRENT_PACKAGES_DIR}/bin/orc-*)
|
||||
if(TOOLS)
|
||||
file(COPY ${TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/orc)
|
||||
file(REMOVE ${TOOLS})
|
||||
endif()
|
||||
|
||||
file(GLOB BINS ${CURRENT_PACKAGES_DIR}/bin/*)
|
||||
if(NOT BINS)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/orc RENAME copyright)
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
|
10
ports/orc/usage
Normal file
10
ports/orc/usage
Normal file
@ -0,0 +1,10 @@
|
||||
The package orc does not provide CMake targets:
|
||||
|
||||
find_package(protobuf CONFIG REQUIRED)
|
||||
find_package(ZLIB REQUIRED)
|
||||
find_package(Snappy CONFIG REQUIRED)
|
||||
|
||||
find_library(LZ4_LIBRARY NAMES lz4d lz4)
|
||||
find_library(ORC_LIBRARY NAMES orc)
|
||||
|
||||
target_link_libraries(main PRIVATE ${ORC_LIBRARY} protobuf::libprotoc protobuf::libprotobuf Snappy::snappy ${LZ4_LIBRARY} ZLIB::ZLIB)
|
Loading…
x
Reference in New Issue
Block a user