forked from Kitware/VTK
/
vtkJavaWrapping.cmake
79 lines (68 loc) · 2.66 KB
/
vtkJavaWrapping.cmake
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
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 ${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)
set_property(TARGET ${module_name}Java APPEND
PROPERTY INCLUDE_DIRECTORIES ${_java_include_dirs})
# 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} COMPONENT RuntimeLibraries
ARCHIVE DESTINATION ${VTK_INSTALL_ARCHIVE_DIR} COMPONENT Development)
endif()
endfunction()