File: rules

package info (click to toggle)
openscad 2019.01~RC2-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 33,296 kB
  • sloc: cpp: 49,451; ansic: 4,381; sh: 4,320; python: 1,585; yacc: 766; lex: 384; lisp: 134; xml: 127; makefile: 76
file content (87 lines) | stat: -rwxr-xr-x 3,481 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
#!/usr/bin/make -f

# export DH_VERBOSE=1

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

# workaround for virtual memory exhaustion, see #883986
ifneq (,$(filter $(DEB_HOST_ARCH), mips mipsel powerpcspe))
    export DEB_CXXFLAGS_MAINT_APPEND = -g1
endif

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

export QT_SELECT = qt5

%:
	dh $@ --buildsystem=qmake

override_dh_auto_configure:
	dh_auto_configure -- \
		VERSION=$$(echo "$(DEB_VERSION_UPSTREAM)" | sed -e 's/-.*//' -e 's/~/-/') \
		CONFIG-=debug CONFIG+=qopenglwidget


override_dh_auto_build:
	dh_auto_build

	# not run in dh_auto_configure stage, as it requires the openscad binary to be already built
	dh_auto_configure -Dtests --buildsystem=cmake

	# fix absolute paths in ctest scripts (relative paths will work during
	# the build time tests, and are catered for by the openscad-testrun
	# script).
	#
	# note that often, a `../openscad` reference remains. this is left in
	# place, as not all tools involved honor $PATH (eg. because they do an
	# explicit `os.path.exists` on their openscad binary).
	cd obj-* && perl -i.bak -npe 'use Cwd; my $$here = getcwd(); s/\Q$$here\E/./g' *.cmake
	perl -i.bak -npe 'use Cwd; my $$here = getcwd(); s/\Q$$here\/tests\E/./g' obj-*/*.cmake

override_dh_auto_test:
	# workaround to have the test suite usable out-of-tree. FIXME introduce
	# a fix for upstream that makes ctest also work with out-of-tree
	# building.
	cd obj-* && ln -s ../tests/* -t. || echo "Some files are expected to already be present."

	# OPENSCADPATH has to be set because the default library dir is
	# determined based on the openscad binary's path (will be ok after
	# installation).
	#
	# clearing DISPLAY is not strictly necessary here as this is already
	# done by the build environment (at least by gbp buildpackage), but it
	# makes it clear that the intent is to always render the build-time
	# tests in software.
	#
	# as for the tests excluded with --exclude-regex, see README.testsuite.
	DISPLAY= OPENSCADPATH=/usr/share/openscad/libraries dh_auto_test -Dtests --buildsystem=cmake -- ARGS+="--exclude-regex ^customizertest\\|^svgpngtest\\|issue1165\\|issue1215\\|throwntogethertest_issue1089\\|openscad-cameyeortho_camera-tests\\|openscad-cameyeortho-viewall_camera-tests" || ( echo '---- content of ' obj-*/Testing/Temporary/*_report.html ' ----'; cat obj-*/Testing/Temporary/*_report.html; echo; echo '---- end content ----'; exit 0)

override_dh_auto_install:
	# fix absolute paths in generated scad files. this step logically
	# belongs to the similar lines in the dh_auto_build override, but can
	# first be done here becaus for the build time tests, the original
	# paths are still required.
	find testdata -name \*.scad  -exec perl -i -pe 'use Cwd; my $$here = getcwd(); s[\Q$$here\E/tests/../testdata][/usr/share/openscad/testdata]g' {} +

	dh_auto_install --destdir=debian/openscad

	# don't ship mcad, neither the empty directory (when this is built from
	# a normal git source checkout) nor the full library (when this is
	# built from a git checkout with submodules or from a tarball). mcad
	# gets its own package.
	rm -rf debian/openscad/usr/share/openscad/libraries

	# remove fonts
	rm -rf debian/openscad/usr/share/openscad/fonts

override_dh_install:
	dh_install -Xtestdata/ttf/liberation-2.00.1/LICENSE

override_dh_strip:
	dh_strip --dbg-package openscad-dbg

override_dh_auto_clean:
	dh_auto_clean

	dh_auto_clean -Dtests --buildsystem=cmake