File: CMakeLists.txt

package info (click to toggle)
insighttoolkit 3.20.1%2Bgit20120521-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 80,652 kB
  • sloc: cpp: 458,133; ansic: 196,223; fortran: 28,000; python: 3,839; tcl: 1,811; sh: 1,184; java: 583; makefile: 430; csh: 220; perl: 193; xml: 20
file content (139 lines) | stat: -rw-r--r-- 5,622 bytes parent folder | download | duplicates (4)
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
SUBDIRS(Tests)

MAKE_DIRECTORY(${WRAP_ITK_JAVA_DIR})
MAKE_DIRECTORY(${WRAP_ITK_JAVA_DIR}/InsightToolkit)
SET(ITK_JAVA_CLASSPATH ${WRAP_ITK_JAVA_DIR})
SET(ITK_JAVA_OUTPATH ${WRAP_ITK_JAVA_DIR})

# Relative path from InsightToolkit.jar installation to dlls.
SET(ITK_JAVA_INSTALL_DIR "/../Java-SWIG")

# a macro to create sym links on apple
MACRO(APPLE_SYMLINK Kit)
  IF(APPLE)
    # on mac os x, java files must have the name .jnilib
    # just link them with std lib file, and install the link
    # STRING(REGEX REPLACE ".dylib\$" ".jnilib" tgt "${clean_library_location}")
    SET(src ${LIBRARY_OUTPUT_PATH}/lib${Kit}Java.dylib)
    SET(tgt ${LIBRARY_OUTPUT_PATH}/lib${Kit}Java.jnilib)
    ADD_CUSTOM_COMMAND(
                      OUTPUT ${tgt}
                      DEPENDS ${Kit}Java
                      COMMAND ln
                      ARGS -sf ${src} ${tgt}
                      COMMENT "Creating symbolic link for ${Kit}Java")
    # installing the symlink will copy the regular file, not a symlink
    # so in the install tree, we don't need to have the .dylib
    WRAP_ITK_INSTALL("/lib" ${tgt})
    SET(ITK_JAVA_KITS_FILES ${ITK_JAVA_KITS_FILES} ${tgt})
  ENDIF(APPLE)
ENDMACRO(APPLE_SYMLINK)


IF(CMAKE_CONFIGURATION_TYPES)
  SET(ITK_BASE_JAVA_FILE ${WRAP_ITK_JAVA_DIR}/${CMAKE_CFG_INTDIR}/InsightToolkit/itkbase.java)
  FOREACH(config ${CMAKE_CONFIGURATION_TYPES})
    SET(ITK_JAVA_BUILD_DIR ${LIBRARY_OUTPUT_PATH}/${config})
    CONFIGURE_FILE(
      ${WrapITK_SOURCE_DIR}/Java/itkbase.java.in
      ${WrapITK_BINARY_DIR}/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}\;${WRAP_ITK_JAVA_DIR}/${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 ${WRAP_ITK_JAVA_DIR}/InsightToolkit/itkbase.java)
  CONFIGURE_FILE(
    ${WrapITK_SOURCE_DIR}/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"
    )
  WRAP_ITK_INSTALL(/Java ${WRAP_ITK_JAVA_DIR}/InsightToolkit.jar )
ENDIF(CMAKE_CONFIGURATION_TYPES)

SET(ORDERING_DEP)
# iterators are not supported by java
REMOVE(java_itk_modules "${WRAP_ITK_MODULES}" Iterators)
FOREACH(Kit ${java_itk_modules})
  SET(KIT_JAVACLASS_DEP_FILES)
  SET(DEP_FILES ${${Kit}_JAVA_DEPENDS})
  SET(KIT_JAVA_NAME ${Kit})
  FOREACH(File ${DEP_FILES})
    SET(FULL_JAVA_DEP_FILES ${FULL_JAVA_DEP_FILES} ${WRAP_ITK_JAVA_DIR}/InsightToolkit/${File}.java)
    SET(KIT_JAVACLASS_DEP_FILES ${KIT_JAVACLASS_DEP_FILES} ${WRAP_ITK_JAVA_DIR}/InsightToolkit/${File}.class)
    ADD_CUSTOM_COMMAND(
      OUTPUT ${WRAP_ITK_JAVA_DIR}/InsightToolkit/${File}.class
      DEPENDS ${WRAP_ITK_JAVA_DIR}/InsightToolkit/${File}.java ${WRAP_ITK_JAVA_DIR}/InsightToolkit/JavaCWD.java ${ITK_BASE_JAVA_FILE} ${ORDERING_DEP}
      COMMAND ${JAVA_COMPILE}
      ARGS -classpath "${ITK_JAVA_CLASSPATH}" -d "${ITK_JAVA_OUTPATH}"
      ${WRAPPER_LIBRARY_OUTPUT_DIR}/${WRAP_ITK_JAVA_DIR}/InsightToolkit/${File}.java
      COMMENT "Compile ${File}.java")
  ENDFOREACH(File)
  SET(FULL_JAVACLASS_DEP_FILES ${FULL_JAVACLASS_DEP_FILES} ${KIT_JAVACLASS_DEP_FILES})

  SET(ITK_JAVA_KIT_LIBS ${ITK_JAVA_KIT_LIBS} ${KIT_JAVA_NAME}Java)
  SET(KIT_FILE_NAME ${WRAP_ITK_JAVA_DIR}/InsightToolkit/${KIT_JAVA_NAME}Java)
  ADD_CUSTOM_COMMAND(
    OUTPUT ${KIT_FILE_NAME}.class
    DEPENDS ${KIT_FILE_NAME}.java ${FULL_JAVA_DEP_FILES} ${ITK_BASE_JAVA_FILE} ${WRAPPER_LIBRARY_OUTPUT_DIR}/${WRAP_ITK_JAVA_DIR}/InsightToolkit/JavaCWD.java ${ORDERING_DEP}
    COMMAND ${JAVA_COMPILE}
    ARGS -classpath "${ITK_JAVA_CLASSPATH}" -d "${ITK_JAVA_OUTPATH}"
    ${KIT_FILE_NAME}.java
    COMMENT "Building ${KIT_FILE_NAME}.class")
  SET(ITK_JAVA_KITS_FILES ${ITK_JAVA_KITS_FILES} ${KIT_FILE_NAME}.class)
  SET(ORDERING_DEP ${KIT_FILE_NAME}.class)
  
  APPLE_SYMLINK("${Kit}")
  
ENDFOREACH(Kit)

# symlink SwigRuntime
APPLE_SYMLINK(SwigRuntime)


IF(CMAKE_CONFIGURATION_TYPES)
  ADD_CUSTOM_COMMAND(
    OUTPUT ${WRAP_ITK_JAVA_DIR}/${CMAKE_CFG_INTDIR}/InsightToolkit.jar
    DEPENDS ${ITK_JAVA_KITS_FILES}
    COMMAND ${JAVA_ARCHIVE}
    ARGS -cf ${WRAP_ITK_JAVA_DIR}/${CMAKE_CFG_INTDIR}/InsightToolkit.jar
    -C ${CMAKE_CFG_INTDIR}
    InsightToolkit
    COMMENT "Java Archive"
    )
  ADD_CUSTOM_TARGET(ITKJavaJar ALL DEPENDS ${WRAP_ITK_JAVA_DIR}/${CMAKE_CFG_INTDIR}/InsightToolkit.jar)
  SET(DOLLAR "$")
  WRAP_ITK_INSTALL(/Java ${WRAP_ITK_JAVA_DIR}/${DOLLAR}{BUILD_TYPE}/InsightToolkit.jar)
ELSE(CMAKE_CONFIGURATION_TYPES)
  ADD_CUSTOM_COMMAND(
    OUTPUT ${WRAP_ITK_JAVA_DIR}/InsightToolkit.jar
    DEPENDS ${ITK_JAVA_KITS_FILES} ${FULL_JAVACLASS_DEP_FILES} ${FULL_JAVA_DEP_FILES} ${WRAP_ITK_JNILIB}
    COMMAND ${JAVA_ARCHIVE}
    ARGS -cf ${WRAP_ITK_JAVA_DIR}/InsightToolkit.jar
    InsightToolkit
    COMMENT "Java Archive"
    )
  ADD_CUSTOM_TARGET(ITKJavaJar ALL DEPENDS ${WRAP_ITK_JAVA_DIR}/InsightToolkit.jar)
  WRAP_ITK_INSTALL(/Java ${WRAP_ITK_JAVA_DIR}/InsightToolkit.jar)
ENDIF(CMAKE_CONFIGURATION_TYPES)

ADD_DEPENDENCIES(ITKJavaJar ${ITK_JAVA_KIT_LIBS}  SwigRuntimeJava)
FOREACH(Kit ${WRAP_ITK_MODULES})
  ADD_DEPENDENCIES(ITKJavaJar "${Kit}Java")
ENDFOREACH(Kit)
ADD_LIBRARY(ITKJavaJarDummyLibrary ITKJavaJarDummyLibrary.c)
ADD_DEPENDENCIES(ITKJavaJarDummyLibrary ITKJavaJar)


SUBDIRS(CWD)