cmake_minimum_required(VERSION 2.8)

FIND_PACKAGE ( Java 1.6 )

# Since not all dashboard are running cmake 2.8.1, let's set the legacy variable
IF("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_LESS "2.8.1")
  SET(Java_JAVA_EXECUTABLE ${JAVA_RUNTIME})
  SET(Java_JAVAC_EXECUTABLE ${JAVA_COMPILE})
  SET(Java_JAR_EXECUTABLE ${JAVA_ARCHIVE})
ENDIF()

IF(NOT Java_JAVAC_EXECUTABLE)
  MESSAGE(STATUS "Skipping installation of CLI/Application/Java - Set Java_JAVAC_EXECUTABLE variable to fix the problem")
  RETURN()
ENDIF()

project(JISTCRUISE Java)

# If have the java compiler, try to compile the .java files
#IF ( Java_JAVAC_EXECUTABLE )
# message (STATUS "Java run time = ${Java_JAVA_EXECUTABLE}, compiler = ${Java_JAVAC_EXECUTABLE}, jar = ${Java_JAR_EXECUTABLE}")

SET (CLP JISTCRUISESource)

  # source files
#file(GLOB_RECURSE ${CLP}_SRCS_SEMICOLON RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.java)

#set (${CLP}_SRCS "")
#foreach (thisclass ${${CLP}_SRCS_SEMICOLON})
#  set (${CLP}_SRCS "${${CLP}_SRCS}\n${thisclass}")
#endforeach()
#MESSAGE ( STATUS "Globbed java files = ${${CLP}_SRCS}")
set (${CLP}_SRCS "edu/jhu/ece/iacl/plugins/segmentation/skull_strip/MedicAlgorithmSPECTRE2010.java")
MESSAGE ( STATUS "Globbed java files = ${${CLP}_SRCS}")

file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/${CLP}_SRCS.txt ${${CLP}_SRCS})
MESSAGE(STATUS "Wrote file list to ${CMAKE_CURRENT_BINARY_DIR}/${CLP}_SRCS.txt")



# class path
message (STATUS "****jistCRUISE: CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}, CMAKE_CURRENT_BIN_DIR = ${CMAKE_CURRENT_BINARY_DIR}")
SET (JISTBASE_SRC "${CMAKE_CURRENT_SOURCE_DIR}/../../../jist/JIST/src")
SET (JISTBASE_BIN "${CMAKE_CURRENT_BINARY_DIR}/../jist-bin/bin")
SET (JISTBASE_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../../../jist/JIST/lib")
SET (JISTPLUGINS_SRC "${CMAKE_CURRENT_SOURCE_DIR}/../../../jistPlugins/JIST/src")
SET (JISTPLUGINS_BIN "${CMAKE_CURRENT_BINARY_DIR}/../jistPlugins-bin/bin")
SET (JISTPLUGINS_LIB "${CMAKE_CURRENT_SOURCE_DIR}/../../../jistPlugins/JIST/lib")

IF ( WIN32 )
    SET (${CLP}_SOURCEPATH "${CMAKE_CURRENT_SOURCE_DIR}\;${JISTBASE_SRC}\;${JISTPLUGINS_SRC}")
    SET (${CLP}_EXTDIR "\"${MIPAV}/java3d/ext\;${MIPAV}/jre/lib/ext\;${MIPAV}/lib\;${JISTBASE_LIB}\;${JISTPLUGINS_LIB}\;${JISTPLUGINS_SRC}\"")
    SET  (${CLP}_CLASSPATH "\"${MIPAV}\;${JISTBASE_BIN}\;${JISTPLUGINS_BIN}\"")
ELSE( WIN32 )
    SET (${CLP}_SOURCEPATH "${CMAKE_CURRENT_SOURCE_DIR}:${JISTBASE_SRC}:${JISTPLUGINS_SRC}")
    SET (${CLP}_EXTDIR "\"${MIPAV}/java3d/ext:${MIPAV}/jre/lib/ext:${MIPAV}/lib:${JISTBASE_LIB}:${JISTPLUGINS_LIB}:${JISTPLUGINS_SRC}\"")
    SET (${CLP}_CLASSPATH "\"${MIPAV}:${JISTBASE_BIN}:${JISTPLUGINS_BIN}:${JISTPLUGINS_SRC}:${CMAKE_CURRENT_BINARY_DIR}/bin\"")
ENDIF (WIN32)

MESSAGE(STATUS "\n\n\n****************\njistCRUISE:\nSourcpath = ${${CLP}_SOURCEPATH}\nClasspath = ${${CLP}_CLASSPATH} \nEXTDIR = ${${CLP}_EXTDIR}\n****************\n\n\n")

file(MAKE_DIRECTORY  ${CMAKE_CURRENT_BINARY_DIR}/bin)

ADD_CUSTOM_TARGET ( ${CLP}.jar.classes ALL
 ${Java_JAVAC_EXECUTABLE} -d ${CMAKE_CURRENT_BINARY_DIR}/bin -sourcepath ${${CLP}_SOURCEPATH}  -extdirs ${${CLP}_EXTDIR} -classpath ${${CLP}_CLASSPATH} @${CMAKE_CURRENT_BINARY_DIR}/${CLP}_SRCS.txt
      WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} )





#ELSE ( Java_JAVAC_EXECUTABLE)
#   message (STATUS "Unable to compile java code, skipping installation of ${CLP}.jar")
#ENDIF ( Java_JAVAC_EXECUTABLE )
