#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
#export DH_VERBOSE = 1

export DH_OPTIONS
export DEB_BUILD_MAINT_OPTIONS = hardening=+all

include /usr/share/dpkg/architecture.mk

CPPFLAGS :=$(shell dpkg-buildflags --get CPPFLAGS)
CFLAGS   :=$(shell dpkg-buildflags --get CFLAGS)
CXXFLAGS :=$(shell dpkg-buildflags --get CXXFLAGS)
LDFLAGS  :=$(shell dpkg-buildflags --get LDFLAGS)

export DEB_HOST_MULTIARCH CPPFLAGS CFLAGS CXXFLAGS LDFLAGS

COMMON_CMAKE_FLAGS = \
    -DCMAKE_INSTALL_PREFIX=/usr \
	-DLIB_INSTALL_DIR=/usr/lib/$(DEB_HOST_MULTIARCH) \
    -DCMAKE_LIBRARY_ARCHITECTURE="$(DEB_HOST_MULTIARCH)" \
    -DBUILD_TESTING=$(if $(filter nocheck,$(DEB_BUILD_OPTIONS)),OFF,ON) \
    -DBUILD_GEN=ON \
    -DBUILD_PYTHON=OFF \
    -DBUILD_PYTHON3=OFF \
    -DUSE_PREGENERATED_SOURCE=ON \
    -DPREGENERATED_SOURCE_DIR:PATH=$(CURDIR)/generated_src \
    -DPYTHON3_EXECUTABLE=/usr/bin/python3 \
    -DINSTALL_PYTHON3=ON \
    -DSETUPTOOLS_DEB_LAYOUT=ON \
    -DBUILD_DOCUMENTATION=OFF \
    -DROBOTRACONTEUR_TESTING_DISABLE_DISCOVERY_LOOPBACK=ON \
    -DBUILD_SHARED_LIBS=ON \
    -DROBOTRACONTEURCORE_SOVERSION_MAJOR_ONLY=ON \
    -DROBOTRACONTEUR_SKIP_RPATH=ON \
    -DCMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE=PRE_TEST \
    -DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON

PYTHON_CMAKE_FLAGS = \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_LIBRARY_ARCHITECTURE="$(DEB_HOST_MULTIARCH)" \
    -DPYTHON3_EXECUTABLE=/usr/bin/python3 \
    -DINSTALL_PYTHON3=ON \
    -DSETUPTOOLS_DEB_LAYOUT=ON \
    -DROBOTRACONTEURCORE_SOVERSION_MAJOR_ONLY=ON \
    -DROBOTRACONTEUR_SKIP_RPATH=ON \
    -DCMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE=PRE_TEST \
    -DBUILD_TESTING=OFF \
    -DBUID_CORE=OFF \
    -DRobotRaconteur_DIR=$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)

%:
	dh $@ --max-parallel=2

override_dh_auto_clean:
	dh_auto_clean -B $(BUILDDIR)
	dh_auto_clean -S pybuild \
		-- --name=robotraconteur --system=custom \
		--clean-args "dh_auto_clean -B {build_dir}"


override_dh_auto_configure:
	dh_auto_configure -- $(COMMON_CMAKE_FLAGS)
	# Python extension
	dh_auto_configure -S pybuild \
		-- --name=robotraconteur --system=custom --configure-args "\
			dh_auto_configure -S cmake -B {build_dir} -- \
				-DCMAKE_INSTALL_PREFIX=/usr \
				-DCMAKE_LIBRARY_ARCHITECTURE=\"$(DEB_HOST_MULTIARCH)\" \
				-DCMAKE_SKIP_RPATH=ON \
				-DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/{interpreter} \
				-DPYTHON_LIBRARY:FILEPATH={interpreter.library_file} \
				-DPYTHON_INCLUDE_DIR:PATH={interpreter.include_dir} \
				-DBUILD_TESTING=OFF \
				-DBUILD_CORE=OFF \
                -DBUILD_GEN=OFF \
    			-DRobotRaconteur_DIR=$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE) \
    			-DINSTALL_PYTHON3=ON \
                -DBUILD_PYTHON3=ON \
    			-DSETUPTOOLS_DEB_LAYOUT=ON"

override_dh_auto_install:
	dh_auto_install -B $(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)
	# Python extension
	dh_auto_install -S pybuild \
		-- --name=robotraconteur --system=custom \
		--install-args "dh_auto_install -B {build_dir} --destdir={destdir}"

override_dh_python3:
	dh_python3

override_dh_auto_build:
	LD_LIBRARY_PATH=$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)/out/lib:$$LD_LIBRARY_PATH dh_auto_build
	LD_LIBRARY_PATH=$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)/out/lib:$$LD_LIBRARY_PATH dh_auto_build -S pybuild \
        -- --name=robotraconteur --system=custom \
        --build-args "dh_auto_build -B {build_dir}"

override_dh_makeshlibs:
	LD_LIBRARY_PATH=$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)/out/lib:$$LD_LIBRARY_PATH dh_makeshlibs -- -c4

override_dh_auto_test:
	LD_LIBRARY_PATH=$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)/out/lib:$(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)/test/out/lib:$$LD_LIBRARY_PATH dh_auto_test --no-parallel
