Skip to content

Commit

Permalink
feat: set up macros for buildrequires generation
Browse files Browse the repository at this point in the history
  • Loading branch information
solomoncyj committed Dec 12, 2024
1 parent e542901 commit 0d7f04b
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
5 changes: 5 additions & 0 deletions data/macros.meson
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,8 @@
--num-processes %{_smp_build_ncpus} \
--print-errorlogs \
%{nil}}

%meson_buildrequires \
%{shrink: mesongenbuildreq %{__meson} \
%{nil}}

29 changes: 29 additions & 0 deletions data/mesongenbuildreq.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import subprocess
import json
import sys
deps_json = json.loads(subprocess.run([sys.argv[0], "introspect", "--dependencies", "meson.build"], capture_output=True).stdout)
deps = dict(zip([x['name'] for x in deps_json],[x['version'] for x in deps_json]))
deps.pop('', None)
for lib, versions in deps.items() :
# Mapping for special cases
pkg_map = {
'qt6': 'cmake',
'KF6WindowSystem': 'cmake',
'gtk+-3.0': 'pkgconfig',
'dbus-1': 'pkgconfig',
'ncursesw': 'pkgconfig',
'harfbuzz': 'pkgconfig',
'fribidi': 'pkgconfig',
# Add more mappings as needed
}
# Determine the prefix
prefix = pkg_map.get(lib, 'pkgconfig')

# Prepare version constraint
version_str = ' ' + ' '.join(versions) if versions else ''

# Generate BuildRequires line
buildreq = (f"BuildRequires: {prefix}({lib}){version_str}")
if buildreq.split('=')[-1] == '' and '=' in buildreq :
buildreq = buildreq.split('=')[0]
print(buildreq)

0 comments on commit 0d7f04b

Please sign in to comment.