mirror of
https://github.com/apache/arrow.git
synced 2026-10-28 16:47:19 +08:00
Scrubbing python/CMakeLists.txt
Change-Id: I912c8adaaef524b261e46d613e57e246ee4a5dce
This commit is contained in:
1 parent
b80b1530dc
commit
c1e63dca41
3 files changed
+83
-181
No files matched your search
+1
-68
@@ -137,6 +137,7 @@ if(NOT ARROW_BUILD_BENCHMARKS)
|
||||
set(NO_BENCHMARKS 1)
|
||||
endif()
|
||||
|
||||
include(BuildUtils)
|
||||
|
||||
############################################################
|
||||
# Compiler flags
|
||||
@@ -379,72 +380,6 @@ enable_testing()
|
||||
############################################################
|
||||
# Dependencies
|
||||
############################################################
|
||||
function(ADD_THIRDPARTY_LIB LIB_NAME)
|
||||
set(options)
|
||||
set(one_value_args SHARED_LIB STATIC_LIB)
|
||||
set(multi_value_args DEPS)
|
||||
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()
|
||||
|
||||
if(ARG_STATIC_LIB AND ARG_SHARED_LIB)
|
||||
if(NOT ARG_STATIC_LIB)
|
||||
message(FATAL_ERROR "No static or shared library provided for ${LIB_NAME}")
|
||||
endif()
|
||||
|
||||
SET(AUG_LIB_NAME "${LIB_NAME}_static")
|
||||
add_library(${AUG_LIB_NAME} STATIC IMPORTED)
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_STATIC_LIB}")
|
||||
message("Added static library dependency ${LIB_NAME}: ${ARG_STATIC_LIB}")
|
||||
|
||||
SET(AUG_LIB_NAME "${LIB_NAME}_shared")
|
||||
add_library(${AUG_LIB_NAME} SHARED IMPORTED)
|
||||
|
||||
if(MSVC)
|
||||
# Mark the ”.lib” location as part of a Windows DLL
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_IMPLIB "${ARG_SHARED_LIB}")
|
||||
else()
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
|
||||
endif()
|
||||
message("Added shared library dependency ${LIB_NAME}: ${ARG_SHARED_LIB}")
|
||||
elseif(ARG_STATIC_LIB)
|
||||
add_library(${LIB_NAME} STATIC IMPORTED)
|
||||
set_target_properties(${LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_STATIC_LIB}")
|
||||
SET(AUG_LIB_NAME "${LIB_NAME}_static")
|
||||
add_library(${AUG_LIB_NAME} STATIC IMPORTED)
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_STATIC_LIB}")
|
||||
message("Added static library dependency ${LIB_NAME}: ${ARG_STATIC_LIB}")
|
||||
elseif(ARG_SHARED_LIB)
|
||||
add_library(${LIB_NAME} SHARED IMPORTED)
|
||||
set_target_properties(${LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
|
||||
SET(AUG_LIB_NAME "${LIB_NAME}_shared")
|
||||
add_library(${AUG_LIB_NAME} SHARED IMPORTED)
|
||||
|
||||
if(MSVC)
|
||||
# Mark the ”.lib” location as part of a Windows DLL
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_IMPLIB "${ARG_SHARED_LIB}")
|
||||
else()
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
|
||||
endif()
|
||||
message("Added shared library dependency ${LIB_NAME}: ${ARG_SHARED_LIB}")
|
||||
else()
|
||||
message(FATAL_ERROR "No static or shared library provided for ${LIB_NAME}")
|
||||
endif()
|
||||
|
||||
if(ARG_DEPS)
|
||||
set_target_properties(${LIB_NAME}
|
||||
PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES "${ARG_DEPS}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Add Boost dependencies (code adapted from Apache Kudu (incubating))
|
||||
@@ -872,8 +807,6 @@ if(NOT APPLE)
|
||||
set(ARROW_SHARED_LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/arrow/symbols.map")
|
||||
endif()
|
||||
|
||||
include(BuildUtils)
|
||||
|
||||
ADD_ARROW_LIB(arrow
|
||||
SOURCES ${ARROW_SRCS}
|
||||
SHARED_LINK_FLAGS ${ARROW_SHARED_LINK_FLAGS}
|
||||
|
||||
@@ -15,6 +15,73 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
function(ADD_THIRDPARTY_LIB LIB_NAME)
|
||||
set(options)
|
||||
set(one_value_args SHARED_LIB STATIC_LIB)
|
||||
set(multi_value_args DEPS)
|
||||
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()
|
||||
|
||||
if(ARG_STATIC_LIB AND ARG_SHARED_LIB)
|
||||
if(NOT ARG_STATIC_LIB)
|
||||
message(FATAL_ERROR "No static or shared library provided for ${LIB_NAME}")
|
||||
endif()
|
||||
|
||||
SET(AUG_LIB_NAME "${LIB_NAME}_static")
|
||||
add_library(${AUG_LIB_NAME} STATIC IMPORTED)
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_STATIC_LIB}")
|
||||
message("Added static library dependency ${LIB_NAME}: ${ARG_STATIC_LIB}")
|
||||
|
||||
SET(AUG_LIB_NAME "${LIB_NAME}_shared")
|
||||
add_library(${AUG_LIB_NAME} SHARED IMPORTED)
|
||||
|
||||
if(MSVC)
|
||||
# Mark the ”.lib” location as part of a Windows DLL
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_IMPLIB "${ARG_SHARED_LIB}")
|
||||
else()
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
|
||||
endif()
|
||||
message("Added shared library dependency ${LIB_NAME}: ${ARG_SHARED_LIB}")
|
||||
elseif(ARG_STATIC_LIB)
|
||||
add_library(${LIB_NAME} STATIC IMPORTED)
|
||||
set_target_properties(${LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_STATIC_LIB}")
|
||||
SET(AUG_LIB_NAME "${LIB_NAME}_static")
|
||||
add_library(${AUG_LIB_NAME} STATIC IMPORTED)
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_STATIC_LIB}")
|
||||
message("Added static library dependency ${LIB_NAME}: ${ARG_STATIC_LIB}")
|
||||
elseif(ARG_SHARED_LIB)
|
||||
add_library(${LIB_NAME} SHARED IMPORTED)
|
||||
set_target_properties(${LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
|
||||
SET(AUG_LIB_NAME "${LIB_NAME}_shared")
|
||||
add_library(${AUG_LIB_NAME} SHARED IMPORTED)
|
||||
|
||||
if(MSVC)
|
||||
# Mark the ”.lib” location as part of a Windows DLL
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_IMPLIB "${ARG_SHARED_LIB}")
|
||||
else()
|
||||
set_target_properties(${AUG_LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
|
||||
endif()
|
||||
message("Added shared library dependency ${LIB_NAME}: ${ARG_SHARED_LIB}")
|
||||
else()
|
||||
message(FATAL_ERROR "No static or shared library provided for ${LIB_NAME}")
|
||||
endif()
|
||||
|
||||
if(ARG_DEPS)
|
||||
set_target_properties(${LIB_NAME}
|
||||
PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES "${ARG_DEPS}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(ADD_ARROW_LIB LIB_NAME)
|
||||
set(options)
|
||||
set(one_value_args SHARED_LINK_FLAGS)
|
||||
@@ -68,28 +135,28 @@ function(ADD_ARROW_LIB LIB_NAME)
|
||||
set_target_properties(${LIB_NAME}_shared PROPERTIES
|
||||
INSTALL_RPATH ${_lib_install_rpath})
|
||||
endif()
|
||||
|
||||
|
||||
install(TARGETS ${LIB_NAME}_shared
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
|
||||
if (ARROW_BUILD_STATIC)
|
||||
add_library(${LIB_NAME}_static STATIC $<TARGET_OBJECTS:${LIB_NAME}_objlib>)
|
||||
set_target_properties(${LIB_NAME}_static
|
||||
PROPERTIES
|
||||
LIBRARY_OUTPUT_DIRECTORY "${BUILD_OUTPUT_ROOT_DIRECTORY}"
|
||||
OUTPUT_NAME ${LIB_NAME})
|
||||
|
||||
|
||||
target_link_libraries(${LIB_NAME}_static
|
||||
LINK_PUBLIC ${ARG_STATIC_LINK_LIBS}
|
||||
LINK_PRIVATE ${ARG_STATIC_PRIVATE_LINK_LIBS})
|
||||
|
||||
|
||||
install(TARGETS ${LIB_NAME}_static
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
||||
|
||||
if (APPLE)
|
||||
set_target_properties(${LIB_NAME}_shared
|
||||
PROPERTIES
|
||||
@@ -98,4 +165,3 @@ function(ADD_ARROW_LIB LIB_NAME)
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
+10
-107
@@ -47,9 +47,6 @@ endif()
|
||||
|
||||
# Top level cmake dir
|
||||
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
option(PYARROW_BUILD_TESTS
|
||||
"Build the PyArrow C++ googletest unit tests"
|
||||
OFF)
|
||||
option(PYARROW_BUILD_PARQUET
|
||||
"Build the PyArrow Parquet integration"
|
||||
OFF)
|
||||
@@ -218,66 +215,6 @@ include_directories(SYSTEM
|
||||
############################################################
|
||||
# Dependencies
|
||||
############################################################
|
||||
function(ADD_THIRDPARTY_LIB LIB_NAME)
|
||||
set(options)
|
||||
set(one_value_args SHARED_LIB STATIC_LIB)
|
||||
set(multi_value_args DEPS)
|
||||
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()
|
||||
|
||||
if(("${PYARROW_LINK}" STREQUAL "s" AND ARG_STATIC_LIB) OR (NOT ARG_SHARED_LIB))
|
||||
if(NOT ARG_STATIC_LIB)
|
||||
message(FATAL_ERROR "No static or shared library provided for ${LIB_NAME}")
|
||||
endif()
|
||||
add_library(${LIB_NAME} STATIC IMPORTED)
|
||||
set_target_properties(${LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_STATIC_LIB}")
|
||||
message(STATUS "Added static library dependency ${LIB_NAME}: ${ARG_STATIC_LIB}")
|
||||
else()
|
||||
add_library(${LIB_NAME} SHARED IMPORTED)
|
||||
set_target_properties(${LIB_NAME}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
|
||||
message(STATUS "Added shared library dependency ${LIB_NAME}: ${ARG_SHARED_LIB}")
|
||||
endif()
|
||||
|
||||
if(ARG_DEPS)
|
||||
set_target_properties(${LIB_NAME}
|
||||
PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES "${ARG_DEPS}")
|
||||
endif()
|
||||
|
||||
# Set up an "exported variant" for this thirdparty library (see "Visibility"
|
||||
# above). It's the same as the real target, just with an "_exported" suffix.
|
||||
# We prefer the static archive if it exists (as it's akin to an "internal"
|
||||
# library), but we'll settle for the shared object if we must.
|
||||
#
|
||||
# A shared object exported variant will force any "leaf" library that
|
||||
# transitively depends on it to also depend on it at runtime; this is
|
||||
# desirable for some libraries (e.g. cyrus_sasl).
|
||||
set(LIB_NAME_EXPORTED ${LIB_NAME}_exported)
|
||||
if(ARG_STATIC_LIB)
|
||||
add_library(${LIB_NAME_EXPORTED} STATIC IMPORTED)
|
||||
set_target_properties(${LIB_NAME_EXPORTED}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_STATIC_LIB}")
|
||||
else()
|
||||
add_library(${LIB_NAME_EXPORTED} SHARED IMPORTED)
|
||||
set_target_properties(${LIB_NAME_EXPORTED}
|
||||
PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
|
||||
endif()
|
||||
if(ARG_DEPS)
|
||||
set_target_properties(${LIB_NAME_EXPORTED}
|
||||
PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES "${ARG_DEPS}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
## GMock
|
||||
if (PYARROW_BUILD_TESTS)
|
||||
find_package(GTest REQUIRED)
|
||||
include_directories(SYSTEM ${GTEST_INCLUDE_DIR})
|
||||
ADD_THIRDPARTY_LIB(gtest
|
||||
STATIC_LIB ${GTEST_STATIC_LIB})
|
||||
endif()
|
||||
|
||||
## Parquet
|
||||
find_package(Parquet)
|
||||
@@ -305,6 +242,8 @@ if (PYARROW_BUNDLE_ARROW_CPP)
|
||||
COPYONLY)
|
||||
SET(ARROW_IPC_SHARED_LIB
|
||||
${BUILD_OUTPUT_ROOT_DIRECTORY}/libarrow_ipc${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
SET(ARROW_PYTHON_SHARED_LIB
|
||||
${BUILD_OUTPUT_ROOT_DIRECTORY}/libarrow_python${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
endif()
|
||||
|
||||
ADD_THIRDPARTY_LIB(arrow
|
||||
@@ -313,45 +252,8 @@ ADD_THIRDPARTY_LIB(arrow_io
|
||||
SHARED_LIB ${ARROW_IO_SHARED_LIB})
|
||||
ADD_THIRDPARTY_LIB(arrow_ipc
|
||||
SHARED_LIB ${ARROW_IPC_SHARED_LIB})
|
||||
|
||||
############################################################
|
||||
# "make ctags" target
|
||||
############################################################
|
||||
if (UNIX)
|
||||
add_custom_target(ctags ctags -R --languages=c++,c --exclude=thirdparty/installed)
|
||||
endif (UNIX)
|
||||
|
||||
############################################################
|
||||
# "make etags" target
|
||||
############################################################
|
||||
if (UNIX)
|
||||
add_custom_target(tags etags --members --declarations
|
||||
`find ${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
-name \\*.cc -or -name \\*.hh -or -name \\*.cpp -or -name \\*.h -or -name \\*.c -or
|
||||
-name \\*.f`)
|
||||
add_custom_target(etags DEPENDS tags)
|
||||
endif (UNIX)
|
||||
|
||||
############################################################
|
||||
# "make cscope" target
|
||||
############################################################
|
||||
if (UNIX)
|
||||
add_custom_target(cscope find ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
( -name \\*.cc -or -name \\*.hh -or -name \\*.cpp -or
|
||||
-name \\*.h -or -name \\*.c -or -name \\*.f )
|
||||
-exec echo \"{}\" \; > cscope.files && cscope -q -b VERBATIM)
|
||||
endif (UNIX)
|
||||
|
||||
############################################################
|
||||
# "make lint" target
|
||||
############################################################
|
||||
if (UNIX)
|
||||
# Full lint
|
||||
add_custom_target(lint ${BUILD_SUPPORT_DIR}/cpplint.py
|
||||
--verbose=2
|
||||
--filter=-whitespace/comments,-readability/todo,-build/header_guard
|
||||
`find ${CMAKE_CURRENT_SOURCE_DIR}/src -name \\*.cc -or -name \\*.h`)
|
||||
endif (UNIX)
|
||||
ADD_THIRDPARTY_LIB(arrow_python
|
||||
SHARED_LIB ${ARROW_PYTHON_SHARED_LIB})
|
||||
|
||||
############################################################
|
||||
# Subdirectories
|
||||
@@ -374,9 +276,10 @@ set(CYTHON_EXTENSIONS
|
||||
)
|
||||
|
||||
set(LINK_LIBS
|
||||
arrow
|
||||
arrow_io
|
||||
arrow_ipc
|
||||
arrow_shared
|
||||
arrow_io_shared
|
||||
arrow_ipc_shared
|
||||
arrow_python_shared
|
||||
)
|
||||
|
||||
if (PYARROW_BUILD_PARQUET)
|
||||
@@ -417,7 +320,7 @@ if (PYARROW_BUILD_JEMALLOC)
|
||||
SHARED_LIB ${ARROW_JEMALLOC_SHARED_LIB})
|
||||
set(LINK_LIBS
|
||||
${LINK_LIBS}
|
||||
arrow_jemalloc)
|
||||
arrow_jemalloc_shared)
|
||||
set(CYTHON_EXTENSIONS
|
||||
${CYTHON_EXTENSIONS}
|
||||
jemalloc)
|
||||
@@ -463,5 +366,5 @@ foreach(module ${CYTHON_EXTENSIONS})
|
||||
|
||||
set_target_properties(${module_name} PROPERTIES
|
||||
INSTALL_RPATH ${module_install_rpath})
|
||||
target_link_libraries(${module_name} pyarrow)
|
||||
target_link_libraries(${module_name} ${LINK_LIBS})
|
||||
endforeach(module)
|
||||
Reference in new issue
Block a user