aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/xsdc.go14
-rw-r--r--src/com/android/xsdc/Main.java3
-rw-r--r--src/com/android/xsdc/cpp/CppCodeGenerator.java35
-rw-r--r--src/com/android/xsdc/cpp/Utils.java2
4 files changed, 23 insertions, 31 deletions
diff --git a/build/xsdc.go b/build/xsdc.go
index f66476b..f6e5f62 100644
--- a/build/xsdc.go
+++ b/build/xsdc.go
@@ -57,7 +57,7 @@ var (
type xsdConfigProperties struct {
Srcs []string
Package_name *string
- Api_dir *string
+ Api_dir *string
}
type xsdConfig struct {
@@ -85,9 +85,9 @@ type CheckApi struct {
}
type DroidstubsProperties struct {
Name *string
+ No_framework_libs *bool
Installable *bool
Srcs []string
- Sdk_version *string
Args *string
Api_filename *string
Removed_api_filename *string
@@ -143,9 +143,9 @@ func (module *xsdConfig) GenerateAndroidBuildActions(ctx android.ModuleContext)
},
})
- filenameStem := strings.Replace(pkgName, ".", "_", -1)
- module.genOutputs_c = android.PathForModuleGen(ctx, "cpp", filenameStem+".cpp")
- module.genOutputs_h = android.PathForModuleGen(ctx, "cpp", "include/"+filenameStem+".h")
+ pkgName = strings.Replace(pkgName, ".", "_", -1)
+ module.genOutputs_c = android.PathForModuleGen(ctx, "cpp", pkgName+".cpp")
+ module.genOutputs_h = android.PathForModuleGen(ctx, "cpp", "include/"+pkgName+".h")
module.genOutputDir = android.PathForModuleGen(ctx, "cpp", "include")
ctx.Build(pctx, android.BuildParams{
@@ -186,7 +186,7 @@ func xsdConfigMutator(mctx android.TopDownMutatorContext) {
check_api.Last_released.Removed_api_file = proptools.StringPtr(
filepath.Join(api_dir, "last_removed.txt"))
- mctx.CreateModule(java.DroidstubsFactory, &DroidstubsProperties{
+ mctx.CreateModule(android.ModuleFactoryAdaptor(java.DroidstubsFactory), &DroidstubsProperties{
Name: proptools.StringPtr(name + ".docs"),
Srcs: []string{":" + name},
Args: proptools.StringPtr(args),
@@ -194,7 +194,7 @@ func xsdConfigMutator(mctx android.TopDownMutatorContext) {
Removed_api_filename: proptools.StringPtr(removedApiFileName),
Check_api: check_api,
Installable: proptools.BoolPtr(false),
- Sdk_version: proptools.StringPtr("core_platform"),
+ No_framework_libs: proptools.BoolPtr(true),
})
}
}
diff --git a/src/com/android/xsdc/Main.java b/src/com/android/xsdc/Main.java
index b8f6dd3..b0fe084 100644
--- a/src/com/android/xsdc/Main.java
+++ b/src/com/android/xsdc/Main.java
@@ -105,7 +105,8 @@ public class Main {
File includeDir = new File(Paths.get(outDir, "include").toString());
includeDir.mkdirs();
FileSystem fs = new FileSystem(new File(outDir));
- CppCodeGenerator cppCodeGenerator = new CppCodeGenerator(xmlSchema, packageName);
+ CppCodeGenerator cppCodeGenerator = new CppCodeGenerator(xmlSchema,
+ packageName.replace(".", "_"));
cppCodeGenerator.print(fs);
}
}
diff --git a/src/com/android/xsdc/cpp/CppCodeGenerator.java b/src/com/android/xsdc/cpp/CppCodeGenerator.java
index 9f9ef7f..7a2ca5a 100644
--- a/src/com/android/xsdc/cpp/CppCodeGenerator.java
+++ b/src/com/android/xsdc/cpp/CppCodeGenerator.java
@@ -35,16 +35,16 @@ import javax.xml.namespace.QName;
public class CppCodeGenerator {
private XmlSchema xmlSchema;
- private String pkgName;
+ private String fileName;
private Map<String, CppSimpleType> cppSimpleTypeMap;
private CodeWriter cppFile;
private CodeWriter headerFile;
private boolean hasAttr;
- public CppCodeGenerator(XmlSchema xmlSchema, String pkgName)
+ public CppCodeGenerator(XmlSchema xmlSchema, String fileName)
throws CppCodeGeneratorException {
this.xmlSchema = xmlSchema;
- this.pkgName = pkgName;
+ this.fileName = fileName;
// class naming validation
{
@@ -92,14 +92,11 @@ public class CppCodeGenerator {
public void print(FileSystem fs)
throws CppCodeGeneratorException, IOException {
// cpp file, headr file init
- String cppFileName = pkgName.replace(".", "_") + ".cpp";
- String hFileName = pkgName.replace(".", "_") + ".h";
- cppFile = new CodeWriter(fs.getPrintWriter(cppFileName));
- headerFile = new CodeWriter(fs.getPrintWriter("include/" + hFileName));
-
- String headerMacro = hFileName.toUpperCase().replace(".", "_");
- headerFile.printf("#ifndef %s\n", headerMacro);
- headerFile.printf("#define %s\n\n", headerMacro);
+ cppFile = new CodeWriter(fs.getPrintWriter(fileName + ".cpp"));
+ headerFile = new CodeWriter(fs.getPrintWriter("include/" + fileName + ".h"));
+
+ headerFile.printf("#ifndef %s_H\n", fileName.toUpperCase());
+ headerFile.printf("#define %s_H\n\n", fileName.toUpperCase());
headerFile.printf("#include <libxml/parser.h>\n");
headerFile.printf("#include <libxml/xinclude.h>\n\n");
headerFile.printf("#include <map>\n");
@@ -107,21 +104,15 @@ public class CppCodeGenerator {
headerFile.printf("#include <string>\n");
headerFile.printf("#include <vector>\n\n");
- cppFile.printf("#define LOG_TAG \"%s\"\n\n", pkgName);
+ cppFile.printf("#define LOG_TAG \"%s\"\n\n", fileName);
cppFile.printf("#include <android/log.h>\n");
cppFile.printf("#include <android-base/strings.h>\n\n");
cppFile.printf("#include <libxml/parser.h>\n");
cppFile.printf("#include <libxml/xinclude.h>\n\n");
- cppFile.printf("#include \"%s\"\n\n", hFileName);
+ cppFile.printf("#include \"%s.h\"\n\n",fileName);
List<String> namespace = new java.util.ArrayList<>();
- for (String token : pkgName.split("\\.")) {
- if (token.isEmpty()) {
- continue;
- }
- if (Character.isDigit(token.charAt(0))) {
- token = "_" + token;
- }
+ for (String token : fileName.split("_")) {
namespace.add(token);
headerFile.printf("namespace %s {\n", token);
cppFile.printf("namespace %s {\n", token);
@@ -157,7 +148,7 @@ public class CppCodeGenerator {
cppFile.printf("} // %s\n", token);
}
- headerFile.printf("#endif // %s\n", headerMacro);
+ headerFile.printf("#endif // %s_H\n",fileName.toUpperCase().replace(".", "_"));
cppFile.close();
headerFile.close();
}
@@ -445,7 +436,7 @@ public class CppCodeGenerator {
+ "}\n\n");
}
- String className = Utils.toClassName(pkgName);
+ String className = Utils.toClassName(fileName);
boolean isMultiRootElement = xmlSchema.getElementMap().values().size() > 1;
for (XsdElement element : xmlSchema.getElementMap().values()) {
diff --git a/src/com/android/xsdc/cpp/Utils.java b/src/com/android/xsdc/cpp/Utils.java
index d225114..b76a835 100644
--- a/src/com/android/xsdc/cpp/Utils.java
+++ b/src/com/android/xsdc/cpp/Utils.java
@@ -66,7 +66,7 @@ class Utils {
static String toClassName(String name) throws CppCodeGeneratorException {
String trimmed = toCamelCase(
- name.replaceAll("[^A-Za-z0-9_-]", "").replaceAll("[\\.-]", "_").split("_"));
+ name.replaceAll("[^A-Za-z0-9_-]", "").replaceAll("-","_").split("_"));
if (trimmed.isEmpty() || Character.isDigit(trimmed.charAt(0))) {
throw new CppCodeGeneratorException(
String.format("cannot convert to a class name : %s", name));