WalkerKnapp / devolay

A Java binding for the Newtek NDI(tm) SDK.
Apache License 2.0
56 stars 17 forks source link

OSX Version / Java Version #10

Closed RomainAl closed 4 years ago

RomainAl commented 4 years ago

Hi ! Thanks a lot for this ! For 2 days, I have tried everything to use this library with Processing 3... and whatever I do, there is a problem... I notice that I'm an artist, not a professional programmer, I think it's important ;-)

When I'm trying .jar (of the last version of Devolay), Processing (and Eclipse too) tell me that I haven't got the good version of OSX (I'm using the 10.14.6, seems 10.15 for your build)...

And when I'm tryin older version, Processing return me a java version problem (java 8 for Processing, 9 for your .jar) !

Can I do something myself to build Devolay for my OSX version ? But I don't know how...

Thanks

WalkerKnapp commented 4 years ago

Hi, and sorry for the slow response.

This is a little bit of a tough one to solve. I don't have access to a machine running OSX 1.14, and cross-compilation on a linux machine won't work until https://github.com/gradle/gradle/pull/10024 gets merged into the gradle native plugin. However, the commit I just pushed might allow you to build a version yourself on older OSX versions than 10.15. I can't test it, but try running the following commands on your machine: git clone https://github.com/WalkerKnapp/devolay.git gradlew devolay-java:assemble and see if there are any issues. If there are none, it will place a built jar file in the devolay-java/build/libs path (make sure you use the one without -javadoc or -sources on the end of the name). If there are issues, just get back to me and I can try to resolve them as soon as possible.

Thanks for letting me know about the issue, and I hope this works.

RomainAl commented 4 years ago

Hi, thx for your answer ! I'm trying to do what you tell me, but at step :

./gradlew devolay-java:assemble

Terminal tell me :

FAILURE: Build failed with an exception.

  • What went wrong: Could not initialize class org.codehaus.groovy.runtime.InvokerHelper

  • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 419ms

NOTA : I'm on my "OS X Catalina 10.15" partition, for which your .jar is ok... but I would try here before to do that on my Mojave 10.14 partition...

WalkerKnapp commented 4 years ago

This looks like an incompatibility with JDK 14. I bumped the version for the gradle wrapper to one that should support it. Try deleting the folder and following the same steps now.

RomainAl commented 4 years ago

Downloading https://services.gradle.org/distributions-snapshots/gradle-6.4-20200329220053+0000-bin.zip .........10%..........20%..........30%.........40%..........50%..........60%..........70%.........80%..........90%..........100%

Welcome to Gradle 6.4-20200329220053+0000!

Starting a Gradle Daemon (subsequent builds will be faster)

Configure project :devolay-java null

Configure project :devolay-natives Including JNI Path Linking/Including NDI(tm) SDK Path

FAILURE: Build failed with an exception.

  • Where: Build file '/Users/romainal/devolay/devolay-natives/build.gradle' line: 49

  • What went wrong: A problem occurred configuring project ':devolay-natives'.

    NDI SDK not found: NDI_SDK_DIR environment variable does not exist.

  • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

WalkerKnapp commented 4 years ago

This is saying Gradle can't find your NDI SDK install. Sometimes for MacOS I found I had to run export NDI_SDK_DIR="/Library/NDI SDK for MacOS". Try doing that before any of the other commands. That also might not be the path of your NDI SDK, so check to make sure it exists there and adjust if you need to.

RomainAl commented 4 years ago

Cool it seems greet and successfully 👍 now ... Maybe because of your "export .." line I run... maybe too because I rename my "NDI SDK for Apple" folder to your name "NDI SDK for MacOS"... but, it seems ok :

Configure project :devolay-java null

Configure project :devolay-natives Including JNI Path Linking/Including NDI(tm) SDK Path Including JNI Path Linking/Including NDI(tm) SDK Path

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/6.4-20200329220053+0000/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 4s 6 actionable tasks: 6 executed

I will try that on my Moyave 10.14 partition soon ! Thx and seen you soon ;-)

RomainAl commented 4 years ago

Hi ! This is the error when I try to do that on my Moyave 10.14.6 partition:

Configure project :devolay-java null

Configure project :devolay-natives Including JNI Path Linking/Including NDI(tm) SDK Path Including JNI Path Linking/Including NDI(tm) SDK Path

Task :devolay-natives:compileDebugCpp FAILED clang: warning: -lstdc++fs: 'linker' input unused [-Wunused-command-line-argument] /Users/romainal/devolay/devolay-natives/src/main/cpp/devolay.cpp:38:6: error: "C++17 support no found. Please update your compiler to the latest version."

error "C++17 support no found. Please update your compiler to the latest version."

^ /Users/romainal/devolay/devolay-natives/src/main/cpp/devolay.cpp:45:14: fatal error: 'filesystem' file not found

include

^~~~ 2 errors generated.

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':devolay-natives:compileDebugCpp'.

    A build operation failed. C++ compiler failed while compiling devolay.cpp. See the complete log at: file:///Users/romainal/devolay/devolay-natives/build/tmp/compileDebugCpp/output.txt C++ compiler failed while compiling devolay.cpp.

  • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/6.4-20200329220053+0000/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 1s 3 actionable tasks: 2 executed, 1 up-to-date

WalkerKnapp commented 4 years ago

I'm sorry again about the delay, but I finally got a hold of an OSX 10.14 machine. It looks like Apple doesn't provide c++17 support at all to 10.14, so I added a fallback library in the latest commits. It should now compile if you pull the latest sources and try again.

RomainAl commented 4 years ago

Hi you and thx for replying ! I'm using you Devolay library with my Catalina partition in order to pass video in Processing Java library on Resolume software in another computer ,and it seems work very well, thank you very much for your job !

But about Moyave, I still have error when I'm trying too compile :

macbook-pro-de-romain:devolay romainal$ ./gradlew devolay-java:assemble

Configure project :devolay-java null

Configure project :devolay-natives Including JNI Path Linking/Including NDI(tm) SDK Path Including JNI Path Linking/Including NDI(tm) SDK Path

Task :devolay-natives:compileDebugCpp FAILED clang: warning: -lstdc++fs: 'linker' input unused [-Wunused-command-line-argument] /Users/romainal/devolay/devolay-natives/src/main/cpp/devolay.cpp:27:14: fatal error: 'ghc/filesystem.hpp' file not found

include <ghc/filesystem.hpp>

^~~~~~~~ 1 error generated.

FAILURE: Build failed with an exception.

  • What went wrong: Execution failed for task ':devolay-natives:compileDebugCpp'.

    A build operation failed. C++ compiler failed while compiling devolay.cpp. See the complete log at: file:///Users/romainal/devolay/devolay-natives/build/tmp/compileDebugCpp/output.txt C++ compiler failed while compiling devolay.cpp.

  • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/6.4-20200329220053+0000/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 1s 4 actionable tasks: 2 executed, 2 up-to-date

arisprung commented 4 years ago

Getting this error on Mac for NDI SDK for Apple. Any idea?

FAILURE: Build failed with an exception.

WalkerKnapp commented 4 years ago

What tasks are run when you execute gradlew :devolay-natives:assembleNatives? Are any files created in devolay-natives/build/lib/main?

arisprung commented 4 years ago

il-aris-mbp:devolay ari.sprung$ ./gradlew :devolay-natives:assembleNatives Starting a Gradle Daemon, 3 incompatible Daemons could not be reused, use --status for details

Configure project :devolay-java null

Task :devolay-natives:downloadNativeDependencies Download https://github.com/gulrak/filesystem/releases/download/v1.3.2/filesystem.hpp

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/6.7-20200901040000+0000/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 44s 8 actionable tasks: 8 executed il-aris-mbp:devolay ari.sprung$

arisprung commented 4 years ago

Thanks it worked! One other question is where can I find an example of sending NDI stream out to RTMP?

WalkerKnapp commented 4 years ago

As an update for this issue, I have recently completely revamped the build system, so these issues shouldn't occur anymore. Please open a new issue if they pop up again.