#!/usr/bin/make -f
export DEB_BUILD_OPTIONS=nocheck
SHELL := /bin/bash
arch=$(shell gcc -print-multiarch)
ruby_ver=$(shell ruby -r rbconfig -e "print RbConfig::CONFIG['ruby_version']")
ruby_arch_dir=$(shell ruby -r rbconfig -e "print RbConfig::CONFIG['archdir']")
ruby_libdir=$(shell ruby -r rbconfig -e "print RbConfig::CONFIG['rubylibdir']")
rockruby_archdir=$(subst /usr,,$(ruby_arch_dir))
rockruby_libdir=$(subst /usr,,$(ruby_libdir))

master2006_install_dir = /opt/rock/master-20.06
env_setup =  PATH=$(master2006_install_dir)/bin:$$PATH
env_setup += HOME=/home/ 
env_setup += RUBYLIB=$(master2006_install_dir)/$(rockruby_libdir):$(master2006_install_dir)/$(rockruby_archdir):$(master2006_install_dir)/lib/ruby/vendor_ruby/standard:$(master2006_install_dir)/lib/ruby/vendor_ruby/core:$(master2006_install_dir)/lib/ruby/vendor_ruby:$$RUBYLIB
env_setup += PKG_CONFIG_PATH=$(master2006_install_dir)/lib/pkgconfig:$(master2006_install_dir)/lib/$(arch)/pkgconfig:/usr/share/pkgconfig:/usr/lib/$(arch)/pkgconfig:$$PKG_CONFIG_PATH
env_setup += Rock_DIR=$(master2006_install_dir)/share/rock/cmake:$$Rock_DIR
env_setup += LD_LIBRARY_PATH=$(master2006_install_dir)/lib:$(master2006_install_dir)/lib/$(arch):$$LD_LIBRARY_PATH
env_setup += CMAKE_PREFIX_PATH=$(master2006_install_dir):$$CMAKE_PREFIX_PATH
env_setup += OROGEN_PLUGIN_PATH=$(master2006_install_dir)/share/orogen/plugins:$$OROGEN_PLUGIN_PATH
export TYPELIB_CXX_LOADER=castxml
export DEB_CPPFLAGS_APPEND=-std=c++11
export npm_config_cache=/tmp/npm
rock_library_dirs=$(master2006_install_dir)/lib:$(master2006_install_dir)/lib/$(arch):
rock_base_install_dir=/opt/rock
rock_release_install_dir=/opt/rock/master-20.06
rock_install_dir=/opt/rock/master-20.06/rock-master-20.06-ruby-qtbindings

env_setup += RUBY_CMAKE_INSTALL_PREFIX=debian/rock-master-20.06-ruby-qtbindings/opt/rock/master-20.06/rock-master-20.06-ruby-qtbindings
debian_install_prefix = debian/rock-master-20.06-ruby-qtbindings/opt/rock/master-20.06/rock-master-20.06-ruby-qtbindings
#export DH_VERBOSE=1
#
# Uncomment to ignore all test failures (but the tests will run anyway)
export DH_RUBY_IGNORE_TESTS=all
#
# Uncomment to ignore some test failures (but the tests will run anyway).
# Valid values:
#export DH_RUBY_IGNORE_TESTS=ruby1.9.1 ruby2.0 require-rubygems
#
# If you need to specify the .gemspec (eg there is more than one)
#export DH_RUBY_GEMSPEC=gem.gemspec

rock_install_dir=/opt/rock/master-20.06/rock-master-20.06-ruby-qtbindings
check_ruby_versions = 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7

# Link directories for Qt from ruby/<short-version-name> to lib/.../ruby/<long-version-name>
# param: long_version_name short_version_name
define rock_create_ruby_version_link
        echo "Link ruby directories: $(2) --> $(1)\n"
	$(shell mkdir -p $(rock_install_dir)/lib/ruby/$(1))
	dh_link $(rock_install_dir)/lib/x86_64-linux-gnu/ruby/$(1) $(rock_install_dir)/lib/x86_64-linux-gnu/ruby/$(2)
	dh_link $(rock_install_dir)/lib/ruby/$(1) $(rock_install_dir)/ruby/$(2)
	dh_link $(rock_install_dir)/lib/arm-linux-gnueabi/ruby/$(1) $(rock_install_dir)/lib/arm-linux-gnueabi/ruby/$(2)
	echo "\n"
endef

%:
	for file in `find $(rock_release_install_dir)/*/env.sh ! -empty -type f -name env.sh`; do source "$$file"; done; $(env_setup) dh $@ --buildsystem=ruby --with ruby

override_dh_link:
	$(foreach rb_version,$(check_ruby_versions), $(if $(wildcard /usr/lib/ruby/$(rb_version).0),$(call rock_create_ruby_version_link,$(rb_version).0,$(rb_version)), @echo "Skipping dh_link for ruby version $(rb_version).0, which is not installed\n" ))

override_dh_shlibdeps:
	dh_shlibdeps -l$(shell pwd)/$(debian_install_prefix)/lib/




override_dh_auto_install:
	echo "Apaka's override_dh_auto_install called"
	dh_auto_install 
	mkdir -p $(debian_install_prefix)
	cp -R debian/rock-master-20.06-ruby-qtbindings/usr/* $(debian_install_prefix)/
	rm -rf debian/rock-master-20.06-ruby-qtbindings/usr/*

define export_variable
	find $(debian_install_prefix) -type f -name '*$2' -exec dirname {} + | grep -v CMakeFiles | uniq | xargs -i printf "$1={}:\$${$1}\nexport $1\n" >> $(debian_install_prefix)/env.sh
	sed -i s#$(debian_install_prefix)#$(rock_install_dir)#g $(debian_install_prefix)/env.sh
	find $(debian_install_prefix) -type f -name '*$2' -exec dirname {} + | grep -v CMakeFiles | uniq | xargs -i printf "$1 {}\n" >> $(debian_install_prefix)/env.yml.append
	sed -i s#$(debian_install_prefix)#$(rock_install_dir)#g $(debian_install_prefix)/env.yml.append
endef

override_dh_installdocs:
	echo "Apaka's override_dh_installdocs called"
	$(if $(wildcard $(debian_install_prefix)/bin/*),-printf "PATH=$(rock_install_dir)/bin:\$${PATH}\nexport PATH\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/bin/*),-printf "PATH $(rock_install_dir)/bin\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/*),-printf "CMAKE_PREFIX_PATH=$(rock_install_dir):\$${CMAKE_PREFIX_PATH}\nexport CMAKE_PREFIX_PATH\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/*),-printf "CMAKE_PREFIX_PATH $(rock_install_dir)\n" >> $(debian_install_prefix)/env.yml.append)
	$(call export_variable,CMAKE_PREFIX_PATH,\.cmake)
	$(call export_variable,PKG_CONFIG_PATH,\.pc)
	$(if $(wildcard $(debian_install_prefix)/lib/ruby/$(ruby_ver)/*),-printf "RUBYLIB=$(rock_install_dir)/lib/ruby/$(ruby_ver):\$${RUBYLIB}\nexport RUBYLIB\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/ruby/$(ruby_ver)/*),-printf "RUBYLIB $(rock_install_dir)/lib/ruby/$(ruby_ver)\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/$(arch)/ruby/$(ruby_ver)/*),-printf "RUBYLIB=$(rock_install_dir)/lib/$(arch)/ruby/$(ruby_ver):\$${RUBYLIB}\nexport RUBYLIB\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/$(arch)/ruby/$(ruby_ver)/*),-printf "RUBYLIB $(rock_install_dir)/lib/$(arch)/ruby/$(ruby_ver)\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/site_ruby/*),-printf "RUBYLIB=$(rock_install_dir)/lib/site_ruby:\$${RUBYLIB}\nexport RUBYLIB\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/site_ruby/*),-printf "RUBYLIB $(rock_install_dir)/lib/site_ruby\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/$(arch)/site_ruby/*),-printf "RUBYLIB=$(rock_install_dir)/lib/$(arch)/site_ruby:\$${RUBYLIB}\nexport RUBYLIB\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/$(arch)/site_ruby/*),-printf "RUBYLIB $(rock_install_dir)/lib/$(arch)/site_ruby\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/ruby/vendor_ruby/*),-printf "RUBYLIB=$(rock_install_dir)/lib/ruby/vendor_ruby:\$${RUBYLIB}\nexport RUBYLIB\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/ruby/vendor_ruby/*),-printf "RUBYLIB $(rock_install_dir)/lib/ruby/vendor_ruby\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/$(arch)/ruby/vendor_ruby/$(ruby_ver)/*),-printf "RUBYLIB=$(rock_install_dir)/lib/$(arch)/ruby/vendor_ruby/$(ruby_ver):\$${RUBYLIB}\nexport RUBYLIB\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/$(arch)/ruby/vendor_ruby/$(ruby_ver)/*),-printf "RUBYLIB $(rock_install_dir)/lib/$(arch)/ruby/vendor_ruby/$(ruby_ver)\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/ruby/vendor_ruby/standard/*),-printf "RUBYLIB=$(rock_install_dir)/lib/ruby/vendor_ruby/standard:\$${RUBYLIB}\nexport RUBYLIB\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/ruby/vendor_ruby/standard/*),-printf "RUBYLIB $(rock_install_dir)/lib/ruby/vendor_ruby/standard\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/ruby/vendor_ruby/core/*),-printf "RUBYLIB=$(rock_install_dir)/lib/ruby/vendor_ruby/core:\$${RUBYLIB}\nexport RUBYLIB\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/ruby/vendor_ruby/core/*),-printf "RUBYLIB $(rock_install_dir)/lib/ruby/vendor_ruby/core\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/ruby/*),-printf "RUBYLIB=$(rock_install_dir)/lib/ruby:\$${RUBYLIB}\nexport RUBYLIB\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/ruby/*),-printf "RUBYLIB $(rock_install_dir)/lib/ruby\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/$(arch)/ruby/*),-printf "RUBYLIB=$(rock_install_dir)/lib/$(arch)/ruby:\$${RUBYLIB}\nexport RUBYLIB\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/$(arch)/ruby/*),-printf "RUBYLIB $(rock_install_dir)/lib/$(arch)/ruby\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/$(arch)/*.so),-printf "LD_LIBRARY_PATH=$(rock_install_dir)/lib/$(arch):\$${LD_LIBRARY_PATH}\nexport LD_LIBRARY_PATH\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/$(arch)/*.so),-printf "LD_LIBRARY_PATH $(rock_install_dir)/lib/$(arch)\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/*.so),-printf "LD_LIBRARY_PATH=$(rock_install_dir)/lib:\$${LD_LIBRARY_PATH}\nexport LD_LIBRARY_PATH\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/*.so),-printf "LD_LIBRARY_PATH $(rock_install_dir)/lib\n" >> $(debian_install_prefix)/env.yml.append)
	$(if $(wildcard $(debian_install_prefix)/lib/python$(python_version)/site-packages/*),-printf "PYTHONPATH=$(rock_install_dir)/lib/python$(python_version)/site-packages:\$${PYTHONPATH}\nexport PYTHONPATH\n" >> $(debian_install_prefix)/env.sh)
	$(if $(wildcard $(debian_install_prefix)/lib/python$(python_version)/site-packages/*),-printf "PYTHONPATH $(rock_install_dir)/lib/python$(python_version)/site-packages\n" >> $(debian_install_prefix)/env.yml.append)

