dpdk/buildtools/pkg-config/set-static-linker-flags.py
<<
>>
Prefs
   1#!/usr/bin/env python3
   2# SPDX-License-Identifier: BSD-3-Clause
   3# Copyright(c) 2020 Intel Corporation
   4
   5# Script to fix flags for static linking in pkgconfig files from meson
   6# Should be called from meson build itself
   7import os
   8import sys
   9
  10
  11def fix_ldflag(f):
  12    if not f.startswith('-lrte_'):
  13        return f
  14    return '-l:lib' + f[2:] + '.a'
  15
  16
  17def fix_libs_private(line):
  18    if not line.startswith('Libs.private'):
  19        return line
  20    ldflags = [fix_ldflag(flag) for flag in line.split()]
  21    return ' '.join(ldflags) + '\n'
  22
  23
  24def process_pc_file(filepath):
  25    print('Processing', filepath)
  26    with open(filepath) as src:
  27        lines = src.readlines()
  28    with open(filepath, 'w') as dst:
  29        dst.writelines([fix_libs_private(line) for line in lines])
  30
  31
  32if 'MESON_BUILD_ROOT' not in os.environ:
  33    print('This script must be called from a meson build environment')
  34    sys.exit(1)
  35for root, dirs, files in os.walk(os.environ['MESON_BUILD_ROOT']):
  36    pc_files = [f for f in files if f.endswith('.pc')]
  37    for f in pc_files:
  38        process_pc_file(os.path.join(root, f))
  39