File: pcl_all_in_one_installer.cmake

package info (click to toggle)
pcl 1.9.1%2Bdfsg1-10
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 141,836 kB
  • sloc: cpp: 521,679; xml: 28,792; ansic: 13,915; python: 538; lisp: 93; makefile: 77; sh: 27
file content (135 lines) | stat: -rw-r--r-- 7,011 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
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

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

if(BUILD_all_in_one_installer)
    get_filename_component(BOOST_ROOT "${Boost_INCLUDE_DIR}" PATH)
    get_filename_component(BOOST_ROOT "${BOOST_ROOT}" PATH)
    get_filename_component(EIGEN_ROOT "${EIGEN_INCLUDE_DIRS}" PATH)
    get_filename_component(QHULL_ROOT "${QHULL_INCLUDE_DIRS}" PATH)
    get_filename_component(FLANN_ROOT "${FLANN_INCLUDE_DIRS}" PATH)
    get_filename_component(VTK_ROOT "${VTK_DIR}" PATH)
    get_filename_component(VTK_ROOT "${VTK_ROOT}" PATH)
    if(${VTK_MAJOR_VERSION} GREATER 5)
        get_filename_component(VTK_ROOT "${VTK_ROOT}" PATH)
    endif()
    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(dep)

    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(CMAKE_CL_64)
            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(CMAKE_CL_64)

        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)
            set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS 
                "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\n    ExecWait 'msiexec /i \\\"$INSTDIR\\\\3rdParty\\\\OpenNI\\\\${OPENNI_PACKAGE}\\\" '")
        else(_error_code EQUAL 0)
            message("WARNING : Could not download ${OPENNI_URL}, error code : ${_error_code}, error message : ${_error_message}")
        endif(_error_code EQUAL 0)

        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)
            set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS 
                "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\n    ExecWait 'msiexec /i \\\"$INSTDIR\\\\3rdParty\\\\OpenNI\\\\${OPENNI_SENSOR_PACKAGE}\\\" '")
        else(_error_code EQUAL 0)
            message("WARNING : Could not download ${OPENNI_SENSOR_URL}, error code : ${_error_code}, error message : ${_error_message}")
        endif(_error_code EQUAL 0)
        list(REMOVE_DUPLICATES PCL_3RDPARTY_COMPONENTS)
        set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\n  noinstall_openni_packages:\n")
    endif(WITH_OPENNI)

    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(CMAKE_CL_64)
            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(CMAKE_CL_64)

        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)
                set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS 
                    "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\n    ExecWait 'msiexec /i \\\"$INSTDIR\\\\3rdParty\\\\OpenNI2\\\\${OPENNI2_PACKAGE}\\\" '")
            else(_error_code EQUAL 0)
                message("WARNING : Could not unzip ${OPENNI2_ZIP}, error code : ${_error_code}, error message : ${_error_message}")
            endif(_error_code EQUAL 0)
        else(_error_code EQUAL 0)
            message("WARNING : Could not download ${OPENNI2_ZIP_URL}, error code : ${_error_code}, error message : ${_error_message}")
        endif(_error_code EQUAL 0)
        list(REMOVE_DUPLICATES PCL_3RDPARTY_COMPONENTS)
        set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\n  noinstall_openni2_packages:\n")
    endif(WITH_OPENNI2)
endif(BUILD_all_in_one_installer)