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

Reply via email to