| 123456789101112131415161718192021222324252627282930313233343536373839 |
- # Helper for Find modules
- function(get_flags_from_pkg_config _library _pc_prefix _out_prefix)
- if(MINGW)
- set(re_shared_suffix ".dll.a$")
- else()
- set(re_shared_suffix "${CMAKE_SHARED_LIBRARY_SUFFIX}$")
- endif()
- if("${_library}" MATCHES "${re_shared_suffix}")
- set(_cflags ${_pc_prefix}_CFLAGS_OTHER)
- set(_link_libraries ${_pc_prefix}_LIBRARIES)
- set(_link_options ${_pc_prefix}_LDFLAGS_OTHER)
- set(_library_dirs ${_pc_prefix}_LIBRARY_DIRS)
- else()
- set(_cflags ${_pc_prefix}_STATIC_CFLAGS_OTHER)
- set(_link_libraries ${_pc_prefix}_STATIC_LIBRARIES)
- set(_link_options ${_pc_prefix}_STATIC_LDFLAGS_OTHER)
- set(_library_dirs ${_pc_prefix}_STATIC_LIBRARY_DIRS)
- endif()
- # The *_LIBRARIES lists always start with the library itself
- list(POP_FRONT "${_link_libraries}")
- # Work around CMake's flag deduplication when pc files use `-framework A` instead of `-Wl,-framework,A`
- string(REPLACE "-framework;" "-Wl,-framework," "_filtered_link_options" "${${_link_options}}")
- set(${_out_prefix}_compile_options
- "${${_cflags}}"
- PARENT_SCOPE)
- set(${_out_prefix}_link_libraries
- "${${_link_libraries}}"
- PARENT_SCOPE)
- set(${_out_prefix}_link_options
- "${_filtered_link_options}"
- PARENT_SCOPE)
- set(${_out_prefix}_link_directories
- "${${_library_dirs}}"
- PARENT_SCOPE)
- endfunction()
|