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/04/02 08:04:19 UTC

arrow git commit: ARROW-747: [C++] Calling add_dependencies with dl causes spurious CMake warning

Repository: arrow
Updated Branches:
  refs/heads/master 651ea9247 -> baf38e47a


ARROW-747: [C++] Calling add_dependencies with dl causes spurious CMake warning

I added an option to make the dependency targets (e.g. external projects) in libraries more explicit.

Author: Wes McKinney <we...@twosigma.com>

Closes #472 from wesm/ARROW-747 and squashes the following commits:

c60832f [Wes McKinney] Add DEPENDENCIES argument to ADD_ARROW_LIB to fix spurious dl dependency issue


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

Branch: refs/heads/master
Commit: baf38e47a7d73d87017699304dcbe15f297c9284
Parents: 651ea92
Author: Wes McKinney <we...@twosigma.com>
Authored: Sun Apr 2 10:04:11 2017 +0200
Committer: Uwe L. Korn <uw...@xhochy.com>
Committed: Sun Apr 2 10:04:11 2017 +0200

----------------------------------------------------------------------
 cpp/CMakeLists.txt                    |  9 +---
 cpp/cmake_modules/BuildUtils.cmake    | 18 ++------
 cpp/src/arrow/io/CMakeLists.txt       |  4 +-
 cpp/src/arrow/ipc/CMakeLists.txt      | 74 +++++++++++++-----------------
 cpp/src/arrow/jemalloc/CMakeLists.txt |  5 ++
 5 files changed, 46 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/arrow/blob/baf38e47/cpp/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 7a5a0e6..aacc7a1 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -654,13 +654,8 @@ if (ARROW_JEMALLOC)
 
   include_directories(SYSTEM ${JEMALLOC_INCLUDE_DIR})
   ADD_THIRDPARTY_LIB(jemalloc
-      STATIC_LIB ${JEMALLOC_STATIC_LIB}
-      SHARED_LIB ${JEMALLOC_SHARED_LIB})
-
-  if (JEMALLOC_VENDORED)
-    add_dependencies(jemalloc_shared jemalloc_ep)
-    add_dependencies(jemalloc_static jemalloc_ep)
-  endif()
+    STATIC_LIB ${JEMALLOC_STATIC_LIB}
+    SHARED_LIB ${JEMALLOC_SHARED_LIB})
 endif()
 
 ## Google PerfTools

http://git-wip-us.apache.org/repos/asf/arrow/blob/baf38e47/cpp/cmake_modules/BuildUtils.cmake
----------------------------------------------------------------------
diff --git a/cpp/cmake_modules/BuildUtils.cmake b/cpp/cmake_modules/BuildUtils.cmake
index 43d9840..3a3b536 100644
--- a/cpp/cmake_modules/BuildUtils.cmake
+++ b/cpp/cmake_modules/BuildUtils.cmake
@@ -85,26 +85,18 @@ endfunction()
 function(ADD_ARROW_LIB LIB_NAME)
   set(options)
   set(one_value_args SHARED_LINK_FLAGS)
-  set(multi_value_args SOURCES STATIC_LINK_LIBS STATIC_PRIVATE_LINK_LIBS SHARED_LINK_LIBS SHARED_PRIVATE_LINK_LIBS)
+  set(multi_value_args SOURCES STATIC_LINK_LIBS STATIC_PRIVATE_LINK_LIBS SHARED_LINK_LIBS SHARED_PRIVATE_LINK_LIBS DEPENDENCIES)
   cmake_parse_arguments(ARG "${options}" "${one_value_args}" "${multi_value_args}" ${ARGN})
   if(ARG_UNPARSED_ARGUMENTS)
     message(SEND_ERROR "Error: unrecognized arguments: ${ARG_UNPARSED_ARGUMENTS}")
   endif()
 
   add_library(${LIB_NAME}_objlib OBJECT
-      ${ARG_SOURCES}
+    ${ARG_SOURCES}
   )
-  if (ARG_STATIC_LINK_LIBS)
-    add_dependencies(${LIB_NAME}_objlib ${ARG_STATIC_LINK_LIBS})
-  endif()
-  if (ARG_STATIC_PRIVATE_LINK_LIBS)
-    add_dependencies(${LIB_NAME}_objlib ${ARG_STATIC_PRIVATE_LINK_LIBS})
-  endif()
-  if (ARG_SHARED_LINK_LIBS)
-    add_dependencies(${LIB_NAME}_objlib ${ARG_SHARED_LINK_LIBS})
-  endif()
-  if(ARG_SHARED_PRIVATE_LINK_LIBS)
-    add_dependencies(${LIB_NAME}_objlib ${ARG_SHARED_PRIVATE_LINK_LIBS})
+
+  if (ARG_DEPENDENCIES)
+    add_dependencies(${LIB_NAME}_objlib ${ARG_DEPENDENCIES})
   endif()
 
   # Necessary to make static linking into other shared libraries work properly

http://git-wip-us.apache.org/repos/asf/arrow/blob/baf38e47/cpp/src/arrow/io/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/cpp/src/arrow/io/CMakeLists.txt b/cpp/src/arrow/io/CMakeLists.txt
index 8aabf64..3951eac 100644
--- a/cpp/src/arrow/io/CMakeLists.txt
+++ b/cpp/src/arrow/io/CMakeLists.txt
@@ -48,11 +48,11 @@ if (MSVC)
 else()
   set(ARROW_IO_STATIC_LINK_LIBS
     arrow_static
-    dl
+    ${CMAKE_DL_LIBS}
   )
   set(ARROW_IO_SHARED_LINK_LIBS
     arrow_shared
-    dl
+    ${CMAKE_DL_LIBS}
   )
 endif()
 

http://git-wip-us.apache.org/repos/asf/arrow/blob/baf38e47/cpp/src/arrow/ipc/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/cpp/src/arrow/ipc/CMakeLists.txt b/cpp/src/arrow/ipc/CMakeLists.txt
index 31a04df..5fa7d61 100644
--- a/cpp/src/arrow/ipc/CMakeLists.txt
+++ b/cpp/src/arrow/ipc/CMakeLists.txt
@@ -26,7 +26,8 @@ set(ARROW_IPC_SHARED_LINK_LIBS
 
 set(ARROW_IPC_TEST_LINK_LIBS
   arrow_ipc_static
-  arrow_io_static)
+  arrow_io_static
+  arrow_static)
 
 set(ARROW_IPC_SRCS
   feather.cc
@@ -44,20 +45,22 @@ if(NOT APPLE)
   set(ARROW_IPC_LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/symbols.map")
 endif()
 
-ADD_ARROW_LIB(arrow_ipc
-    SOURCES ${ARROW_IPC_SRCS}
-    SHARED_LINK_FLAGS ${ARROW_IPC_LINK_FLAGS}
-    SHARED_LINK_LIBS ${ARROW_IPC_SHARED_LINK_LIBS}
-    STATIC_LINK_LIBS ${ARROW_IO_SHARED_PRIVATE_LINK_LIBS}
-)
-
 if(RAPIDJSON_VENDORED)
-  add_dependencies(arrow_ipc_objlib rapidjson_ep)
+  set(IPC_DEPENDENCIES ${IPC_DEPENDENCIES} rapidjson_ep)
 endif()
+
 if(FLATBUFFERS_VENDORED)
-  add_dependencies(arrow_ipc_objlib flatbuffers_ep)
+  set(IPC_DEPENDENCIES ${IPC_DEPENDENCIES} flatbuffers_ep)
 endif()
 
+ADD_ARROW_LIB(arrow_ipc
+  SOURCES ${ARROW_IPC_SRCS}
+  DEPENDENCIES ${IPC_DEPENDENCIES}
+  SHARED_LINK_FLAGS ${ARROW_IPC_LINK_FLAGS}
+  SHARED_LINK_LIBS ${ARROW_IPC_SHARED_LINK_LIBS}
+  STATIC_LINK_LIBS ${ARROW_IO_SHARED_PRIVATE_LINK_LIBS}
+)
+
 ADD_ARROW_TEST(feather-test)
 ARROW_TEST_LINK_LIBRARIES(feather-test
   ${ARROW_IPC_TEST_LINK_LIBS})
@@ -71,40 +74,27 @@ ARROW_TEST_LINK_LIBRARIES(ipc-json-test
   ${ARROW_IPC_TEST_LINK_LIBS})
 
 ADD_ARROW_TEST(json-integration-test)
+ARROW_TEST_LINK_LIBRARIES(json-integration-test
+  ${ARROW_IPC_TEST_LINK_LIBS})
 
 if (ARROW_BUILD_TESTS)
-  if (APPLE)
-    target_link_libraries(json-integration-test
-      arrow_ipc_static
-      arrow_io_static
-      arrow_static
-      gflags
-      gtest
-      ${BOOST_FILESYSTEM_LIBRARY}
-      ${BOOST_SYSTEM_LIBRARY}
-      dl)
-    set_target_properties(json-integration-test
-      PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
-  elseif (MSVC)
-    target_link_libraries(json-integration-test
-      arrow_ipc_static
-      arrow_io_static
-      arrow_static
-      gflags
-      gtest
-      ${BOOST_FILESYSTEM_LIBRARY}
-      ${BOOST_SYSTEM_LIBRARY})
-  else()
-    target_link_libraries(json-integration-test
-      arrow_ipc_static
-      arrow_io_static
-      arrow_static
-      gflags
-      gtest
-      pthread
-      ${BOOST_FILESYSTEM_LIBRARY}
-      ${BOOST_SYSTEM_LIBRARY}
-      dl)
+  target_link_libraries(json-integration-test
+    gflags
+    gtest
+    ${BOOST_FILESYSTEM_LIBRARY}
+    ${BOOST_SYSTEM_LIBRARY})
+
+  if (UNIX)
+    if (APPLE)
+      target_link_libraries(json-integration-test
+        ${CMAKE_DL_LIBS})
+      set_target_properties(json-integration-test
+        PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
+    else()
+      target_link_libraries(json-integration-test
+        pthread
+        ${CMAKE_DL_LIBS})
+    endif()
   endif()
 endif()
 

http://git-wip-us.apache.org/repos/asf/arrow/blob/baf38e47/cpp/src/arrow/jemalloc/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/cpp/src/arrow/jemalloc/CMakeLists.txt b/cpp/src/arrow/jemalloc/CMakeLists.txt
index b8e6e23..7b627ac 100644
--- a/cpp/src/arrow/jemalloc/CMakeLists.txt
+++ b/cpp/src/arrow/jemalloc/CMakeLists.txt
@@ -84,8 +84,13 @@ if(NOT APPLE)
   set(ARROW_JEMALLOC_LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/symbols.map")
 endif()
 
+if (JEMALLOC_VENDORED)
+  set(JEMALLOC_DEPENDENCIES jemalloc_ep)
+endif()
+
 ADD_ARROW_LIB(arrow_jemalloc
   SOURCES ${ARROW_JEMALLOC_SRCS}
+  DEPENDENCIES ${JEMALLOC_DEPENDENCIES}
   SHARED_LINK_FLAGS ${ARROW_JEMALLOC_LINK_FLAGS}
   SHARED_LINK_LIBS ${ARROW_JEMALLOC_SHARED_LINK_LIBS}
   SHARED_PRIVATE_LINK_LIBS ${ARROW_JEMALLOC_SHARED_PRIVATE_LINK_LIBS}