|
12 | 12 | # See the License for the specific language governing permissions and
|
13 | 13 | # limitations under the License.
|
14 | 14 | include_guard(GLOBAL)
|
| 15 | + |
| 16 | +include(CMakePackageConfigHelpers) |
| 17 | + |
15 | 18 | function(velox_get_rpath_origin VAR)
|
16 | 19 | if(APPLE)
|
17 | 20 | set(_origin @loader_path)
|
@@ -99,7 +102,54 @@ function(velox_add_library TARGET)
|
99 | 102 | add_library(velox ${_type} ${ARGN})
|
100 | 103 | set_target_properties(velox PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
101 | 104 | set_target_properties(velox PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
102 |
| - install(TARGETS velox DESTINATION lib/velox) |
| 105 | + install(TARGETS velox DESTINATION lib/velox EXPORT velox_targets) |
| 106 | + if(VELOX_BUILD_CMAKE_PACKAGE) |
| 107 | + set(package_cmake_dir "lib/cmake/Velox") |
| 108 | + set(config_cmake_in "${PROJECT_SOURCE_DIR}/CMake/VeloxConfig.cmake.in") |
| 109 | + set(config_cmake "${PROJECT_BINARY_DIR}/CMake/VeloxConfig.cmake") |
| 110 | + configure_package_config_file( |
| 111 | + "${config_cmake_in}" |
| 112 | + "${config_cmake}" |
| 113 | + INSTALL_DESTINATION "${package_cmake_dir}" |
| 114 | + ) |
| 115 | + install(FILES "${config_cmake}" DESTINATION "${package_cmake_dir}") |
| 116 | + set(system_dependencies) |
| 117 | + if(Arrow_SOURCE STREQUAL "SYSTEM") |
| 118 | + list(APPEND system_dependencies Arrow) |
| 119 | + endif() |
| 120 | + if(glog_SOURCE STREQUAL "SYSTEM") |
| 121 | + list(APPEND system_dependencies glog) |
| 122 | + endif() |
| 123 | + if(VELOX_ENABLE_COMPRESSION_LZ4) |
| 124 | + list(APPEND system_dependencies lz4) |
| 125 | + endif() |
| 126 | + if(re2_SOURCE STREQUAL "SYSTEM") |
| 127 | + list(APPEND system_dependencies re2) |
| 128 | + endif() |
| 129 | + if(stemmer_SOURCE STREQUAL "SYSTEM") |
| 130 | + list(APPEND system_dependencies stemmer) |
| 131 | + endif() |
| 132 | + if(VELOX_BUILD_MINIMAL_WITH_DWIO OR VELOX_ENABLE_HIVE_CONNECTOR) |
| 133 | + list(APPEND system_dependencies Snappy zstd) |
| 134 | + endif() |
| 135 | + foreach(system_dependency ${system_dependencies}) |
| 136 | + install( |
| 137 | + FILES "${PROJECT_SOURCE_DIR}/CMake/Find${system_dependency}.cmake" |
| 138 | + DESTINATION "${package_cmake_dir}" |
| 139 | + ) |
| 140 | + endforeach() |
| 141 | + # TODO: We can enable this once we add version to Velox. |
| 142 | + # set(version_cmake "${PROJECT_BINARY_DIR}/CMake/VeloxConfigVersion.cmake") |
| 143 | + # write_basic_package_version_file("${version_cmake}" |
| 144 | + # COMPATIBILITY SameMajorVersion) |
| 145 | + # install(FILES "${version_cmake}" DESTINATION "${package_cmake_dir}") |
| 146 | + install( |
| 147 | + EXPORT velox_targets |
| 148 | + DESTINATION "${package_cmake_dir}" |
| 149 | + NAMESPACE "Velox::" |
| 150 | + FILE "VeloxTargets.cmake" |
| 151 | + ) |
| 152 | + endif() |
103 | 153 | endif()
|
104 | 154 | # create alias for compatability
|
105 | 155 | if(NOT TARGET ${TARGET})
|
|
0 commit comments