1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
SET(ITK_JAVA_CLASSPATH ${ITK_BINARY_DIR}/Wrapping/CSwig/Java)
SET(ITK_JAVA_OUTPATH ${ITK_BINARY_DIR}/Wrapping/CSwig/Java)
# Relative path from InsightToolkit.jar installation to dlls.
IF(WIN32)
SET(ITK_JAVA_INSTALL_DIR "/../../bin")
ELSE(WIN32)
SET(ITK_JAVA_INSTALL_DIR "/../../lib/jni")
ENDIF(WIN32)
IF(CMAKE_CONFIGURATION_TYPES)
SET(ITK_BASE_JAVA_FILE ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/${CMAKE_CFG_INTDIR}/InsightToolkit/itkbase.java)
FOREACH(config ${CMAKE_CONFIGURATION_TYPES})
SET(ITK_JAVA_BUILD_DIR ${LIBRARY_OUTPUT_PATH}/${config})
CONFIGURE_FILE(
${ITK_SOURCE_DIR}/Wrapping/CSwig/Java/itkbase.java.in
${ITK_BINARY_DIR}/Wrapping/CSwig/Java/${config}/InsightToolkit/itkbase.java
@ONLY IMMEDIATE
)
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${config}/itk_build_tree.mark
"File next to InsightToolkit.jar to mark the build tree.\n"
)
ENDFOREACH(config)
SET(ITK_JAVA_CLASSPATH
"${ITK_JAVA_CLASSPATH}\;${ITK_BINARY_DIR}/Wrapping/CSwig/Java/${CMAKE_CFG_INTDIR}")
SET(ITK_JAVA_OUTPATH "${ITK_JAVA_OUTPATH}/${CMAKE_CFG_INTDIR}")
ELSE(CMAKE_CONFIGURATION_TYPES)
SET(ITK_JAVA_BUILD_DIR ${LIBRARY_OUTPUT_PATH})
SET(ITK_BASE_JAVA_FILE ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/InsightToolkit/itkbase.java)
CONFIGURE_FILE(
${ITK_SOURCE_DIR}/Wrapping/CSwig/Java/itkbase.java.in
${ITK_BASE_JAVA_FILE}
@ONLY IMMEDIATE
)
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/itk_build_tree.mark
"File next to InsightToolkit.jar to mark the build tree.\n"
)
ENDIF(CMAKE_CONFIGURATION_TYPES)
SET(ORDERING_DEP)
FOREACH(Kit ${ITK_KITS})
IF(${Kit} MATCHES VXLNumerics)
SET(DEP_FILES ${VXLNumerics_JAVA_DEPENDS})
SET(KIT_JAVA_NAME ${Kit})
ELSE(${Kit} MATCHES VXLNumerics)
SET(KIT_JAVA_NAME ITK${Kit})
SET(DEP_FILES ${ITK${Kit}_JAVA_DEPENDS})
ENDIF(${Kit} MATCHES VXLNumerics)
FOREACH(File ${DEP_FILES})
SET(FULL_DEP_FILES ${FULL_DEP_FILES} ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/InsightToolkit/${File})
ENDFOREACH(File)
SET(ITK_JAVA_KIT_LIBS ${ITK_JAVA_KIT_LIBS} ${KIT_JAVA_NAME}Java)
SET(KIT_FILE_NAME ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/InsightToolkit/${KIT_JAVA_NAME}Java)
ADD_CUSTOM_COMMAND(
OUTPUT ${KIT_FILE_NAME}.class
DEPENDS ${KIT_FILE_NAME}.java ${FULL_DEP_FILES} ${ITK_BASE_JAVA_FILE} ${ORDERING_DEP}
COMMAND ${JAVA_COMPILE}
ARGS -classpath "${ITK_JAVA_CLASSPATH}" -d "${ITK_JAVA_OUTPATH}"
${KIT_FILE_NAME}.java
COMMENT "Java Class")
SET(ITK_JAVA_KITS_FILES ${ITK_JAVA_KITS_FILES} ${KIT_FILE_NAME}.class)
SET(ORDERING_DEP ${KIT_FILE_NAME}.class)
ENDFOREACH(Kit)
IF(CMAKE_CONFIGURATION_TYPES)
ADD_CUSTOM_COMMAND(
OUTPUT ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/${CMAKE_CFG_INTDIR}/InsightToolkit.jar
DEPENDS ${ITK_JAVA_KITS_FILES}
COMMAND ${JAVA_ARCHIVE}
ARGS -cf ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/${CMAKE_CFG_INTDIR}/InsightToolkit.jar
-C ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/${CMAKE_CFG_INTDIR} InsightToolkit
COMMENT "Java Archive"
)
ADD_CUSTOM_TARGET(ITKJavaJar ALL DEPENDS ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/${CMAKE_CFG_INTDIR}/InsightToolkit.jar)
SET(DOLLAR "$")
INSTALL(FILES
${ITK_BINARY_DIR}/Wrapping/CSwig/Java/${DOLLAR}{BUILD_TYPE}/InsightToolkit.jar
DESTINATION ${ITK_INSTALL_LIB_DIR_CM24}
COMPONENT RuntimeLibraries)
ELSE(CMAKE_CONFIGURATION_TYPES)
ADD_CUSTOM_COMMAND(
OUTPUT ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/InsightToolkit.jar
DEPENDS ${ITK_JAVA_KITS_FILES}
COMMAND ${JAVA_ARCHIVE}
ARGS -cf ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/InsightToolkit.jar
-C ${ITK_BINARY_DIR}/Wrapping/CSwig/Java InsightToolkit
COMMENT "Java Archive"
)
ADD_CUSTOM_TARGET(ITKJavaJar ALL DEPENDS ${ITK_BINARY_DIR}/Wrapping/CSwig/Java/InsightToolkit.jar)
INSTALL(FILES
${ITK_BINARY_DIR}/Wrapping/CSwig/Java/InsightToolkit.jar
DESTINATION ${ITK_INSTALL_LIB_DIR_CM24}
COMPONENT RuntimeLibraries)
ENDIF(CMAKE_CONFIGURATION_TYPES)
ADD_DEPENDENCIES(ITKJavaJar ${ITK_JAVA_KIT_LIBS} SwigRuntimeJava)
FOREACH(Kit ${ITK_KITS})
IF(${Kit} MATCHES VXLNumerics)
SET(KIT_JAVA_NAME ${Kit})
ELSE(${Kit} MATCHES VXLNumerics)
SET(KIT_JAVA_NAME ITK${Kit})
ENDIF(${Kit} MATCHES VXLNumerics)
ADD_DEPENDENCIES(ITKJavaJar "${KIT_JAVA_NAME}Java")
ENDFOREACH(Kit)
ADD_LIBRARY(ITKJavaJarDummyLibrary ITKJavaJarDummyLibrary.c)
ADD_DEPENDENCIES(ITKJavaJarDummyLibrary ITKJavaJar)
|