Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
djinni
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
djinni
Commits
eebdf499
Commit
eebdf499
authored
Mar 10, 2017
by
Bruno Coelho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Generate bridging header for Swift
parent
348e804b
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
128 additions
and
4 deletions
+128
-4
example/generated-src/objc/TextSort-Bridging-Header.h
example/generated-src/objc/TextSort-Bridging-Header.h
+7
-0
example/handwritten-src/objc/TXSViewController.m
example/handwritten-src/objc/TXSViewController.m
+1
-1
example/handwritten-src/swift/TXSTextboxListenerImpl.swift
example/handwritten-src/swift/TXSTextboxListenerImpl.swift
+22
-0
example/objc/TextSort.xcodeproj/project.pbxproj
example/objc/TextSort.xcodeproj/project.pbxproj
+26
-0
example/run_djinni.sh
example/run_djinni.sh
+5
-2
src/source/Main.scala
src/source/Main.scala
+16
-0
src/source/SwiftBridgingHeaderGenerator.scala
src/source/SwiftBridgingHeaderGenerator.scala
+45
-0
src/source/generator.scala
src/source/generator.scala
+6
-1
No files found.
example/generated-src/objc/TextSort-Bridging-Header.h
0 → 100644
View file @
eebdf499
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni
#import "TXSItemList.h"
#import "TXSSortOrder.h"
#import "TXSSortItems.h"
#import "TXSTextboxListener.h"
example/handwritten-src/objc/TXSViewController.m
View file @
eebdf499
#import "TXSItemList.h"
#import "TXSItemList.h"
#import "TXSSortItems.h"
#import "TXSSortItems.h"
#import "T
XSTextboxListenerImpl
.h"
#import "T
extSort-Swift
.h"
#import "TXSViewController.h"
#import "TXSViewController.h"
#import "TXSTextboxListener.h"
#import "TXSTextboxListener.h"
...
...
example/handwritten-src/swift/TXSTextboxListenerImpl.swift
0 → 100644
View file @
eebdf499
//
// TXSTextboxListenerImpl.swift
// TextSort
//
// Created by Bruno Coelho on 10/03/2017.
// Copyright © 2017 Dropbox, Inc. All rights reserved.
//
import
UIKit
@objc
class
TXSTextboxListenerImpl
:
NSObject
,
TXSTextboxListener
{
private
var
textView_
:
UITextView
@objc
(
initWithUITextView
:)
init
(
textView
:
UITextView
)
{
textView_
=
textView
}
@objc
func
update
(
_
items
:
TXSItemList
)
{
textView_
.
text
=
items
.
items
.
joined
(
separator
:
"
\n
"
)
}
}
example/objc/TextSort.xcodeproj/project.pbxproj
View file @
eebdf499
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
65D7FDFB19AD0CDF0038F82F
/* TXSAppDelegate.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
65D7FDF519AD0CDF0038F82F
/* TXSAppDelegate.m */
;
};
65D7FDFB19AD0CDF0038F82F
/* TXSAppDelegate.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
65D7FDF519AD0CDF0038F82F
/* TXSAppDelegate.m */
;
};
65D7FDFC19AD0CDF0038F82F
/* TXSTextboxListenerImpl.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
65D7FDF719AD0CDF0038F82F
/* TXSTextboxListenerImpl.m */
;
};
65D7FDFC19AD0CDF0038F82F
/* TXSTextboxListenerImpl.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
65D7FDF719AD0CDF0038F82F
/* TXSTextboxListenerImpl.m */
;
};
65D7FDFD19AD0CDF0038F82F
/* TXSViewController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
65D7FDF919AD0CDF0038F82F
/* TXSViewController.m */
;
};
65D7FDFD19AD0CDF0038F82F
/* TXSViewController.m in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
65D7FDF919AD0CDF0038F82F
/* TXSViewController.m */
;
};
A546A26E1E72FBAF004A8BBD
/* TXSTextboxListenerImpl.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
A546A26D1E72FBAF004A8BBD
/* TXSTextboxListenerImpl.swift */
;
};
B003051919B70561008E1F67
/* libdjinni_objc.a in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
B003051819B70561008E1F67
/* libdjinni_objc.a */
;
};
B003051919B70561008E1F67
/* libdjinni_objc.a in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
B003051819B70561008E1F67
/* libdjinni_objc.a */
;
};
B097B6BC19B1C07E0047653A
/* libtextsort_objc.a in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
B097B6BB19B1C07E0047653A
/* libtextsort_objc.a */
;
};
B097B6BC19B1C07E0047653A
/* libtextsort_objc.a in Frameworks */
=
{
isa
=
PBXBuildFile
;
fileRef
=
B097B6BB19B1C07E0047653A
/* libtextsort_objc.a */
;
};
/* End PBXBuildFile section */
/* End PBXBuildFile section */
...
@@ -38,6 +39,7 @@
...
@@ -38,6 +39,7 @@
65D7FDF719AD0CDF0038F82F
/* TXSTextboxListenerImpl.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
TXSTextboxListenerImpl.m
;
sourceTree
=
"<group>"
;
};
65D7FDF719AD0CDF0038F82F
/* TXSTextboxListenerImpl.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
TXSTextboxListenerImpl.m
;
sourceTree
=
"<group>"
;
};
65D7FDF819AD0CDF0038F82F
/* TXSViewController.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
TXSViewController.h
;
sourceTree
=
"<group>"
;
};
65D7FDF819AD0CDF0038F82F
/* TXSViewController.h */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.h
;
path
=
TXSViewController.h
;
sourceTree
=
"<group>"
;
};
65D7FDF919AD0CDF0038F82F
/* TXSViewController.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
TXSViewController.m
;
sourceTree
=
"<group>"
;
};
65D7FDF919AD0CDF0038F82F
/* TXSViewController.m */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.c.objc
;
path
=
TXSViewController.m
;
sourceTree
=
"<group>"
;
};
A546A26D1E72FBAF004A8BBD
/* TXSTextboxListenerImpl.swift */
=
{
isa
=
PBXFileReference
;
fileEncoding
=
4
;
lastKnownFileType
=
sourcecode.swift
;
name
=
TXSTextboxListenerImpl.swift
;
path
=
"../handwritten-src/swift/TXSTextboxListenerImpl.swift"
;
sourceTree
=
"<group>"
;
};
B003051819B70561008E1F67
/* libdjinni_objc.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libdjinni_objc.a
;
path
=
"../../support-lib/build/Debug-iphoneos/libdjinni_objc.a"
;
sourceTree
=
"<group>"
;
};
B003051819B70561008E1F67
/* libdjinni_objc.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libdjinni_objc.a
;
path
=
"../../support-lib/build/Debug-iphoneos/libdjinni_objc.a"
;
sourceTree
=
"<group>"
;
};
B097B6BB19B1C07E0047653A
/* libtextsort_objc.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libtextsort_objc.a
;
path
=
"../../build/Debug-iphoneos/libtextsort_objc.a"
;
sourceTree
=
"<group>"
;
};
B097B6BB19B1C07E0047653A
/* libtextsort_objc.a */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
archive.ar
;
name
=
libtextsort_objc.a
;
path
=
"../../build/Debug-iphoneos/libtextsort_objc.a"
;
sourceTree
=
"<group>"
;
};
/* End PBXFileReference section */
/* End PBXFileReference section */
...
@@ -61,6 +63,7 @@
...
@@ -61,6 +63,7 @@
65834DD419AC599E0061AD3F
=
{
65834DD419AC599E0061AD3F
=
{
isa
=
PBXGroup
;
isa
=
PBXGroup
;
children
=
(
children
=
(
A546A26A1E72F967004A8BBD
/* handwritten-swift */
,
65D7FDF219AD0C730038F82F
/* handwritten-objc */
,
65D7FDF219AD0C730038F82F
/* handwritten-objc */
,
65834DE619AC599E0061AD3F
/* TextSort */
,
65834DE619AC599E0061AD3F
/* TextSort */
,
65834DDF19AC599E0061AD3F
/* Frameworks */
,
65834DDF19AC599E0061AD3F
/* Frameworks */
,
...
@@ -123,6 +126,14 @@
...
@@ -123,6 +126,14 @@
path
=
"../handwritten-src/objc"
;
path
=
"../handwritten-src/objc"
;
sourceTree
=
"<group>"
;
sourceTree
=
"<group>"
;
};
};
A546A26A1E72F967004A8BBD
/* handwritten-swift */
=
{
isa
=
PBXGroup
;
children
=
(
A546A26D1E72FBAF004A8BBD
/* TXSTextboxListenerImpl.swift */
,
);
name
=
"handwritten-swift"
;
sourceTree
=
"<group>"
;
};
/* End PBXGroup section */
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
/* Begin PBXNativeTarget section */
...
@@ -152,6 +163,11 @@
...
@@ -152,6 +163,11 @@
CLASSPREFIX
=
TXS
;
CLASSPREFIX
=
TXS
;
LastUpgradeCheck
=
0820
;
LastUpgradeCheck
=
0820
;
ORGANIZATIONNAME
=
"Dropbox, Inc."
;
ORGANIZATIONNAME
=
"Dropbox, Inc."
;
TargetAttributes
=
{
65834DDC19AC599E0061AD3F
=
{
LastSwiftMigration
=
0820
;
};
};
};
};
buildConfigurationList
=
65834DD819AC599E0061AD3F
/* Build configuration list for PBXProject "TextSort" */
;
buildConfigurationList
=
65834DD819AC599E0061AD3F
/* Build configuration list for PBXProject "TextSort" */
;
compatibilityVersion
=
"Xcode 3.2"
;
compatibilityVersion
=
"Xcode 3.2"
;
...
@@ -192,6 +208,7 @@
...
@@ -192,6 +208,7 @@
65D7FDFC19AD0CDF0038F82F
/* TXSTextboxListenerImpl.m in Sources */
,
65D7FDFC19AD0CDF0038F82F
/* TXSTextboxListenerImpl.m in Sources */
,
65D7FDFB19AD0CDF0038F82F
/* TXSAppDelegate.m in Sources */
,
65D7FDFB19AD0CDF0038F82F
/* TXSAppDelegate.m in Sources */
,
65D7FDFD19AD0CDF0038F82F
/* TXSViewController.m in Sources */
,
65D7FDFD19AD0CDF0038F82F
/* TXSViewController.m in Sources */
,
A546A26E1E72FBAF004A8BBD
/* TXSTextboxListenerImpl.swift in Sources */
,
65D7FDFA19AD0CDF0038F82F
/* main.mm in Sources */
,
65D7FDFA19AD0CDF0038F82F
/* main.mm in Sources */
,
);
);
runOnlyForDeploymentPostprocessing
=
0
;
runOnlyForDeploymentPostprocessing
=
0
;
...
@@ -308,12 +325,17 @@
...
@@ -308,12 +325,17 @@
buildSettings
=
{
buildSettings
=
{
ASSETCATALOG_COMPILER_APPICON_NAME
=
AppIcon
;
ASSETCATALOG_COMPILER_APPICON_NAME
=
AppIcon
;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME
=
LaunchImage
;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME
=
LaunchImage
;
CLANG_ENABLE_MODULES
=
YES
;
GCC_PRECOMPILE_PREFIX_HEADER
=
YES
;
GCC_PRECOMPILE_PREFIX_HEADER
=
YES
;
GCC_PREFIX_HEADER
=
"TextSort/TextSort-Prefix.pch"
;
GCC_PREFIX_HEADER
=
"TextSort/TextSort-Prefix.pch"
;
INFOPLIST_FILE
=
"TextSort/TextSort-Info.plist"
;
INFOPLIST_FILE
=
"TextSort/TextSort-Info.plist"
;
LD_RUNPATH_SEARCH_PATHS
=
"$(inherited) @executable_path/Frameworks"
;
LIBRARY_SEARCH_PATHS
=
"$(inherited)"
;
LIBRARY_SEARCH_PATHS
=
"$(inherited)"
;
PRODUCT_BUNDLE_IDENTIFIER
=
"Dropbox.${PRODUCT_NAME:rfc1034identifier}"
;
PRODUCT_BUNDLE_IDENTIFIER
=
"Dropbox.${PRODUCT_NAME:rfc1034identifier}"
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
SWIFT_OBJC_BRIDGING_HEADER
=
"../generated-src/objc/TextSort-Bridging-Header.h"
;
SWIFT_OPTIMIZATION_LEVEL
=
"-Onone"
;
SWIFT_VERSION
=
3.0
;
TARGETED_DEVICE_FAMILY
=
1
;
TARGETED_DEVICE_FAMILY
=
1
;
WRAPPER_EXTENSION
=
app
;
WRAPPER_EXTENSION
=
app
;
};
};
...
@@ -324,12 +346,16 @@
...
@@ -324,12 +346,16 @@
buildSettings
=
{
buildSettings
=
{
ASSETCATALOG_COMPILER_APPICON_NAME
=
AppIcon
;
ASSETCATALOG_COMPILER_APPICON_NAME
=
AppIcon
;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME
=
LaunchImage
;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME
=
LaunchImage
;
CLANG_ENABLE_MODULES
=
YES
;
GCC_PRECOMPILE_PREFIX_HEADER
=
YES
;
GCC_PRECOMPILE_PREFIX_HEADER
=
YES
;
GCC_PREFIX_HEADER
=
"TextSort/TextSort-Prefix.pch"
;
GCC_PREFIX_HEADER
=
"TextSort/TextSort-Prefix.pch"
;
INFOPLIST_FILE
=
"TextSort/TextSort-Info.plist"
;
INFOPLIST_FILE
=
"TextSort/TextSort-Info.plist"
;
LD_RUNPATH_SEARCH_PATHS
=
"$(inherited) @executable_path/Frameworks"
;
LIBRARY_SEARCH_PATHS
=
"$(inherited)"
;
LIBRARY_SEARCH_PATHS
=
"$(inherited)"
;
PRODUCT_BUNDLE_IDENTIFIER
=
"Dropbox.${PRODUCT_NAME:rfc1034identifier}"
;
PRODUCT_BUNDLE_IDENTIFIER
=
"Dropbox.${PRODUCT_NAME:rfc1034identifier}"
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
SWIFT_OBJC_BRIDGING_HEADER
=
"../generated-src/objc/TextSort-Bridging-Header.h"
;
SWIFT_VERSION
=
3.0
;
TARGETED_DEVICE_FAMILY
=
1
;
TARGETED_DEVICE_FAMILY
=
1
;
WRAPPER_EXTENSION
=
app
;
WRAPPER_EXTENSION
=
app
;
};
};
...
...
example/run_djinni.sh
View file @
eebdf499
...
@@ -28,6 +28,8 @@ java_package="com.dropbox.textsort"
...
@@ -28,6 +28,8 @@ java_package="com.dropbox.textsort"
gen_stamp
=
"
$temp_out
/gen.stamp"
gen_stamp
=
"
$temp_out
/gen.stamp"
objc_swift_bridging_header
=
"TextSort-Bridging-Header.h"
if
[
$#
-eq
0
]
;
then
if
[
$#
-eq
0
]
;
then
# Normal build.
# Normal build.
true
true
...
@@ -66,9 +68,10 @@ fi
...
@@ -66,9 +68,10 @@ fi
--ident-jni-class
NativeFooBar
\
--ident-jni-class
NativeFooBar
\
--ident-jni-file
NativeFooBar
\
--ident-jni-file
NativeFooBar
\
\
\
--objc-out
"
$temp_out
/objc"
\
--objc-out
"
$temp_out
/objc"
\
--objcpp-out
"
$temp_out
/objc"
\
--objcpp-out
"
$temp_out
/objc"
\
--objc-type-prefix
TXS
\
--objc-type-prefix
TXS
\
--objc-swift-bridging-header-out
"
$temp_out
/objc/
$objc_swift_bridging_header
"
\
\
\
--idl
"
$in
"
--idl
"
$in
"
...
...
src/source/Main.scala
View file @
eebdf499
...
@@ -68,6 +68,7 @@ object Main {
...
@@ -68,6 +68,7 @@ object Main {
var
objcTypePrefix
:
String
=
""
var
objcTypePrefix
:
String
=
""
var
objcIncludePrefix
:
String
=
""
var
objcIncludePrefix
:
String
=
""
var
objcExtendedRecordIncludePrefix
:
String
=
""
var
objcExtendedRecordIncludePrefix
:
String
=
""
var
objcSwiftBridgingHeaderOut
:
Option
[
File
]
=
None
var
objcppIncludePrefix
:
String
=
""
var
objcppIncludePrefix
:
String
=
""
var
objcppIncludeCppPrefix
:
String
=
""
var
objcppIncludeCppPrefix
:
String
=
""
var
objcppIncludeObjcPrefixOptional
:
Option
[
String
]
=
None
var
objcppIncludeObjcPrefixOptional
:
Option
[
String
]
=
None
...
@@ -164,6 +165,8 @@ object Main {
...
@@ -164,6 +165,8 @@ object Main {
.
text
(
"The prefix for Objective-C data types (usually two or three letters)"
)
.
text
(
"The prefix for Objective-C data types (usually two or three letters)"
)
opt
[
String
](
"objc-include-prefix"
).
valueName
(
"<prefix>"
).
foreach
(
objcIncludePrefix
=
_
)
opt
[
String
](
"objc-include-prefix"
).
valueName
(
"<prefix>"
).
foreach
(
objcIncludePrefix
=
_
)
.
text
(
"The prefix for #import of header files from Objective-C files."
)
.
text
(
"The prefix for #import of header files from Objective-C files."
)
opt
[
File
](
"objc-swift-bridging-header-out"
).
valueName
(
"<path>"
).
foreach
(
x
=>
objcSwiftBridgingHeaderOut
=
Some
(
x
))
.
text
(
"The path to Objective-C Bridging Header used in XCode's Swift projects."
)
note
(
""
)
note
(
""
)
opt
[
File
](
"objcpp-out"
).
valueName
(
"<out-folder>"
).
foreach
(
x
=>
objcppOutFolder
=
Some
(
x
))
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)."
)
.
text
(
"The output folder for private Objective-C++ files (Generator disabled if unspecified)."
)
...
@@ -282,6 +285,15 @@ object Main {
...
@@ -282,6 +285,15 @@ object Main {
}
else
{
}
else
{
None
None
}
}
val
objcSwiftBridgingHeaderWriter
=
if
(
objcSwiftBridgingHeaderOut
.
isDefined
)
{
if
(
objcSwiftBridgingHeaderOut
.
get
.
getParentFile
!=
null
)
createFolder
(
"Swift"
,
objcSwiftBridgingHeaderOut
.
get
.
getParentFile
)
val
writer
=
new
BufferedWriter
(
new
FileWriter
(
objcSwiftBridgingHeaderOut
.
get
))
SwiftBridgingHeaderGenerator
.
writeAutogenerationWarning
(
writer
)
Some
(
writer
)
}
else
{
None
}
val
outSpec
=
Spec
(
val
outSpec
=
Spec
(
javaOutFolder
,
javaOutFolder
,
...
@@ -330,6 +342,7 @@ object Main {
...
@@ -330,6 +342,7 @@ object Main {
objcppIncludeObjcPrefix
,
objcppIncludeObjcPrefix
,
objcppNamespace
,
objcppNamespace
,
objcBaseLibIncludePrefix
,
objcBaseLibIncludePrefix
,
objcSwiftBridgingHeaderWriter
,
outFileListWriter
,
outFileListWriter
,
skipGeneration
,
skipGeneration
,
yamlOutFolder
,
yamlOutFolder
,
...
@@ -345,6 +358,9 @@ object Main {
...
@@ -345,6 +358,9 @@ object Main {
if
(
outFileListWriter
.
isDefined
)
{
if
(
outFileListWriter
.
isDefined
)
{
outFileListWriter
.
get
.
close
()
outFileListWriter
.
get
.
close
()
}
}
if
(
objcSwiftBridgingHeaderWriter
.
isDefined
)
{
objcSwiftBridgingHeaderWriter
.
get
.
close
()
}
}
}
}
}
}
}
src/source/SwiftBridgingHeaderGenerator.scala
0 → 100644
View file @
eebdf499
/**
* Copyright 2016 Dropbox, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
djinni
import
java.io.
{
File
,
FileWriter
,
BufferedWriter
}
import
djinni.ast._
import
djinni.generatorTools._
class
SwiftBridgingHeaderGenerator
(
spec
:
Spec
)
extends
Generator
(
spec
)
{
val
marshal
=
new
ObjcMarshal
(
spec
)
override
def
generateEnum
(
origin
:
String
,
ident
:
Ident
,
doc
:
Doc
,
e
:
Enum
)
{
spec
.
objcSwiftBridgingHeaderWriter
.
get
.
write
(
"#import \""
+
marshal
.
headerName
(
ident
)
+
"\"\n"
)
}
override
def
generateInterface
(
origin
:
String
,
ident
:
Ident
,
doc
:
Doc
,
typeParams
:
Seq
[
TypeParam
],
i
:
Interface
)
{
spec
.
objcSwiftBridgingHeaderWriter
.
get
.
write
(
"#import \""
+
marshal
.
headerName
(
ident
)
+
"\"\n"
)
}
override
def
generateRecord
(
origin
:
String
,
ident
:
Ident
,
doc
:
Doc
,
params
:
Seq
[
TypeParam
],
r
:
Record
)
{
spec
.
objcSwiftBridgingHeaderWriter
.
get
.
write
(
"#import \""
+
marshal
.
headerName
(
ident
)
+
"\"\n"
)
}
}
object
SwiftBridgingHeaderGenerator
{
def
writeAutogenerationWarning
(
writer
:
BufferedWriter
)
{
writer
.
write
(
"// AUTOGENERATED FILE - DO NOT MODIFY!\n"
)
writer
.
write
(
"// This file generated by Djinni\n\n"
)
}
}
\ No newline at end of file
src/source/generator.scala
View file @
eebdf499
...
@@ -74,6 +74,7 @@ package object generatorTools {
...
@@ -74,6 +74,7 @@ package object generatorTools {
objcppIncludeObjcPrefix
:
String
,
objcppIncludeObjcPrefix
:
String
,
objcppNamespace
:
String
,
objcppNamespace
:
String
,
objcBaseLibIncludePrefix
:
String
,
objcBaseLibIncludePrefix
:
String
,
objcSwiftBridgingHeaderWriter
:
Option
[
Writer
],
outFileListWriter
:
Option
[
Writer
],
outFileListWriter
:
Option
[
Writer
],
skipGeneration
:
Boolean
,
skipGeneration
:
Boolean
,
yamlOutFolder
:
Option
[
File
],
yamlOutFolder
:
Option
[
File
],
...
@@ -169,7 +170,8 @@ package object generatorTools {
...
@@ -169,7 +170,8 @@ package object generatorTools {
case
class
GenerateException
(
message
:
String
)
extends
java
.
lang
.
Exception
(
message
)
case
class
GenerateException
(
message
:
String
)
extends
java
.
lang
.
Exception
(
message
)
def
createFolder
(
name
:
String
,
folder
:
File
)
{
def
createFolder
(
name
:
String
,
folder
:
File
)
{
folder
.
mkdirs
()
val
sucess
=
folder
.
mkdirs
()
if
(
folder
.
exists
)
{
if
(
folder
.
exists
)
{
if
(!
folder
.
isDirectory
)
{
if
(!
folder
.
isDirectory
)
{
throw
new
GenerateException
(
s
"Unable to create $name folder at ${q(folder.getPath)}, there's something in the way."
)
throw
new
GenerateException
(
s
"Unable to create $name folder at ${q(folder.getPath)}, there's something in the way."
)
...
@@ -213,6 +215,9 @@ package object generatorTools {
...
@@ -213,6 +215,9 @@ package object generatorTools {
}
}
new
ObjcppGenerator
(
spec
).
generate
(
idl
)
new
ObjcppGenerator
(
spec
).
generate
(
idl
)
}
}
if
(
spec
.
objcSwiftBridgingHeaderWriter
.
isDefined
)
{
new
SwiftBridgingHeaderGenerator
(
spec
).
generate
(
idl
)
}
if
(
spec
.
yamlOutFolder
.
isDefined
)
{
if
(
spec
.
yamlOutFolder
.
isDefined
)
{
if
(!
spec
.
skipGeneration
)
{
if
(!
spec
.
skipGeneration
)
{
createFolder
(
"YAML"
,
spec
.
yamlOutFolder
.
get
)
createFolder
(
"YAML"
,
spec
.
yamlOutFolder
.
get
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment