kou opened a new pull request, #13892: URL: https://github.com/apache/arrow/pull/13892
ARROW-9171 is also fixed. Our CMake packages are broken. For example, find_package(Parquet) doesn't work without specifying CMAKE_MODULE_PATH. find_package(${PACKAGE}) searches ${PREFIX}/${PACKAGE}/${PACKAGE}Config.cmake or ${PREFIX}/${PACKAGE}/Find${PACKAGE}.cmake. But our .cmake files are always installed ${PREFIX}/arrow/. So find_package(Parquet) can't find ${PREFIX}/arrow/FindParquet.cmake because "/arrow/" isn't "/${PACKAGE}". This change fixes this by installing ${PACKAGE}Config.cmake to ${PREFIX}/${PACKAGE}/ instead of ${PREFIX}/arrow/. This also removes all Find${PACKAGE}.cmake. We only provides ${PACKAGE}Config.cmake. Our Find${PACKAGE}.cmake can find ${PACKAGE} by CMake, pkg-config or manual .so/.h search. But we don't need to support pkg-config nor manual .so/.h search. We can use ${PACKAGE}Config.cmake to support CMake package search. So this removes all Find${PACKAGE}.cmake. This also introduces namespace to our CMake targets. For example, arrow_shared is exported as Arrow::arrow_shared and parquet_static is exported as Parquet::parquet_static. But no namespace targets such as arrow_shared and parquet_static are still also exported for keeping backward compatibility. But this requires CMake 3.11 or later for users because we can't use add_library(IMPORTED) is available since CMake 3.11. (Plasma::plasma-store-server target is also added for plasma-store-server executable.) FYI: We can resolve this problem by using COMPONENTS feature of find_package(). For example, find_package(Arrow COMPONENTS Parquet) is used instead of find_package(Parquet). With COMPONENTS, ${PACKAGE} is always "Arrow". So we can still install our .cmake files to ${PREFIX}/arrow/. But this approach breaks backward compatibility. So I choose ${PREFIX}/${PACKAGE}/*.cmake approach. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org