build: fix pkg-config file generation (#9953)

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
main
Andrea Pappacoda 3 years ago committed by Facebook GitHub Bot
parent 0adac6f88e
commit a0f391cafc
  1. 4
      CMakeLists.txt
  2. 9
      rocksdb.pc.in

@ -1122,8 +1122,8 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
) )
configure_file( configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc ${PROJECT_NAME}.pc
@ONLY @ONLY
) )

@ -1,11 +1,10 @@
prefix="@CMAKE_INSTALL_PREFIX@" prefix="@CMAKE_INSTALL_PREFIX@"
exec_prefix="${prefix}" includedir="${prefix}/@CMAKE_INSTALL_INCLUDEDIR@"
libdir="${prefix}/lib" libdir="${prefix}/@CMAKE_INSTALL_LIBDIR@"
includedir="${prefix}/include"
Name: @PROJECT_NAME@ Name: @PROJECT_NAME@
Description: @CMAKE_PROJECT_DESCRIPTION@ Description: @PROJECT_DESCRIPTION@
URL: @CMAKE_PROJECT_HOMEPAGE_URL@ URL: @PROJECT_HOMEPAGE_URL@
Version: @PROJECT_VERSION@ Version: @PROJECT_VERSION@
Cflags: -I"${includedir}" Cflags: -I"${includedir}"
Libs: -L"${libdir}" -lrocksdb Libs: -L"${libdir}" -lrocksdb

Loading…
Cancel
Save