Skip to content

Commit

Permalink
add meta language java examples to test build
Browse files Browse the repository at this point in the history
  • Loading branch information
karlnapf authored and vigsterkr committed Mar 10, 2016
1 parent a55dc22 commit c9a0c00
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions examples/meta/java/CMakeLists.txt
Expand Up @@ -4,22 +4,31 @@ SET(CLASSPATH "${JBLAS}:${SHOGUN_JAR}:${CMAKE_CURRENT_BINARY_DIR}")
SET(JAVAOPTS "-Xmx1024m")
SET(JAVA_LIB_PATH "${JAVA_MODULAR_BUILD_DIR}")

FOREACH(EXAMPLE_SRC ${EXAMPLES_SRC})
get_filename_component(EXAMPLE_NAME ${EXAMPLE_SRC} NAME_WE)
# add test case for each generated example
# (not generated yet so have to fake filenames from META_EXAMPLES list)
FOREACH(META_EXAMPLE ${META_EXAMPLES})
# assume a structure <target_language>/<category>/listing.sg
STRING(REGEX REPLACE ".*/(.*).sg" "\\1" EXAMPLE_NAME ${META_EXAMPLE})
STRING(REGEX REPLACE ".*/(.*/.*).sg" "\\1" EXAMPLE_NAME_WITH_DIR ${META_EXAMPLE})
STRING(REGEX REPLACE "/" "-" EXAMPLE_NAME_WITH_DIR ${EXAMPLE_NAME_WITH_DIR})
STRING(REGEX REPLACE ".*/(.*)/.*.sg" "\\1" EXAMPLE_REL_DIR ${META_EXAMPLE})

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

add_test(NAME generated_java_modular-${EXAMPLE_NAME}
# run test in source dir, to have access to "data" folder
# run class from binary dir though as it is generated there
# add class location to classpath to do that
add_test(NAME generated_java-${EXAMPLE_NAME_WITH_DIR}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${Java_JAVA_EXECUTABLE} ${JAVAOPTS}
-cp ${CLASSPATH}
-cp ${CLASSPATH}:${CMAKE_CURRENT_BINARY_DIR}/${EXAMPLE_REL_DIR}
-Djava.library.path=${JAVA_LIB_PATH} ${EXAMPLE_NAME})
ENDFOREACH()

add_custom_target(build_generated_java_examples ALL
DEPENDS ${JAVA_EXAMPLES}
COMMENT "Generated java examples")
COMMENT "Compiled generated java examples")

0 comments on commit c9a0c00

Please sign in to comment.