1
0

PkgConfigHelper.cmake 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. # Helper for Find modules
  2. function(get_flags_from_pkg_config _library _pc_prefix _out_prefix)
  3. if("${_library}" MATCHES "${CMAKE_STATIC_LIBRARY_SUFFIX}$")
  4. set(_cflags ${_pc_prefix}_STATIC_CFLAGS_OTHER)
  5. set(_link_libraries ${_pc_prefix}_STATIC_LIBRARIES)
  6. set(_link_options ${_pc_prefix}_STATIC_LDFLAGS_OTHER)
  7. set(_library_dirs ${_pc_prefix}_STATIC_LIBRARY_DIRS)
  8. else()
  9. set(_cflags ${_pc_prefix}_CFLAGS_OTHER)
  10. set(_link_libraries ${_pc_prefix}_LIBRARIES)
  11. set(_link_options ${_pc_prefix}_LDFLAGS_OTHER)
  12. set(_library_dirs ${_pc_prefix}_LIBRARY_DIRS)
  13. endif()
  14. # The *_LIBRARIES lists always start with the library itself
  15. list(POP_FRONT "${_link_libraries}")
  16. # Work around CMake's flag deduplication when pc files use `-framework A` instead of `-Wl,-framework,A`
  17. string(REPLACE "-framework;" "-Wl,-framework," "_filtered_link_options" "${${_link_options}}")
  18. set(${_out_prefix}_compile_options
  19. "${${_cflags}}"
  20. PARENT_SCOPE)
  21. set(${_out_prefix}_link_libraries
  22. "${${_link_libraries}}"
  23. PARENT_SCOPE)
  24. set(${_out_prefix}_link_options
  25. "${_filtered_link_options}"
  26. PARENT_SCOPE)
  27. set(${_out_prefix}_link_directories
  28. "${${_library_dirs}}"
  29. PARENT_SCOPE)
  30. endfunction()