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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]