iTA9178 / HelloWorld_Using_Djinni

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Here is the djinni tutorial step by step.
http://mobilecpptutorials.com/cross-platform-cplusplus-dev-setup-on-os-x-yosemite/

1. The deps folder is generated by following commands:
————————————————————————————————————————————————————————————————————————————
git init
git submodule add https://github.com/dropbox/djinni.git deps/djinni
git submodule add https://chromium.googlesource.com/external/gyp.git deps/gyp
We actually need an older version of GYP to build Android files. To do this, we need to cd into deps/gyp and specify a commit:
cd deps/gyp
git checkout -q 0bb67471bca068996e15b56738fa4824dfa19de0
————————————————————————————————————————————————————————————————————————————

2. Setup the Djinni file
————————————————————————————————————————————————————————————————————————————
(ProjectRoot)/helloworld.djinni

hello_world = interface +c {
	static create(): hello_world;
	get_hello_world(): string;
}
————————————————————————————————————————————————————————————————————————————


3. Create the Djinni Shell Script
————————————————————————————————————————————————————————————————————————————
#! /usr/bin/env bash

base_dir=$(cd "`dirname "0"`" && pwd)
cpp_out="$base_dir/generated-src/cpp"
jni_out="$base_dir/generated-src/jni"
objc_out="$base_dir/generated-src/objc"
java_out="$base_dir/generated-src/java/com/mycompany/helloworld"
java_package="com.mycompany.helloworld"
namespace="helloworld"
objc_prefix="HW"
djinni_file="helloworld.djinni"

deps/djinni/src/run \
   --java-out $java_out \
   --java-package $java_package \
   --ident-java-field mFooBar \
   \
   --cpp-out $cpp_out \
   --cpp-namespace $namespace \
   \
   --jni-out $jni_out \
   --ident-jni-class NativeFooBar \
   --ident-jni-file NativeFooBar \
   \
   --objc-out $objc_out \
   --objc-type-prefix $objc_prefix \
   \
   --objcpp-out $objc_out \
   \
   --idl $djinni_file
————————————————————————————————————————————————————————————————————————————


4. Run the above script
————————————————————————————————————————————————————————————————————————————
sh ./run_djinni.sh

Building Djinni...
[info] Loading project definition from /Users/albert.gu/Desktop/Work/Test/Djinni_Demo/deps/djinni/src/project
[info] Updating {file:/Users/albert.gu/Desktop/Work/Test/Djinni_Demo/deps/djinni/src/project/}src-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to src (in build file:/Users/albert.gu/Desktop/Work/Test/Djinni_Demo/deps/djinni/src/)
[info] Updating {file:/Users/albert.gu/Desktop/Work/Test/Djinni_Demo/deps/djinni/src/}src...
[info] Resolving jline#jline;2.11 ...
[info] Done updating.
[info] Compiling 21 Scala sources to /Users/albert.gu/Desktop/Work/Test/Djinni_Demo/deps/djinni/src/target/scala-2.11/classes...
[success] Total time: 20 s, completed Aug 2, 2016 4:55:22 PM
[info] Wrote start script for mainClass := Some(djinni.Main) to /Users/albert.gu/Desktop/Work/Test/Djinni_Demo/deps/djinni/src/target/start
[success] Total time: 0 s, completed Aug 2, 2016 4:55:23 PM
Parsing...
Resolving...
Generating...
————————————————————————————————————————————————————————————————————————————

5. Write Our C++ ‘Back-end’ Code
————————————————————————————————————————————————————————————————————————————







About


Languages

Language:C++ 31.3%Language:Objective-C 27.7%Language:Java 16.5%Language:Objective-C++ 12.9%Language:Python 5.2%Language:Makefile 3.9%Language:Shell 2.6%