diff options
-rw-r--r-- | interpreter.py | 1 | ||||
-rw-r--r-- | modules/rpm.py | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/interpreter.py b/interpreter.py index edc7721..35722ab 100644 --- a/interpreter.py +++ b/interpreter.py @@ -617,6 +617,7 @@ class ModuleHolder(InterpreterObject): state.subdir = self.interpreter.subdir state.environment = self.interpreter.environment state.project_name = self.interpreter.build.project_name + state.compilers = self.interpreter.build.compilers state.targets = self.interpreter.build.targets value = fn(state, args, kwargs) return self.interpreter.module_method_callback(value) diff --git a/modules/rpm.py b/modules/rpm.py index bb81d66..257c3d0 100644 --- a/modules/rpm.py +++ b/modules/rpm.py @@ -16,6 +16,7 @@ functionality such as generating RPM spec file.''' import build +import compilers import datetime import mlog import os @@ -23,6 +24,24 @@ import os class RPMModule: def generate_spec_template(self, state, args, kwargs): + compiler_deps = set() + for compiler in state.compilers: + if isinstance(compiler, compilers.ValaCompiler): + compiler_deps.add('vala') + elif isinstance(compiler, compilers.GnuFortranCompiler): + compiler_deps.add('gcc-gfortran') + elif isinstance(compiler, compilers.GnuObjCCompiler): + compiler_deps.add('gcc-objc') + elif compiler == compilers.GnuObjCPPCompiler: + compiler_deps.add('gcc-objc++') + elif isinstance(compiler, compilers.GnuCCompiler) or \ + isinstance(compiler, compilers.GnuCPPCompiler): + # Installed by default + pass + else: + mlog.log('RPM spec file will not created, generating not allowed for:', + mlog.bold(compiler.get_id())) + return proj = state.project_name.replace(' ', '_').replace('\t', '_') so_installed = False devel_subpkg = False @@ -50,6 +69,8 @@ class RPMModule: 'w+') fn.write('Name: %s\n' % proj) fn.write('\n') + for compiler in compiler_deps: + fn.write('BuildRequires: %s\n' % compiler) for dep in state.environment.coredata.deps: fn.write('BuildRequires: pkgconfig(%s)\n' % dep) for lib in state.environment.coredata.ext_libs.values(): |