-
Notifications
You must be signed in to change notification settings - Fork 2.4k
/
Copy pathOpen3DPackaging.cmake
62 lines (60 loc) · 2.53 KB
/
Open3DPackaging.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
# This is packaging for the Open3D library. See
# cpp/apps/Open3DViewer/Debian/CMakeLists.txt for packaging the Debian Open3D
# viewer
set(CPACK_GENERATOR TXZ)
if(WIN32)
set(CPACK_GENERATOR ZIP)
endif()
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VERSION ${OPEN3D_VERSION})
set(CPACK_PACKAGE_VENDOR "Open3D Team")
set(CPACK_PACKAGE_CONTACT "${PROJECT_EMAIL}")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/docs/_static/open3d_logo.ico")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
set(CPACK_OUTPUT_FILE_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/package")
set(CPACK_PACKAGE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
string(TOLOWER ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR} _sys)
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (GLIBCXX_USE_CXX11_ABI) # Name follows libtorch convention
set(_sys ${_sys}-cxx11-abi)
else()
set(_sys ${_sys}-pre-cxx11-abi)
endif()
endif()
if (BUILD_CUDA_MODULE)
set(_sys ${_sys}-cuda)
endif()
if (NOT MSVC)
set(CPACK_STRIP_FILES ON) # Don't strip MSVC Debug build
endif()
set(CPACK_PACKAGE_FILE_NAME
"open3d-devel-${_sys}-${OPEN3D_VERSION_FULL}")
set(CPACK_THREADS 0) # Use all cores for compressing package
find_program(DPKG_PROGRAM dpkg)
if (EXISTS ${DPKG_PROGRAM})
list(APPEND CPACK_GENERATOR DEB)
set(CPACK_SET_DESTDIR ON)
set(CPACK_COMPONENTS_ALL "dev")
set(CPACK_DEBIAN_DEV_PACKAGE_NAME "open3d-devel-${_sys}")
set(CPACK_DEBIAN_PACKAGE_VERSION ${OPEN3D_VERSION_FULL})
execute_process(COMMAND ${DPKG_PROGRAM} --print-architecture
OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
OUTPUT_STRIP_TRAILING_WHITESPACE)
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON)
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
list(APPEND CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS ${CMAKE_INSTALL_PREFIX}/${Open3D_INSTALL_LIB_DIR})
if (DEFINED Tensorflow_FRAMEWORK_LIB)
get_filename_component(TENSORFLOW_LIB_DIR ${Tensorflow_FRAMEWORK_LIB} DIRECTORY)
list(APPEND CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS ${TENSORFLOW_LIB_DIR})
endif()
if(TARGET tbb)
get_target_property(TBB_LIB_DIR tbb LIBRARY_OUTPUT_DIRECTORY)
list(APPEND CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS ${TBB_LIB_DIR})
endif()
message("CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIR: ${CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS}")
set(CPACK_DEB_COMPONENT_INSTALL ON)
endif()
include(CPack)