Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 37 additions & 53 deletions cpp/cmake_modules/FindBrotli.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,11 @@
#
# This module defines
# BROTLI_INCLUDE_DIR, directory containing headers
# BROTLI_LIBS, directory containing brotli libraries
# BROTLI_STATIC_LIB, path to libbrotli.a
# BROTLI_STATIC_LIB, path to libbrotli's static library
# BROTLI_SHARED_LIB, path to libbrotli's shared library
# BROTLI_FOUND, whether brotli has been found

if( NOT "${BROTLI_HOME}" STREQUAL "")
if (NOT "${BROTLI_HOME}" STREQUAL "")
file( TO_CMAKE_PATH "${BROTLI_HOME}" _native_path )
list( APPEND _brotli_roots ${_native_path} )
elseif ( Brotli_HOME )
Expand All @@ -43,66 +42,53 @@ find_path( BROTLI_INCLUDE_DIR NAMES brotli/decode.h
NO_DEFAULT_PATH
PATH_SUFFIXES "include" )

find_library( BROTLI_LIBRARY_ENC NAMES libbrotlienc.a libbrotlienc-static.a brotlienc
PATHS ${_brotli_roots}
NO_DEFAULT_PATH
PATH_SUFFIXES "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib" )
set(BROTLI_LIB_NAME brotli)

find_library( BROTLI_LIBRARY_DEC NAMES libbrotlidec.a libbrotlidec-static.a brotlidec
PATHS ${_brotli_roots}
NO_DEFAULT_PATH
PATH_SUFFIXES "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib" )
if (DEFINED BROTLI_MSVC_STATIC_LIB_SUFFIX)
set(BROTLI_STATIC_LIB_SUFFIX "${BROTLI_MSVC_STATIC_LIB_SUFFIX}")
endif()
if (NOT DEFINED BROTLI_STATIC_LIB_SUFFIX)
if (MSVC)
set(BROTLI_STATIC_LIB_SUFFIX _static)
else()
set(BROTLI_STATIC_LIB_SUFFIX -static)
endif()
endif()

find_library( BROTLI_LIBRARY_COMMON NAMES libbrotlicommon.a libbrotlicommon-static.a brotlicommon
PATHS ${_brotli_roots}
NO_DEFAULT_PATH
PATH_SUFFIXES "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib" )
list(APPEND BROTLI_PATH_SUFFIXES "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib" "lib64")

set(BROTLI_LIBRARIES ${BROTLI_LIBRARY_ENC} ${BROTLI_LIBRARY_DEC}
${BROTLI_LIBRARY_COMMON})
foreach (BROTLI_LIB enc dec common)
string(TOUPPER "LIBRARY_${BROTLI_LIB}" LIBRARY)

if (BROTLI_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR BROTLI_LIBRARIES))
set(BROTLI_FOUND TRUE)
get_filename_component( BROTLI_LIBS ${BROTLI_LIBRARY_ENC} PATH )
set(BROTLI_LIB_NAME brotli)
if (BROTLI_MSVC_STATIC_LIB_SUFFIX)
set(BROTLI_STATIC_LIB_SUFFIX "${BROTLI_MSVC_STATIC_LIB_SUFFIX}")
endif()
if (NOT BROTLI_STATIC_LIB_SUFFIX)
if (EXISTS "${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc-static${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(BROTLI_STATIC_LIB_SUFFIX -static)
else()
if (MSVC)
set(BROTLI_STATIC_LIB_SUFFIX _static)
else()
set(BROTLI_STATIC_LIB_SUFFIX "")
endif()
endif()
endif()
set(BROTLI_STATIC_LIB
${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${BROTLI_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${BROTLI_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${BROTLI_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(BROTLI_STATIC_LIBRARY_ENC ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${BROTLI_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(BROTLI_STATIC_LIBRARY_DEC ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${BROTLI_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(BROTLI_STATIC_LIBRARY_COMMON ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${BROTLI_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
set(BROTLI_SHARED_LIB
${BROTLI_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${CMAKE_SHARED_LIBRARY_SUFFIX}
${BROTLI_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${CMAKE_SHARED_LIBRARY_SUFFIX}
${BROTLI_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${CMAKE_SHARED_LIBRARY_SUFFIX})
else ()
set(BROTLI_FOUND FALSE)
endif ()
find_library(BROTLI_SHARED_${LIBRARY}
NAMES ${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}${BROTLI_LIB}${BROTLI_SHARED_LIB_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}
PATHS ${_brotli_roots} NO_DEFAULT_PATH
PATH_SUFFIXES ${BROTLI_PATH_SUFFIXES})
list(APPEND BROTLI_SHARED_LIB ${BROTLI_SHARED_${LIBRARY}})

if (BROTLI_FOUND)
find_library(BROTLI_STATIC_${LIBRARY}
NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}${BROTLI_LIB}${BROTLI_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
PATHS ${_brotli_roots} NO_DEFAULT_PATH
PATH_SUFFIXES ${BROTLI_PATH_SUFFIXES})
list(APPEND BROTLI_STATIC_LIB ${BROTLI_STATIC_${LIBRARY}})
endforeach()

if (BROTLI_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR BROTLI_STATIC_LIB OR BROTLI_SHARED_LIB))
set(BROTLI_FOUND TRUE)
if (NOT Brotli_FIND_QUIETLY)
if (PARQUET_MINIMAL_DEPENDENCY)
message(STATUS "Found the Brotli headers: ${BROTLI_INCLUDE_DIR}")
else ()
message(STATUS "Found the Brotli library: ${BROTLI_LIBRARIES}")
if (BROTLI_STATIC_LIB)
message(STATUS "Found the Brotli static library: ${BROTLI_STATIC_LIB}")
endif()
if (BROTLI_SHARED_LIB)
message(STATUS "Found the Brotli shared library: ${BROTLI_SHARED_LIB}")
endif()
endif ()
endif ()
else ()
set(BROTLI_FOUND FALSE)
if (NOT Brotli_FIND_QUIETLY)
set(BROTLI_ERR_MSG "Could not find the Brotli library. Looked in ")
if ( _brotli_roots )
Expand All @@ -120,8 +106,6 @@ endif ()

mark_as_advanced(
BROTLI_INCLUDE_DIR
BROTLI_LIBS
BROTLI_LIBRARIES
BROTLI_STATIC_LIB
BROTLI_SHARED_LIB
)
23 changes: 16 additions & 7 deletions cpp/cmake_modules/ThirdpartyToolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1077,7 +1077,7 @@ if (ARROW_WITH_BROTLI)
# ----------------------------------------------------------------------
# Brotli

if("${BROTLI_HOME}" STREQUAL "")
if ("${BROTLI_HOME}" STREQUAL "")
set(BROTLI_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/brotli_ep/src/brotli_ep-install")
set(BROTLI_HOME "${BROTLI_PREFIX}")
set(BROTLI_INCLUDE_DIR "${BROTLI_PREFIX}/include")
Expand Down Expand Up @@ -1118,12 +1118,21 @@ if (ARROW_WITH_BROTLI)
endif()

include_directories(SYSTEM ${BROTLI_INCLUDE_DIR})
ADD_THIRDPARTY_LIB(brotli_enc
STATIC_LIB ${BROTLI_STATIC_LIBRARY_ENC})
ADD_THIRDPARTY_LIB(brotli_dec
STATIC_LIB ${BROTLI_STATIC_LIBRARY_DEC})
ADD_THIRDPARTY_LIB(brotli_common
STATIC_LIB ${BROTLI_STATIC_LIBRARY_COMMON})
if (BROTLI_STATIC_LIB OR BROTLI_VENDORED)
ADD_THIRDPARTY_LIB(brotli_enc
STATIC_LIB ${BROTLI_STATIC_LIBRARY_ENC})
ADD_THIRDPARTY_LIB(brotli_dec
STATIC_LIB ${BROTLI_STATIC_LIBRARY_DEC})
ADD_THIRDPARTY_LIB(brotli_common
STATIC_LIB ${BROTLI_STATIC_LIBRARY_COMMON})
else()
ADD_THIRDPARTY_LIB(brotli_enc
SHARED_LIB ${BROTLI_SHARED_LIBRARY_ENC})
ADD_THIRDPARTY_LIB(brotli_dec
SHARED_LIB ${BROTLI_SHARED_LIBRARY_DEC})
ADD_THIRDPARTY_LIB(brotli_common
SHARED_LIB ${BROTLI_SHARED_LIBRARY_COMMON})
endif()

if (BROTLI_VENDORED)
add_dependencies(brotli_enc_static brotli_ep)
Expand Down
1 change: 1 addition & 0 deletions python/manylinux1/build_arrow.sh
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ PATH="${CPYTHON_PATH}/bin:${PATH}" cmake -DCMAKE_BUILD_TYPE=Release \
-DARROW_BUILD_SHARED=ON \
-DARROW_BOOST_USE_SHARED=ON \
-DARROW_GANDIVA_PC_CXX_FLAGS="-isystem;/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2;-isystem;/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/x86_64-CentOS-linux/" \
-DBROTLI_STATIC_LIB_SUFFIX= \
-DARROW_JEMALLOC=ON \
-DARROW_RPATH_ORIGIN=ON \
-DARROW_PYTHON=ON \
Expand Down