Commit a38f5ee8 authored by alancast's avatar alancast Committed by Xianwen Chen

Added support for constexpr for primitives in header files (#354)

* Got a basic version of constexpr in headers working

* got enum values to work as well

* can't do enums because interface headers forward declare so you can't set it there. So only primitives allowed

* fixing const enums in obj-c, which apparently never worked to begin with
parent 9463fa9a
...@@ -5,4 +5,5 @@ The complete list of contributors can be identified through ...@@ -5,4 +5,5 @@ The complete list of contributors can be identified through
Git history. Git history.
- Google Inc. - Google Inc.
- Microsoft Corp.
...@@ -57,7 +57,7 @@ abstract class BaseObjcGenerator(spec: Spec) extends Generator(spec) { ...@@ -57,7 +57,7 @@ abstract class BaseObjcGenerator(spec: Spec) extends Generator(spec) {
case d: Double => w.w(boxedPrimitive(ty) + d.toString) case d: Double => w.w(boxedPrimitive(ty) + d.toString)
case b: Boolean => w.w(boxedPrimitive(ty) + (if (b) "YES" else "NO")) case b: Boolean => w.w(boxedPrimitive(ty) + (if (b) "YES" else "NO"))
case s: String => w.w("@" + s) case s: String => w.w("@" + s)
case e: EnumValue => w.w(idObjc.enum(e.ty + "_" + e.name)) case e: EnumValue => w.w(marshal.typename(ty) + idObjc.enum(e.name))
case v: ConstRef => w.w(selfName + idObjc.const (v.name)) case v: ConstRef => w.w(selfName + idObjc.const (v.name))
case z: Map[_, _] => { // Value is record case z: Map[_, _] => { // Value is record
val recordMdef = ty.resolved.base.asInstanceOf[MDef] val recordMdef = ty.resolved.base.asInstanceOf[MDef]
......
...@@ -112,11 +112,35 @@ class CppGenerator(spec: Spec) extends Generator(spec) { ...@@ -112,11 +112,35 @@ class CppGenerator(spec: Spec) extends Generator(spec) {
}) })
} }
def shouldConstexpr(c: Const) = {
// Make sure we don't constexpr optionals as some might not support it
val canConstexpr = c.ty.resolved.base match {
case p: MPrimitive if c.ty.resolved.base != MOptional => true
case _ => false
}
canConstexpr
}
def generateHppConstants(w: IndentWriter, consts: Seq[Const]) = { def generateHppConstants(w: IndentWriter, consts: Seq[Const]) = {
for (c <- consts) { for (c <- consts) {
// set value in header if can constexpr (only primitives)
var constexpr = shouldConstexpr(c)
var constValue = ";"
if (constexpr) {
constValue = c.value match {
case l: Long => " = " + l.toString + ";"
case d: Double if marshal.fieldType(c.ty) == "float" => " = " + d.toString + "f;"
case d: Double => " = " + d.toString + ";"
case b: Boolean => if (b) " = true;" else " = false;"
case _ => ";"
}
}
val constFieldType = if (constexpr) s"constexpr ${marshal.fieldType(c.ty)}" else s"${marshal.fieldType(c.ty)} const"
// Write code to the header file
w.wl w.wl
writeDoc(w, c.doc) writeDoc(w, c.doc)
w.wl(s"static ${marshal.fieldType(c.ty)} const ${idCpp.const(c.ident)};") w.wl(s"static ${constFieldType} ${idCpp.const(c.ident)}${constValue}")
} }
} }
...@@ -127,7 +151,7 @@ class CppGenerator(spec: Spec) extends Generator(spec) { ...@@ -127,7 +151,7 @@ class CppGenerator(spec: Spec) extends Generator(spec) {
case d: Double => w.w(d.toString) case d: Double => w.w(d.toString)
case b: Boolean => w.w(if (b) "true" else "false") case b: Boolean => w.w(if (b) "true" else "false")
case s: String => w.w("{" + s + "}") case s: String => w.w("{" + s + "}")
case e: EnumValue => w.w(marshal.typename(ty) + "::" + idCpp.enum(e.ty.name + "_" + e.name)) case e: EnumValue => w.w(marshal.typename(ty) + "::" + idCpp.enum(e.name))
case v: ConstRef => w.w(selfName + "::" + idCpp.const(v)) case v: ConstRef => w.w(selfName + "::" + idCpp.const(v))
case z: Map[_, _] => { // Value is record case z: Map[_, _] => { // Value is record
val recordMdef = ty.resolved.base.asInstanceOf[MDef] val recordMdef = ty.resolved.base.asInstanceOf[MDef]
...@@ -150,8 +174,12 @@ class CppGenerator(spec: Spec) extends Generator(spec) { ...@@ -150,8 +174,12 @@ class CppGenerator(spec: Spec) extends Generator(spec) {
val skipFirst = SkipFirst() val skipFirst = SkipFirst()
for (c <- consts) { for (c <- consts) {
skipFirst{ w.wl } skipFirst{ w.wl }
w.w(s"${marshal.fieldType(c.ty)} const $selfName::${idCpp.const(c.ident)} = ") if (shouldConstexpr(c)){
writeCppConst(w, c.ty, c.value) w.w(s"${marshal.fieldType(c.ty)} const $selfName::${idCpp.const(c.ident)}")
} else {
w.w(s"${marshal.fieldType(c.ty)} const $selfName::${idCpp.const(c.ident)} = ")
writeCppConst(w, c.ty, c.value)
}
w.wl(";") w.wl(";")
} }
} }
......
# enum for use in constants
constant_enum = enum {
some_value;
some_other_value;
}
# Record for use in constants # Record for use in constants
constant_record = record { constant_record = record {
some_integer: i32; some_integer: i32;
...@@ -18,6 +24,8 @@ constants = record { ...@@ -18,6 +24,8 @@ constants = record {
# Indented third line of multi-line documentation.) # Indented third line of multi-line documentation.)
const f64_constant: f64 = 5.0; const f64_constant: f64 = 5.0;
const const_enum: constant_enum = constant_enum::some_value;
const opt_bool_constant: optional<bool> = true; const opt_bool_constant: optional<bool> = true;
const opt_i8_constant: optional<i8> = 1; const opt_i8_constant: optional<i8> = 1;
# opt_i16_constant has documentation. # opt_i16_constant has documentation.
...@@ -59,6 +67,8 @@ constants_interface = interface +c { ...@@ -59,6 +67,8 @@ constants_interface = interface +c {
const f32_constant: f32 = 5.0; const f32_constant: f32 = 5.0;
const f64_constant: f64 = 5.0; const f64_constant: f64 = 5.0;
const const_enum: constant_enum = constant_enum::some_value;
const opt_bool_constant: optional<bool> = true; const opt_bool_constant: optional<bool> = true;
const opt_i8_constant: optional<i8> = 1; const opt_i8_constant: optional<i8> = 1;
# opt_i16_constant has documentation. # opt_i16_constant has documentation.
......
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#pragma once
#include <functional>
namespace testsuite {
enum class constant_enum : int {
SOME_VALUE,
SOME_OTHER_VALUE,
};
} // namespace testsuite
namespace std {
template <>
struct hash<::testsuite::constant_enum> {
size_t operator()(::testsuite::constant_enum type) const {
return std::hash<int>()(static_cast<int>(type));
}
};
} // namespace std
...@@ -5,19 +5,21 @@ ...@@ -5,19 +5,21 @@
namespace testsuite { namespace testsuite {
bool const Constants::BOOL_CONSTANT = true; bool const Constants::BOOL_CONSTANT;
int8_t const Constants::I8_CONSTANT = 1; int8_t const Constants::I8_CONSTANT;
int16_t const Constants::I16_CONSTANT = 2; int16_t const Constants::I16_CONSTANT;
int32_t const Constants::I32_CONSTANT = 3; int32_t const Constants::I32_CONSTANT;
int64_t const Constants::I64_CONSTANT = 4; int64_t const Constants::I64_CONSTANT;
float const Constants::F32_CONSTANT = 5.0f; float const Constants::F32_CONSTANT;
double const Constants::F64_CONSTANT = 5.0; double const Constants::F64_CONSTANT;
constant_enum const Constants::CONST_ENUM = constant_enum::SOME_VALUE;
std::experimental::optional<bool> const Constants::OPT_BOOL_CONSTANT = true; std::experimental::optional<bool> const Constants::OPT_BOOL_CONSTANT = true;
...@@ -41,6 +43,6 @@ ConstantRecord const Constants::OBJECT_CONSTANT = ConstantRecord( ...@@ -41,6 +43,6 @@ ConstantRecord const Constants::OBJECT_CONSTANT = ConstantRecord(
Constants::I32_CONSTANT /* some_integer */ , Constants::I32_CONSTANT /* some_integer */ ,
Constants::STRING_CONSTANT /* some_string */ ); Constants::STRING_CONSTANT /* some_string */ );
bool const Constants::DUMMY = false; bool const Constants::DUMMY;
} // namespace testsuite } // namespace testsuite
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#pragma once #pragma once
#include "../../handwritten-src/cpp/optional.hpp" #include "../../handwritten-src/cpp/optional.hpp"
#include "constant_enum.hpp"
#include "constant_record.hpp" #include "constant_record.hpp"
#include <cstdint> #include <cstdint>
#include <string> #include <string>
...@@ -15,24 +16,26 @@ namespace testsuite { ...@@ -15,24 +16,26 @@ namespace testsuite {
struct Constants final { struct Constants final {
/** bool_constant has documentation. */ /** bool_constant has documentation. */
static bool const BOOL_CONSTANT; static constexpr bool BOOL_CONSTANT = true;
static int8_t const I8_CONSTANT; static constexpr int8_t I8_CONSTANT = 1;
static int16_t const I16_CONSTANT; static constexpr int16_t I16_CONSTANT = 2;
static int32_t const I32_CONSTANT; static constexpr int32_t I32_CONSTANT = 3;
static int64_t const I64_CONSTANT; static constexpr int64_t I64_CONSTANT = 4;
static float const F32_CONSTANT; static constexpr float F32_CONSTANT = 5.0f;
/** /**
* f64_constant has long documentation. * f64_constant has long documentation.
* (Second line of multi-line documentation. * (Second line of multi-line documentation.
* Indented third line of multi-line documentation.) * Indented third line of multi-line documentation.)
*/ */
static double const F64_CONSTANT; static constexpr double F64_CONSTANT = 5.0;
static constant_enum const CONST_ENUM;
static std::experimental::optional<bool> const OPT_BOOL_CONSTANT; static std::experimental::optional<bool> const OPT_BOOL_CONSTANT;
...@@ -65,7 +68,7 @@ struct Constants final { ...@@ -65,7 +68,7 @@ struct Constants final {
* No support for optional constant records * No support for optional constant records
* No support for constant binary, list, set, map * No support for constant binary, list, set, map
*/ */
static bool const DUMMY; static constexpr bool DUMMY = false;
}; };
} // namespace testsuite } // namespace testsuite
...@@ -2,23 +2,26 @@ ...@@ -2,23 +2,26 @@
// This file generated by Djinni from constants.djinni // This file generated by Djinni from constants.djinni
#include "constants_interface.hpp" // my header #include "constants_interface.hpp" // my header
#include "constant_enum.hpp"
#include "constant_record.hpp" #include "constant_record.hpp"
namespace testsuite { namespace testsuite {
bool const ConstantsInterface::BOOL_CONSTANT = true; bool const ConstantsInterface::BOOL_CONSTANT;
int8_t const ConstantsInterface::I8_CONSTANT = 1; int8_t const ConstantsInterface::I8_CONSTANT;
int16_t const ConstantsInterface::I16_CONSTANT = 2; int16_t const ConstantsInterface::I16_CONSTANT;
int32_t const ConstantsInterface::I32_CONSTANT = 3; int32_t const ConstantsInterface::I32_CONSTANT;
int64_t const ConstantsInterface::I64_CONSTANT = 4; int64_t const ConstantsInterface::I64_CONSTANT;
float const ConstantsInterface::F32_CONSTANT = 5.0f; float const ConstantsInterface::F32_CONSTANT;
double const ConstantsInterface::F64_CONSTANT = 5.0; double const ConstantsInterface::F64_CONSTANT;
constant_enum const ConstantsInterface::CONST_ENUM = constant_enum::SOME_VALUE;
std::experimental::optional<bool> const ConstantsInterface::OPT_BOOL_CONSTANT = true; std::experimental::optional<bool> const ConstantsInterface::OPT_BOOL_CONSTANT = true;
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
namespace testsuite { namespace testsuite {
enum class constant_enum;
struct ConstantRecord; struct ConstantRecord;
/** Interface containing constants */ /** Interface containing constants */
...@@ -16,25 +17,27 @@ class ConstantsInterface { ...@@ -16,25 +17,27 @@ class ConstantsInterface {
public: public:
virtual ~ConstantsInterface() {} virtual ~ConstantsInterface() {}
static bool const BOOL_CONSTANT; static constexpr bool BOOL_CONSTANT = true;
static int8_t const I8_CONSTANT; static constexpr int8_t I8_CONSTANT = 1;
static int16_t const I16_CONSTANT; static constexpr int16_t I16_CONSTANT = 2;
/** i32_constant has documentation. */ /** i32_constant has documentation. */
static int32_t const I32_CONSTANT; static constexpr int32_t I32_CONSTANT = 3;
/** /**
* i64_constant has long documentation. * i64_constant has long documentation.
* (Second line of multi-line documentation. * (Second line of multi-line documentation.
* Indented third line of multi-line documentation.) * Indented third line of multi-line documentation.)
*/ */
static int64_t const I64_CONSTANT; static constexpr int64_t I64_CONSTANT = 4;
static float const F32_CONSTANT; static constexpr float F32_CONSTANT = 5.0f;
static double const F64_CONSTANT; static constexpr double F64_CONSTANT = 5.0;
static constant_enum const CONST_ENUM;
static std::experimental::optional<bool> const OPT_BOOL_CONSTANT; static std::experimental::optional<bool> const OPT_BOOL_CONSTANT;
......
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
package com.dropbox.djinni.test;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
/** enum for use in constants */
public enum ConstantEnum {
SOME_VALUE,
SOME_OTHER_VALUE,
;
}
...@@ -29,6 +29,9 @@ public class Constants { ...@@ -29,6 +29,9 @@ public class Constants {
*/ */
public static final double F64_CONSTANT = 5.0; public static final double F64_CONSTANT = 5.0;
@Nonnull
public static final ConstantEnum CONST_ENUM = ConstantEnum.SOME_VALUE;
@CheckForNull @CheckForNull
public static final Boolean OPT_BOOL_CONSTANT = true; public static final Boolean OPT_BOOL_CONSTANT = true;
......
...@@ -29,6 +29,9 @@ public abstract class ConstantsInterface { ...@@ -29,6 +29,9 @@ public abstract class ConstantsInterface {
public static final double F64_CONSTANT = 5.0; public static final double F64_CONSTANT = 5.0;
@Nonnull
public static final ConstantEnum CONST_ENUM = ConstantEnum.SOME_VALUE;
@CheckForNull @CheckForNull
public static final Boolean OPT_BOOL_CONSTANT = true; public static final Boolean OPT_BOOL_CONSTANT = true;
......
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#pragma once
#include "constant_enum.hpp"
#include "djinni_support.hpp"
namespace djinni_generated {
class NativeConstantEnum final : ::djinni::JniEnum {
public:
using CppType = ::testsuite::constant_enum;
using JniType = jobject;
using Boxed = NativeConstantEnum;
static CppType toCpp(JNIEnv* jniEnv, JniType j) { return static_cast<CppType>(::djinni::JniClass<NativeConstantEnum>::get().ordinal(jniEnv, j)); }
static ::djinni::LocalRef<JniType> fromCpp(JNIEnv* jniEnv, CppType c) { return ::djinni::JniClass<NativeConstantEnum>::get().create(jniEnv, static_cast<jint>(c)); }
private:
NativeConstantEnum() : JniEnum("com/dropbox/djinni/test/ConstantEnum") {}
friend ::djinni::JniClass<NativeConstantEnum>;
};
} // namespace djinni_generated
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include "NativeConstantsInterface.hpp" // my header #include "NativeConstantsInterface.hpp" // my header
#include "Marshal.hpp" #include "Marshal.hpp"
#include "NativeConstantEnum.hpp"
#include "NativeConstantRecord.hpp" #include "NativeConstantRecord.hpp"
namespace djinni_generated { namespace djinni_generated {
......
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#include "constant_enum.hpp"
#import "DJIMarshal+Private.h"
// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni
#import <Foundation/Foundation.h>
/** enum for use in constants */
typedef NS_ENUM(NSInteger, DBConstantEnum)
{
DBConstantEnumSomeValue,
DBConstantEnumSomeOtherValue,
};
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
// This file generated by Djinni from constants.djinni // This file generated by Djinni from constants.djinni
#import "DBConstants+Private.h" #import "DBConstants+Private.h"
#import "DBConstantEnum+Private.h"
#import "DBConstantRecord+Private.h" #import "DBConstantRecord+Private.h"
#import "DJIMarshal+Private.h" #import "DJIMarshal+Private.h"
#include <cassert> #include <cassert>
......
// AUTOGENERATED FILE - DO NOT MODIFY! // AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni // This file generated by Djinni from constants.djinni
#import "DBConstantEnum.h"
#import "DBConstantRecord.h" #import "DBConstantRecord.h"
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
...@@ -9,6 +10,7 @@ ...@@ -9,6 +10,7 @@
- (nonnull instancetype)init; - (nonnull instancetype)init;
+ (nonnull instancetype)constants; + (nonnull instancetype)constants;
+ (DBConstantEnum)constEnum;
+ (NSNumber * __nullable)optBoolConstant; + (NSNumber * __nullable)optBoolConstant;
+ (NSNumber * __nullable)optI8Constant; + (NSNumber * __nullable)optI8Constant;
/** opt_i16_constant has documentation. */ /** opt_i16_constant has documentation. */
......
...@@ -38,6 +38,12 @@ BOOL const DBConstantsDummy = NO; ...@@ -38,6 +38,12 @@ BOOL const DBConstantsDummy = NO;
return [[self alloc] init]; return [[self alloc] init];
} }
+ (DBConstantEnum)constEnum
{
static DBConstantEnum const s_constEnum = DBConstantEnumSomeValue;
return s_constEnum;
}
+ (NSNumber * __nullable)optBoolConstant + (NSNumber * __nullable)optBoolConstant
{ {
static NSNumber * const s_optBoolConstant = @YES; static NSNumber * const s_optBoolConstant = @YES;
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#import "DBConstantsInterface+Private.h" #import "DBConstantsInterface+Private.h"
#import "DBConstantsInterface.h" #import "DBConstantsInterface.h"
#import "DBConstantEnum+Private.h"
#import "DBConstantRecord+Private.h" #import "DBConstantRecord+Private.h"
#import "DJICppWrapperCache+Private.h" #import "DJICppWrapperCache+Private.h"
#import "DJIError.h" #import "DJIError.h"
...@@ -37,6 +38,12 @@ static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for th ...@@ -37,6 +38,12 @@ static_assert(__has_feature(objc_arc), "Djinni requires ARC to be enabled for th
} DJINNI_TRANSLATE_EXCEPTIONS() } DJINNI_TRANSLATE_EXCEPTIONS()
} }
+ (DBConstantEnum)constEnum
{
static DBConstantEnum const s_constEnum = DBConstantEnumSomeValue;
return s_constEnum;
}
+ (NSNumber * __nullable)optBoolConstant + (NSNumber * __nullable)optBoolConstant
{ {
static NSNumber * const s_optBoolConstant = @YES; static NSNumber * const s_optBoolConstant = @YES;
......
// AUTOGENERATED FILE - DO NOT MODIFY! // AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from constants.djinni // This file generated by Djinni from constants.djinni
#import "DBConstantEnum.h"
#import "DBConstantRecord.h" #import "DBConstantRecord.h"
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>
...@@ -30,6 +31,7 @@ extern NSString * __nullable const DBConstantsInterfaceOptStringConstant; ...@@ -30,6 +31,7 @@ extern NSString * __nullable const DBConstantsInterfaceOptStringConstant;
*/ */
- (void)dummy; - (void)dummy;
+ (DBConstantEnum)constEnum;
+ (NSNumber * __nullable)optBoolConstant; + (NSNumber * __nullable)optBoolConstant;
+ (NSNumber * __nullable)optI8Constant; + (NSNumber * __nullable)optI8Constant;
/** opt_i16_constant has documentation. */ /** opt_i16_constant has documentation. */
......
...@@ -24,6 +24,7 @@ djinni-output-temp/cpp/second_listener.hpp ...@@ -24,6 +24,7 @@ djinni-output-temp/cpp/second_listener.hpp
djinni-output-temp/cpp/listener_caller.hpp djinni-output-temp/cpp/listener_caller.hpp
djinni-output-temp/cpp/return_one.hpp djinni-output-temp/cpp/return_one.hpp
djinni-output-temp/cpp/return_two.hpp djinni-output-temp/cpp/return_two.hpp
djinni-output-temp/cpp/constant_enum.hpp
djinni-output-temp/cpp/constant_record.hpp djinni-output-temp/cpp/constant_record.hpp
djinni-output-temp/cpp/constants.hpp djinni-output-temp/cpp/constants.hpp
djinni-output-temp/cpp/constants.cpp djinni-output-temp/cpp/constants.cpp
...@@ -73,6 +74,7 @@ djinni-output-temp/java/SecondListener.java ...@@ -73,6 +74,7 @@ djinni-output-temp/java/SecondListener.java
djinni-output-temp/java/ListenerCaller.java djinni-output-temp/java/ListenerCaller.java
djinni-output-temp/java/ReturnOne.java djinni-output-temp/java/ReturnOne.java
djinni-output-temp/java/ReturnTwo.java djinni-output-temp/java/ReturnTwo.java
djinni-output-temp/java/ConstantEnum.java
djinni-output-temp/java/ConstantRecord.java djinni-output-temp/java/ConstantRecord.java
djinni-output-temp/java/Constants.java djinni-output-temp/java/Constants.java
djinni-output-temp/java/ConstantsInterface.java djinni-output-temp/java/ConstantsInterface.java
...@@ -136,6 +138,7 @@ djinni-output-temp/jni/NativeReturnOne.hpp ...@@ -136,6 +138,7 @@ djinni-output-temp/jni/NativeReturnOne.hpp
djinni-output-temp/jni/NativeReturnOne.cpp djinni-output-temp/jni/NativeReturnOne.cpp
djinni-output-temp/jni/NativeReturnTwo.hpp djinni-output-temp/jni/NativeReturnTwo.hpp
djinni-output-temp/jni/NativeReturnTwo.cpp djinni-output-temp/jni/NativeReturnTwo.cpp
djinni-output-temp/jni/NativeConstantEnum.hpp
djinni-output-temp/jni/NativeConstantRecord.hpp djinni-output-temp/jni/NativeConstantRecord.hpp
djinni-output-temp/jni/NativeConstantRecord.cpp djinni-output-temp/jni/NativeConstantRecord.cpp
djinni-output-temp/jni/NativeConstants.hpp djinni-output-temp/jni/NativeConstants.hpp
...@@ -210,6 +213,7 @@ djinni-output-temp/objc/DBSecondListener.h ...@@ -210,6 +213,7 @@ djinni-output-temp/objc/DBSecondListener.h
djinni-output-temp/objc/DBListenerCaller.h djinni-output-temp/objc/DBListenerCaller.h
djinni-output-temp/objc/DBReturnOne.h djinni-output-temp/objc/DBReturnOne.h
djinni-output-temp/objc/DBReturnTwo.h djinni-output-temp/objc/DBReturnTwo.h
djinni-output-temp/objc/DBConstantEnum.h
djinni-output-temp/objc/DBConstantRecord.h djinni-output-temp/objc/DBConstantRecord.h
djinni-output-temp/objc/DBConstantRecord.mm djinni-output-temp/objc/DBConstantRecord.mm
djinni-output-temp/objc/DBConstants.h djinni-output-temp/objc/DBConstants.h
...@@ -287,6 +291,7 @@ djinni-output-temp/objc/DBReturnOne+Private.h ...@@ -287,6 +291,7 @@ djinni-output-temp/objc/DBReturnOne+Private.h
djinni-output-temp/objc/DBReturnOne+Private.mm djinni-output-temp/objc/DBReturnOne+Private.mm
djinni-output-temp/objc/DBReturnTwo+Private.h djinni-output-temp/objc/DBReturnTwo+Private.h
djinni-output-temp/objc/DBReturnTwo+Private.mm djinni-output-temp/objc/DBReturnTwo+Private.mm
djinni-output-temp/objc/DBConstantEnum+Private.h
djinni-output-temp/objc/DBConstantRecord+Private.h djinni-output-temp/objc/DBConstantRecord+Private.h
djinni-output-temp/objc/DBConstantRecord+Private.mm djinni-output-temp/objc/DBConstantRecord+Private.mm
djinni-output-temp/objc/DBConstants+Private.h djinni-output-temp/objc/DBConstants+Private.h
......
...@@ -438,6 +438,9 @@ ...@@ -438,6 +438,9 @@
CFFD58B01B041BD9001E10B6 /* DBConstantsInterface+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBConstantsInterface+Private.mm"; sourceTree = "<group>"; }; CFFD58B01B041BD9001E10B6 /* DBConstantsInterface+Private.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "DBConstantsInterface+Private.mm"; sourceTree = "<group>"; };
CFFD58B51B041BFD001E10B6 /* constants_interface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = constants_interface.cpp; sourceTree = "<group>"; }; CFFD58B51B041BFD001E10B6 /* constants_interface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = constants_interface.cpp; sourceTree = "<group>"; };
CFFD58B61B041BFD001E10B6 /* constants_interface.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = constants_interface.hpp; sourceTree = "<group>"; }; CFFD58B61B041BFD001E10B6 /* constants_interface.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = constants_interface.hpp; sourceTree = "<group>"; };
FAB1E3382024112400B8E3CC /* constant_enum.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = constant_enum.hpp; sourceTree = "<group>"; };
FAB1E3392024115900B8E3CC /* DBConstantEnum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DBConstantEnum.h; sourceTree = "<group>"; };
FAB1E33A2024115900B8E3CC /* DBConstantEnum+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "DBConstantEnum+Private.h"; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
...@@ -593,6 +596,8 @@ ...@@ -593,6 +596,8 @@
B5F06A711D4973BD005BE736 /* DBConflictUser.h */, B5F06A711D4973BD005BE736 /* DBConflictUser.h */,
B5F06A721D4973BD005BE736 /* DBConflictUser+Private.h */, B5F06A721D4973BD005BE736 /* DBConflictUser+Private.h */,
B5F06A731D4973BD005BE736 /* DBConflictUser+Private.mm */, B5F06A731D4973BD005BE736 /* DBConflictUser+Private.mm */,
FAB1E3392024115900B8E3CC /* DBConstantEnum.h */,
FAB1E33A2024115900B8E3CC /* DBConstantEnum+Private.h */,
B5D8FC321C23E2F40045ADCF /* DBConstantRecord.h */, B5D8FC321C23E2F40045ADCF /* DBConstantRecord.h */,
B5D8FC331C23E2F40045ADCF /* DBConstantRecord.mm */, B5D8FC331C23E2F40045ADCF /* DBConstantRecord.mm */,
B5D8FC341C23E2F40045ADCF /* DBConstantRecord+Private.h */, B5D8FC341C23E2F40045ADCF /* DBConstantRecord+Private.h */,
...@@ -748,31 +753,18 @@ ...@@ -748,31 +753,18 @@
A242495D1AF192FC003BF8F0 /* generated-cpp */ = { A242495D1AF192FC003BF8F0 /* generated-cpp */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
B58B16B21D5AD55B00EF92B5 /* record_using_extended_record.cpp */,
B58B16B31D5AD55B00EF92B5 /* interface_using_extended_record.cpp */,
B58B16A61D5AC9AD00EF92B5 /* record_using_extended_record.hpp */,
B58B16A71D5AC9AD00EF92B5 /* interface_using_extended_record.hpp */,
B51911471D555EDC00772DFE /* _varname_record_.hpp */,
B51911481D555EDC00772DFE /* _varname_interface_.hpp */, B51911481D555EDC00772DFE /* _varname_interface_.hpp */,
B51911191D542AEC00772DFE /* wchar_test_helpers.hpp */, B51911471D555EDC00772DFE /* _varname_record_.hpp */,
B5153F871D54282C00012654 /* wchar_test_rec.hpp */,
B5F06A9B1D4987C7005BE736 /* enum_usage_interface.hpp */,
B5F06A9C1D4987C7005BE736 /* enum_usage_record.hpp */,
B5F06A651D497396005BE736 /* conflict_user.hpp */,
B5F06A661D497396005BE736 /* Conflict.hpp */,
B5F06A681D497396005BE736 /* extended_record_base.cpp */,
B5F06A691D497396005BE736 /* extended_record_base.hpp */,
B5F06A6A1D497396005BE736 /* java_only_listener.hpp */,
B5F06A6B1D497396005BE736 /* objc_only_listener.hpp */,
B5F06A6C1D497396005BE736 /* uses_single_language_listeners.hpp */,
CFBBB8ED1B6E3A72002EF52F /* access_flags.hpp */, CFBBB8ED1B6E3A72002EF52F /* access_flags.hpp */,
B5D8FC381C23E30D0045ADCF /* constant_record.hpp */,
B5E9C93C1C1F9DCA0073C123 /* reverse_client_interface.hpp */,
B52DA56C1B103FBE005CE75F /* assorted_primitives.cpp */, B52DA56C1B103FBE005CE75F /* assorted_primitives.cpp */,
B52DA56D1B103FBE005CE75F /* assorted_primitives.hpp */, B52DA56D1B103FBE005CE75F /* assorted_primitives.hpp */,
A24249601AF192FC003BF8F0 /* client_interface.hpp */, A24249601AF192FC003BF8F0 /* client_interface.hpp */,
A24249611AF192FC003BF8F0 /* client_returned_record.hpp */, A24249611AF192FC003BF8F0 /* client_returned_record.hpp */,
A24249621AF192FC003BF8F0 /* color.hpp */, A24249621AF192FC003BF8F0 /* color.hpp */,
B5F06A651D497396005BE736 /* conflict_user.hpp */,
B5F06A661D497396005BE736 /* Conflict.hpp */,
FAB1E3382024112400B8E3CC /* constant_enum.hpp */,
B5D8FC381C23E30D0045ADCF /* constant_record.hpp */,
CFFD58B51B041BFD001E10B6 /* constants_interface.cpp */, CFFD58B51B041BFD001E10B6 /* constants_interface.cpp */,
CFFD58B61B041BFD001E10B6 /* constants_interface.hpp */, CFFD58B61B041BFD001E10B6 /* constants_interface.hpp */,
A24249631AF192FC003BF8F0 /* constants.cpp */, A24249631AF192FC003BF8F0 /* constants.cpp */,
...@@ -782,18 +774,28 @@ ...@@ -782,18 +774,28 @@
A24249661AF192FC003BF8F0 /* date_record.hpp */, A24249661AF192FC003BF8F0 /* date_record.hpp */,
CFBBB8E71B6E3747002EF52F /* empty_flags.hpp */, CFBBB8E71B6E3747002EF52F /* empty_flags.hpp */,
CFAED8771B54292600E3B8A3 /* empty_record.hpp */, CFAED8771B54292600E3B8A3 /* empty_record.hpp */,
B5F06A9B1D4987C7005BE736 /* enum_usage_interface.hpp */,
B5F06A9C1D4987C7005BE736 /* enum_usage_record.hpp */,
B5F06A681D497396005BE736 /* extended_record_base.cpp */,
B5F06A691D497396005BE736 /* extended_record_base.hpp */,
CFC5D9E01B1513D800BF2DF8 /* extern_interface_1.hpp */, CFC5D9E01B1513D800BF2DF8 /* extern_interface_1.hpp */,
CFC5D9E11B1513D800BF2DF8 /* extern_interface_2.hpp */, CFC5D9E11B1513D800BF2DF8 /* extern_interface_2.hpp */,
CFC5D9CE1B15105100BF2DF8 /* extern_record_with_derivings.cpp */, CFC5D9CE1B15105100BF2DF8 /* extern_record_with_derivings.cpp */,
CFC5D9CF1B15105100BF2DF8 /* extern_record_with_derivings.hpp */, CFC5D9CF1B15105100BF2DF8 /* extern_record_with_derivings.hpp */,
6551683A1C404B58003682A4 /* first_listener.hpp */, 6551683A1C404B58003682A4 /* first_listener.hpp */,
CFBBB8F41B6EF0A0002EF52F /* flag_roundtrip.hpp */, CFBBB8F41B6EF0A0002EF52F /* flag_roundtrip.hpp */,
B58B16B31D5AD55B00EF92B5 /* interface_using_extended_record.cpp */,
B58B16A71D5AC9AD00EF92B5 /* interface_using_extended_record.hpp */,
B5F06A6A1D497396005BE736 /* java_only_listener.hpp */,
650CA04E1C2AB460007ADDDB /* listener_caller.hpp */, 650CA04E1C2AB460007ADDDB /* listener_caller.hpp */,
A24249671AF192FC003BF8F0 /* map_date_record.hpp */, A24249671AF192FC003BF8F0 /* map_date_record.hpp */,
A24249681AF192FC003BF8F0 /* map_list_record.hpp */, A24249681AF192FC003BF8F0 /* map_list_record.hpp */,
A24249691AF192FC003BF8F0 /* map_record.hpp */, A24249691AF192FC003BF8F0 /* map_record.hpp */,
A242496A1AF192FC003BF8F0 /* nested_collection.hpp */, A242496A1AF192FC003BF8F0 /* nested_collection.hpp */,
B5F06A6B1D497396005BE736 /* objc_only_listener.hpp */,
A242496B1AF192FC003BF8F0 /* primitive_list.hpp */, A242496B1AF192FC003BF8F0 /* primitive_list.hpp */,
B58B16B21D5AD55B00EF92B5 /* record_using_extended_record.cpp */,
B58B16A61D5AC9AD00EF92B5 /* record_using_extended_record.hpp */,
A242496C1AF192FC003BF8F0 /* record_with_derivings.cpp */, A242496C1AF192FC003BF8F0 /* record_with_derivings.cpp */,
A242496D1AF192FC003BF8F0 /* record_with_derivings.hpp */, A242496D1AF192FC003BF8F0 /* record_with_derivings.hpp */,
CFC5DA0C1B15330000BF2DF8 /* record_with_duration_and_derivings.cpp */, CFC5DA0C1B15330000BF2DF8 /* record_with_duration_and_derivings.cpp */,
...@@ -803,11 +805,15 @@ ...@@ -803,11 +805,15 @@
A242496F1AF192FC003BF8F0 /* record_with_nested_derivings.hpp */, A242496F1AF192FC003BF8F0 /* record_with_nested_derivings.hpp */,
655168441C40508A003682A4 /* return_one.hpp */, 655168441C40508A003682A4 /* return_one.hpp */,
655168451C40508A003682A4 /* return_two.hpp */, 655168451C40508A003682A4 /* return_two.hpp */,
B5E9C93C1C1F9DCA0073C123 /* reverse_client_interface.hpp */,
6551683B1C404B58003682A4 /* second_listener.hpp */, 6551683B1C404B58003682A4 /* second_listener.hpp */,
A24249701AF192FC003BF8F0 /* set_record.hpp */, A24249701AF192FC003BF8F0 /* set_record.hpp */,
CFC5DA031B15319600BF2DF8 /* test_duration.hpp */, CFC5DA031B15319600BF2DF8 /* test_duration.hpp */,
A24249711AF192FC003BF8F0 /* test_helpers.hpp */, A24249711AF192FC003BF8F0 /* test_helpers.hpp */,
A24249721AF192FC003BF8F0 /* user_token.hpp */, A24249721AF192FC003BF8F0 /* user_token.hpp */,
B5F06A6C1D497396005BE736 /* uses_single_language_listeners.hpp */,
B51911191D542AEC00772DFE /* wchar_test_helpers.hpp */,
B5153F871D54282C00012654 /* wchar_test_rec.hpp */,
); );
name = "generated-cpp"; name = "generated-cpp";
path = "../generated-src/cpp"; path = "../generated-src/cpp";
......
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