Add 'openmp' compiler property

Bug: http://b/70692399

If a module has 'openmp: true', add '-fopenmp' to CFlags during any
compile step and pass the libomp runtime to the linker during any link
step.

Test: Build samples in http://aosp/572924
Change-Id: Ic2a6410ec69aae548edaf582ee41659b0058561e
This commit is contained in:
Pirama Arumuga Nainar 2017-12-19 23:08:09 -08:00
parent 6f86613420
commit fadb7b511a
1 changed files with 11 additions and 0 deletions

View File

@ -148,6 +148,9 @@ type BaseCompilerProperties struct {
// Stores the original list of source files before being cleared by library reuse
OriginalSrcs []string `blueprint:"mutated"`
// Build and link with OpenMP
Openmp *bool `android:"arch_variant"`
}
func NewBaseCompiler() *baseCompiler {
@ -204,6 +207,10 @@ func (compiler *baseCompiler) compilerDeps(ctx DepsContext, deps Deps) Deps {
deps = protoDeps(ctx, deps, &compiler.Proto, Bool(compiler.Properties.Proto.Static))
}
if Bool(compiler.Properties.Openmp) {
deps.StaticLibs = append(deps.StaticLibs, "libomp")
}
return deps
}
@ -494,6 +501,10 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
}
}
if Bool(compiler.Properties.Openmp) {
flags.CFlags = append(flags.CFlags, "-fopenmp")
}
return flags
}