File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -35,6 +35,7 @@ option( KTX_FEATURE_DOC "Create KTX documentation" OFF )
3535option ( KTX_FEATURE_LOADTEST_APPS "Create load tests apps that load and display various KTX textures" OFF )
3636option ( KTX_FEATURE_STATIC_LIBRARY "Create static libraries (shared otherwise)" ${LIB_TYPE_DEFAULT} )
3737option ( KTX_FEATURE_TESTS "Create unit tests" ON )
38+ option ( KTX_FEATURE_JNI "Create Java bindings for libktx" OFF )
3839
3940set_target_processor_type (CPU_ARCHITECTURE )
4041if (CPU_ARCHITECTURE STREQUAL x86_64 OR CPU_ARCHITECTURE STREQUAL x86)
@@ -883,3 +884,5 @@ endif()
883884# endif()
884885
885886include (CPack )
887+
888+ include (cmake/jni.cmake )
Original file line number Diff line number Diff line change 1+ # Copyright (c) 2021, Shukant Pal and Contributors
2+ # SPDX-License-Identifier: Apache-2.0
3+
4+ if (KTX_FEATURE_JNI)
5+ if (DEFINED ENV{JAVA_HOME})
6+ include_directories ($ENV{JAVA_HOME} /include )
7+
8+ if (APPLE )
9+ include_directories ($ENV{JAVA_HOME} /include/darwin )
10+ elseif (WIN32 )
11+ include_directories ($ENV{JAVA_HOME} /include/win32 )
12+ else ()
13+ include_directories ($ENV{JAVA_HOME} /include/linux )
14+ endif ()
15+
16+ add_library (ktx-jni SHARED
17+ interface /java_binding/src/main/cpp/KtxTexture.cpp
18+ interface /java_binding/src/main/cpp/KtxTexture1.cpp
19+ interface /java_binding/src/main/cpp/KtxTexture2.cpp
20+ interface /java_binding/src/main/cpp/libktx-jni.cpp
21+ )
22+
23+ target_include_directories (ktx-jni PRIVATE include )
24+
25+ target_link_libraries (ktx-jni ktx )
26+
27+ if (APPLE )
28+ set_target_properties (ktx-jni PROPERTIES
29+ XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME "YES"
30+ INSTALL_RPATH "@executable_path;/usr/local/lib"
31+ )
32+ endif ()
33+
34+ install (TARGETS ktx-jni LIBRARY )
35+ else ()
36+ message (FATAL_ERROR "JAVA_HOME is not set with KTX_FEATURE_JNI enabled! Turn it off to skip this." )
37+ endif ()
38+ endif ()
You can’t perform that action at this time.
0 commit comments