CodeCommitsIssuesPull requestsActionsInsightsSecurity
4364bff3bc805ef630b8cd0bc0c8e55b27cba032

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

cmake/Modules/FindParquet.cmake

132lines · modecode

1# https://github.com/apache/arrow/blob/master/cpp/cmake_modules/FindParquet.cmake
2
3# Licensed to the Apache Software Foundation (ASF) under one
4# or more contributor license agreements. See the NOTICE file
5# distributed with this work for additional information
6# regarding copyright ownership. The ASF licenses this file
7# to you under the Apache License, Version 2.0 (the
8# "License"); you may not use this file except in compliance
9# with the License. You may obtain a copy of the License at
10#
11# http://www.apache.org/licenses/LICENSE-2.0
12#
13# Unless required by applicable law or agreed to in writing,
14# software distributed under the License is distributed on an
15# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16# KIND, either express or implied. See the License for the
17# specific language governing permissions and limitations
18# under the License.
19
20# - Find Parquet (parquet/api/reader.h, libparquet.a, libparquet.so)
21#
22# This module requires Arrow from which it uses
23# arrow_find_package()
24#
25# This module defines
26# PARQUET_FOUND, whether Parquet has been found
27# PARQUET_IMPORT_LIB, path to libparquet's import library (Windows only)
28# PARQUET_INCLUDE_DIR, directory containing headers
29# PARQUET_LIBS, deprecated. Use PARQUET_LIB_DIR instead
30# PARQUET_LIB_DIR, directory containing Parquet libraries
31# PARQUET_SHARED_IMP_LIB, deprecated. Use PARQUET_IMPORT_LIB instead
32# PARQUET_SHARED_LIB, path to libparquet's shared library
33# PARQUET_SO_VERSION, shared object version of found Parquet such as "100"
34# PARQUET_STATIC_LIB, path to libparquet.a
35
36if(DEFINED PARQUET_FOUND)
37 return()
38endif()
39
40set(find_package_arguments)
41if(${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION)
42 list(APPEND find_package_arguments "${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION}")
43endif()
44if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED)
45 list(APPEND find_package_arguments REQUIRED)
46endif()
47if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY)
48 list(APPEND find_package_arguments QUIET)
49endif()
50find_package(Arrow ${find_package_arguments})
51
52if(NOT "$ENV{PARQUET_HOME}" STREQUAL "")
53 file(TO_CMAKE_PATH "$ENV{PARQUET_HOME}" PARQUET_HOME)
54endif()
55
56if((NOT PARQUET_HOME) AND ARROW_HOME)
57 set(PARQUET_HOME ${ARROW_HOME})
58endif()
59
60if(ARROW_FOUND)
61 arrow_find_package(PARQUET
62 "${PARQUET_HOME}"
63 parquet
64 parquet/api/reader.h
65 Parquet
66 parquet)
67 if(PARQUET_HOME)
68 if(PARQUET_INCLUDE_DIR)
69 file(READ "${PARQUET_INCLUDE_DIR}/parquet/parquet_version.h"
70 PARQUET_VERSION_H_CONTENT)
71 arrow_extract_macro_value(PARQUET_VERSION_MAJOR "PARQUET_VERSION_MAJOR"
72 "${PARQUET_VERSION_H_CONTENT}")
73 arrow_extract_macro_value(PARQUET_VERSION_MINOR "PARQUET_VERSION_MINOR"
74 "${PARQUET_VERSION_H_CONTENT}")
75 arrow_extract_macro_value(PARQUET_VERSION_PATCH "PARQUET_VERSION_PATCH"
76 "${PARQUET_VERSION_H_CONTENT}")
77 if("${PARQUET_VERSION_MAJOR}" STREQUAL ""
78 OR "${PARQUET_VERSION_MINOR}" STREQUAL ""
79 OR "${PARQUET_VERSION_PATCH}" STREQUAL "")
80 set(PARQUET_VERSION "0.0.0")
81 else()
82 set(PARQUET_VERSION
83 "${PARQUET_VERSION_MAJOR}.${PARQUET_VERSION_MINOR}.${PARQUET_VERSION_PATCH}")
84 endif()
85
86 arrow_extract_macro_value(PARQUET_SO_VERSION_QUOTED "PARQUET_SO_VERSION"
87 "${PARQUET_VERSION_H_CONTENT}")
88 string(REGEX
89 REPLACE "^\"(.+)\"$" "\\1" PARQUET_SO_VERSION "${PARQUET_SO_VERSION_QUOTED}")
90 arrow_extract_macro_value(PARQUET_FULL_SO_VERSION_QUOTED "PARQUET_FULL_SO_VERSION"
91 "${PARQUET_VERSION_H_CONTENT}")
92 string(REGEX
93 REPLACE "^\"(.+)\"$" "\\1" PARQUET_FULL_SO_VERSION
94 "${PARQUET_FULL_SO_VERSION_QUOTED}")
95 endif()
96 else()
97 if(PARQUET_USE_CMAKE_PACKAGE_CONFIG)
98 find_package(Parquet CONFIG)
99 elseif(PARQUET_USE_PKG_CONFIG)
100 pkg_get_variable(PARQUET_SO_VERSION parquet so_version)
101 pkg_get_variable(PARQUET_FULL_SO_VERSION parquet full_so_version)
102 endif()
103 endif()
104 set(PARQUET_ABI_VERSION "${PARQUET_SO_VERSION}")
105endif()
106
107mark_as_advanced(PARQUET_ABI_VERSION
108 PARQUET_IMPORT_LIB
109 PARQUET_INCLUDE_DIR
110 PARQUET_LIBS
111 PARQUET_LIB_DIR
112 PARQUET_SHARED_IMP_LIB
113 PARQUET_SHARED_LIB
114 PARQUET_SO_VERSION
115 PARQUET_STATIC_LIB
116 PARQUET_VERSION)
117
118find_package_handle_standard_args(Parquet
119 REQUIRED_VARS
120 PARQUET_INCLUDE_DIR
121 PARQUET_LIB_DIR
122 PARQUET_SO_VERSION
123 VERSION_VAR
124 PARQUET_VERSION)
125set(PARQUET_FOUND ${Parquet_FOUND})
126
127if(Parquet_FOUND AND NOT Parquet_FIND_QUIETLY)
128 message(STATUS "Parquet version: ${PARQUET_VERSION} (${PARQUET_FIND_APPROACH})")
129 message(STATUS "Found the Parquet shared library: ${PARQUET_SHARED_LIB}")
130 message(STATUS "Found the Parquet import library: ${PARQUET_IMPORT_LIB}")
131 message(STATUS "Found the Parquet static library: ${PARQUET_STATIC_LIB}")
132endif()