blob: c2fd90130a1408281038217485c2bcda717950e9 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------
# parquet_arrow : Arrow <-> Parquet adapter
set(PARQUET_ARROW_SRCS
reader.cc
schema.cc
writer.cc
)
add_library(parquet_arrow_objlib OBJECT
${PARQUET_ARROW_SRCS}
)
# Add dependencies so ExternalProjects are built beforehand
add_dependencies(parquet_arrow_objlib
arrow_static
parquet_static)
# SET_TARGET_PROPERTIES(parquet_arrow PROPERTIES LINKER_LANGUAGE CXX)
if (PARQUET_BUILD_SHARED)
add_library(parquet_arrow_shared SHARED $<TARGET_OBJECTS:parquet_arrow_objlib>)
set_target_properties(parquet_arrow_shared
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${BUILD_OUTPUT_ROOT_DIRECTORY}"
LINK_FLAGS "${SHARED_LINK_FLAGS}"
OUTPUT_NAME "parquet_arrow"
VERSION "${PARQUET_ABI_VERSION}"
SOVERSION "${PARQUET_SO_VERSION}")
target_link_libraries(parquet_arrow_shared
arrow
parquet_shared)
if (PARQUET_RPATH_ORIGIN)
if (APPLE)
set(_lib_install_rpath "@loader_path")
else()
set(_lib_install_rpath "\$ORIGIN")
endif()
set_target_properties(parquet_arrow_shared PROPERTIES
INSTALL_RPATH ${_lib_install_rpath})
elseif (APPLE)
set_target_properties(parquet_arrow_shared
PROPERTIES
BUILD_WITH_INSTALL_RPATH ON
INSTALL_NAME_DIR "@rpath")
endif()
install(TARGETS parquet_arrow_shared
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
if (PARQUET_BUILD_STATIC)
add_library(parquet_arrow_static STATIC $<TARGET_OBJECTS:parquet_arrow_objlib>)
set_target_properties(parquet_arrow_static
PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${BUILD_OUTPUT_ROOT_DIRECTORY}"
OUTPUT_NAME "parquet_arrow")
target_link_libraries(parquet_arrow_static
arrow_static
parquet_static)
install(TARGETS parquet_arrow_static
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
ADD_PARQUET_TEST(arrow-schema-test)
ADD_PARQUET_TEST(arrow-reader-writer-test)
if (PARQUET_BUILD_STATIC)
ADD_PARQUET_LINK_LIBRARIES(arrow-schema-test parquet_arrow_static)
ADD_PARQUET_LINK_LIBRARIES(arrow-reader-writer-test parquet_arrow_static)
else()
ADD_PARQUET_LINK_LIBRARIES(arrow-schema-test parquet_arrow_shared)
ADD_PARQUET_LINK_LIBRARIES(arrow-reader-writer-test parquet_arrow_shared)
endif()
if(PARQUET_BUILD_BENCHMARKS)
ADD_PARQUET_BENCHMARK(arrow-reader-writer-benchmark)
if (PARQUET_BUILD_STATIC)
ADD_PARQUET_LINK_LIBRARIES(arrow-reader-writer-benchmark parquet_arrow_static)
else()
ADD_PARQUET_LINK_LIBRARIES(arrow-reader-writer-benchmark parquet_arrow_shared)
endif()
endif()
# Headers: top level
install(FILES
reader.h
schema.h
writer.h
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/parquet/arrow")
# pkg-config support
configure_file(parquet-arrow.pc.in
"${CMAKE_CURRENT_BINARY_DIR}/parquet-arrow.pc"
@ONLY)
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/parquet-arrow.pc"
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig/")