aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/orc/0001-dependencies-from-vcpkg.patch141
-rw-r--r--ports/orc/0002-fix-executable-output-folder.patch13
-rw-r--r--ports/orc/CONTROL4
-rw-r--r--ports/orc/portfile.cmake64
-rw-r--r--ports/orc/usage10
5 files changed, 232 insertions, 0 deletions
diff --git a/ports/orc/0001-dependencies-from-vcpkg.patch b/ports/orc/0001-dependencies-from-vcpkg.patch
new file mode 100644
index 000000000..7930bf148
--- /dev/null
+++ b/ports/orc/0001-dependencies-from-vcpkg.patch
@@ -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
diff --git a/ports/orc/0002-fix-executable-output-folder.patch b/ports/orc/0002-fix-executable-output-folder.patch
new file mode 100644
index 000000000..5fa992dc1
--- /dev/null
+++ b/ports/orc/0002-fix-executable-output-folder.patch
@@ -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)
diff --git a/ports/orc/CONTROL b/ports/orc/CONTROL
new file mode 100644
index 000000000..45532cad3
--- /dev/null
+++ b/ports/orc/CONTROL
@@ -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.
diff --git a/ports/orc/portfile.cmake b/ports/orc/portfile.cmake
new file mode 100644
index 000000000..f9a23b708
--- /dev/null
+++ b/ports/orc/portfile.cmake
@@ -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})
diff --git a/ports/orc/usage b/ports/orc/usage
new file mode 100644
index 000000000..6a20ccb89
--- /dev/null
+++ b/ports/orc/usage
@@ -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)