You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by uw...@apache.org on 2017/05/09 14:01:22 UTC

arrow git commit: ARROW-954: Flag for compiling Arrow with header-only boost

Repository: arrow
Updated Branches:
  refs/heads/master ccf83f485 -> 670612e6f


ARROW-954: Flag for compiling Arrow with header-only boost

Author: Philipp Moritz <pc...@gmail.com>

Closes #647 from pcmoritz/boost-header-only and squashes the following commits:

3605341 [Philipp Moritz] run find_package(Boost) in header-only mode
445de50 [Philipp Moritz] bring back tests
3f1ef1f [Philipp Moritz] reintroduce ARROW_HDFS
a047ad4 [Philipp Moritz] deactivate json-integration-test for header-only boost
b2b2015 [Philipp Moritz] make it possible to compile arrow with header-only boost


Project: http://git-wip-us.apache.org/repos/asf/arrow/repo
Commit: http://git-wip-us.apache.org/repos/asf/arrow/commit/670612e6
Tree: http://git-wip-us.apache.org/repos/asf/arrow/tree/670612e6
Diff: http://git-wip-us.apache.org/repos/asf/arrow/diff/670612e6

Branch: refs/heads/master
Commit: 670612e6fdf699486641ed0d39d22257eb8acdb2
Parents: ccf83f4
Author: Philipp Moritz <pc...@gmail.com>
Authored: Tue May 9 16:01:05 2017 +0200
Committer: Uwe L. Korn <uw...@xhochy.com>
Committed: Tue May 9 16:01:05 2017 +0200

----------------------------------------------------------------------
 cpp/CMakeLists.txt               | 75 +++++++++++++++++++++++------------
 cpp/src/arrow/io/CMakeLists.txt  |  4 +-
 cpp/src/arrow/ipc/CMakeLists.txt | 29 ++++++++------
 3 files changed, 69 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/arrow/blob/670612e6/cpp/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 72e5ea9..2146379 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -101,6 +101,10 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
     "Rely on jemalloc shared libraries where relevant"
     ON)
 
+  option(ARROW_HDFS
+    "Build the Arrow HDFS bridge"
+    ON)
+
   option(ARROW_BOOST_USE_SHARED
     "Rely on boost shared libraries where relevant"
     ON)
@@ -136,6 +140,12 @@ if(NOT ARROW_BUILD_BENCHMARKS)
   set(NO_BENCHMARKS 1)
 endif()
 
+if(ARROW_HDFS)
+  set(ARROW_BOOST_HEADER_ONLY 0)
+else()
+  set(ARROW_BOOST_HEADER_ONLY 1)
+endif()
+
 include(BuildUtils)
 
 ############################################################
@@ -437,44 +447,54 @@ if (ARROW_BOOST_USE_SHARED)
     add_definitions(-DBOOST_ALL_DYN_LINK)
   endif()
 
-  find_package(Boost COMPONENTS system filesystem REQUIRED)
-  if ("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG")
-    set(BOOST_SHARED_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})
-    set(BOOST_SHARED_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_DEBUG})
+  if (ARROW_BOOST_HEADER_ONLY)
+    find_package(Boost)
   else()
-    set(BOOST_SHARED_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_RELEASE})
-    set(BOOST_SHARED_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_RELEASE})
+    find_package(Boost COMPONENTS system filesystem REQUIRED)
+    if ("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG")
+      set(BOOST_SHARED_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})
+      set(BOOST_SHARED_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_DEBUG})
+    else()
+      set(BOOST_SHARED_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_RELEASE})
+      set(BOOST_SHARED_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_RELEASE})
+    endif()
+    set(BOOST_SYSTEM_LIBRARY boost_system_shared)
+    set(BOOST_FILESYSTEM_LIBRARY boost_filesystem_shared)
   endif()
-  set(BOOST_SYSTEM_LIBRARY boost_system_shared)
-  set(BOOST_FILESYSTEM_LIBRARY boost_filesystem_shared)
 else()
   # Find static boost headers and libs
   # TODO Differentiate here between release and debug builds
   set(Boost_USE_STATIC_LIBS ON)
-  find_package(Boost COMPONENTS system filesystem regex REQUIRED)
-  if ("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG")
-    set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})
-    set(BOOST_STATIC_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_DEBUG})
+  if (ARROW_BOOST_HEADER_ONLY)
+    find_package(Boost)
   else()
-    set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_RELEASE})
-    set(BOOST_STATIC_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_RELEASE})
+    find_package(Boost COMPONENTS system filesystem regex REQUIRED)
+    if ("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG")
+      set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})
+      set(BOOST_STATIC_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_DEBUG})
+    else()
+      set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_RELEASE})
+      set(BOOST_STATIC_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_RELEASE})
+    endif()
+    set(BOOST_SYSTEM_LIBRARY boost_system_static)
+    set(BOOST_FILESYSTEM_LIBRARY boost_filesystem_static)
   endif()
-  set(BOOST_SYSTEM_LIBRARY boost_system_static)
-  set(BOOST_FILESYSTEM_LIBRARY boost_filesystem_static)
 endif()
 
 message(STATUS "Boost include dir: " ${Boost_INCLUDE_DIRS})
 message(STATUS "Boost libraries: " ${Boost_LIBRARIES})
 
-ADD_THIRDPARTY_LIB(boost_system
-    STATIC_LIB "${BOOST_STATIC_SYSTEM_LIBRARY}"
-    SHARED_LIB "${BOOST_SHARED_SYSTEM_LIBRARY}")
+if (NOT ARROW_BOOST_HEADER_ONLY)
+  ADD_THIRDPARTY_LIB(boost_system
+      STATIC_LIB "${BOOST_STATIC_SYSTEM_LIBRARY}"
+      SHARED_LIB "${BOOST_SHARED_SYSTEM_LIBRARY}")
 
-ADD_THIRDPARTY_LIB(boost_filesystem
-    STATIC_LIB "${BOOST_STATIC_FILESYSTEM_LIBRARY}"
-    SHARED_LIB "${BOOST_SHARED_FILESYSTEM_LIBRARY}")
+  ADD_THIRDPARTY_LIB(boost_filesystem
+      STATIC_LIB "${BOOST_STATIC_FILESYSTEM_LIBRARY}"
+      SHARED_LIB "${BOOST_SHARED_FILESYSTEM_LIBRARY}")
 
-SET(ARROW_BOOST_LIBS boost_system boost_filesystem)
+  SET(ARROW_BOOST_LIBS boost_system boost_filesystem)
+endif()
 
 include_directories(SYSTEM ${Boost_INCLUDE_DIR})
 
@@ -938,8 +958,6 @@ set(ARROW_SRCS
   src/arrow/visitor.cc
 
   src/arrow/io/file.cc
-  src/arrow/io/hdfs.cc
-  src/arrow/io/hdfs-internal.cc
   src/arrow/io/interfaces.cc
   src/arrow/io/memory.cc
 
@@ -948,6 +966,13 @@ set(ARROW_SRCS
   src/arrow/util/key_value_metadata.cc
 )
 
+if (NOT ARROW_BOOST_HEADER_ONLY)
+  set(ARROW_SRCS ${ARROW_SRCS}
+    src/arrow/io/hdfs.cc
+    src/arrow/io/hdfs-internal.cc
+  )
+endif()
+
 if (ARROW_IPC)
   set(ARROW_SRCS ${ARROW_SRCS}
     src/arrow/ipc/feather.cc

http://git-wip-us.apache.org/repos/asf/arrow/blob/670612e6/cpp/src/arrow/io/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/cpp/src/arrow/io/CMakeLists.txt b/cpp/src/arrow/io/CMakeLists.txt
index cd48974..544b4b7 100644
--- a/cpp/src/arrow/io/CMakeLists.txt
+++ b/cpp/src/arrow/io/CMakeLists.txt
@@ -19,7 +19,9 @@
 # arrow_io : Arrow IO interfaces
 
 ADD_ARROW_TEST(io-file-test)
-ADD_ARROW_TEST(io-hdfs-test)
+if (NOT ARROW_BOOST_HEADER_ONLY)
+  ADD_ARROW_TEST(io-hdfs-test)
+endif()
 ADD_ARROW_TEST(io-memory-test)
 
 ADD_ARROW_BENCHMARK(io-memory-benchmark)

http://git-wip-us.apache.org/repos/asf/arrow/blob/670612e6/cpp/src/arrow/ipc/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/cpp/src/arrow/ipc/CMakeLists.txt b/cpp/src/arrow/ipc/CMakeLists.txt
index 41ab5d7..9cc61bc 100644
--- a/cpp/src/arrow/ipc/CMakeLists.txt
+++ b/cpp/src/arrow/ipc/CMakeLists.txt
@@ -21,19 +21,22 @@
 ADD_ARROW_TEST(feather-test)
 ADD_ARROW_TEST(ipc-read-write-test)
 ADD_ARROW_TEST(ipc-json-test)
-ADD_ARROW_TEST(json-integration-test)
-
-if (ARROW_BUILD_TESTS)
-  target_link_libraries(json-integration-test
-    gflags)
-
-  if (UNIX)
-    if (APPLE)
-      set_target_properties(json-integration-test
-        PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
-    else()
-      target_link_libraries(json-integration-test
-        pthread)
+
+if (NOT ARROW_BOOST_HEADER_ONLY)
+  ADD_ARROW_TEST(json-integration-test)
+
+  if (ARROW_BUILD_TESTS)
+    target_link_libraries(json-integration-test
+      gflags)
+
+    if (UNIX)
+      if (APPLE)
+        set_target_properties(json-integration-test
+          PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
+      else()
+        target_link_libraries(json-integration-test
+          pthread)
+      endif()
     endif()
   endif()
 endif()