mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-25 06:54:43 +00:00
Add MinSizeRel support on Linux
Allows to build Telegram itself with multi-config generator as well as all dependencies with -Os optimizations
This commit is contained in:
@@ -12,6 +12,10 @@ include(cmake/validate_special_target.cmake)
|
|||||||
include(cmake/version.cmake)
|
include(cmake/version.cmake)
|
||||||
desktop_app_parse_version(Telegram/build/version)
|
desktop_app_parse_version(Telegram/build/version)
|
||||||
|
|
||||||
|
if (NOT DEFINED CMAKE_CONFIGURATION_TYPES)
|
||||||
|
set(configuration_types_init 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
project(Telegram
|
project(Telegram
|
||||||
LANGUAGES C CXX
|
LANGUAGES C CXX
|
||||||
VERSION ${desktop_app_version_cmake}
|
VERSION ${desktop_app_version_cmake}
|
||||||
@@ -23,6 +27,12 @@ if (APPLE)
|
|||||||
enable_language(OBJC OBJCXX)
|
enable_language(OBJC OBJCXX)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (configuration_types_init
|
||||||
|
AND CMAKE_CONFIGURATION_TYPES
|
||||||
|
AND NOT MinSizeRel IN_LIST CMAKE_CONFIGURATION_TYPES)
|
||||||
|
set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES};MinSizeRel" CACHE STRING "" FORCE)
|
||||||
|
endif()
|
||||||
|
|
||||||
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Telegram)
|
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT Telegram)
|
||||||
|
|
||||||
get_filename_component(third_party_loc "Telegram/ThirdParty" REALPATH)
|
get_filename_component(third_party_loc "Telegram/ThirdParty" REALPATH)
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ WORKDIR /usr/src
|
|||||||
ENV AR=gcc-ar
|
ENV AR=gcc-ar
|
||||||
ENV RANLIB=gcc-ranlib
|
ENV RANLIB=gcc-ranlib
|
||||||
ENV NM=gcc-nm
|
ENV NM=gcc-nm
|
||||||
ENV CFLAGS='{% if DEBUG %}-g{% endif %} -O3 {% if LTO %}-flto=auto -ffat-lto-objects{% endif %} -pipe -fPIC -fno-strict-aliasing -fexceptions -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fhardened -Wno-hardened'
|
ENV CFLAGS='{% if DEBUG %}-g{% endif %} {% if MINSIZE %}-Os{% else %}-O3{% endif %} {% if LTO %}-flto=auto -ffat-lto-objects{% endif %} -pipe -fPIC -fno-strict-aliasing -fexceptions -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fhardened -Wno-hardened'
|
||||||
ENV CXXFLAGS=$CFLAGS
|
ENV CXXFLAGS=$CFLAGS
|
||||||
ENV LDFLAGS='-static-libstdc++ -static-libgcc -static-libasan -pthread -Wl,--push-state,--no-as-needed,-ldl,--pop-state -Wl,--as-needed -Wl,-z,muldefs'
|
ENV LDFLAGS='-static-libstdc++ -static-libgcc -static-libasan -pthread -Wl,--push-state,--no-as-needed,-ldl,--pop-state -Wl,--as-needed -Wl,-z,muldefs'
|
||||||
|
|
||||||
@@ -527,6 +527,9 @@ RUN git clone -b n6.1.1 --depth=1 https://github.com/FFmpeg/FFmpeg.git \
|
|||||||
--disable-network \
|
--disable-network \
|
||||||
--disable-autodetect \
|
--disable-autodetect \
|
||||||
--disable-everything \
|
--disable-everything \
|
||||||
|
{%- if MINSIZE %}
|
||||||
|
--enable-small \
|
||||||
|
{%- endif %}
|
||||||
--enable-libdav1d \
|
--enable-libdav1d \
|
||||||
--enable-libopenh264 \
|
--enable-libopenh264 \
|
||||||
--enable-libopus \
|
--enable-libopus \
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ def checkEnv(envName, defaultValue):
|
|||||||
def main():
|
def main():
|
||||||
print(Environment(loader=FileSystemLoader(dirname(__file__))).get_template("Dockerfile").render(
|
print(Environment(loader=FileSystemLoader(dirname(__file__))).get_template("Dockerfile").render(
|
||||||
DEBUG=checkEnv("DEBUG", True),
|
DEBUG=checkEnv("DEBUG", True),
|
||||||
|
MINSIZE=checkEnv("MINSIZE", False),
|
||||||
LTO=checkEnv("LTO", True),
|
LTO=checkEnv("LTO", True),
|
||||||
ASAN=checkEnv("ASAN", False),
|
ASAN=checkEnv("ASAN", False),
|
||||||
JOBS=checkEnv("JOBS", ""),
|
JOBS=checkEnv("JOBS", ""),
|
||||||
|
|||||||
Reference in New Issue
Block a user