Summary:
- Instead of hardcoding "lib" and "include" in `libdir` and `includedir`, use the values from [`GNUInstallDirs`](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html).
- Use `PROJECT_DESCRIPTION` and `PROJECT_HOMEPAGE_URL` instead of their
`CMAKE_` conterparts to fix pkg-config generation when rocksdb is not the top-level project (see [`project()`](https://cmake.org/cmake/help/latest/command/project.html)).
- Drop explicit `CMAKE_CURRENT_SOURCE_DIR` and `CMAKE_CURRENT_BINARY_DIR` in [`configure_file()`](https://cmake.org/cmake/help/latest/command/configure_file.html) as that's implied by default (and quite intuitive).
See https://github.com/facebook/rocksdb/issues/9945
CC: trynity
Pull Request resolved: https://github.com/facebook/rocksdb/pull/9953
Reviewed By: ajkr
Differential Revision:
D36716373
Pulled By: jay-zhuang
fbshipit-source-id:
57840eeb4453099fa1fe861dc03366085dbca704
)
configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in
- ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
+ ${PROJECT_NAME}.pc.in
+ ${PROJECT_NAME}.pc
@ONLY
)
prefix="@CMAKE_INSTALL_PREFIX@"
-exec_prefix="${prefix}"
-libdir="${prefix}/lib"
-includedir="${prefix}/include"
+includedir="${prefix}/@CMAKE_INSTALL_INCLUDEDIR@"
+libdir="${prefix}/@CMAKE_INSTALL_LIBDIR@"
Name: @PROJECT_NAME@
-Description: @CMAKE_PROJECT_DESCRIPTION@
-URL: @CMAKE_PROJECT_HOMEPAGE_URL@
+Description: @PROJECT_DESCRIPTION@
+URL: @PROJECT_HOMEPAGE_URL@
Version: @PROJECT_VERSION@
Cflags: -I"${includedir}"
Libs: -L"${libdir}" -lrocksdb