summaryrefslogtreecommitdiffstats
path: root/debian
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2025-09-14 16:50:38 +0200
committerSlávek Banko <slavek.banko@axis.cz>2025-09-14 18:36:36 +0200
commitb28279f8b9b4aee72edcd2cba11045343fe4013a (patch)
treefa3386397d1e4120a318137e82fae9e027495768 /debian
parentf445b828f52e48a9000df35559f05e1f0acb6e01 (diff)
downloadtde-packaging-b28279f8b9b4aee72edcd2cba11045343fe4013a.tar.gz
tde-packaging-b28279f8b9b4aee72edcd2cba11045343fe4013a.zip
DEB tde-cdbs: Add basic CMake build rules from cmake.mk to tde.mk.
Added automatic selection of build system based on the presence of CMakeLists.txt or Makefile.am. Note: cmake.mk is removed in cdbs >= 0.4.177 Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'debian')
-rw-r--r--debian/_base/metapackages/tde-cdbs/tde.mk84
1 files changed, 68 insertions, 16 deletions
diff --git a/debian/_base/metapackages/tde-cdbs/tde.mk b/debian/_base/metapackages/tde-cdbs/tde.mk
index 01b23943e..fa1a66768 100644
--- a/debian/_base/metapackages/tde-cdbs/tde.mk
+++ b/debian/_base/metapackages/tde-cdbs/tde.mk
@@ -27,13 +27,20 @@ endif
ifndef _cdbs_class_tde
_cdbs_class_tde := 1
+# automatically select build system
+ifneq "$(wildcard CMakeLists.txt)" ""
+ _tde_build_cmake := 1
+else ifneq "$(wildcard Makefile.am)" ""
+ _tde_build_automake := 1
+endif
+
# for dh_icons
CDBS_BUILD_DEPENDS := $(CDBS_BUILD_DEPENDS), debhelper (>= 5.0.7ubuntu4)
# Note: This _must_ be included before autotools.mk, or it won't work.
common-configure-arch common-configure-indep:: debian/stamp-cvs-make
debian/stamp-cvs-make:
-ifndef _cdbs_class_cmake
+ifdef _tde_build_automake
cp -Rp /usr/share/aclocal/libtool.m4 admin/libtool.m4.in
ifneq "$(wildcard /usr/share/libtool/config/ltmain.sh)" ""
cp -Rp /usr/share/libtool/config/ltmain.sh admin/ltmain.sh
@@ -59,17 +66,46 @@ else
DEB_BUILDDIR = obj-$(DEB_BUILD_GNU_TYPE)
endif
-ifndef _cdbs_class_cmake
-include $(_cdbs_class_path)/autotools.mk$(_cdbs_makefile_suffix)
-endif
-
-ifdef _cdbs_class_cmake
-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
+ifdef _tde_build_cmake
+ -include $(_cdbs_class_path)/cmake.mk$(_cdbs_makefile_suffix)
+ ifndef _cdbs_class_cmake
+ include $(_cdbs_class_path)/makefile.mk$(_cdbs_makefile_suffix)
+ DEB_MAKE_EXTRA_ARGS = $(DEB_MAKE_PARALLEL)
+ DEB_MAKE_INSTALL_TARGET ?= install DESTDIR=$(DEB_DESTDIR)
+ CMAKE ?= cmake
+ DEB_CMAKE_INSTALL_PREFIX ?= /usr
+ DEB_CMAKE_CFLAGS ?= $(CFLAGS) $(CPPFLAGS)
+ DEB_CMAKE_CXXFLAGS ?= $(CXXFLAGS) $(CPPFLAGS)
+ DEB_CMAKE_LDFLAGS ?= $(LDFLAGS)
+ DEB_CMAKE_NORMAL_ARGS ?= \
+ -DCMAKE_INSTALL_PREFIX="$(DEB_CMAKE_INSTALL_PREFIX)" \
+ -DCMAKE_C_COMPILER:FILEPATH="$(CC)" \
+ -DCMAKE_CXX_COMPILER:FILEPATH="$(CXX)" \
+ -DCMAKE_C_FLAGS="$(DEB_CMAKE_CFLAGS)" \
+ -DCMAKE_CXX_FLAGS="$(DEB_CMAKE_CXXFLAGS)" \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
+ -DCMAKE_EXE_LINKER_FLAGS="$(DEB_CMAKE_LDFLAGS)" \
+ -DCMAKE_MODULE_LINKER_FLAGS="$(DEB_CMAKE_LDFLAGS)" \
+ -DCMAKE_SHARED_LINKER_FLAGS="$(DEB_CMAKE_LDFLAGS)"
+ _cdbs_cmake_system_name_linux = Linux
+ _cdbs_cmake_system_name_kfreebsd = FreeBSD
+ _cdbs_cmake_system_name_hurd = GNU
+ DEB_CMAKE_CROSS_ARGS ?= \
+ $(patsubst %,-DCMAKE_SYSTEM_NAME=%,\
+ $(_cdbs_cmake_system_name_$(DEB_HOST_ARCH_OS))) \
+ -DCMAKE_SYSTEM_PROCESSOR=$(DEB_HOST_GNU_CPU) \
+ -DCMAKE_INSTALL_LIBDIR=lib/$(DEB_HOST_MULTIARCH) \
+ -DPKG_CONFIG_EXECUTABLE=/usr/bin/$(DEB_HOST_GNU_TYPE)-pkg-config
+ endif
+ 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
+else ifdef _tde_build_automake
+ include $(_cdbs_class_path)/autotools.mk$(_cdbs_makefile_suffix)
endif
ifndef _cdbs_rules_patchsys_quilt
@@ -90,6 +126,8 @@ DEB_AC_AUX_DIR = $(DEB_SRCDIR)/admin
DEB_CONFIGURE_INCLUDEDIR = "\$${prefix}/include"
DEB_COMPRESS_EXCLUDE_ALL += .dcl .docbook -license .tag .sty .el
+DEB_BUILD_PARALLEL ?= true
+
# 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| .*||" | \
@@ -100,6 +138,7 @@ DEB_DH_BUILDDEB_ARGS += -- -Z$(shell dpkg-deb --help | grep -q ":.* xz[,.]" \
&& echo xz || echo bzip2)
endif
+ifdef _tde_build_automake
ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
cdbs_treat_me_gently_arches := arm m68k alpha ppc64 armel armeb
ifeq (,$(filter $(DEB_HOST_ARCH_CPU),$(cdbs_treat_me_gently_arches)))
@@ -120,20 +159,19 @@ ifneq (,$(filter debug,$(DEB_BUILD_OPTIONS)))
cdbs_kde_enable_debug = --enable-debug=full
endif
-DEB_BUILD_PARALLEL ?= true
-
cdbs_configure_flags += \
--with-qt-dir=/usr/share/qt3 \
--disable-rpath \
--with-xinerama \
$(cdbs_kde_enable_final) \
$(cdbs_kde_enable_debug)
+endif
# This is a convenience target for calling manually.
# It's not part of the build process.
buildprep: clean apply-patches
-ifndef _cdbs_class_cmake
+ifdef _tde_build_automake
$(MAKE) -f admin/Makefile.common dist
endif
debian/rules clean
@@ -146,6 +184,20 @@ endif
post-patches:: .tdepkginfo
+ifdef _tde_build_cmake
+ifndef _cdbs_class_cmake
+common-configure-arch common-configure-indep:: common-configure-impl
+common-configure-impl:: $(DEB_BUILDDIR)/CMakeCache.txt
+$(DEB_BUILDDIR)/CMakeCache.txt:
+ $(strip cd $(DEB_BUILDDIR) && \
+ $(CMAKE) $(CURDIR)/$(DEB_SRCDIR) \
+ $(DEB_CMAKE_NORMAL_ARGS) \
+ $(if $(cdbs_crossbuild),\
+ $(DEB_CMAKE_CROSS_ARGS)) \
+ $(DEB_CMAKE_EXTRA_FLAGS))
+endif
+endif
+
common-build-arch:: debian/stamp-man-pages
debian/stamp-man-pages:
if ! test -d debian/man/out; then mkdir -p debian/man/out; fi
@@ -242,7 +294,7 @@ cleanbuilddir::
-$(if $(call cdbs_streq,$(DEB_BUILDDIR),$(DEB_SRCDIR)),,rm -rf $(DEB_BUILDDIR))
clean::
-ifndef _cdbs_class_cmake
+ifdef _tde_build_automake
if test -n "$(DEB_KDE_CVS_MAKE)" && test -d $(DEB_SRCDIR); then \
cd $(DEB_SRCDIR); \
find . -name Makefile.in -print | \