Skip to content

Commit

Permalink
Add csharp_modular and java_modular examples support
Browse files Browse the repository at this point in the history
  • Loading branch information
vigsterkr committed Aug 1, 2013
1 parent 6ab1015 commit e55bff1
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 2 deletions.
4 changes: 2 additions & 2 deletions examples/CMakeLists.txt
Expand Up @@ -11,7 +11,7 @@ ENDIF()

# java modular
IF (JavaModular)
#add_subdirectory(undocumented/java_modular)
add_subdirectory(undocumented/java_modular)
ENDIF()

# ruby modular
Expand All @@ -26,7 +26,7 @@ ENDIF()

# csharp modular
IF (CSharpModular)
#add_subdirectory(undocumented/csharp_modular)
add_subdirectory(undocumented/csharp_modular)
ENDIF()

# r modular
Expand Down
23 changes: 23 additions & 0 deletions examples/undocumented/csharp_modular/CMakeLists.txt
@@ -0,0 +1,23 @@
FILE(GLOB TARGETS_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.cs)
LIST(REMOVE_ITEM TARGETS_SRC Load.cs)

SET(CSHARP_FLAGS "${CMAKE_CURRENT_SOURCE_DIR}/Load.cs;/lib:${CSHARP_MODULAR_BUILD_DIR};/r:modshogun")

FOREACH(EXAMPLE_SRC ${TARGETS_SRC})
STRING(REGEX REPLACE "(.*).cs" "\\1" EXAMPLE_NAME ${EXAMPLE_SRC})

ADD_CUSTOM_COMMAND(OUTPUT ${EXAMPLE_NAME}
COMMAND ${CSHARP_COMPILER} ${CMAKE_CURRENT_SOURCE_DIR}/${EXAMPLE_SRC} ${CSHARP_FLAGS}
DEPENDS csharp_modular)
LIST(APPEND CSHARP_EXAMPLES ${EXAMPLE_NAME})

add_test(NAME csharp_modular-${EXAMPLE_NAME}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${CSHARP_INTERPRETER} ${CMAKE_CURRENT_SOURCE_DIR}/${EXAMPLE_NAME}.exe)
set_property(TEST csharp_modular-${EXAMPLE_NAME} PROPERTY
ENVIRONMENT "MONO_PATH=${CSHARP_MODULAR_BUILD_DIR}")
ENDFOREACH()

add_custom_target(build_csharp_examples ALL
DEPENDS ${CSHARP_EXAMPLES}
COMMENT "C# examples")
31 changes: 31 additions & 0 deletions examples/undocumented/java_modular/CMakeLists.txt
@@ -0,0 +1,31 @@
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 shogun_jar)

FOREACH(EXAMPLE_SRC ${EXAMPLES_SRC})
STRING(REGEX REPLACE "(.*).java" "\\1" EXAMPLE_NAME ${EXAMPLE_SRC})

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 shogun_jar)
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")
2 changes: 2 additions & 0 deletions src/interfaces/csharp_modular/CMakeLists.txt
@@ -1,12 +1,14 @@
include(CommonModularInterface)

GENERATE_MODULAR_TARGET(csharp ${CMAKE_CURRENT_SOURCE_DIR} "")
SET_TARGET_PROPERTIES(csharp_modular PROPERTIES OUTPUT_NAME modshogun)

ADD_CUSTOM_COMMAND(TARGET csharp_modular
POST_BUILD
COMMAND "${CSHARP_COMPILER}" /t:library *.cs /out:modshogun.dll
COMMENT "Creating modshogun.dll")

SET(CSHARP_MODULAR_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)
INSTALL(TARGETS csharp_modular
LIBRARY DESTINATION lib/cli/shogun
COMPONENT csharp)
Expand Down
2 changes: 2 additions & 0 deletions src/interfaces/java_modular/CMakeLists.txt
Expand Up @@ -2,12 +2,14 @@ include(CommonModularInterface)
include_directories(${JNI_INCLUDE_DIRS})

GENERATE_MODULAR_TARGET(java ${CMAKE_CURRENT_SOURCE_DIR} "")
SET_TARGET_PROPERTIES(java_modular PROPERTIES OUTPUT_NAME modshogun)

set(CMAKE_JAVA_TARGET_OUTPUT_NAME shogun)
SET(CMAKE_JAVA_INCLUDE_PATH ${JBLAS})
ADD_JAR(shogun_jar ${CMAKE_CURRENT_BINARY_DIR}/*.java)
add_dependencies(shogun_jar java_modular)

SET(JAVA_MODULAR_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)
INSTALL(TARGETS java_modular
LIBRARY DESTINATION lib/jni
COMPONENT java)
Expand Down

0 comments on commit e55bff1

Please sign in to comment.