From bdb096780f9fbd085c47694f61a784b4bd149e4e Mon Sep 17 00:00:00 2001 From: Giovanni De Toni Date: Sun, 26 Feb 2017 17:49:00 +0100 Subject: [PATCH] Workaround for issue #3653. --- examples/meta/CMakeLists.txt | 6 ++++++ examples/meta/scala/CMakeLists.txt | 22 ++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/examples/meta/CMakeLists.txt b/examples/meta/CMakeLists.txt index b93c443640e..2ffca780f55 100644 --- a/examples/meta/CMakeLists.txt +++ b/examples/meta/CMakeLists.txt @@ -36,6 +36,11 @@ FOREACH(META_EXAMPLE ${META_EXAMPLES}) SET(EXAMPLE_LISTINGS) SET(BASENAME ${EXAMPLE_REL_DIR}/${EXAMPLE_NAME}) LIST(APPEND EXAMPLE_LISTINGS ${CMAKE_CURRENT_BINARY_DIR}/cpp/${BASENAME}.cpp) + + # FIXME + # Hack to avoid generation of scala meta examples dependencies that will + # not be generated by generate.py script (since there is no scala.json) + LIST(REMOVE_ITEM AVAILABLE_INTERFACES "ScalaModular") FOREACH(interface ${AVAILABLE_INTERFACES}) list(FIND DISABLED_INTERFACES ${interface} disabled) if (${disabled} STREQUAL "-1") @@ -43,6 +48,7 @@ FOREACH(META_EXAMPLE ${META_EXAMPLES}) LIST(APPEND EXAMPLE_LISTINGS ${CMAKE_CURRENT_BINARY_DIR}/${DIRECTORY}/${BASENAME}.${EXTENSION}) endif() ENDFOREACH() + LIST(APPEND AVAILABLE_INTERFACES "ScalaModular") # Set generate.py flags SET(GENERATOR_FLAGS diff --git a/examples/meta/scala/CMakeLists.txt b/examples/meta/scala/CMakeLists.txt index d0bd8b060ab..c7e3a0f3771 100644 --- a/examples/meta/scala/CMakeLists.txt +++ b/examples/meta/scala/CMakeLists.txt @@ -6,23 +6,21 @@ SET(JAVA_LIB_PATH "${JAVA_MODULAR_BUILD_DIR}") # (not generated yet so have to fake filenames from META_EXAMPLES list) FOREACH(META_EXAMPLE ${META_EXAMPLES}) # assume a structure //listing.sg - get_filename_component(EXAMPLE_NAME ${META_EXAMPLE} NAME_WE) - IF(${CMAKE_VERSION} VERSION_LESS 2.8.12) - get_filename_component(FULL_DIR ${META_EXAMPLE} PATH) - ELSE() - # only supported from >2.8.11 - get_filename_component(FULL_DIR ${META_EXAMPLE} DIRECTORY) - ENDIF() - get_filename_component(EXAMPLE_REL_DIR ${FULL_DIR} NAME) - set(EXAMPLE_NAME_WITH_DIR "${EXAMPLE_REL_DIR}-${EXAMPLE_NAME}") - set(SCALA_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/${EXAMPLE_REL_DIR}") + GET_META_EXAMPLE_VARS(${META_EXAMPLE} EXAMPLE_NAME EXAMPLE_REL_DIR EXAMPLE_NAME_WITH_DIR) + set(SCALA_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/${EXAMPLE_REL_DIR}") - file(MAKE_DIRECTORY ${SCALA_FOLDER}) + file(MAKE_DIRECTORY ${SCALA_FOLDER}) - add_test(NAME generated_scala-${EXAMPLE_NAME_WITH_DIR} + add_test(NAME generated_scala-${EXAMPLE_NAME_WITH_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${EXAMPLE_REL_DIR} COMMAND ${Scala_SCALA_EXECUTABLE} -cp ${CLASSPATH}:${CMAKE_JAVA_DIR}/${EXAMPLE_REL_DIR} -Djava.library.path=${JAVA_LIB_PATH} ${EXAMPLE_NAME}) ENDFOREACH() + +# Set up this target to be consistent +# with all the other meta example targets. +add_custom_target(build_scala_meta_examples ALL + DEPENDS build_java_meta_examples + COMMENT "Compiled java meta examples to be used with scala")