diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2022-09-30 10:31:30 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2022-10-02 09:47:22 +0200 |
commit | b5fdcbe3baf367c1aa8d2790b59507ef00b087a3 (patch) | |
tree | 24c1cf32ceb97cbbbca6d058fac376549ccce659 /ubuntu/_base/applications/office/koffice-i18n/debian/rules | |
parent | 0f859a1c0312e824efd9e994dbec78e8466a3ff7 (diff) | |
download | tde-packaging-b5fdcbe3baf367c1aa8d2790b59507ef00b087a3.tar.gz tde-packaging-b5fdcbe3baf367c1aa8d2790b59507ef00b087a3.zip |
DEB koffice-i18n: Switch to CMake build system.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
(cherry picked from commit b8a1f2f5f3ff139d3d34b81b7ebb3eaa6df7163b)
Diffstat (limited to 'ubuntu/_base/applications/office/koffice-i18n/debian/rules')
-rwxr-xr-x | ubuntu/_base/applications/office/koffice-i18n/debian/rules | 189 |
1 files changed, 123 insertions, 66 deletions
diff --git a/ubuntu/_base/applications/office/koffice-i18n/debian/rules b/ubuntu/_base/applications/office/koffice-i18n/debian/rules index 8fb58ece9..a9ca115a3 100755 --- a/ubuntu/_base/applications/office/koffice-i18n/debian/rules +++ b/ubuntu/_base/applications/office/koffice-i18n/debian/rules @@ -3,11 +3,36 @@ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 +I18N_DIR_PREFIX := koffice-i18n +I18N_DEST_PREFIX := $(I18N_DIR_PREFIX) +I18N_DIR_PAT := $(I18N_DIR_PREFIX)-% +I18N_DIRS := $(wildcard $(I18N_DIR_PREFIX)-*) + +# Stamps and support variables +cur_lang = $(word 2,$(subst __, ,$@)) +cur_lang_target = $(subst @,_,$(cur_lang)) +cur_lang_dir = $(patsubst %,$(I18N_DIR_PREFIX)-%,$(cur_lang)) +cur_pkg_lang = $(subst _,,$(subst @,,$(subst @latn,latin,$(shell echo $(cur_lang) | tr '[:upper:]' '[:lower:]')))) +cur_pkg = $(I18N_DEST_PREFIX)-$(cur_pkg_lang)-trinity + +STAMP_BUILD := $(patsubst $(I18N_DIR_PAT),debian/stamp__%__build,$(I18N_DIRS)) +I18N_INSTALL := $(patsubst $(I18N_DIR_PAT),install__%,$(I18N_DIRS)) +I18N_CLEAN := $(patsubst $(I18N_DIR_PAT),clean__%,$(I18N_DIRS)) + +DEB_BUILD_PARALLEL ?= true + ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) DEB_PARALLEL_JOBS ?= $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) endif DEB_MAKE_PARALLEL ?= $(and $(DEB_BUILD_PARALLEL),$(DEB_PARALLEL_JOBS),-j$(DEB_PARALLEL_JOBS)) +ifneq "$(wildcard /usr/bin/ninja)" "" +MAKE = ninja -v +DEB_MAKE_ENVVARS += DESTDIR=$(DEB_DESTDIR) +DEB_MAKE_INSTALL_TARGET = install +DEB_CMAKE_NORMAL_ARGS += -GNinja +endif + # The default gzip compressor has been changed in dpkg >= 1.17.0. deb_default_compress = $(shell LANG=C dpkg-deb --version | head -n1 | \ sed -e "s|.*version ||" -e "s| .*||" | \ @@ -18,91 +43,123 @@ DEB_DH_BUILDDEB_ARGS += -- -Z$(shell dpkg-deb --help | grep -q ":.* xz[,.]" \ && echo xz || echo bzip2) endif -languages = `ls -1d *i18n*` +DEB_CMAKE_EXTRA_FLAGS := \ + -DCMAKE_EXPORT_COMPILE_COMMANDS="ON" \ + -DCMAKE_INSTALL_PREFIX="/opt/trinity" \ + -DCONFIG_INSTALL_DIR="/etc/trinity" \ + -DSYSCONF_INSTALL_DIR="/etc/trinity" \ + -DXDG_MENU_INSTALL_DIR="/etc/xdg/menus" \ + -DCMAKE_VERBOSE_MAKEFILE="ON" \ + -DBUILD_ALL="ON" + -build-stamp: +build:: dh_testdir + dh_prep + +ifneq "$(wildcard /usr/bin/ninja)" "" + +build:: debian/stamp__build + +debian/stamp__build: + [ -d build ] || \ + mkdir build + cd build && \ + cmake .. $(DEB_CMAKE_NORMAL_ARGS) $(DEB_CMAKE_EXTRA_FLAGS) && \ + $(MAKE) $(DEB_MAKE_PARALLEL) + touch $@ + +else + +build:: $(STAMP_BUILD) + +$(STAMP_BUILD): + # Building the '$(cur_lang)' language ... + [ -d $(cur_lang_dir)/build ] || \ + mkdir $(cur_lang_dir)/build + [ -e $(cur_lang_dir)/CMakeLists.txt ] || \ + ln -s ../template/commonCMakeLists.txt $(cur_lang_dir)/CMakeLists.txt + cd $(cur_lang_dir)/build && \ + cmake .. $(DEB_CMAKE_NORMAL_ARGS) $(DEB_CMAKE_EXTRA_FLAGS) && \ + $(MAKE) $(DEB_MAKE_PARALLEL) + touch $@ - # Regenerate build system -ifneq "$(wildcard /usr/share/libtool/ltmain.sh)" "" - cp -f /usr/share/libtool/ltmain.sh admin/ltmain.sh -endif -ifneq "$(wildcard /usr/share/libtool/config/ltmain.sh)" "" - cp -f /usr/share/libtool/config/ltmain.sh admin/ltmain.sh endif -ifneq "$(wildcard /usr/share/libtool/build-aux/ltmain.sh)" "" - cp -f /usr/share/libtool/build-aux/ltmain.sh admin/ltmain.sh + +install:: + dh_testdir + dh_testroot + +install:: $(I18N_INSTALL) + dh_testdir + cat debian/control-source > debian/control + find debian -name "control-lang-*" | LANG=C sort | xargs -r cat >> debian/control + +$(I18N_INSTALL): build +ifneq "$(wildcard /usr/bin/ninja)" "" + [ ! -e $(cur_lang_dir)/CMakeLists.txt ] || \ + DESTDIR=$(CURDIR)/debian/$(cur_pkg) $(MAKE) -C build install-$(cur_lang_target) +else + cd $(cur_lang_dir)/build && \ + DESTDIR=$(CURDIR)/debian/$(cur_pkg) $(MAKE) install $(DEB_MAKE_PARALLEL) endif - cp -f /usr/share/aclocal/libtool.m4 admin/libtool.m4.in - - #Configure languages. - -for i in $(languages); do \ - cd $$i && \ - autoreconf && automake -f && $(MAKE) -f ../admin/Makefile.common && \ - ./configure $(configkde); \ - $(MAKE) $(DEB_MAKE_PARALLEL); \ - cd ..; \ - done - - touch build-stamp - -build: build-stamp --include debian/debiandirs - -clean: - dh_clean + sed -e "s|@lang@|$(cur_lang)|g" \ + -e "s|@pkg_lang@|$(cur_pkg_lang)|g" \ + -e "s|@lang_desc@|$$(sed -n '/^\[$(cur_lang)\]/,/^\[/s#^Name=##p' /opt/trinity/share/locale/all_languages)|" \ + < debian/control-lang > debian/control-lang-$(cur_pkg_lang); \ + +ifneq "$(wildcard /usr/bin/ninja)" "" + +clean: debian-clean + +else + +clean: $(I18N_CLEAN) debian-clean + +$(I18N_CLEAN): dh_testdir - - # Remove all language directories. - rm -rf build-stamp - rm -rf debian/*18n* + rm -rf $(cur_lang_dir)/build + +endif -binary-indep: build +debian-clean: dh_testdir + rm -rf build + rm -rf debian/$(I18N_DEST_PREFIX)-* + rm -f debian/stamp__* + rm -f debian/control-lang-* + cat debian/control-source > debian/control + sed -e "s|@lang@|all|g" \ + -e "s|-@pkg_lang@||g" \ + -e "s|@lang_desc@|All languages|" \ + < debian/control-lang >> debian/control + dh_clean + + +binary-arch: build dh_testroot - dh_clean -k - - -for i in $(languages); do \ - ( \ - cd $$i && \ - echo $$(install_dir) && \ - $(MAKE) install DESTDIR=`pwd`/../debian/$$i-trinity $(DEB_MAKE_PARALLEL); \ - cd .. \ - ) \ - done - - - mkdir debian/koffice-i18n-engb-trinity - cp -aR debian/koffice-i18n-en_GB-trinity/* debian/koffice-i18n-engb-trinity/ - - mkdir debian/koffice-i18n-ptbr-trinity - cp -aR debian/koffice-i18n-pt_BR-trinity/* debian/koffice-i18n-ptbr-trinity/ - - mkdir debian/koffice-i18n-srlatin-trinity - cp -aR debian/koffice-i18n-sr@Latn-trinity/* debian/koffice-i18n-srlatin-trinity/ - - mkdir debian/koffice-i18n-zhcn-trinity - cp -aR debian/koffice-i18n-zh_CN-trinity/* debian/koffice-i18n-zhcn-trinity/ - - mkdir debian/koffice-i18n-zhtw-trinity - cp -aR debian/koffice-i18n-zh_TW-trinity/* debian/koffice-i18n-zhtw-trinity/ - - - #Removing duplicate kdgantt.mo files. - -rm -f `find . -name "kdgantt.mo"` + dh_testdir + +binary-indep: build install + dh_testroot + dh_testdir dh_installdocs dh_installmenu dh_installchangelogs dh_strip - dh_link + $(if $(wildcard /usr/bin/dh_strip_nondeterminism),\ + dh_strip_nondeterminism) dh_compress -X.docbook -X.css -X-license -X.dcl -X.bz2 dh_fixperms dh_installdeb + dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb $(DEB_DH_BUILDDEB_ARGS) -binary: binary-indep -.PHONY: binary binary-indep clean +# Below here is fairly generic really +binary: binary-indep binary-arch + +.PHONY: binary binary-arch binary-indep clean build install $(I18N_INSTALL) |