Commit 86e6e0d3 authored by Miro Knejp's avatar Miro Knejp Committed by Jacob Potter

Added option --objc-base-lib-include-prefix

This option exists for the JNI support library, so it is only logical to also provide it for the Obj-C part.
parent 721453cf
......@@ -59,6 +59,7 @@ object Main {
var objcIncludeCppPrefix: String = ""
var objcFileIdentStyleOptional: Option[IdentConverter] = None
var objcppNamespace: String = "djinni_generated"
var objcBaseLibIncludePrefix: String = ""
val argParser = new scopt.OptionParser[Unit]("djinni") {
......@@ -131,6 +132,8 @@ object Main {
.text("The prefix for #include of the main header files from Objective-C files.")
opt[String]("objcpp-namespace").valueName("<prefix>").foreach(objcppNamespace = _)
.text("Namespace for C++ objects defined in Objective-C++, such as wrapper caches")
opt[String]("objc-base-lib-include-prefix").valueName("...").foreach(x => objcBaseLibIncludePrefix = x)
.text("The Objective-C++ base library's include path, relative to the Objective-C++ classes.")
note("\nIdentifier styles (ex: \"FooBar\", \"fooBar\", \"foo_bar\", \"FOO_BAR\", \"m_fooBar\")\n")
identStyle("ident-java-enum", c => { javaIdentStyle = javaIdentStyle.copy(enum = c) })
......@@ -226,7 +229,8 @@ object Main {
objcHeaderExt,
objcIncludePrefix,
objcIncludeCppPrefix,
objcppNamespace)
objcppNamespace,
objcBaseLibIncludePrefix)
System.out.println("Generating...")
val r = generate(idl, outSpec)
......
......@@ -236,10 +236,10 @@ class ObjcGenerator(spec: Spec) extends Generator(spec) {
val cppName = withNs(spec.cppNamespace, idCpp.ty(ident))
if (i.ext.cpp) {
refs.privHeader.add("!#import " + q(headerName(cppExtName)))
refs.privHeader.add("#import " + q("DJICppWrapperCache+Private.h"))
refs.privHeader.add("#import " + q(spec.objcBaseLibIncludePrefix + "DJICppWrapperCache+Private.h"))
refs.body.add("#include <utility>")
refs.body.add("#import " + q("DJIError.h"))
refs.body.add("#import " + q("DJIDate.h"))
refs.body.add("#import " + q(spec.objcBaseLibIncludePrefix + "DJIError.h"))
refs.body.add("#import " + q(spec.objcBaseLibIncludePrefix + "DJIDate.h"))
refs.body.add("#include <exception>")
refs.body.add("!#import " + q(privateHeaderName(cppExtName)))
......@@ -319,7 +319,7 @@ class ObjcGenerator(spec: Spec) extends Generator(spec) {
val objcExtName = ident.name + "_objc_proxy"
val objcExtSelf = idCpp.ty(objcExtName)
if (i.ext.objc) {
refs.privHeader.add("#import " + q("DJIObjcWrapperCache+Private.h"))
refs.privHeader.add("#import " + q(spec.objcBaseLibIncludePrefix + "DJIObjcWrapperCache+Private.h"))
refs.body.add("!#import " + q(privateHeaderName(objcExtName)))
writeObjcFile(privateHeaderName(objcExtName), origin, refs.privHeader, w => {
wrapNamespace(w, Some(spec.objcppNamespace), (w: IndentWriter) => {
......@@ -404,7 +404,7 @@ class ObjcGenerator(spec: Spec) extends Generator(spec) {
refs.body.add("#include <utility>")
refs.body.add("#include <vector>")
refs.body.add("!#import " + q(privateHeaderName(objcName)))
refs.body.add("#import " + q("DJIDate.h"))
refs.body.add("#import " + q(spec.objcBaseLibIncludePrefix + "DJIDate.h"))
if (r.ext.objc) {
refs.body.add("#import " + q("../" + headerName(ident)))
......
......@@ -59,7 +59,8 @@ package object generatorTools {
objcHeaderExt: String,
objcIncludePrefix: String,
objcIncludeCppPrefix: String,
objcppNamespace: String)
objcppNamespace: String,
objcBaseLibIncludePrefix: String)
def preComma(s: String) = {
if (s.isEmpty) s else ", " + s
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment