include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/export/ ${CMAKE_BINARY_DIR}/export/ ${JNI_INCLUDE_DIRS} ) set(JNIOCIO_CLASSES # Core org.OpenColorIO.ExceptionBase org.OpenColorIO.ExceptionMissingFile org.OpenColorIO.Globals org.OpenColorIO.Config org.OpenColorIO.ColorSpace org.OpenColorIO.Processor org.OpenColorIO.GpuShaderDesc org.OpenColorIO.Context org.OpenColorIO.Look org.OpenColorIO.ImageDesc org.OpenColorIO.Transform org.OpenColorIO.PackedImageDesc org.OpenColorIO.PlanarImageDesc org.OpenColorIO.Baker # Enums org.OpenColorIO.LoggingLevel org.OpenColorIO.ColorSpaceDirection org.OpenColorIO.TransformDirection org.OpenColorIO.Interpolation org.OpenColorIO.BitDepth org.OpenColorIO.Allocation org.OpenColorIO.GpuLanguage org.OpenColorIO.EnvironmentMode # Transforms org.OpenColorIO.AllocationTransform org.OpenColorIO.CDLTransform org.OpenColorIO.ColorSpaceTransform org.OpenColorIO.DisplayTransform org.OpenColorIO.ExponentTransform org.OpenColorIO.FileTransform org.OpenColorIO.GroupTransform org.OpenColorIO.LogTransform org.OpenColorIO.LookTransform org.OpenColorIO.MatrixTransform org.OpenColorIO.TruelightTransform ) file(GLOB JNIOCIO_JAVAS "org/OpenColorIO/*.java") message(STATUS "Creating Jar Manifest.txt") configure_file(${CMAKE_SOURCE_DIR}/src/jniglue/Manifest.txt.in ${CMAKE_CURRENT_BINARY_DIR}/Manifest.txt @ONLY) message(STATUS "Creating LoadLibrary.java") configure_file(${CMAKE_SOURCE_DIR}/src/jniglue/LoadLibrary.java.in ${CMAKE_CURRENT_BINARY_DIR}/LoadLibrary.java @ONLY) list(APPEND JNIOCIO_JAVAS ${CMAKE_CURRENT_BINARY_DIR}/LoadLibrary.java) set(JNIOCIO_HEADERS) set(JNIOCIO_H_INCLUDE "/* DO NOT EDIT THIS FILE - it is machine generated */\n\n") foreach(_CLASS ${JNIOCIO_CLASSES}) string(REPLACE "." "_" _CLASS_H ${_CLASS}) set(_CLASS_H "${_CLASS_H}.h") set(JNIOCIO_HEADERS ${JNIOCIO_HEADERS} "${_CLASS_H}") set(JNIOCIO_H_INCLUDE "${JNIOCIO_H_INCLUDE}#include \"${_CLASS_H}\"\n") endforeach() message(STATUS "Creating OpenColorIOJNI.h that includes all the ocio jni headers") file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/OpenColorIOJNI.h" "${JNIOCIO_H_INCLUDE}") set(JNIOCIO_JAR "${CMAKE_CURRENT_BINARY_DIR}/OpenColorIO-${OCIO_VERSION}.jar") add_custom_command(OUTPUT ${JNIOCIO_HEADERS} COMMAND cmake -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/org/OpenColorIO COMMAND ${Java_JAVAC_EXECUTABLE} -cp ${CMAKE_CURRENT_BINARY_DIR} -d ${CMAKE_CURRENT_BINARY_DIR} ${JNIOCIO_JAVAS} COMMAND ${Java_JAVAH_EXECUTABLE} -jni -force ${JNIOCIO_CLASSES} COMMAND ${Java_JAR_EXECUTABLE} vcfm ${JNIOCIO_JAR} Manifest.txt org IMPLICIT_DEPENDS ${JNIOCIO_JAVAS} COMMENT "Compiling .java files, packaged .jar and creating jni C headers") file(GLOB JNIOCIO_SRC "*.cpp") add_library(OpenColorIO-JNI SHARED ${JNIOCIO_SRC} ${JNIOCIO_HEADERS}) set_target_properties(OpenColorIO-JNI PROPERTIES VERSION ${OCIO_VERSION} SOVERSION ${SOVERSION}) if(OCIO_STATIC_JNIGLUE) target_link_libraries(OpenColorIO-JNI OpenColorIO_STATIC) else() target_link_libraries(OpenColorIO-JNI OpenColorIO) endif() add_subdirectory(tests) install(TARGETS OpenColorIO-JNI EXPORT OpenColorIO DESTINATION ${CMAKE_INSTALL_EXEC_PREFIX}/lib${LIB_SUFFIX}) install(FILES ${JNIOCIO_JAR} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/ocio/)