Commit c24052d9 authored by j4cbo's avatar j4cbo

Merge pull request #83 from mknejp/feature/objcpp-cmd-args

Command line arguments to control Obj-C++ generation
parents 04da0e9a 393421cf
......@@ -105,6 +105,8 @@ When the Djinni file(s) are ready, from the command line or a bash script you ca
--objc-out OBJC_OUTPUT_FOLDER \
--objc-type-prefix DB \ # Apple suggests Objective-C classes have a prefix for each defined type.
\
--objcpp-out OBJC_OUTPUT_FOLDER \
\
--idl MY_PROJECT.djinni
Some other options are also available, such as `--cpp-namespace` that put generated C++ code into the namespace specified. For a list of all options, run
......@@ -158,26 +160,19 @@ you'll need to add calls to your own `JNI_OnLoad` and `JNI_OnUnload` functions.
##### Includes & Build Target
Generated file for Objective-C / C++ is as follows (assuming prefix is `DB`):
| Type | C++ header | C++ source | Objective-C header | Objective-C source |
|----------------|------------------------|----------------------------|--------------------------------------------|-------------------------------------|
| Enum | my\_enum.hpp | | ` public/`DBMyEnum.h | `private/`DBMyEnumTranslator.mm |
| | | | `private/`DBMyEnumTranslator+Private.h | |
| Record | my\_record[\_base].hpp | my\_record[\_base].cpp (+) | ` public/`DBMyRecord[Base].h | `private/`DBMyRecord[Base].mm |
| | | | `private/`DBMyRecord[Base]+Private.h | |
| Interface `+c` | my\_interface.hpp | my\_interface.cpp (+) | ` public/`DBMyInterface.h | `private/`DBMyInterfaceCppProxy.mm |
| | | | ` public/`DBMyInterfaceCppProxy.h | |
| | | | `private/`DBMyInterfaceCppProxy+Private.h | |
| Interface `+o` | my\_interface.hpp | my\_interface.cpp (+) | ` public/`DBMyInterface.h | `private/`DBMyInterfaceObjcProxy.mm |
| | | | `private/`DBMyInterfaceObjcProxy+Private.h | |
| Type | C++ header | C++ source | Objective-C files | Objective-C++ files |
|-----------|------------------------|----------------------------|--------------------------|-----------------------------|
| Enum | my\_enum.hpp | | DBMyEnum.h | |
| Record | my\_record[\_base].hpp | my\_record[\_base].cpp (+) | DBMyRecord[Base].h | DBMyRecord[Base]+Private.h |
| | | | DBMyRecord[Base].mm (++) | DBMyRecord[Base]+Private.mm |
| Interface | my\_interface.hpp | my\_interface.cpp (+) | DBMyInterface.h | DBMyInterface+Private.h |
| | | | | DBMyInterface+Private.mm |
(+) Generated only for types that contain constants.
The folders `public` and `private` correspond to the options `--objc-out` and `--objc-private-out`
respecitvely, allowing you to isolate implementation headers and sources from the public files
exposed to Objective-C clients.
(++) Generated only for types with derived operations and/or constants. These have `.mm` extensions to allow non-trivial constants.
Add all generated files to your build target, as well as the contents of `support-lib/objc`.
Note that `+Private` headers can only be used with ObjC++ source (other headers are pure ObjC).
Note that `+Private` files can only be used with ObjC++ source (other headers are pure ObjC) and are not required by Objective-C users of your interface.
## Details of Generated Types
### Enum
......
......@@ -64,6 +64,7 @@ $base_dir/../src/run-assume-built \
--ident-jni-file NativeFooBar \
\
--objc-out "$temp_out/objc" \
--objcpp-out "$temp_out/objc" \
--objc-type-prefix TXS \
\
--idl "$in"
......
......@@ -51,14 +51,15 @@ object Main {
var cppIdentStyle = IdentStyle.cppDefault
var cppTypeEnumIdentStyle: IdentConverter = null
var objcOutFolder: Option[File] = None
var objcPrivateOutFolderOptional: Option[File] = None
var objcExt: String = "mm"
var objcppOutFolder: Option[File] = None
var objcppExt: String = "mm"
var objcHeaderExt: String = "h"
var objcIdentStyle = IdentStyle.objcDefault
var objcTypePrefix: String = ""
var objcIncludePrefix: String = ""
var objcIncludePrivatePrefixOptional: Option[String] = None
var objcIncludeCppPrefix: String = ""
var objcppIncludePrefix: String = ""
var objcppIncludeCppPrefix: String = ""
var objcppIncludeObjcPrefixOptional: Option[String] = None
var objcFileIdentStyleOptional: Option[IdentConverter] = None
var objcppNamespace: String = "djinni_generated"
var objcBaseLibIncludePrefix: String = ""
......@@ -122,22 +123,25 @@ object Main {
note("")
opt[File]("objc-out").valueName("<out-folder>").foreach(x => objcOutFolder = Some(x))
.text("The output folder for Objective-C files (Generator disabled if unspecified).")
opt[File]("objc-private-out").valueName("<out-folder>").foreach(x => objcPrivateOutFolderOptional = Some(x))
.text("The output folder for private Objective-C header and implementation files (default: the same as --objc-out)")
opt[String]("objc-ext").valueName("<ext>").foreach(objcExt = _)
.text("The filename extension for Objective-C files (default: \"mm\")")
opt[String]("objc-h-ext").valueName("<ext>").foreach(objcHeaderExt = _)
.text("The filename extension for Objective-C header files (default: \"h\")")
.text("The filename extension for Objective-C[++] header files (default: \"h\")")
opt[String]("objc-type-prefix").valueName("<pre>").foreach(objcTypePrefix = _)
.text("The prefix for Objective-C data types (usually two or three letters)")
opt[String]("objc-include-prefix").valueName("<prefix>").foreach(objcIncludePrefix = _)
.text("The prefix for #import of header files from Objective-C files.")
opt[String]("objc-include-private-prefix").valueName("<prefix>").foreach(x => objcIncludePrivatePrefixOptional = Some(x))
.text("The prefix for #import and #include of private header files from Objective-C files (default: the same as --objc-include-prefix)")
opt[String]("objc-include-cpp-prefix").valueName("<prefix>").foreach(objcIncludeCppPrefix = _)
.text("The prefix for #include of the main header files from Objective-C files.")
note("")
opt[File]("objcpp-out").valueName("<out-folder>").foreach(x => objcppOutFolder = Some(x))
.text("The output folder for private Objective-C++ files (Generator disabled if unspecified).")
opt[String]("objcpp-ext").valueName("<ext>").foreach(objcppExt = _)
.text("The filename extension for Objective-C++ files (default: \"mm\")")
opt[String]("objcpp-include-prefix").valueName("<prefix>").foreach(objcppIncludePrefix = _)
.text("The prefix for #import of Objective-C++ header files from Objective-C++ files.")
opt[String]("objcpp-include-cpp-prefix").valueName("<prefix>").foreach(objcppIncludeCppPrefix = _)
.text("The prefix for #include of the main C++ header files from Objective-C++ files.")
opt[String]("objcpp-include-objc-prefix").valueName("<prefix>").foreach(x => objcppIncludeObjcPrefixOptional = Some(x))
.text("The prefix for #import of the Objective-C header files from Objective-C++ files (default: the same as --objcpp-include-prefix)")
opt[String]("objcpp-namespace").valueName("<prefix>").foreach(objcppNamespace = _)
.text("Namespace for C++ objects defined in Objective-C++, such as wrapper caches")
.text("The namespace name to use for generated Objective-C++ classes.")
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.")
......@@ -174,8 +178,7 @@ object Main {
val jniBaseLibClassIdentStyle = jniBaseLibClassIdentStyleOptional.getOrElse(jniClassIdentStyle)
val jniFileIdentStyle = jniFileIdentStyleOptional.getOrElse(cppFileIdentStyle)
var objcFileIdentStyle = objcFileIdentStyleOptional.getOrElse(objcIdentStyle.ty)
val objcPrivateOutFolder = if (objcPrivateOutFolderOptional.isDefined) objcPrivateOutFolderOptional else objcOutFolder
var objcIncludePrivatePrefix = objcIncludePrivatePrefixOptional.getOrElse(objcIncludePrefix)
val objcppIncludeObjcPrefix = objcppIncludeObjcPrefixOptional.getOrElse(objcppIncludePrefix)
// Add ObjC prefix to identstyle
objcIdentStyle = objcIdentStyle.copy(ty = IdentStyle.prefix(objcTypePrefix,objcIdentStyle.ty))
......@@ -231,14 +234,15 @@ object Main {
cppExt,
cppHeaderExt,
objcOutFolder,
objcPrivateOutFolder,
objcppOutFolder,
objcIdentStyle,
objcFileIdentStyle,
objcExt,
objcppExt,
objcHeaderExt,
objcIncludePrefix,
objcIncludePrivatePrefix,
objcIncludeCppPrefix,
objcppIncludePrefix,
objcppIncludeCppPrefix,
objcppIncludeObjcPrefix,
objcppNamespace,
objcBaseLibIncludePrefix)
......
......@@ -52,17 +52,17 @@ class ObjcppGenerator(spec: Spec) extends Generator(spec) {
val ext = d.body.asInstanceOf[Interface].ext
if (ext.cpp) {
header.add("@class " + objcMarshal.typename(tm) + ";")
body.add("#import " + q(spec.objcIncludePrivatePrefix + privateHeaderName(d.name)))
body.add("#import " + q(spec.objcppIncludePrefix + privateHeaderName(d.name)))
}
if (ext.objc) {
header.add("@protocol " + objcMarshal.typename(tm) + ";")
body.add("#import " + q(spec.objcIncludePrivatePrefix + privateHeaderName(d.name)))
body.add("#import " + q(spec.objcppIncludePrefix + privateHeaderName(d.name)))
}
case DRecord =>
val r = d.body.asInstanceOf[Record]
val prefix = if (r.ext.objc) "../" else ""
val objcName = d.name + (if (r.ext.objc) "_base" else "")
header.add("@class " + objcMarshal.typename(tm) + ";")
body.add("#import " + q(spec.objcIncludePrivatePrefix + prefix + privateHeaderName(d.name)))
body.add("#import " + q(spec.objcppIncludePrefix + privateHeaderName(objcName)))
}
case p: MParam =>
}
......@@ -77,8 +77,7 @@ class ObjcppGenerator(spec: Spec) extends Generator(spec) {
def headerName(ident: String): String = idObjc.ty(ident) + "." + spec.objcHeaderExt
def privateHeaderName(ident: String): String = idObjc.ty(ident) + "+Private." + spec.objcHeaderExt
def bodyName(ident: String): String = idObjc.ty(ident) + "." + spec.objcExt
def privateBodyName(ident: String): String = idObjc.ty(ident) + "+Private." + spec.objcExt
def bodyName(ident: String): String = idObjc.ty(ident) + "+Private." + spec.objcppExt
override def generateInterface(origin: String, ident: Ident, doc: Doc, typeParams: Seq[TypeParam], i: Interface) {
val refs = new ObjcRefs()
......@@ -94,9 +93,9 @@ class ObjcppGenerator(spec: Spec) extends Generator(spec) {
val cppSelf = cppMarshal.fqTypename(ident, i)
refs.privHeader.add("#include <memory>")
refs.privHeader.add("!#include " + q(spec.objcIncludeCppPrefix + spec.cppFileIdentStyle(ident) + "." + spec.cppHeaderExt))
refs.privHeader.add("!#include " + q(spec.objcppIncludeCppPrefix + spec.cppFileIdentStyle(ident) + "." + spec.cppHeaderExt))
refs.body.add("#include <vector>")
refs.body.add("!#import " + q(spec.objcIncludePrefix + headerName(ident)))
refs.body.add("!#import " + q(spec.objcppIncludeObjcPrefix + headerName(ident)))
def writeObjcFuncDecl(method: Interface.Method, w: IndentWriter) {
val label = if (method.static) "+" else "-"
......@@ -131,7 +130,7 @@ class ObjcppGenerator(spec: Spec) extends Generator(spec) {
})
if (i.ext.cpp) {
refs.body.add("!#import " + q(spec.objcIncludePrivatePrefix + privateHeaderName(ident.name)))
refs.body.add("!#import " + q(spec.objcppIncludePrefix + privateHeaderName(ident.name)))
refs.body.add("#import " + q(spec.objcBaseLibIncludePrefix + "DJICppWrapperCache+Private.h"))
refs.body.add("#include <utility>")
refs.body.add("#import " + q(spec.objcBaseLibIncludePrefix + "DJIError.h"))
......@@ -193,7 +192,7 @@ class ObjcppGenerator(spec: Spec) extends Generator(spec) {
if (i.ext.objc) {
val objcExtSelf = objcppMarshal.helperClass("objc_proxy")
refs.body.add("#import " + q(spec.objcBaseLibIncludePrefix + "DJIObjcWrapperCache+Private.h"))
refs.body.add("!#import " + q(spec.objcIncludePrivatePrefix + privateHeaderName(ident.name)))
refs.body.add("!#import " + q(spec.objcppIncludePrefix + privateHeaderName(ident.name)))
writeObjcFile(bodyName(ident.name), origin, refs.body, w => {
arcAssert(w)
......@@ -250,17 +249,17 @@ class ObjcppGenerator(spec: Spec) extends Generator(spec) {
refs.header.add("#import <Foundation/Foundation.h>")
refs.privHeader.add("!#import " + q(spec.objcIncludePrefix + headerName(objcName)))
refs.privHeader.add("!#include " + q(spec.objcIncludeCppPrefix + spec.cppFileIdentStyle(ident) + "." + spec.cppHeaderExt))
refs.privHeader.add("!#include " + q(spec.objcppIncludeCppPrefix + spec.cppFileIdentStyle(ident) + "." + spec.cppHeaderExt))
refs.body.add("#import <Foundation/Foundation.h>")
refs.body.add("#include <cassert>")
refs.body.add("#include <utility>")
refs.body.add("#include <vector>")
refs.body.add("#import " + q(spec.objcBaseLibIncludePrefix + "DJIDate.h"))
refs.body.add("!#import " + q(spec.objcIncludePrivatePrefix + privateHeaderName(objcName)))
refs.body.add("!#import " + q(spec.objcppIncludePrefix + privateHeaderName(objcName)))
if (r.ext.objc) {
refs.body.add("#import " + q(spec.objcIncludePrefix + "../" + headerName(ident)))
refs.body.add("#import " + q(spec.objcppIncludeObjcPrefix + "../" + headerName(ident)))
refs.header.add(s"@class ${objcMarshal.typename(ident, r)};")
}
......@@ -292,7 +291,7 @@ class ObjcppGenerator(spec: Spec) extends Generator(spec) {
})
})
writeObjcFile(privateBodyName(objcName), origin, refs.body, w => {
writeObjcFile(bodyName(objcName), origin, refs.body, w => {
wrapNamespace(w, spec.objcppNamespace, w => {
w.wl(s"auto $helperClass::toCpp(ObjcType obj) -> CppType")
w.braced {
......@@ -316,7 +315,7 @@ class ObjcppGenerator(spec: Spec) extends Generator(spec) {
}
def writeObjcFile(fileName: String, origin: String, refs: Iterable[String], f: IndentWriter => Unit) {
createFile(spec.objcPrivateOutFolder.get, fileName, (w: IndentWriter) => {
createFile(spec.objcppOutFolder.get, fileName, (w: IndentWriter) => {
w.wl("// AUTOGENERATED FILE - DO NOT MODIFY!")
w.wl("// This file generated by Djinni from " + origin)
w.wl
......
......@@ -53,14 +53,15 @@ package object generatorTools {
cppExt: String,
cppHeaderExt: String,
objcOutFolder: Option[File],
objcPrivateOutFolder: Option[File],
objcppOutFolder: Option[File],
objcIdentStyle: ObjcIdentStyle,
objcFileIdentStyle: IdentConverter,
objcExt: String,
objcppExt: String,
objcHeaderExt: String,
objcIncludePrefix: String,
objcIncludePrivatePrefix: String,
objcIncludeCppPrefix: String,
objcppIncludePrefix: String,
objcppIncludeCppPrefix: String,
objcppIncludeObjcPrefix: String,
objcppNamespace: String,
objcBaseLibIncludePrefix: String)
......@@ -166,9 +167,11 @@ package object generatorTools {
new JNIGenerator(spec).generate(idl)
}
if (spec.objcOutFolder.isDefined) {
createFolder("Objective-C[++]", spec.objcOutFolder.get)
createFolder("Objective-C[++] private", spec.objcPrivateOutFolder.get)
createFolder("Objective-C", spec.objcOutFolder.get)
new ObjcGenerator(spec).generate(idl)
}
if (spec.objcppOutFolder.isDefined) {
createFolder("Objective-C++", spec.objcppOutFolder.get)
new ObjcppGenerator(spec).generate(idl)
}
None
......
......@@ -37,9 +37,6 @@
A238CAA01AF84B7100CDDCE5 /* DBRecordWithNestedDerivings+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = A238CA881AF84B7100CDDCE5 /* DBRecordWithNestedDerivings+Private.mm */; };
A238CAA21AF84B7100CDDCE5 /* DBSetRecord+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = A238CA8A1AF84B7100CDDCE5 /* DBSetRecord+Private.mm */; };
A239F37A1AF400C600DF27C8 /* DJIDate.mm in Sources */ = {isa = PBXBuildFile; fileRef = A239F3781AF400C600DF27C8 /* DJIDate.mm */; };
A24249511AF192E0003BF8F0 /* DBCppException.mm in Sources */ = {isa = PBXBuildFile; fileRef = A242492A1AF192E0003BF8F0 /* DBCppException.mm */; };
A242495B1AF192E0003BF8F0 /* DBTestHelpers.mm in Sources */ = {isa = PBXBuildFile; fileRef = A24249481AF192E0003BF8F0 /* DBTestHelpers.mm */; };
A242495C1AF192E0003BF8F0 /* DBToken.mm in Sources */ = {isa = PBXBuildFile; fileRef = A242494B1AF192E0003BF8F0 /* DBToken.mm */; };
A24249731AF192FC003BF8F0 /* assorted_integers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A242495E1AF192FC003BF8F0 /* assorted_integers.cpp */; };
A24249741AF192FC003BF8F0 /* constants.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A24249631AF192FC003BF8F0 /* constants.cpp */; };
A24249751AF192FC003BF8F0 /* record_with_derivings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A242496C1AF192FC003BF8F0 /* record_with_derivings.cpp */; };
......@@ -59,7 +56,14 @@
A278D45319BA3601006FD937 /* test_helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A278D45219BA3601006FD937 /* test_helpers.cpp */; };
A2A162D21AF190D200C0B00A /* DJIDate.mm in Sources */ = {isa = PBXBuildFile; fileRef = A2A162D11AF190D200C0B00A /* DJIDate.mm */; };
A2CB54B419BA6E6000A9E600 /* DJIError.mm in Sources */ = {isa = PBXBuildFile; fileRef = A2CB54B319BA6E6000A9E600 /* DJIError.mm */; };
A2CCB9421AF80DFC00E6230A /* DBClientInterface.mm in Sources */ = {isa = PBXBuildFile; fileRef = A2CCB9401AF80DFC00E6230A /* DBClientInterface.mm */; };
CFFD588B1B019E79001E10B6 /* DBClientInterface+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58871B019E79001E10B6 /* DBClientInterface+Private.mm */; };
CFFD588C1B019E79001E10B6 /* DBClientInterface+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58871B019E79001E10B6 /* DBClientInterface+Private.mm */; };
CFFD588D1B019E79001E10B6 /* DBCppException+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58881B019E79001E10B6 /* DBCppException+Private.mm */; };
CFFD588E1B019E79001E10B6 /* DBCppException+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58881B019E79001E10B6 /* DBCppException+Private.mm */; };
CFFD588F1B019E79001E10B6 /* DBTestHelpers+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58891B019E79001E10B6 /* DBTestHelpers+Private.mm */; };
CFFD58901B019E79001E10B6 /* DBTestHelpers+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD58891B019E79001E10B6 /* DBTestHelpers+Private.mm */; };
CFFD58911B019E79001E10B6 /* DBToken+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD588A1B019E79001E10B6 /* DBToken+Private.mm */; };
CFFD58921B019E79001E10B6 /* DBToken+Private.mm in Sources */ = {isa = PBXBuildFile; fileRef = CFFD588A1B019E79001E10B6 /* DBToken+Private.mm */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
......@@ -135,7 +139,6 @@
A24249261AF192E0003BF8F0 /* DBConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBConstants.h; sourceTree = "<group>"; };
A24249281AF192E0003BF8F0 /* DBCppException+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBCppException+Private.h"; sourceTree = "<group>"; };
A24249291AF192E0003BF8F0 /* DBCppException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBCppException.h; sourceTree = "<group>"; };
A242492A1AF192E0003BF8F0 /* DBCppException.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBCppException.mm; sourceTree = "<group>"; };
A242492B1AF192E0003BF8F0 /* DBDateRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBDateRecord+Private.h"; sourceTree = "<group>"; };
A242492C1AF192E0003BF8F0 /* DBDateRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBDateRecord.h; sourceTree = "<group>"; };
A242492E1AF192E0003BF8F0 /* DBMapDateRecord+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBMapDateRecord+Private.h"; sourceTree = "<group>"; };
......@@ -156,10 +159,8 @@
A24249441AF192E0003BF8F0 /* DBSetRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBSetRecord.h; sourceTree = "<group>"; };
A24249461AF192E0003BF8F0 /* DBTestHelpers+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBTestHelpers+Private.h"; sourceTree = "<group>"; };
A24249471AF192E0003BF8F0 /* DBTestHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBTestHelpers.h; sourceTree = "<group>"; };
A24249481AF192E0003BF8F0 /* DBTestHelpers.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBTestHelpers.mm; sourceTree = "<group>"; };
A24249491AF192E0003BF8F0 /* DBToken+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBToken+Private.h"; sourceTree = "<group>"; };
A242494A1AF192E0003BF8F0 /* DBToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBToken.h; sourceTree = "<group>"; };
A242494B1AF192E0003BF8F0 /* DBToken.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBToken.mm; sourceTree = "<group>"; };
A242495E1AF192FC003BF8F0 /* assorted_integers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = assorted_integers.cpp; sourceTree = "<group>"; };
A242495F1AF192FC003BF8F0 /* assorted_integers.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = assorted_integers.hpp; sourceTree = "<group>"; };
A24249601AF192FC003BF8F0 /* client_interface.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = client_interface.hpp; sourceTree = "<group>"; };
......@@ -197,8 +198,11 @@
A2A162D01AF190D200C0B00A /* DJIDate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DJIDate.h; sourceTree = "<group>"; };
A2A162D11AF190D200C0B00A /* DJIDate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DJIDate.mm; sourceTree = "<group>"; };
A2CB54B319BA6E6000A9E600 /* DJIError.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DJIError.mm; sourceTree = "<group>"; };
A2CCB9401AF80DFC00E6230A /* DBClientInterface.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DBClientInterface.mm; sourceTree = "<group>"; };
A2CCB9411AF80DFC00E6230A /* DBClientInterface+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBClientInterface+Private.h"; sourceTree = "<group>"; };
CFFD58871B019E79001E10B6 /* DBClientInterface+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBClientInterface+Private.mm"; sourceTree = "<group>"; };
CFFD58881B019E79001E10B6 /* DBCppException+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBCppException+Private.mm"; sourceTree = "<group>"; };
CFFD58891B019E79001E10B6 /* DBTestHelpers+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBTestHelpers+Private.mm"; sourceTree = "<group>"; };
CFFD588A1B019E79001E10B6 /* DBToken+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBToken+Private.mm"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
......@@ -319,67 +323,67 @@
A24249181AF192E0003BF8F0 /* generated-objc */ = {
isa = PBXGroup;
children = (
A242491A1AF192E0003BF8F0 /* DBAssortedIntegers.h */,
A248501A1AF96EBC00AFE907 /* DBAssortedIntegers.mm */,
A248501B1AF96EBC00AFE907 /* DBClientReturnedRecord.mm */,
A248501C1AF96EBC00AFE907 /* DBConstants.mm */,
A248501D1AF96EBC00AFE907 /* DBDateRecord.mm */,
A248501E1AF96EBC00AFE907 /* DBMapDateRecord.mm */,
A248501F1AF96EBC00AFE907 /* DBMapListRecord.mm */,
A24850201AF96EBC00AFE907 /* DBMapRecord.mm */,
A24850211AF96EBC00AFE907 /* DBNestedCollection.mm */,
A24850221AF96EBC00AFE907 /* DBPrimitiveList.mm */,
A24850231AF96EBC00AFE907 /* DBRecordWithDerivings.mm */,
A24850241AF96EBC00AFE907 /* DBRecordWithNestedDerivings.mm */,
A24850251AF96EBC00AFE907 /* DBSetRecord.mm */,
A238CA741AF84B7100CDDCE5 /* DBAssortedIntegers+Private.mm */,
A238CA761AF84B7100CDDCE5 /* DBClientReturnedRecord+Private.mm */,
A238CA781AF84B7100CDDCE5 /* DBConstants+Private.mm */,
A238CA7A1AF84B7100CDDCE5 /* DBDateRecord+Private.mm */,
A238CA7C1AF84B7100CDDCE5 /* DBMapDateRecord+Private.mm */,
A238CA7E1AF84B7100CDDCE5 /* DBMapListRecord+Private.mm */,
A238CA801AF84B7100CDDCE5 /* DBMapRecord+Private.mm */,
A238CA821AF84B7100CDDCE5 /* DBNestedCollection+Private.mm */,
A238CA841AF84B7100CDDCE5 /* DBPrimitiveList+Private.mm */,
A238CA861AF84B7100CDDCE5 /* DBRecordWithDerivings+Private.mm */,
A238CA881AF84B7100CDDCE5 /* DBRecordWithNestedDerivings+Private.mm */,
A238CA8A1AF84B7100CDDCE5 /* DBSetRecord+Private.mm */,
A2CCB9401AF80DFC00E6230A /* DBClientInterface.mm */,
A2CCB9411AF80DFC00E6230A /* DBClientInterface+Private.h */,
A24249191AF192E0003BF8F0 /* DBAssortedIntegers+Private.h */,
A242491A1AF192E0003BF8F0 /* DBAssortedIntegers.h */,
A238CA741AF84B7100CDDCE5 /* DBAssortedIntegers+Private.mm */,
A242491C1AF192E0003BF8F0 /* DBClientInterface.h */,
A242491F1AF192E0003BF8F0 /* DBClientReturnedRecord+Private.h */,
A2CCB9411AF80DFC00E6230A /* DBClientInterface+Private.h */,
CFFD58871B019E79001E10B6 /* DBClientInterface+Private.mm */,
A24249201AF192E0003BF8F0 /* DBClientReturnedRecord.h */,
A248501B1AF96EBC00AFE907 /* DBClientReturnedRecord.mm */,
A242491F1AF192E0003BF8F0 /* DBClientReturnedRecord+Private.h */,
A238CA761AF84B7100CDDCE5 /* DBClientReturnedRecord+Private.mm */,
A24249221AF192E0003BF8F0 /* DBColor.h */,
A24249251AF192E0003BF8F0 /* DBConstants+Private.h */,
A24249261AF192E0003BF8F0 /* DBConstants.h */,
A24249281AF192E0003BF8F0 /* DBCppException+Private.h */,
A248501C1AF96EBC00AFE907 /* DBConstants.mm */,
A24249251AF192E0003BF8F0 /* DBConstants+Private.h */,
A238CA781AF84B7100CDDCE5 /* DBConstants+Private.mm */,
A24249291AF192E0003BF8F0 /* DBCppException.h */,
A242492A1AF192E0003BF8F0 /* DBCppException.mm */,
A242492B1AF192E0003BF8F0 /* DBDateRecord+Private.h */,
A24249281AF192E0003BF8F0 /* DBCppException+Private.h */,
CFFD58881B019E79001E10B6 /* DBCppException+Private.mm */,
A242492C1AF192E0003BF8F0 /* DBDateRecord.h */,
A242492E1AF192E0003BF8F0 /* DBMapDateRecord+Private.h */,
A248501D1AF96EBC00AFE907 /* DBDateRecord.mm */,
A242492B1AF192E0003BF8F0 /* DBDateRecord+Private.h */,
A238CA7A1AF84B7100CDDCE5 /* DBDateRecord+Private.mm */,
A242492F1AF192E0003BF8F0 /* DBMapDateRecord.h */,
A24249311AF192E0003BF8F0 /* DBMapListRecord+Private.h */,
A248501E1AF96EBC00AFE907 /* DBMapDateRecord.mm */,
A242492E1AF192E0003BF8F0 /* DBMapDateRecord+Private.h */,
A238CA7C1AF84B7100CDDCE5 /* DBMapDateRecord+Private.mm */,
A24249321AF192E0003BF8F0 /* DBMapListRecord.h */,
A24249341AF192E0003BF8F0 /* DBMapRecord+Private.h */,
A248501F1AF96EBC00AFE907 /* DBMapListRecord.mm */,
A24249311AF192E0003BF8F0 /* DBMapListRecord+Private.h */,
A238CA7E1AF84B7100CDDCE5 /* DBMapListRecord+Private.mm */,
A24249351AF192E0003BF8F0 /* DBMapRecord.h */,
A24249371AF192E0003BF8F0 /* DBNestedCollection+Private.h */,
A24850201AF96EBC00AFE907 /* DBMapRecord.mm */,
A24249341AF192E0003BF8F0 /* DBMapRecord+Private.h */,
A238CA801AF84B7100CDDCE5 /* DBMapRecord+Private.mm */,
A24249381AF192E0003BF8F0 /* DBNestedCollection.h */,
A242493A1AF192E0003BF8F0 /* DBPrimitiveList+Private.h */,
A24850211AF96EBC00AFE907 /* DBNestedCollection.mm */,
A24249371AF192E0003BF8F0 /* DBNestedCollection+Private.h */,
A238CA821AF84B7100CDDCE5 /* DBNestedCollection+Private.mm */,
A242493B1AF192E0003BF8F0 /* DBPrimitiveList.h */,
A242493D1AF192E0003BF8F0 /* DBRecordWithDerivings+Private.h */,
A24850221AF96EBC00AFE907 /* DBPrimitiveList.mm */,
A242493A1AF192E0003BF8F0 /* DBPrimitiveList+Private.h */,
A238CA841AF84B7100CDDCE5 /* DBPrimitiveList+Private.mm */,
A242493E1AF192E0003BF8F0 /* DBRecordWithDerivings.h */,
A24249401AF192E0003BF8F0 /* DBRecordWithNestedDerivings+Private.h */,
A24850231AF96EBC00AFE907 /* DBRecordWithDerivings.mm */,
A242493D1AF192E0003BF8F0 /* DBRecordWithDerivings+Private.h */,
A238CA861AF84B7100CDDCE5 /* DBRecordWithDerivings+Private.mm */,
A24249411AF192E0003BF8F0 /* DBRecordWithNestedDerivings.h */,
A24249431AF192E0003BF8F0 /* DBSetRecord+Private.h */,
A24850241AF96EBC00AFE907 /* DBRecordWithNestedDerivings.mm */,
A24249401AF192E0003BF8F0 /* DBRecordWithNestedDerivings+Private.h */,
A238CA881AF84B7100CDDCE5 /* DBRecordWithNestedDerivings+Private.mm */,
A24249441AF192E0003BF8F0 /* DBSetRecord.h */,
A24249461AF192E0003BF8F0 /* DBTestHelpers+Private.h */,
A24850251AF96EBC00AFE907 /* DBSetRecord.mm */,
A24249431AF192E0003BF8F0 /* DBSetRecord+Private.h */,
A238CA8A1AF84B7100CDDCE5 /* DBSetRecord+Private.mm */,
A24249471AF192E0003BF8F0 /* DBTestHelpers.h */,
A24249481AF192E0003BF8F0 /* DBTestHelpers.mm */,
A24249491AF192E0003BF8F0 /* DBToken+Private.h */,
A24249461AF192E0003BF8F0 /* DBTestHelpers+Private.h */,
CFFD58891B019E79001E10B6 /* DBTestHelpers+Private.mm */,
A242494A1AF192E0003BF8F0 /* DBToken.h */,
A242494B1AF192E0003BF8F0 /* DBToken.mm */,
A24249491AF192E0003BF8F0 /* DBToken+Private.h */,
CFFD588A1B019E79001E10B6 /* DBToken+Private.mm */,
);
name = "generated-objc";
path = "../generated-src/objc";
......@@ -498,12 +502,12 @@
A238CA981AF84B7100CDDCE5 /* DBMapRecord+Private.mm in Sources */,
A24850311AF96EBC00AFE907 /* DBSetRecord.mm in Sources */,
6536CD6F19A6C82200DD7715 /* DJIWeakPtrWrapper.mm in Sources */,
A242495B1AF192E0003BF8F0 /* DBTestHelpers.mm in Sources */,
A24850271AF96EBC00AFE907 /* DBClientReturnedRecord.mm in Sources */,
A24249511AF192E0003BF8F0 /* DBCppException.mm in Sources */,
A238CA941AF84B7100CDDCE5 /* DBMapDateRecord+Private.mm in Sources */,
CFFD588F1B019E79001E10B6 /* DBTestHelpers+Private.mm in Sources */,
A24850291AF96EBC00AFE907 /* DBDateRecord.mm in Sources */,
A278D45319BA3601006FD937 /* test_helpers.cpp in Sources */,
CFFD588D1B019E79001E10B6 /* DBCppException+Private.mm in Sources */,
A238CA921AF84B7100CDDCE5 /* DBDateRecord+Private.mm in Sources */,
A248502B1AF96EBC00AFE907 /* DBMapListRecord.mm in Sources */,
6536CD7819A6C98800DD7715 /* cpp_exception_impl.cpp in Sources */,
......@@ -513,11 +517,11 @@
A2A162D21AF190D200C0B00A /* DJIDate.mm in Sources */,
A248502F1AF96EBC00AFE907 /* DBRecordWithDerivings.mm in Sources */,
A24249741AF192FC003BF8F0 /* constants.cpp in Sources */,
A242495C1AF192E0003BF8F0 /* DBToken.mm in Sources */,
CFFD588B1B019E79001E10B6 /* DBClientInterface+Private.mm in Sources */,
A24850281AF96EBC00AFE907 /* DBConstants.mm in Sources */,
A238CA9A1AF84B7100CDDCE5 /* DBNestedCollection+Private.mm in Sources */,
CFFD58911B019E79001E10B6 /* DBToken+Private.mm in Sources */,
A238CA8C1AF84B7100CDDCE5 /* DBAssortedIntegers+Private.mm in Sources */,
A2CCB9421AF80DFC00E6230A /* DBClientInterface.mm in Sources */,
A2CB54B419BA6E6000A9E600 /* DJIError.mm in Sources */,
A238CA961AF84B7100CDDCE5 /* DBMapListRecord+Private.mm in Sources */,
A238CA9C1AF84B7100CDDCE5 /* DBPrimitiveList+Private.mm in Sources */,
......@@ -545,7 +549,11 @@
6536CD9219A6C9A800DD7715 /* DBRecordWithDerivingsCppTests.mm in Sources */,
6536CD9119A6C9A800DD7715 /* DBPrimitiveListTests.mm in Sources */,
6536CD8D19A6C9A800DD7715 /* DBClientInterfaceTests.mm in Sources */,
CFFD588C1B019E79001E10B6 /* DBClientInterface+Private.mm in Sources */,
6536CD8E19A6C9A800DD7715 /* DBCppExceptionTests.mm in Sources */,
CFFD588E1B019E79001E10B6 /* DBCppException+Private.mm in Sources */,
CFFD58901B019E79001E10B6 /* DBTestHelpers+Private.mm in Sources */,
CFFD58921B019E79001E10B6 /* DBToken+Private.mm in Sources */,
6536CD9319A6C9A800DD7715 /* DBRecordWithDerivingsObjcTests.mm in Sources */,
6536CD9019A6C9A800DD7715 /* DBNestedCollectionTests.mm in Sources */,
6536CD8F19A6C9A800DD7715 /* DBMapRecordTests.mm in Sources */,
......
......@@ -65,6 +65,7 @@ $base_dir/../src/run-assume-built \
--ident-jni-file NativeFooBar \
\
--objc-out "$temp_out/objc" \
--objcpp-out "$temp_out/objc" \
--objc-type-prefix DB \
\
--idl "$in"
......
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