diff options
| author | Slávek Banko <slavek.banko@axis.cz> | 2025-09-14 16:50:38 +0200 |
|---|---|---|
| committer | Slávek Banko <slavek.banko@axis.cz> | 2025-09-14 18:36:36 +0200 |
| commit | b28279f8b9b4aee72edcd2cba11045343fe4013a (patch) | |
| tree | fa3386397d1e4120a318137e82fae9e027495768 /debian | |
| parent | f445b828f52e48a9000df35559f05e1f0acb6e01 (diff) | |
| download | tde-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.mk | 84 |
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 | \ |
