This is an automated email from the ASF dual-hosted git repository.

uwe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new 4db8a36  ARROW-2731 Add external Orc capability
4db8a36 is described below

commit 4db8a369d3df3af43d5023db1b376ece8b17cd54
Author: Michael Sarahan <msara...@gmail.com>
AuthorDate: Mon Jun 25 15:59:01 2018 +0200

    ARROW-2731 Add external Orc capability
    
    * [Michael Sarahan] ARROW-2731 add external ORC capability
    * [Michael Sarahan] ARROW-2731 add orc/Exceptions.hh to adapter.cc
    
    Author: Michael Sarahan <msara...@gmail.com>
    
    Closes #2155 from msarahan/external_orc and squashes the following commits:
    
    8a5feb40 <Michael Sarahan> ARROW-2731 Add external Orc capability
---
 cpp/cmake_modules/ThirdpartyToolchain.cmake | 84 ++++++++++++++++-------------
 cpp/src/arrow/adapters/orc/adapter.cc       |  1 +
 2 files changed, 49 insertions(+), 36 deletions(-)

diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake 
b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index 563a314..baecafe 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -1017,47 +1017,59 @@ if (ARROW_ORC)
   endif ()
 
   # orc
-  set(ORC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/orc_ep-install")
-  set(ORC_HOME "${ORC_PREFIX}")
-  set(ORC_INCLUDE_DIR "${ORC_PREFIX}/include")
-  set(ORC_STATIC_LIB 
"${ORC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}orc${CMAKE_STATIC_LIBRARY_SUFFIX}")
-
-  if ("${COMPILER_FAMILY}" STREQUAL "clang")
-    if ("${COMPILER_VERSION}" VERSION_GREATER "4.0")
-      set(ORC_CMAKE_CXX_FLAGS " -Wno-zero-as-null-pointer-constant \
--Wno-inconsistent-missing-destructor-override ")
+
+  if ("${ORC_HOME}" STREQUAL "")
+    set(ORC_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/orc_ep-install")
+    set(ORC_HOME "${ORC_PREFIX}")
+    set(ORC_INCLUDE_DIR "${ORC_PREFIX}/include")
+    set(ORC_STATIC_LIB 
"${ORC_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}orc${CMAKE_STATIC_LIBRARY_SUFFIX}")
+
+    if ("${COMPILER_FAMILY}" STREQUAL "clang")
+      if ("${COMPILER_VERSION}" VERSION_GREATER "4.0")
+        set(ORC_CMAKE_CXX_FLAGS " -Wno-zero-as-null-pointer-constant \
+  -Wno-inconsistent-missing-destructor-override ")
+      endif()
     endif()
-  endif()
 
-  set(ORC_CMAKE_CXX_FLAGS "${EP_CXX_FLAGS} ${ORC_CMAKE_CXX_FLAGS}")
-
-  # Since LZ4 isn't installed, the header file is in ${LZ4_HOME}/lib instead of
-  # ${LZ4_HOME}/include, which forces us to specify the include directory
-  # manually as well.
-  set (ORC_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-                      -DCMAKE_INSTALL_PREFIX=${ORC_PREFIX}
-                      -DCMAKE_CXX_FLAGS=${ORC_CMAKE_CXX_FLAGS}
-                      -DBUILD_LIBHDFSPP=OFF
-                      -DBUILD_JAVA=OFF
-                      -DBUILD_TOOLS=OFF
-                      -DBUILD_CPP_TESTS=OFF
-                      -DINSTALL_VENDORED_LIBS=OFF
-                      -DPROTOBUF_HOME=${PROTOBUF_HOME}
-                      -DLZ4_HOME=${LZ4_HOME}
-                      -DLZ4_INCLUDE_DIR=${LZ4_INCLUDE_DIR}
-                      -DSNAPPY_HOME=${SNAPPY_HOME}
-                      -DZLIB_HOME=${ZLIB_HOME})
-
-  ExternalProject_Add(orc_ep
-    URL ${ORC_SOURCE_URL}
-    BUILD_BYPRODUCTS ${ORC_STATIC_LIB}
-    CMAKE_ARGS ${ORC_CMAKE_ARGS}
-    ${EP_LOG_OPTIONS})
+    set(ORC_CMAKE_CXX_FLAGS "${EP_CXX_FLAGS} ${ORC_CMAKE_CXX_FLAGS}")
+
+    # Since LZ4 isn't installed, the header file is in ${LZ4_HOME}/lib instead 
of
+    # ${LZ4_HOME}/include, which forces us to specify the include directory
+    # manually as well.
+    set (ORC_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+                        -DCMAKE_INSTALL_PREFIX=${ORC_PREFIX}
+                        -DCMAKE_CXX_FLAGS=${ORC_CMAKE_CXX_FLAGS}
+                        -DBUILD_LIBHDFSPP=OFF
+                        -DBUILD_JAVA=OFF
+                        -DBUILD_TOOLS=OFF
+                        -DBUILD_CPP_TESTS=OFF
+                        -DINSTALL_VENDORED_LIBS=OFF
+                        -DPROTOBUF_HOME=${PROTOBUF_HOME}
+                        -DLZ4_HOME=${LZ4_HOME}
+                        -DLZ4_INCLUDE_DIR=${LZ4_INCLUDE_DIR}
+                        -DSNAPPY_HOME=${SNAPPY_HOME}
+                        -DZLIB_HOME=${ZLIB_HOME})
+
+    ExternalProject_Add(orc_ep
+      URL ${ORC_SOURCE_URL}
+      BUILD_BYPRODUCTS ${ORC_STATIC_LIB}
+      CMAKE_ARGS ${ORC_CMAKE_ARGS}
+      ${EP_LOG_OPTIONS})
+
+    set (ORC_VENDORED 1)
+  else ()
+     set(ORC_INCLUDE_DIR "${ORC_HOME}/include")
+     set(ORC_STATIC_LIB 
"${ORC_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}orc${CMAKE_STATIC_LIBRARY_SUFFIX}")
+     set (ORC_VENDORED 0)
+  endif ()
 
   include_directories(SYSTEM ${ORC_INCLUDE_DIR})
   ADD_THIRDPARTY_LIB(orc
     STATIC_LIB ${ORC_STATIC_LIB})
 
-  add_dependencies(orc_ep protobuf lz4_static snappy zlib)
-  add_dependencies(orc orc_ep)
+  if (ORC_VENDORED)
+    add_dependencies(orc orc_ep)
+  endif ()
+
+  add_dependencies(orc lz4_static snappy zlib)
 endif()
diff --git a/cpp/src/arrow/adapters/orc/adapter.cc 
b/cpp/src/arrow/adapters/orc/adapter.cc
index 7350f79..6804195 100644
--- a/cpp/src/arrow/adapters/orc/adapter.cc
+++ b/cpp/src/arrow/adapters/orc/adapter.cc
@@ -42,6 +42,7 @@
 #include "arrow/util/macros.h"
 #include "arrow/util/visibility.h"
 
+#include "orc/Exceptions.hh"
 #include "orc/OrcFile.hh"
 
 // alias to not interfere with nested orc namespace

Reply via email to