From c9a0c00f05d82093d1aa548ec77f33c0d7d32eaa Mon Sep 17 00:00:00 2001 From: Heiko Strathmann Date: Thu, 25 Feb 2016 13:00:29 +0000 Subject: [PATCH] add meta language java examples to test build --- examples/meta/java/CMakeLists.txt | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/examples/meta/java/CMakeLists.txt b/examples/meta/java/CMakeLists.txt index b6c6e6b5fe0..b339053a850 100644 --- a/examples/meta/java/CMakeLists.txt +++ b/examples/meta/java/CMakeLists.txt @@ -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 //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") \ No newline at end of file + COMMENT "Compiled generated java examples")