summaryrefslogtreecommitdiff
path: root/src/contrib/SDL-3.2.20/cmake/PkgConfigHelper.cmake
blob: 7070fac795d81dbc8eb12b38b563c210b61f2397 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Helper for Find modules

function(get_flags_from_pkg_config _library _pc_prefix _out_prefix)
  if("${_library}" MATCHES "${CMAKE_STATIC_LIBRARY_SUFFIX}$")
    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)
  else()
    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)
  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()