FindPkgConfig_SYSTEM_PATH.cmake 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. find_package(PkgConfig REQUIRED)
  2. set(ROOT "${CMAKE_CURRENT_BINARY_DIR}/root")
  3. string(REPLACE " " "\\ " ESCAPED_ROOT "${ROOT}")
  4. set(LIB_DIR "${ROOT}/lib")
  5. set(INCLUDE_DIR "${ROOT}/include")
  6. set(PKGCONFIG_DIR "${LIB_DIR}/pkgconfig")
  7. file(WRITE "${PKGCONFIG_DIR}/zot.pc" "
  8. prefix=${ESCAPED_ROOT}
  9. libdir=\${prefix}/lib
  10. includedir=\${prefix}/include
  11. Name: Zot
  12. Description: Dummy package to test LIBRARY_DIR support
  13. Version: 1.0
  14. Libs: -L\${libdir} -lzot
  15. Cflags: -I\${includedir}
  16. ")
  17. # Create a "library" file to find in libdir.
  18. set(CMAKE_FIND_LIBRARY_PREFIXES "prefix-")
  19. set(CMAKE_FIND_LIBRARY_SUFFIXES "-suffix")
  20. file(WRITE "${LIB_DIR}/prefix-zot-suffix")
  21. # 'pkg-config --libs' drops -L flags in PKG_CONFIG_SYSTEM_LIBRARY_PATH by default.
  22. set(ENV{PKG_CONFIG_SYSTEM_LIBRARY_PATH} "${LIB_DIR}")
  23. # 'pkg-config --cflags' drops -I flags in PKG_CONFIG_SYSTEM_INCLUDE_PATH by default.
  24. set(ENV{PKG_CONFIG_SYSTEM_INCLUDE_PATH} "${INCLUDE_DIR}")
  25. # 'pkgconf --libs' also drops -L flags in LIBRARY_PATH by default.
  26. set(ENV{LIBRARY_PATH} "${LIB_DIR}")
  27. # 'pkgconf --cflags' also drops -I flags in CPATH by default.
  28. set(ENV{CPATH} "${INCLUDE_DIR}")
  29. set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_DIR}")
  30. pkg_check_modules(ZOT REQUIRED zot)
  31. message(STATUS "ZOT_LIBRARIES='${ZOT_LIBRARIES}'")
  32. message(STATUS "ZOT_LINK_LIBRARIES='${ZOT_LINK_LIBRARIES}'")
  33. message(STATUS "ZOT_LDFLAGS='${ZOT_LDFLAGS}'")
  34. message(STATUS "ZOT_CFLAGS='${ZOT_CFLAGS}'")