#!/usr/bin/make -f # -*- makefile -*- include /usr/share/dpkg/default.mk EXTRA_CMAKE_VARIABLES += \ TDESKTOP_API_ID=50322 \ TDESKTOP_API_HASH=9ff1a639196c0779c86dd661af8522ba \ QT_VERSION_MAJOR=5 \ DESKTOP_APP_REQUIRE_JEMALLOC=OFF \ DESKTOP_APP_USE_PACKAGED_FONTS=ON \ DESKTOP_APP_USE_PACKAGED_RLOTTIE=ON \ DESKTOP_APP_USE_PACKED_RESOURCES=ON \ DESKTOP_APP_USE_CLD3=OFF \ CMAKE_STATIC_LINKER_FLAGS='-T' DEB_BUILD_MAINT_OPTIONS = hardening=+all # Reveal any errors with pre-compiled headers. DEB_CPPFLAGS_MAINT_APPEND += -Werror=invalid-pch -I$(CURDIR)/debian # Print full stack trace of template instantiations. DEB_CXXFLAGS_MAINT_APPEND += -ftemplate-backtrace-limit=0 # Build scripts do not require compiled object code. This also shrinks result # binary by 50 kB. DEB_CFLAGS_MAINT_STRIP += -ffat-lto-objects DEB_CXXFLAGS_MAINT_STRIP += -ffat-lto-objects ifeq ($(filter terse,$(DEB_BUILD_OPTIONS)),) # Print entire arguments of moc invocation. EXTRA_CMAKE_VARIABLES += CMAKE_AUTOGEN_VERBOSE=ON endif ifneq ($(DEB_HOST_ARCH_OS),linux) # Wayland is not ready on GNU/Hurd or Debian/kFreeBSD. # Make sure KWayland library and Qt WaylandClient plugin are not in use. EXTRA_CMAKE_VARIABLES += DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION=ON DEB_CPPFLAGS_MAINT_APPEND += -UQT_WAYLANDCLIENT_LIB endif ifeq ($(filter pkg.$(DEB_SOURCE).lotmem,$(DEB_BUILD_PROFILES)),) ifeq ($(DEB_BUILD_ARCH_BITS),32) ATTEMPT_SAVE_MEMORY = 1 endif ifeq ($(DEB_BUILD_ARCH),mips64el) DEB_CXXFLAGS_MAINT_STRIP += -g DEB_CXXFLAGS_MAINT_PREPEND += -g1 endif ifeq ($(DEB_BUILD_ARCH),mipsel) ifeq ($(filter nostrip,$(DEB_BUILD_OPTIONS)),) SPLIT_DEBUG_INFO = 1 endif endif endif ifdef ATTEMPT_SAVE_MEMORY # Less debug info by default to fit small address space. ifneq ($(filter -g,$(CFLAGS)),) DEB_CLAGS_MAINT_STRIP += -g DEB_CFLAGS_MAINT_PREPEND += -g1 endif ifneq ($(filter -g,$(CXXFLAGS)),) DEB_CXXFLAGS_MAINT_STRIP += -g DEB_CXXFLAGS_MAINT_PREPEND += -g1 endif # Attempt to reduce RAM consumption even more. DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-keep-memory endif ifdef SPLIT_DEBUG_INFO DEB_CFLAGS_MAINT_PREPEND += -gsplit-dwarf DEB_CXXFLAGS_MAINT_PREPEND += -gsplit-dwarf endif ifeq ($(filter pkg.$(DEB_SOURCE).hugeopt,$(DEB_BUILD_PROFILES)),) ifeq ($(DEB_VENDOR),Ubuntu) # Link time optimizations require more than 8 GB of RAM. DEB_BUILD_MAINT_OPTIONS += optimize=-lto endif endif backporting_bullseye = $(findstring bullseye,$(DEB_DISTRIBUTION)) backporting_jammy = $(findstring jammy,$(DEB_DISTRIBUTION)) CPPLIBS_PACKAGES = libexpected-dev libmsgsl-dev librange-v3-dev libtgowt-dev EXTRA_SUBSTVARS += \ cpplibs:Built-Using=$(shell dpkg-query -Wf '$${source:Package}(=$${source:Version}),' $(CPPLIBS_PACKAGES)) # Make visible all possible maintainer's flags. export DEB_BUILD_MAINT_OPTIONS $(foreach flag,$(DPKG_BUILDFLAGS_LIST),\ $(foreach operation,STRIP APPEND PREPEND,DEB_$(flag)_MAINT_$(operation))) # Make debugging a little easier. https://stackoverflow.com/a/25817631/5000805 # Print also export line if the variable is being exported. print-%: @echo $* = $($*) @env | sed '/^\($*\)=.*/s//export \1/;t;d' %: dh $@ override_dh_auto_configure: dh_auto_configure -- $(EXTRA_CMAKE_VARIABLES:%=-D%) ifneq ($(backporting_bullseye),) # Clear a redundant linker flag imposed by abseil. See https://bugs.debian.org/1001596 sed -i 's/-Wl,--no-as-needed\>//g' obj-*/Telegram/CMakeFiles/Telegram.dir/link.txt endif # Copy WebView resources missing by CMake installation script. execute_after_dh_auto_install: ln obj-*/lib_webview.rcc debian/telegram-desktop/usr/share/TelegramDesktop/ ifneq ($(backporting_bullseye)$(backporting_jammy),) # Write hidden desktop entry for compatibility with existing setups. cd debian/telegram-desktop/usr/share/applications && sed /^$$/iHidden=true org.telegram.desktop.desktop > telegramdesktop.desktop endif # Unset limit of debug information entries. override_dh_dwz: ifndef SPLIT_DEBUG_INFO dh_dwz -- -L none else # dwz(1) can't work with split DWARF, see: https://sourceware.org/bugzilla/show_bug.cgi?id=24756 # Gather debug references on my own before Debhelper moves it to -dbgsym package. TELEGRAM_BINARY = debian/telegram-desktop/usr/bin/telegram-desktop DBGSYM = debian/.debhelper/telegram-desktop/dbgsym-root DBGDIR = usr/lib/debug/telegram-desktop TRACING = $(if $(filter terse,$(DEB_BUILD_OPTIONS)),,-x) execute_before_dh_strip: mkdir -p debian/tmp $(DBGSYM)/$(DBGDIR) TMPDIR=debian/tmp debian/dbgpatch.py $(TRACING) $(TELEGRAM_BINARY) $(DBGSYM) $(DBGDIR) endif override_dh_gencontrol: dh_gencontrol -- $(EXTRA_SUBSTVARS:%="-V%")