djinni使用实践(二) -- djinni究竟都有哪些配置选项
上一篇是官方文档的中文译文方便大家查阅,这一篇整理下djinni究竟都有哪些配置选项,大家也可以在djinni项目根目录下运行命令查看。
src/run --help
Already up to date: Djinni
Usage: djinni [options]
--help
--idl test.djinni
此命令后接我们自己写的idl文件,后缀名为“.djinni”,如:test.djinni,需要注意的是要加上相对路径
--idl-include-path <path> ...
用于搜索 Djinni @import 指令的包含路径, 可以指定多个路径。
--java-out ../test/java
Java 文件的输出路径(如果未指定,则禁用生成器)。
--java-package com.test.hello
用于生成的 Java 类的包名。
--java-class-access-modifier <public/package>
用于生成的 Java 类的访问修饰符(默认:public)。
--java-cpp-exception <exception-class>
Java 中已翻译的 C++ 异常的类型(默认值:未检查的 java.lang.RuntimeException),即c++中出错报哪种异常,可默认也可是自定义的异常类(全类名)
--java-annotation com.alibaba.android.arouter.facade.annotation.Route
在所有生成的 Java 类上添加注释 (如@Route),
--java-generate-interfaces <true/false>
是否应尽可能使用 Java 接口而不是抽象类(默认值:false)。
--java-nullable-annotation <nullable-annotation-class>
Java 注释 (@Nullable) 放置在所有字段上并返回可选值,如:androidx.annotation.Nullable
--java-nonnull-annotation <nonnull-annotation-class>
Java 注释 (@Nonnull) 放置在所有字段上并返回非可选值,同上
--java-implement-android-os-parcelable <true/false>
所有生成的 java 类都将实现接口 android.os.Parcelable
--java-use-final-for-record <true/false>
为生成的 Java 类是否应标记为“final”(默认值:true)。
--cpp-out <out-folder>
C++ 文件的输出文件夹(如果未指定,则禁用生成器)。
--cpp-header-out <out-folder>
C++ 头文件的输出文件夹(默认值:与 --cpp-out 相同)。
--cpp-include-prefix <prefix>
C++ 文件中头文件的#includes 前缀。
--cpp-namespace hello::test
用于生成的 C++ 类的命名空间名称。
--cpp-ext cpp
C++ 文件的文件扩展名(默认:“cpp”)。
--hpp-ext hpp
C++ 头文件的文件扩展名(默认:“hpp”)。
--cpp-optional-template <template>
用于可选值的模板(默认值:“std::optional”)
--cpp-optional-header <header>
用于可选值的标头(默认:“<optional>”)
--cpp-enum-hash-workaround <true/false>
通过为 C++ 枚举生成 std::hash 特化来解决 LWG-2148(默认值:true)
--cpp-nn-header <header>
用于不可为空指针的标头
--cpp-nn-type <header>
用于不可空指针的类型(作为 std::shared_ptr 的替代品)
--cpp-nn-check-expression <header>
用于构建不可为空指针的表达式
--cpp-use-wide-strings <true/false>
在 C++ 代码中使用宽字符串(默认值:false)
--jni-out <out-folder>
JNI C++ 输出文件的文件夹(如果未指定,则禁用生成器)。
--jni-header-out <out-folder>
JNI C++ 头文件的文件夹(默认值:与 --jni-out 相同)。
--jni-include-prefix <prefix>
JNI C++ 文件中 JNI 头文件的 #includes 前缀。
--jni-include-cpp-prefix <prefix>
JNI C++ 文件中主要头文件的#includes 前缀。
--jni-namespace ...
用于生成的 JNI C++ 类的命名空间名称。
--jni-base-lib-include-prefix ...
JNI 基础库的包含路径,相对于 JNI C++ 类。
--objc-out <out-folder>
Objective-C 文件的输出文件夹(如果未指定,则禁用生成器)。
--objc-h-ext <ext>
Objective-C[++] 头文件的文件扩展名(默认:“h”)
--objc-type-prefix <pre>
Objective-C 数据类型的前缀(通常是两个或三个字母)
--objc-include-prefix <prefix>
来自 Objective-C 文件的 #import 头文件的前缀。
--objc-swift-bridging-header <name>
在 XCode 的 Swift 项目中使用的 Objective-C Bridging Header 的名称。
--objc-closed-enums <true/false>
所有生成的 Objective-C 枚举都是 NS_CLOSED_ENUM(默认值:false)。
--objcpp-out <out-folder>
私有 Objective-C++ 文件的输出文件夹(如果未指定,则禁用生成器)。
--objcpp-ext <ext>
Objective-C++ 文件的文件扩展名(默认:“mm”)
--objcpp-include-prefix <prefix>
#import of Objective-C++ header files from Objective-C++ files 的前缀。
--objcpp-include-cpp-prefix <prefix>
来自 Objective-C++ 文件的主要 C++ 头文件的 #include 前缀。
--objcpp-include-objc-prefix <prefix>
Objective-C++文件中Objective-C头文件的#import前缀(默认:与--objcpp-include-prefix相同)
--cpp-extended-record-include-prefix <prefix>
扩展记录 C++ 标头 (.hpp) 文件的 #include 前缀路径
--objc-extended-record-include-prefix <prefix>
扩展记录 Objective-C 标头 (.h) 文件的 #import 前缀路径
--objcpp-namespace <prefix>
用于生成的 Objective-C++ 类的命名空间名称。
--objc-base-lib-include-prefix ...
Objective-C++ 基础库的包含路径,相对于 Objective-C++ 类。
--yaml-out <out-folder>
YAML 文件的输出文件夹(如果未指定,则禁用生成器)。
--yaml-out-file <out-file>
如果指定所有类型将合并到一个 YAML 文件中,而不是为每种类型生成一个文件(相对于 --yaml-out)。
--yaml-prefix <pre>
添加到存储在 YAML 文件中的类型名称的前缀(默认值:“”)。
--list-in-files <list-in-files>
在其中写入解析的输入文件列表的可选文件。
--list-out-files <list-out-files>
在其中写入生成的输出文件列表的可选文件。
--skip-generation <true/false>
指定是否应跳过文件生成的方式(默认值:false)
以下各项可设置的命名风格 (ex: "FooBar", "fooBar", "foo_bar", "FOO_BAR", "m_fooBar")
--ident-java-enum ...
--ident-java-field ...
--ident-java-type ...
--ident-cpp-enum ...
--ident-cpp-field ...
--ident-cpp-method ...
--ident-cpp-type ...
--ident-cpp-enum-type ...
--ident-cpp-type-param ...
--ident-cpp-local ...
--ident-cpp-file ...
--ident-jni-class ...
--ident-jni-file ...
--ident-objc-enum ...
--ident-objc-field ...
--ident-objc-method ...
--ident-objc-type ...
--ident-objc-type-param ...
--ident-objc-local ...
--ident-objc-file ...
也不是很多,大家用到时查阅就可以了。