macro_optional_find_package(Java ON)

 find_package(Java COMPONENTS Runtime Development)
 #find_package(Java COMPONENTS Runtime)

macro_log_feature (Java_Development_FOUND "Java"
    "Use Java System"
    "http://www.java.org" FALSE)
macro_optional_find_package(JNI ON)
    macro_log_feature (JNI_FOUND "JNI"
    "Use Java Native Interface"
    "http://www.java.org" FALSE)


if (Java_Development_FOUND)

    include ( UseJava  )
    include ( UseSWIG  )


  #  SET(CMAKE_SWIG_FLAGS -package YAP)

    set (CMAKE_SWIG_OUTDIR  ${CMAKE_CURRENT_BINARY_DIR} )

    SET(SWIG_SOURCES
      ../yap.i
      )

   #set (CMAKE_JAVA_CLASS_OUTPUT_PATH java)


    SET_SOURCE_FILES_PROPERTIES(${SWIG_SOURCES} PROPERTIES CPLUSPLUS ON)


  include_directories (
    ${CMAKE_SOURCE_DIR}/CXX
    ${JAVA_INCLUDE_DIRS}
    ${JNI_INCLUDE_DIRS}
      )

    if ( ${C_COMPILER} MATCHES "Clang")
      set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-prototypes")
    endif()
    if ( ${C_COMPILER} MATCHES "GNU")
      set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-declarations")
    endif()
    #SET(CMAKE_SWIG_FLAGS "${CMAKE_SWIG_FLAGS} ")

    SWIG_ADD_MODULE(Native java ${SWIG_SOURCES}
	   )

	add_dependencies(Native Yap++ )
	 
    SWIG_LINK_LIBRARIES (Native Yap++ )
      

   set(CMAKE_JNI_TARGET 1)
    ADD_JAR( NativeJar
      SOURCES "../../../misc/icons/yap_16x16x32.png"
      DEPENDS Native
      PROPERTIES OUTPUT_NAME Native
      )
    install_jar(NativeJar ${libpl})
    	add_dependencies(NativeJar Native )
    #install_jni_symlink(NativeJar  .)


    ADD_CUSTOM_COMMAND(TARGET NativeJar
      POST_BUILD
     COMMAND cmake -E echo "Compiling Java files..."
     COMMAND ${Java_JAVAC_EXECUTABLE} *.java -cp .
     COMMAND cmake -E echo "Creating jar file..."
     COMMAND ${Java_JAR_EXECUTABLE} -ufM Native.jar *.class
     )

   ADD_JAR( JavaYAP
     SOURCES "JavaYAP.java"
     ENTRY_POINT JavaYAP
     INCLUDE_JARS NativeJar )
   SET(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.8" "-target" "1.8")
install(    TARGETS Native  
    RUNTIME DESTINATION ${bindir}
    ARCHIVE  DESTINATION ${libdir}
    LIBRARY  DESTINATION ${libdir}
)

install_jar(JavaYAP ${libpl})
#install_jni_symlink(JavaYAP ${libpl})



 Endif (Java_Development_FOUND)