Merge changes from topic "soong_mdnsresponder"
* changes: Add windows libraries used by mdnsresponder Add support for Windows Message Compiler
This commit is contained in:
@@ -158,6 +158,13 @@ var (
|
|||||||
},
|
},
|
||||||
"asFlags")
|
"asFlags")
|
||||||
|
|
||||||
|
windres = pctx.AndroidStaticRule("windres",
|
||||||
|
blueprint.RuleParams{
|
||||||
|
Command: "$windresCmd $flags -I$$(dirname $in) -i $in -o $out",
|
||||||
|
CommandDeps: []string{"$windresCmd"},
|
||||||
|
},
|
||||||
|
"windresCmd", "flags")
|
||||||
|
|
||||||
_ = pctx.SourcePathVariable("sAbiDumper", "prebuilts/build-tools/${config.HostPrebuiltTag}/bin/header-abi-dumper")
|
_ = pctx.SourcePathVariable("sAbiDumper", "prebuilts/build-tools/${config.HostPrebuiltTag}/bin/header-abi-dumper")
|
||||||
|
|
||||||
// -w has been added since header-abi-dumper does not need to produce any sort of diagnostic information.
|
// -w has been added since header-abi-dumper does not need to produce any sort of diagnostic information.
|
||||||
@@ -332,7 +339,8 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
|
|||||||
|
|
||||||
objFiles[i] = objFile
|
objFiles[i] = objFile
|
||||||
|
|
||||||
if srcFile.Ext() == ".asm" {
|
switch srcFile.Ext() {
|
||||||
|
case ".asm":
|
||||||
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
|
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
|
||||||
Rule: yasm,
|
Rule: yasm,
|
||||||
Description: "yasm " + srcFile.Rel(),
|
Description: "yasm " + srcFile.Rel(),
|
||||||
@@ -344,6 +352,19 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
continue
|
continue
|
||||||
|
case ".rc":
|
||||||
|
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
|
||||||
|
Rule: windres,
|
||||||
|
Description: "windres " + srcFile.Rel(),
|
||||||
|
Output: objFile,
|
||||||
|
Input: srcFile,
|
||||||
|
OrderOnly: deps,
|
||||||
|
Args: map[string]string{
|
||||||
|
"windresCmd": gccCmd(flags.toolchain, "windres"),
|
||||||
|
"flags": flags.toolchain.WindresFlags(),
|
||||||
|
},
|
||||||
|
})
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
var moduleCflags string
|
var moduleCflags string
|
||||||
|
@@ -429,6 +429,11 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags) Flag
|
|||||||
"-I"+android.PathForModuleGen(ctx, "yacc", ctx.ModuleDir()).String())
|
"-I"+android.PathForModuleGen(ctx, "yacc", ctx.ModuleDir()).String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if compiler.hasSrcExt(".mc") {
|
||||||
|
flags.GlobalFlags = append(flags.GlobalFlags,
|
||||||
|
"-I"+android.PathForModuleGen(ctx, "windmc", ctx.ModuleDir()).String())
|
||||||
|
}
|
||||||
|
|
||||||
if compiler.hasSrcExt(".aidl") {
|
if compiler.hasSrcExt(".aidl") {
|
||||||
if len(compiler.Properties.Aidl.Local_include_dirs) > 0 {
|
if len(compiler.Properties.Aidl.Local_include_dirs) > 0 {
|
||||||
localAidlIncludeDirs := android.PathsForModuleSrc(ctx, compiler.Properties.Aidl.Local_include_dirs)
|
localAidlIncludeDirs := android.PathsForModuleSrc(ctx, compiler.Properties.Aidl.Local_include_dirs)
|
||||||
|
@@ -70,6 +70,8 @@ type Toolchain interface {
|
|||||||
|
|
||||||
YasmFlags() string
|
YasmFlags() string
|
||||||
|
|
||||||
|
WindresFlags() string
|
||||||
|
|
||||||
Is64Bit() bool
|
Is64Bit() bool
|
||||||
|
|
||||||
ShlibSuffix() string
|
ShlibSuffix() string
|
||||||
@@ -135,6 +137,10 @@ func (toolchainBase) YasmFlags() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (toolchainBase) WindresFlags() string {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func (toolchainBase) SanitizerRuntimeLibraryArch() string {
|
func (toolchainBase) SanitizerRuntimeLibraryArch() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
@@ -81,7 +81,10 @@ var (
|
|||||||
windowsAvailableLibraries = addPrefix([]string{
|
windowsAvailableLibraries = addPrefix([]string{
|
||||||
"gdi32",
|
"gdi32",
|
||||||
"imagehlp",
|
"imagehlp",
|
||||||
|
"iphlpapi",
|
||||||
|
"netapi32",
|
||||||
"ole32",
|
"ole32",
|
||||||
|
"powrprof",
|
||||||
"psapi",
|
"psapi",
|
||||||
"pthread",
|
"pthread",
|
||||||
"userenv",
|
"userenv",
|
||||||
@@ -172,6 +175,14 @@ func (t *toolchainWindows) IncludeFlags() string {
|
|||||||
return "${config.WindowsIncludeFlags}"
|
return "${config.WindowsIncludeFlags}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *toolchainWindowsX86) WindresFlags() string {
|
||||||
|
return "-F pe-i386"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (t *toolchainWindowsX8664) WindresFlags() string {
|
||||||
|
return "-F pe-x86-64"
|
||||||
|
}
|
||||||
|
|
||||||
func (t *toolchainWindows) ClangSupported() bool {
|
func (t *toolchainWindows) ClangSupported() bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
31
cc/gen.go
31
cc/gen.go
@@ -54,6 +54,13 @@ var (
|
|||||||
Deps: blueprint.DepsGCC,
|
Deps: blueprint.DepsGCC,
|
||||||
},
|
},
|
||||||
"aidlFlags", "outDir")
|
"aidlFlags", "outDir")
|
||||||
|
|
||||||
|
windmc = pctx.AndroidStaticRule("windmc",
|
||||||
|
blueprint.RuleParams{
|
||||||
|
Command: "$windmcCmd -r$$(dirname $out) -h$$(dirname $out) $in",
|
||||||
|
CommandDeps: []string{"$windmcCmd"},
|
||||||
|
},
|
||||||
|
"windmcCmd")
|
||||||
)
|
)
|
||||||
|
|
||||||
func genYacc(ctx android.ModuleContext, yaccFile android.Path, outFile android.ModuleGenPath, yaccFlags string) (headerFile android.ModuleGenPath) {
|
func genYacc(ctx android.ModuleContext, yaccFile android.Path, outFile android.ModuleGenPath, yaccFlags string) (headerFile android.ModuleGenPath) {
|
||||||
@@ -100,6 +107,26 @@ func genLex(ctx android.ModuleContext, lexFile android.Path, outFile android.Mod
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func genWinMsg(ctx android.ModuleContext, srcFile android.Path, flags builderFlags) (android.Path, android.Path) {
|
||||||
|
headerFile := android.GenPathWithExt(ctx, "windmc", srcFile, "h")
|
||||||
|
rcFile := android.GenPathWithExt(ctx, "windmc", srcFile, "rc")
|
||||||
|
|
||||||
|
windmcCmd := gccCmd(flags.toolchain, "windmc")
|
||||||
|
|
||||||
|
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
|
||||||
|
Rule: windmc,
|
||||||
|
Description: "windmc " + srcFile.Rel(),
|
||||||
|
Output: rcFile,
|
||||||
|
ImplicitOutput: headerFile,
|
||||||
|
Input: srcFile,
|
||||||
|
Args: map[string]string{
|
||||||
|
"windmcCmd": windmcCmd,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
return rcFile, headerFile
|
||||||
|
}
|
||||||
|
|
||||||
func genSources(ctx android.ModuleContext, srcFiles android.Paths,
|
func genSources(ctx android.ModuleContext, srcFiles android.Paths,
|
||||||
buildFlags builderFlags) (android.Paths, android.Paths) {
|
buildFlags builderFlags) (android.Paths, android.Paths) {
|
||||||
|
|
||||||
@@ -137,6 +164,10 @@ func genSources(ctx android.ModuleContext, srcFiles android.Paths,
|
|||||||
cppFile := rsGeneratedCppFile(ctx, srcFile)
|
cppFile := rsGeneratedCppFile(ctx, srcFile)
|
||||||
rsFiles = append(rsFiles, srcFiles[i])
|
rsFiles = append(rsFiles, srcFiles[i])
|
||||||
srcFiles[i] = cppFile
|
srcFiles[i] = cppFile
|
||||||
|
case ".mc":
|
||||||
|
rcFile, headerFile := genWinMsg(ctx, srcFile, buildFlags)
|
||||||
|
srcFiles[i] = rcFile
|
||||||
|
deps = append(deps, headerFile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user