File: pcl_all_in_one_installer.cmake

package info (click to toggle)
pcl 1.13.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 143,524 kB
  • sloc: cpp: 518,578; xml: 28,792; ansic: 13,676; python: 334; lisp: 93; sh: 49; makefile: 30
file content (146 lines) | stat: -rw-r--r-- 6,630 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
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
140
141
142
143
144
145
146

if(WIN32)
  option(BUILD_all_in_one_installer "Build an all-in-one NSIS installer" OFF)
endif()

if(NOT BUILD_all_in_one_installer)
  return()
endif()

# get root directory of each dependency libraries to be copied to PCL/3rdParty
get_filename_component(BOOST_ROOT "${Boost_INCLUDE_DIR}" PATH)  # ../Boost/include/boost-x_x/ -> ../Boost/include/
get_filename_component(BOOST_ROOT "${BOOST_ROOT}" PATH)         # ../Boost/include/           -> ../Boost/
get_filename_component(EIGEN_ROOT "${EIGEN_INCLUDE_DIRS}" PATH) # ../Eigen3/include/          -> ../Eigen3/
get_filename_component(QHULL_ROOT "${Qhull_DIR}" PATH)          # ../qhull/lib/cmake/Qhull/   -> ../qhull/lib/cmake
get_filename_component(QHULL_ROOT "${QHULL_ROOT}" PATH)         # ../qhull/lib/cmake/         -> ../qhull/lib/
get_filename_component(QHULL_ROOT "${QHULL_ROOT}" PATH)         # ../qhull/lib/               -> ../qhull/
get_filename_component(VTK_ROOT "${VTK_DIR}" PATH)              # ../VTK/lib/cmake/vtk-x.x/   -> ../VTK/lib/cmake/
get_filename_component(VTK_ROOT "${VTK_ROOT}" PATH)             # ../VTK/lib/cmake/           -> ../VTK/lib/
get_filename_component(VTK_ROOT "${VTK_ROOT}" PATH)             # ../VTK/lib/                 -> ../VTK/

set(PCL_3RDPARTY_COMPONENTS)
foreach(dep Eigen Boost Qhull FLANN VTK)
  string(TOUPPER ${dep} DEP)
  install(
    DIRECTORY "${${DEP}_ROOT}/"
    DESTINATION 3rdParty/${dep}
    COMPONENT ${dep}
    PATTERN "*/Uninstall.exe" EXCLUDE
  )
  list(APPEND PCL_3RDPARTY_COMPONENTS ${dep})
endforeach()

if(WITH_RSSDK2)
  get_filename_component(RSSDK2_ROOT "${RSSDK2_INCLUDE_DIRS}" PATH)
  install(
          DIRECTORY "${RSSDK2_ROOT}/"
          DESTINATION 3rdParty/librealsense2
          COMPONENT rssdk2
          PATTERN "*/Uninstall.exe" EXCLUDE
      )
  list(APPEND PCL_3RDPARTY_COMPONENTS rssdk2)
endif()

if(WITH_OPENNI)
  if(CMAKE_CL_64)
    set(OPENNI_PACKAGE "OpenNI-Win64-1.5.4-Dev.msi")
    set(OPENNI_URL "http://sourceforge.net/projects/pointclouds/files/dependencies/${OPENNI_PACKAGE}")
    set(OPENNI_MD5 c8f9cbe8447a16d32572a4e2c2d00af0)
    set(OPENNI_SENSOR_PACKAGE "Sensor-Win-OpenSource64-5.1.0.msi")
    set(OPENNI_SENSOR_URL "http://sourceforge.net/projects/pointclouds/files/dependencies/${OPENNI_SENSOR_PACKAGE}")
    set(OPENNI_SENSOR_MD5 badb880116436870943b1b7c447dfa22)
  else()
    set(OPENNI_PACKAGE "OpenNI-Win32-1.5.4-Dev.msi")
    set(OPENNI_URL "http://sourceforge.net/projects/pointclouds/files/dependencies/${OPENNI_PACKAGE}")
    set(OPENNI_MD5 996d48f447b41a5501b7d22af27ab251)
    set(OPENNI_SENSOR_PACKAGE "Sensor-Win-OpenSource32-5.1.0.msi")
    set(OPENNI_SENSOR_URL "http://sourceforge.net/projects/pointclouds/files/dependencies/${OPENNI_SENSOR_PACKAGE}")
    set(OPENNI_SENSOR_MD5 55da1f7541d7c9c98772bddf801c7e1c)
  endif()

  set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "  IntCmp $OpenNI_selected 0 noinstall_openni_packages\n")

  file(DOWNLOAD ${OPENNI_URL} "${CMAKE_CURRENT_BINARY_DIR}/${OPENNI_PACKAGE}"
    STATUS _openni_download_status LOG _openni_download_log
    EXPECTED_MD5 ${OPENNI_MD5}
     )
  list(GET _openni_download_status 0 _error_code)
  list(GET _openni_download_status 1 _error_message)
  if(_error_code EQUAL 0)
    install(
      FILES "${CMAKE_CURRENT_BINARY_DIR}/${OPENNI_PACKAGE}"
      DESTINATION 3rdParty/OpenNI
      COMPONENT OpenNI
    )
    list(APPEND PCL_3RDPARTY_COMPONENTS OpenNI)
    string(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS "\n    ExecWait 'msiexec /i \\\"$INSTDIR\\\\3rdParty\\\\OpenNI\\\\${OPENNI_PACKAGE}\\\" /quiet '")
  else()
    message("WARNING : Could not download ${OPENNI_URL}, error code : ${_error_code}, error message : ${_error_message}")
  endif()

  file(DOWNLOAD ${OPENNI_SENSOR_URL} "${CMAKE_CURRENT_BINARY_DIR}/${OPENNI_SENSOR_PACKAGE}"
    STATUS _openni_download_status LOG _openni_download_log
    EXPECTED_MD5 ${OPENNI_SENSOR_MD5}
     )
  list(GET _openni_download_status 0 _error_code)
  list(GET _openni_download_status 1 _error_message)
  if(_error_code EQUAL 0)
    install(
      FILES "${CMAKE_CURRENT_BINARY_DIR}/${OPENNI_SENSOR_PACKAGE}"
      DESTINATION 3rdParty/OpenNI
      COMPONENT OpenNI
    )
    list(APPEND PCL_3RDPARTY_COMPONENTS OpenNI)
    string(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS "\n    ExecWait 'msiexec /i \\\"$INSTDIR\\\\3rdParty\\\\OpenNI\\\\${OPENNI_SENSOR_PACKAGE}\\\" /quiet '")
  else()
    message("WARNING : Could not download ${OPENNI_SENSOR_URL}, error code : ${_error_code}, error message : ${_error_message}")
  endif()
  list(REMOVE_DUPLICATES PCL_3RDPARTY_COMPONENTS)
  string(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS "\n  noinstall_openni_packages:\n")
endif()

if(WITH_OPENNI2)
  if(CMAKE_CL_64)
    set(OPENNI2_PACKAGE "OpenNI-Windows-x64-2.2.msi")
    set(OPENNI2_ZIP "OpenNI-Windows-x64-2.2.0.33.zip")
    set(OPENNI2_URL "http://com.occipital.openni.s3.amazonaws.com/${OPENNI2_ZIP}")
    set(OPENNI2_MD5 d187f1dd0b091e27cebd03216b1bfff5)
  else()
    set(OPENNI2_PACKAGE "OpenNI-Windows-x86-2.2.msi")
    set(OPENNI2_ZIP "OpenNI-Windows-x86-2.2.0.33.zip")
    set(OPENNI2_URL "http://com.occipital.openni.s3.amazonaws.com/${OPENNI2_ZIP}")
    set(OPENNI2_MD5 59b38e23d951d59917a35f7f89efaf22)
  endif()

  set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "  IntCmp $OpenNI2_selected 0 noinstall_openni2_packages\n")

  file(DOWNLOAD ${OPENNI2_URL} "${CMAKE_CURRENT_BINARY_DIR}/${OPENNI2_ZIP}"
    STATUS _openni2_download_status LOG _openni2_download_log
    EXPECTED_MD5 ${OPENNI2_MD5}
     )
  list(GET _openni2_download_status 0 _error_code)
  list(GET _openni2_download_status 1 _error_message)
  if(_error_code EQUAL 0)
    execute_process(
      COMMAND ${CMAKE_COMMAND} -E tar -xzf ${OPENNI2_ZIP}
      WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
      RESULT_VARIABLE _error_code
      ERROR_VARIABLE _error_message
    )
    if(_error_code EQUAL 0)
      install(
        FILES "${CMAKE_CURRENT_BINARY_DIR}/${OPENNI2_PACKAGE}"
        DESTINATION 3rdParty/OpenNI2
        COMPONENT OpenNI2
      )
      list(APPEND PCL_3RDPARTY_COMPONENTS OpenNI2)
      string(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS "\n    ExecWait 'msiexec /i \\\"$INSTDIR\\\\3rdParty\\\\OpenNI2\\\\${OPENNI2_PACKAGE}\\\" /quiet '")
    else()
      message("WARNING : Could not unzip ${OPENNI2_ZIP}, error code : ${_error_code}, error message : ${_error_message}")
    endif()
  else()
    message("WARNING : Could not download ${OPENNI2_ZIP_URL}, error code : ${_error_code}, error message : ${_error_message}")
  endif()
  list(REMOVE_DUPLICATES PCL_3RDPARTY_COMPONENTS)
  string(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS "\n  noinstall_openni2_packages:\n")
endif()