File: vtkJavaWrapping.cmake

package info (click to toggle)
vtk7 7.1.1%2Bdfsg2-8
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 127,396 kB
  • sloc: cpp: 1,539,584; ansic: 124,382; python: 78,038; tcl: 47,013; xml: 8,142; yacc: 5,040; java: 4,439; perl: 3,132; lex: 1,926; sh: 1,500; makefile: 126; objc: 83
file content (85 lines) | stat: -rw-r--r-- 2,864 bytes parent folder | download | duplicates (2)
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
if(VTK_WRAP_JAVA)
  set(VTK_WRAP_JAVA3_INIT_DIR "${VTK_SOURCE_DIR}/Wrapping/Java")
  find_package(Java)
  find_package(JNI)
  include(vtkWrapJava)

  IF(JAVA_AWT_LIBRARY)
  FOREACH(__java_library ${JAVA_AWT_LIBRARY})
    GET_FILENAME_COMPONENT(JAVA_LIB_DIR ${__java_library} PATH)
    IF(EXISTS ${JAVA_LIB_DIR}/xawt)
      LINK_DIRECTORIES(${JAVA_LIB_DIR}/xawt)
    ENDIF()
    IF(EXISTS ${JAVA_LIB_DIR}/client)
      LINK_DIRECTORIES(${JAVA_LIB_DIR}/client)
    ENDIF()
    IF(EXISTS ${JAVA_LIB_DIR}/server)
      LINK_DIRECTORIES(${JAVA_LIB_DIR}/server)
    ENDIF()
  ENDFOREACH()
  ENDIF()

endif()

function(vtk_add_java_wrapping module_name module_srcs module_hdrs)

  set(_java_include_dirs
    ${vtkWrappingJava_BINARY_DIR}
    ${vtkWrappingJava_SOURCE_DIR}
    ${JAVA_INCLUDE_PATH}
    ${JAVA_INCLUDE_PATH2})

  if(NOT CMAKE_HAS_TARGET_INCLUDES)
    include_directories(${_java_include_dirs})
  endif()

  if(NOT ${module_name}_EXCLUDE_FROM_WRAP_HIERARCHY)
    set(KIT_HIERARCHY_FILE ${${module_name}_WRAP_HIERARCHY_FILE})
  endif()

  vtk_wrap_java3(${module_name}Java ModuleJava_SRCS
    "${module_srcs};${Kit_JAVA_EXTRA_WRAP_SRCS}")

  add_library(${module_name}Java SHARED ${ModuleJava_SRCS} ${Kit_JAVA_EXTRA_SRCS})
  if(MINGW)
    set_target_properties(${module_name}Java PROPERTIES PREFIX "")
  endif()
  vtk_target_export(${module_name}Java)
  if(CMAKE_HAS_TARGET_INCLUDES)
    set_property(TARGET ${module_name}Java APPEND
      PROPERTY INCLUDE_DIRECTORIES ${_java_include_dirs})
  endif()
  # Force JavaClasses to build in the right order by adding a depenency.
  add_dependencies(${module_name}JavaJavaClasses ${module_name}Java)
  if(${module_name}_IMPLEMENTS)
    set_property(TARGET ${module_name}Java PROPERTY COMPILE_DEFINITIONS
      "${module_name}_AUTOINIT=1(${module_name})")
  endif()

  target_link_libraries(${module_name}Java LINK_PUBLIC ${module_name} vtkWrappingJava)

  # Do we need to link to AWT?
  if(${module_name} STREQUAL "vtkRenderingCore")
    target_link_libraries(${module_name}Java LINK_PUBLIC ${JAVA_AWT_LIBRARY})
    if(APPLE)
      target_link_libraries(${module_name}Java LINK_PUBLIC "-framework Cocoa")
    endif()
  endif()

  foreach(dep ${${module_name}_WRAP_DEPENDS})
    if(NOT ${dep}_EXCLUDE_FROM_WRAPPING)
      target_link_libraries(${module_name}Java LINK_PUBLIC ${dep}Java)
    endif()
  endforeach()

  if(NOT VTK_INSTALL_NO_LIBRARIES)
    if(APPLE AND VTK_JAVA_INSTALL)
      set_target_properties(${module_name}Java PROPERTIES SUFFIX ".jnilib")
    endif()
    install(TARGETS ${module_name}Java
      EXPORT ${VTK_INSTALL_EXPORT_NAME}
      RUNTIME DESTINATION ${VTK_INSTALL_RUNTIME_DIR} COMPONENT RuntimeLibraries
      LIBRARY DESTINATION ${VTK_INSTALL_LIBRARY_DIR}/jni COMPONENT RuntimeLibraries
      ARCHIVE DESTINATION ${VTK_INSTALL_ARCHIVE_DIR} COMPONENT Development)
  endif()
endfunction()