FILE(GLOB EXAMPLES_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.java)
LIST(REMOVE_ITEM EXAMPLES_SRC Load.java)

SET(CLASSPATH "${JBLAS}:${SHOGUN_JAR}:${CMAKE_CURRENT_BINARY_DIR}")
SET(JAVAOPTS "-Xmx1024m")
SET(JAVA_LIB_PATH "${JAVA_MODULAR_BUILD_DIR}")

ADD_CUSTOM_COMMAND(OUTPUT Load.class
				  COMMAND ${Java_JAVAC_EXECUTABLE} -cp ${CLASSPATH}
					-d ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/Load.java
				  DEPENDS java_modular)

FOREACH(EXAMPLE_SRC ${EXAMPLES_SRC})
	get_filename_component(EXAMPLE_NAME ${EXAMPLE_SRC} NAME_WE)

	ADD_CUSTOM_COMMAND(OUTPUT ${EXAMPLE_NAME}.class
				  COMMAND ${Java_JAVAC_EXECUTABLE} -cp ${CLASSPATH}
					-d ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${EXAMPLE_SRC}
				  DEPENDS java_modular Load.class)
	LIST(APPEND JAVA_EXAMPLES ${EXAMPLE_NAME}.class)

	add_test(NAME java_modular-${EXAMPLE_NAME}
			WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
			COMMAND ${Java_JAVA_EXECUTABLE} ${JAVAOPTS}
				-cp ${CLASSPATH}
				-Djava.library.path=${JAVA_LIB_PATH} ${EXAMPLE_NAME})
ENDFOREACH()

add_custom_target(build_java_examples ALL
				 DEPENDS Load.class ${JAVA_EXAMPLES}
				 COMMENT "Java examples")
