File: CMakeLists.txt

package info (click to toggle)
f3d 3.1.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 23,504 kB
  • sloc: cpp: 99,106; python: 758; sh: 342; xml: 223; java: 101; javascript: 95; makefile: 25
file content (50 lines) | stat: -rw-r--r-- 1,328 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
find_package(Java REQUIRED)
message(STATUS "Bindings: Java: Java ${Java_VERSION} found")
include(UseJava)

# With Android NDK, JNI is automatically found
if (NOT ANDROID)
  find_package(JNI REQUIRED)
  message(STATUS "Bindings: Java: JNI found")
endif()

set(F3D_JAVA_SOURCES
  Camera.java
  Engine.java
  Options.java
  Scene.java
  Window.java)

# Generate JNI headers, and builds a JAR package
set(CMAKE_JAVA_COMPILE_FLAGS -source 8 -target 8)
add_jar(f3d-jar ${F3D_JAVA_SOURCES}
  GENERATE_NATIVE_HEADERS f3d-jni-headers
  OUTPUT_NAME f3d)

add_library(javaf3d SHARED F3DJavaBindings.cxx)
target_link_libraries(javaf3d PRIVATE f3d-jni-headers)

target_include_directories(javaf3d PRIVATE ${JNI_INCLUDE_DIRS})
target_link_libraries(javaf3d PRIVATE libf3d ${JNI_LIBRARIES})

if(UNIX)
  # Set this option to detect mismatch in function implementation and headers
  # automatically generated by javac
  target_compile_options(javaf3d PRIVATE "-Werror=missing-declarations")
endif()

set_target_properties(javaf3d PROPERTIES
  CXX_VISIBILITY_PRESET hidden
  CXX_STANDARD 17
  OUTPUT_NAME "f3d-java"
  )

# Testing
if(BUILD_TESTING)
  add_subdirectory(testing)
endif()

# Installing
install(TARGETS javaf3d
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT java)
install_jar(f3d-jar DESTINATION "share/java" COMPONENT java)