File: CMakeLists.txt

package info (click to toggle)
simpleitk 1.0.1-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 75,056 kB
  • sloc: cpp: 25,403; python: 3,060; sh: 1,131; ansic: 369; java: 260; cs: 215; makefile: 51; ruby: 47; tcl: 22
file content (75 lines) | stat: -rw-r--r-- 2,533 bytes parent folder | download
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

#
# JAVA Packaging
#
set(_files "")
list( APPEND _files
  ${SimpleITK_DOC_FILES}
  ${SimpleITK_Java_BINARY_DIR}/${JAR_FILE}
  ${SimpleITK_Java_BINARY_DIR}/${JAVA_SOURCE_FILE}
  ${SimpleITK_Java_BINARY_DIR}/${JAVADOC_FILE}
  )

if(NOT DEFINED SimpleITK_JAVA_ARCH)
  if(MSVC)
    if (CMAKE_CL_64)
      set(SimpleITK_JAVA_ARCH "win64")
    else()
      set(SimpleITK_JAVA_ARCH "win32")
    endif()
  elseif(APPLE)
    # assemble macosx-OSX_DEPLOYMENT_TARGET-OSX_ARCHITECTURE
    set(SimpleITK_JAVA_ARCH "macosx")
    if(CMAKE_OSX_DEPLOYMENT_TARGET)
      set(SimpleITK_JAVA_ARCH "${SimpleITK_JAVA_ARCH}-${CMAKE_OSX_DEPLOYMENT_TARGET}")
    endif()
    if(CMAKE_OSX_ARCHITECTURES MATCHES "i386" AND CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
      if (CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
        set(SimpleITK_JAVA_ARCH "${SimpleITK_JAVA_ARCH}-universal")
      else()
        set(SimpleITK_JAVA_ARCH "${SimpleITK_JAVA_ARCH}-intel")
        set(_OSX_ARCHITECTURES "intel")
      endif()
    elseif(CMAKE_OSX_ARCHITECTURES)
      string(REPLACE ";" "_" _OSX_ARCHITECTURES "${CMAKE_OSX_ARCHITECTURES}")
      set(SimpleITK_JAVA_ARCH "${SimpleITK_JAVA_ARCH}-${_OSX_ARCHITECTURES}")
    else()
      set(SimpleITK_JAVA_ARCH "${SimpleITK_JAVA_ARCH}-unknown")
    endif()
  else()
    set(SimpleITK_JAVA_ARCH "unknown")
  endif()
endif()

set( JAVA_PACKAGE_STAGE_DIR "SimpleITK-${SimpleITK_VERSION}-Java-${SimpleITK_JAVA_ARCH}")

add_custom_target( dist.Java
  COMMENT "Creating Java package ${JAVA_PACKAGE_STAGE_DIR}.zip"
  DEPENDS org_itk_simple_jar
  )

add_custom_command( TARGET dist.Java
  PRE_BUILD
  COMMAND ${CMAKE_COMMAND} -E remove_directory "${JAVA_PACKAGE_STAGE_DIR}"
  COMMAND ${CMAKE_COMMAND} -E make_directory "${JAVA_PACKAGE_STAGE_DIR}"
  COMMENT "Creating Java staging directory..."
  )

foreach(_f ${_files})
  get_filename_component(_f_name ${_f} NAME )
  add_custom_command( TARGET dist.Java
    POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_if_different "${_f}" "${JAVA_PACKAGE_STAGE_DIR}/${_f_name}"
    COMMENT "Copying ${_f_name} to Java stage..."
    )
endforeach()

add_custom_command( TARGET dist.Java
  POST_BUILD
  COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:${SWIG_MODULE_SimpleITKJava_TARGET_NAME}>" "${JAVA_PACKAGE_STAGE_DIR}"
  COMMENT "Copying $<TARGET_FILE:${SWIG_MODULE_SimpleITKJava_TARGET_NAME}> to Java stage..."
  COMMAND ${Java_JAR_EXECUTABLE} cfM "${JAVA_PACKAGE_STAGE_DIR}.zip" "${JAVA_PACKAGE_STAGE_DIR}"
  COMMENT "Packaging JAVA distribution..."
  )

add_dependencies( dist dist.Java )