# This is a CMake example for Java

cmake_minimum_required(VERSION 2.8.7)

FIND_PACKAGE(SWIG 2.0 REQUIRED)
FIND_PACKAGE(Java REQUIRED)
FIND_PACKAGE(JNI REQUIRED)
INCLUDE(${SWIG_USE_FILE})

SET(CLASS_DIR "class")

INCLUDE_DIRECTORIES(${JNI_INCLUDE_DIRS})
#INCLUDE_DIRECTORIES(${JAVA_INCLUDE_PATH})
#INCLUDE_DIRECTORIES(${JAVA_INCLUDE_PATH2})

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/libsbmlsim ${LIBSBML_INCLUDE_DIR})

SET(CMAKE_SWIG_FLAGS "")

SET_SOURCE_FILES_PROPERTIES(libsbmlsim.i PROPERTIES CPLUSPLUS OFF)
SET_SOURCE_FILES_PROPERTIES(libsbmlsim.i PROPERTIES SWIG_FLAGS "-includeall")
SET(CMAKE_SWIG_FLAGS ${CMAKE_SWIG_FLAGS} -package jp.ac.keio.bio.fun.libsbmlsim)
IF(${CMAKE_VERSION} VERSION_LESS "3.8.0")
  SWIG_ADD_MODULE(sbmlsimj java libsbmlsim.i ${SOURCES_LIB})
ELSE()
  SWIG_ADD_LIBRARY(sbmlsimj
    LANGUAGE java
    SOURCES libsbmlsim.i ${SOURCES_LIB})
ENDIF()
SWIG_LINK_LIBRARIES(sbmlsimj ${LIBSBML_LIBRARIES})

file(COPY ${PROJECT_SOURCE_DIR}/examples/java/README.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
file(COPY ${PROJECT_SOURCE_DIR}/examples/sample.xml DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/../)

# Install targets
INSTALL(FILES ${PROJECT_SOURCE_DIR}/examples/java/Test.java ${PROJECT_SOURCE_DIR}/examples/java/README.txt ${CMAKE_CURRENT_BINARY_DIR}/libsbmlsimj.jar DESTINATION share/libsbmlsim/java)
INSTALL(TARGETS sbmlsimj
  LIBRARY DESTINATION share/libsbmlsim/java
  ARCHIVE DESTINATION share/libsbmlsim/java
  )

ADD_CUSTOM_COMMAND(TARGET sbmlsimj
  POST_BUILD
  COMMAND cmake -E echo "Compiling Java files..."
  COMMAND cmake -E make_directory ${CLASS_DIR}
  COMMAND ${Java_JAVAC_EXECUTABLE} *.java -d ${CLASS_DIR} 
  COMMAND cmake -E echo "Creating jar file..."
  COMMAND ${Java_JAR_EXECUTABLE} cvf libsbmlsimj.jar -C ${CLASS_DIR} jp
  #  COMMAND cmake -E echo "Copying test file..."
  #  COMMAND cmake -E copy ${PROJECT_SOURCE_DIR}/examples/java/Test.java ${CMAKE_CURRENT_BINARY_DIR}
  )

