Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mirror of dropbox djinni#248 #15

Closed
wants to merge 3 commits into from
Closed

Mirror of dropbox djinni#248 #15

wants to merge 3 commits into from

Conversation

TomMD
Copy link
Owner

@TomMD TomMD commented May 16, 2018

Mirror of dropbox djinni#248
I have added a CMakeLists.txt that allows building the support-lib with CMake. The target name is djinni and it comes with a few options:

  • DJINNI_WITH_OBJC adds the Objective-C support files to the target
  • DJINNI_WITH_JNI adds the JNI support files to the target
  • DJINNI_FRAMEWORK builds the library as a .framework on Apple systems
  • DJINNI_STATIC_LIB builds Djinni as a static library instead of the default dynamic

There is nothing stopping you from having a single djinni library that contains both language support bindings if you're doing desktop work. The default library type is SHARED to make sure the JNI_OnLoad and JNI_OnUnload entry points are present. This has led to confusion in the past. If you chose to turn DJINNI_STATIC_LIB on it is your job to call jniInit() and jniShutdown() appropriately.

Because the CXX_STANDARD property cannot be propagated to consuming targets it needs to be set to >= 11 manually there.

The cache variable DJINNI_RUN_PATH is set to the location of Djinni's run script so it can be passed as argument to add_custom_command()-based generator scripts.

Note this includes the changes of dropbox#281 because it depends on its new file structure to make sure building from the repository and from an installed binary are source compatible.

mknejp added 3 commits May 16, 2018 14:52
This separation of public and private headers allows users to specify
"support-lib/include/" as obvious header search path and then use
"#include <djinni/...>" as reliable include prefix. This also gives a
sensible default for all the "--xxx-base-lib-include-prefix" values.
Adds the target "djinni" with the options DJINNI_WITH_OBJC,
DJINNI_WITH_JNI and DJINNI_FRAMEWORK.

Sets the cache variable DINNI_RUN_PATH to the location of the "run"
generator script.
@sonatype-lift
Copy link

sonatype-lift bot commented May 16, 2018

Infer analysis failed

External Process Failed

bear make
STDOUT
cd src && ./build
Building Djinni...
Waiting for lock on /home/infer/.sbt/boot/sbt.boot.lock to be available...
�[0m[�[0minfo�[0m] �[0mLoading project definition from /tmp/inferring-818704adc0a41e8b/code/src/project�[0m
�[0m[�[0minfo�[0m] �[0mUpdating {file:/tmp/inferring-818704adc0a41e8b/code/src/project/}src-build...�[0m
Waiting for lock on /home/infer/.ivy2/.sbt.ivy.lock to be available...
�[0m[�[0minfo�[0m] �[0mResolving com.typesafe.sbt#sbt-start-script;0.10.0 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-lang#scala-library;2.10.4 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#sbt;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#main;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#actions;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#classpath;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-lang#scala-compiler;2.10.4 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-lang#scala-reflect;2.10.4 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#launcher-interface;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#interface;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#io;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#control;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#completion;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#collections;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving jline#jline;2.11 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#api;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#compiler-integration;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#incremental-compiler;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#logging;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#process;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#relation;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#compile;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#persist;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-tools.sbinary#sbinary_2.10;0.4.2 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#classfile;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#compiler-ivy-integration;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#ivy;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#cross;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.apache.ivy#ivy;2.3.0 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving com.jcraft#jsch;0.1.46 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#run;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#task-system;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#tasks;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#tracking;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#cache;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#testing;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#test-agent;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#test-interface;1.0 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#main-settings;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#apply-macro;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#command;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#logic;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#compiler-interface;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#precompiled-2_8_2;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#precompiled-2_9_2;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-sbt#precompiled-2_9_3;0.13.5 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-lang#jline;2.10.4 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.fusesource.jansi#jansi;1.4 ...�[0m
�[0m[�[0minfo�[0m] �[0mDone updating.�[0m
�[0m[�[0minfo�[0m] �[0mSet current project to src (in build file:/tmp/inferring-818704adc0a41e8b/code/src/)�[0m
�[0m[�[0minfo�[0m] �[0mUpdating {file:/tmp/inferring-818704adc0a41e8b/code/src/}src...�[0m
Waiting for lock on /home/infer/.ivy2/.sbt.ivy.lock to be available...
�[0m[�[0minfo�[0m] �[0mResolving org.scala-lang#scala-library;2.11.0 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-lang.modules#scala-parser-combinators_2.11;1.0.1 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.yaml#snakeyaml;1.15 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving com.github.scopt#scopt_2.11;3.2.0 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-lang#scala-compiler;2.11.0 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-lang#scala-reflect;2.11.0 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving org.scala-lang.modules#scala-xml_2.11;1.0.1 ...�[0m

�M�[2K�[0m[�[0minfo�[0m] �[0mResolving jline#jline;2.11 ...�[0m
�[0m[�[0minfo�[0m] �[0mDone updating.�[0m
�[0m[�[0minfo�[0m] �[0mCompiling 21 Scala sources to /tmp/inferring-818704adc0a41e8b/code/src/target/scala-2.11/classes...�[0m
Waiting for lock on /home/infer/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/sbt.components.lock to be available...
Waiting for lock on /home/infer/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/sbt.components.lock to be available...
�[0m[�[32msuccess�[0m] �[0mTotal time: 223 s, completed May 16, 2018 2:59:47 PM�[0m
�[0m[�[0minfo�[0m] �[0mWrote start script for mainClass := Some(djinni.Main) to /tmp/inferring-818704adc0a41e8b/code/src/target/start�[0m
�[0m[�[32msuccess�[0m] �[0mTotal time: 1 s, completed May 16, 2018 2:59:48 PM�[0m
git clone https://chromium.googlesource.com/external/gyp.git ./deps/gyp
cd deps/gyp && git checkout -q 0bb67471bca068996e15b56738fa4824dfa19de0
./example/run_djinni.sh
Already up to date: Djinni
Parsing...
Resolving...
Generating...
Copying generated code to final directories...
djinni completed.
deps/gyp/gyp --depth=. -f xcode -DOS=ios --generator-output ./build_ios -Icommon.gypi example/libtextsort.gyp
xcodebuild -workspace example/objc/TextSort.xcworkspace
-scheme TextSort
-configuration 'Debug'
-sdk iphonesimulator
-destination 'platform=iOS Simulator,name=iPhone 6s,OS=9.3'
Makefile:44: recipe for target 'example_ios' failed

STDERR
Cloning into './deps/gyp'...
make: xcodebuild: Command not found
make: *** [example_ios] Error 127

@TomMD TomMD closed this Jun 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants