File: rules

package info (click to toggle)
open3d 0.19.0-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 83,496 kB
  • sloc: cpp: 206,543; python: 27,254; ansic: 8,356; javascript: 1,883; sh: 1,527; makefile: 259; xml: 69
file content (137 lines) | stat: -rwxr-xr-x 5,190 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
136
137
#!/usr/bin/make -f
export DEB_BUILD_MAINT_OPTIONS = hardening=+all reproducible=+all future=+lfs
export PYBUILD_NAME=open3d

include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/pkg-info.mk

# -faligned-new is needed on some architectures to support 16 byte alignment
# of Eigen types
# -Wno-psabi silences the note about an ABI change in GCC 7.1, which comes
# from STL code
export DEB_CFLAGS_MAINT_APPEND = -faligned-new -Wno-psabi
export DEB_CXXFLAGS_MAINT_APPEND = -faligned-new -Wno-psabi
export SPHINX_TODAY = $(shell LC_ALL=C date -u "+%B %d, %Y" -d "@$(SOURCE_DATE_EPOCH)")

WITH_EMBREE = $(if $(filter amd64 arm64,$(DEB_HOST_ARCH)),ON,OFF)
BUILD_UNIT_TESTS = OFF  # $(if $(filter nocheck,$(DEB_BUILD_OPTIONS)),OFF,ON)
BUILD_CUDA = OFF
BUILD_PYTORCH_OPS = OFF  # $(if $(filter amd64 arm64 ppc64el riscv64 s390x,$(DEB_HOST_ARCH)),ON,OFF)

BUILD_DIR = obj-$(DEB_HOST_GNU_TYPE)
LIB_DIR = $(CURDIR)/$(BUILD_DIR)/lib/None

%:
	dh $@ --buildsystem=cmake

override_dh_auto_configure:
	dh_auto_configure --buildsystem=cmake -- \
		-DCMAKE_SKIP_RPATH=ON \
		-DDEVELOPER_BUILD=OFF \
		-DGLIBCXX_USE_CXX11_ABI=1 \
		-DBUILD_SHARED_LIBS=ON \
		-DBUILD_EXAMPLES=OFF \
		-DBUILD_CUDA_MODULE=$(BUILD_CUDA) \
		-DBUILD_COMMON_CUDA_ARCHS=$(BUILD_CUDA) \
		-DCUDAToolkit_INCLUDE_DIR=/usr/include \
		-DBUILD_UNIT_TESTS=$(BUILD_UNIT_TESTS) \
		-DBUILD_ISPC_MODULE=OFF \
		-DBUILD_WEBRTC=OFF \
		-DBUILD_PYTORCH_OPS=$(BUILD_PYTORCH_OPS) \
		-DUSE_BLAS=ON \
		-DWITH_IPP=OFF \
		-DUSE_SYSTEM_ASSIMP=ON \
		-DUSE_SYSTEM_BLAS=ON \
		-DUSE_SYSTEM_CURL=ON \
		-DUSE_SYSTEM_CUTLASS=ON \
		-DUSE_SYSTEM_EIGEN3=ON \
		-DUSE_SYSTEM_EMBREE=ON \
		-DUSE_SYSTEM_FAISS=ON \
		-DUSE_SYSTEM_FILAMENT=ON \
		-DUSE_SYSTEM_FLANN=ON \
		-DUSE_SYSTEM_FMT=ON \
		-DUSE_SYSTEM_GLEW=ON \
		-DUSE_SYSTEM_GLFW=ON \
		-DUSE_SYSTEM_GOOGLETEST=ON \
		-DUSE_SYSTEM_IMGUI=ON \
		-DUSE_SYSTEM_JPEG=ON \
		-DUSE_SYSTEM_JSONCPP=ON \
		-DUSE_SYSTEM_LIBLZF=ON \
		-DUSE_SYSTEM_MSGPACK=ON \
		-DUSE_SYSTEM_NANOFLANN=ON \
		-DUSE_SYSTEM_OPENSSL=ON \
		-DUSE_SYSTEM_PNG=ON \
		-DUSE_SYSTEM_PYBIND11=ON \
		-DUSE_SYSTEM_QHULLCPP=ON \
		-DUSE_SYSTEM_STDGPU=ON \
		-DUSE_SYSTEM_TBB=ON \
		-DUSE_SYSTEM_TINYGLTF=ON \
		-DUSE_SYSTEM_TINYOBJLOADER=ON \
		-DUSE_SYSTEM_VTK=ON \
		-DUSE_SYSTEM_ZEROMQ=ON \
		-DWITH_EMBREE=$(WITH_EMBREE) \
		-DWITH_MINIZIP=ON

override_dh_auto_test:
ifeq ($(BUILD_UNIT_TESTS),ON)
	LD_LIBRARY_PATH=$(LIB_DIR) OPEN3D_TORCH_OP_LIB=$(LIB_DIR)/cpu/open3d_torch_ops.so \
	./$(BUILD_DIR)/bin/tests || true
endif

execute_after_dh_auto_clean:
	find . -name __pycache__ -type d -print0 | xargs -r0 rm -r

execute_after_dh_auto_install:
	# Build Python package
	$(MAKE) -C $(BUILD_DIR) python-package
	cd $(BUILD_DIR)/lib/python_package && python3 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python3-open3d
	rm -r debian/python3-open3d/usr/lib/python*/*-packages/open3d/resources
	# Fix GUI application installation
	mv debian/tmp/usr/bin/Open3D debian/tmp
	mv debian/tmp/Open3D/Open3D debian/tmp/usr/bin
	rm debian/tmp/Open3D/resources/Roboto-*
	mkdir -p debian/tmp/usr/share/open3d-viewer
	mv debian/tmp/Open3D/resources debian/tmp/usr/share/open3d-viewer
	rm -r debian/tmp/Open3D
	rm -r debian/tmp/usr/share/resources

execute_after_dh_install-indep:
ifeq ($(BUILD_PYTORCH_OPS),ON)
	rm -r debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libopen3d$(OPEN3D_SOVERSION)
endif

execute_after_dh_install:
ifeq ($(BUILD_PYTORCH_OPS),ON)
	# Move ops library to destination or delete it for indep builds
	if test -d debian/libopen3d$(OPEN3D_SOVERSION)/usr/lib/$(DEB_HOST_MULTIARCH); then \
		mv debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libopen3d$(OPEN3D_SOVERSION) debian/libopen3d$(OPEN3D_SOVERSION)/usr/lib/$(DEB_HOST_MULTIARCH); \
	else \
		rm -r debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libopen3d$(OPEN3D_SOVERSION); \
	fi
endif

PYTHON_DOC_DIR = debian/open3d-doc/usr/share/doc/open3d-doc/python
DOXYGEN_DOC_DIR = debian/open3d-doc/usr/share/doc/open3d-doc/cpp
MAKE_DOCS_COMMON_OPTS = --clean_notebooks --execute_notebooks=never --is_release

execute_before_dh_installdocs-indep:
ifeq ($(filter nodoc,$(DEB_BUILD_OPTIONS)),)
	pandoc -f markdown_strict -t rst -o README.rst README.md
	# Build C++ (Doxygen) documentation
	rm -rf docs/_out
	cd docs && LC_ALL=C LD_LIBRARY_PATH=$(LIB_DIR) OPEN3D_TORCH_OP_LIB=$(LIB_DIR)/cpu/open3d_torch_ops.so PYTHONPATH=$(shell ls -d $(CURDIR)/debian/python3-open3d/usr/lib/python*/*-packages) \
		python3 make_docs.py $(MAKE_DOCS_COMMON_OPTS) --doxygen --py_api_rst=never --py_example_rst=never
	mkdir -p $(DOXYGEN_DOC_DIR)
	cp -r docs/_out/html/cpp_api $(DOXYGEN_DOC_DIR)/html
	dh_doxygen
	# Build Python (Sphinx) documentation
	rm -rf docs/_out
	cd docs && LC_ALL=C LD_LIBRARY_PATH=$(LIB_DIR) OPEN3D_TORCH_OP_LIB=$(LIB_DIR)/cpu/open3d_torch_ops.so PYTHONPATH=$(shell ls -d $(CURDIR)/debian/python3-open3d/usr/lib/python*/*-packages) \
		python3 make_docs.py $(MAKE_DOCS_COMMON_OPTS) --sphinx
	mkdir -p $(PYTHON_DOC_DIR)
	cp -r docs/_out/html $(PYTHON_DOC_DIR)
endif

execute_after_dh_installexamples-indep:
	# Remove erroneous executable bit from some documentation files
	find debian/open3d-doc/usr/share/doc/open3d-doc/examples -type f -print0 | xargs -r -0 chmod -x