Skip to content

FindOpenSP: Use pkg-config only as hints for main code path

Kefu Chai requested to merge tchaikov/cmake:find-opensp-with-hints into master

before this change, pkg_check_modules(.. IMPORTED_TARGET GLOBAL) is used for creating an imported target from which another imported interface library named OpenSP::OpenSP is created. but pkg-config does not account for all of CMake's other search behavior controls, such as CMAKE_FIND_ROOT_PATH. neither does it export the full path with OpenSP_LIBRARY.

after this change, the paths found by pkg-config are only used as hints for the find_*() commands. and some cleanup are included:

  • be QUIET when calling find_package(PkgConfig ..) and pkg_check_modules(..) as they are distracting from user's point of view. what matters is the output of find_package_handle_standard_args()
  • parse the version and check for the existance of symbol as long as header path is found. because they only use header files.
  • define OpenSP_LIBRARY as long as it exists. this just follows the convention. as OpenSP_FOUND implies a valid OpenSP_LIBRARY.
  • wrap and intent multi-line command calls for better readability
  • check OpenSP_FOUND before adding OpenSP::OpenSP, it's more idiomatic.

Fixes: #24313 (closed)
Signed-off-by: Kefu Chai tchaikov@gmail.com
Backport: release
Topic-rename: FindOpenSP-pkg-config-hints

Edited by Brad King

Merge request reports