add build ccache

This commit is contained in:
0FL01 2025-07-22 20:05:15 +03:00
parent 5281997549
commit a293c7ec32

View file

@ -95,60 +95,69 @@ jobs:
- name: Build static ccache - name: Build static ccache
if: steps.static-ccache.outputs.cache-hit != 'true' if: steps.static-ccache.outputs.cache-hit != 'true'
run: | run: |
echo "Статический ccache не найден в кэше, собираем его..." echo "Статический ccache не найден в кэше, собираем его..."
sudo dnf install -y gcc-c++ cmake git zlib-devel zlib-static \ sudo dnf install -y --skip-unavailable \
libzstd-devel libzstd-static fmt-devel fmt-static \ gcc-c++ cmake git make pkgconf-pkg-config \
glibc-static libstdc++-static make pkgconfig \ zlib-ng-compat-devel zlib-ng-compat-static \
openssl-devel openssl-static libarchive-devel \ libzstd-devel libzstd-static \
libarchive-static fmt-devel fmt-static \
rm -rf ccache-source ccache-build glibc-static libstdc++-static \
git clone --depth=1 --branch v4.10 https://github.com/ccache/ccache.git ccache-source openssl-devel openssl-static \
if [ $? -ne 0 ]; then libarchive-devel libarchive-static
echo "::error::Ошибка клонирования репозитория ccache" echo "Установленные статические библиотеки:"
exit 1 dnf list installed | grep -E "(static|devel)" | head -10
fi rm -rf ccache-source ccache-build
cd ccache-source git clone --depth=1 --branch v4.10 https://github.com/ccache/ccache.git ccache-source
mkdir build && cd build if [ $? -ne 0 ]; then
echo "Запуск конфигурации CMake..." echo "::error::Ошибка клонирования репозитория ccache"
cmake .. \ exit 1
-DCMAKE_BUILD_TYPE=Release \ fi
-DCMAKE_VERBOSE_MAKEFILE=ON \ cd ccache-source
-DBUILD_SHARED_LIBS=OFF \ mkdir build && cd build
-DSTATIC_LINKING=ON \ echo "Запуск конфигурации CMake..."
-DENABLE_ZSTD=BUNDLED \ cmake .. \
-DENABLE_TESTING=OFF \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_FLAGS="-static" \ -DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_CXX_FLAGS="-static" \ -DENABLE_ZSTD=BUNDLED \
-DCMAKE_EXE_LINKER_FLAGS="-static -static-libgcc -static-libstdc++" \ -DENABLE_TESTING=OFF \
-DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \ -DSTATIC_LINKING=ON \
-DCMAKE_LINK_SEARCH_START_STATIC=ON \ -DCMAKE_POSITION_INDEPENDENT_CODE=OFF
-DCMAKE_LINK_SEARCH_END_STATIC=ON if [ $? -ne 0 ]; then
if [ $? -ne 0 ]; then echo "Простая конфигурация не сработала, пробуем fallback..."
echo "::error::Ошибка конфигурации CMake. Детали:" rm -rf CMakeCache.txt CMakeFiles/
cat CMakeFiles/CMakeError.log || echo "CMakeError.log не найден" cmake .. \
cat CMakeFiles/CMakeOutput.log || echo "CMakeOutput.log не найден" -DCMAKE_BUILD_TYPE=Release \
exit 1 -DBUILD_SHARED_LIBS=OFF \
fi -DENABLE_ZSTD=BUNDLED \
echo "Начинаем компиляцию ccache..." -DENABLE_TESTING=OFF
cmake --build . -j$(nproc) --verbose fi
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "::error::Ошибка компиляции ccache" echo "::error::Ошибка конфигурации CMake. Детали:"
exit 1 cat CMakeFiles/CMakeError.log || echo "CMakeError.log не найден"
fi cat CMakeFiles/CMakeOutput.log || echo "CMakeOutput.log не найден"
echo "Проверка зависимостей собранного ccache:" exit 1
ldd ./ccache || echo "ccache собран статически (отлично!)" fi
echo "Тестирование ccache..." echo "Начинаем компиляцию ccache..."
./ccache --version cmake --build . -j$(nproc) --verbose
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "::error::Собранный ccache не работает" echo "::error::Ошибка компиляции ccache"
exit 1 exit 1
fi fi
mkdir -p ${{ github.workspace }}/ccache-static echo "Проверка зависимостей собранного ccache:"
cp ./ccache ${{ github.workspace }}/ccache-static/ccache ldd ./ccache || echo "ccache собран статически"
chmod +x ${{ github.workspace }}/ccache-static/ccache file ./ccache
echo "Полностью статический ccache успешно собран и протестирован." echo "Тестирование ccache..."
cd ${{ github.workspace }} ./ccache --version
rm -rf ccache-source if [ $? -ne 0 ]; then
echo "::error::Собранный ccache не работает"
exit 1
fi
mkdir -p ${{ github.workspace }}/ccache-static
cp ./ccache ${{ github.workspace }}/ccache-static/ccache
chmod +x ${{ github.workspace }}/ccache-static/ccache
echo "Полностью статический ccache успешно собран и протестирован."
cd ${{ github.workspace }}
rm -rf ccache-source
- name: Cache TDesktop Dependencies - name: Cache TDesktop Dependencies
id: cache-tdesktop-deps id: cache-tdesktop-deps