瀏覽代碼

(#4) Add custom giflib to third party deps

rexim 5 年之前
父節點
當前提交
cf3b5e0376
共有 5 個文件被更改,包括 31 次插入15 次删除
  1. 6 4
      .github/workflows/ci.yml
  2. 2 2
      Makefile
  3. 4 4
      src/vodus_emotes.cpp
  4. 2 0
      third_party/.gitignore
  5. 17 5
      third_party/build_third_party.sh

+ 6 - 4
.github/workflows/ci.yml

@@ -10,12 +10,14 @@ jobs:
       - name: install dependencies
       - name: install dependencies
         run: |
         run: |
           sudo apt-get update
           sudo apt-get update
-          sudo apt-get install -qq nasm libfreetype6-dev libgif-dev libcurl4-openssl-dev
+          sudo apt-get install -qq nasm libfreetype6-dev libcurl4-openssl-dev
       - uses: actions/cache@v1
       - uses: actions/cache@v1
         with:
         with:
-          # TODO: centralize ffmpeg version in the build
-          path: ./third_party/ffmpeg-4.3-dist/
-          key: ${{ runner.os }}-ffmpeg
+          # TODO: centralize third party versions in the build
+          path: |
+            ./third_party/ffmpeg-4.3-dist/
+            ./third_party/giflib-5.2.1-dist/
+          key: ${{ runner.os }}-ffmpeg-4.3-giflib-5.2.1
       - name: build third-party things
       - name: build third-party things
         run: |
         run: |
           cd third_party
           cd third_party

+ 2 - 2
Makefile

@@ -1,6 +1,6 @@
 VODUS_PKGS=freetype2
 VODUS_PKGS=freetype2
-VODUS_CXXFLAGS=-Wall -fno-exceptions -std=c++17 -ggdb `pkg-config --cflags $(VODUS_PKGS)` -I./third_party/ffmpeg-4.3-dist/usr/local/include/
-VODUS_LIBS=`pkg-config --libs $(VODUS_PKGS)` -lgif -L./third_party/ffmpeg-4.3-dist/usr/local/lib/ -lavcodec -lavutil -lswresample -pthread -lm -llzma -lz
+VODUS_CXXFLAGS=-Wall -fno-exceptions -std=c++17 -ggdb `pkg-config --cflags $(VODUS_PKGS)` -I./third_party/ffmpeg-4.3-dist/usr/local/include/ -I./third_party/giflib-5.2.1-dist/usr/local/include/
+VODUS_LIBS=`pkg-config --libs $(VODUS_PKGS)` -L./third_party/giflib-5.2.1-dist/usr/local/lib/ -l:libgif.a -L./third_party/ffmpeg-4.3-dist/usr/local/lib/ -lavcodec -lavutil -lswresample -pthread -lm -llzma -lz
 
 
 EMOTE_DOWNLOADER_PKGS=libcurl
 EMOTE_DOWNLOADER_PKGS=libcurl
 EMOTE_DOWNLOADER_CXXFLAGS=-Wall -fno-exceptions -std=c++17 -ggdb `pkg-config --cflags $(EMOTE_DOWNLOADER_PKGS)`
 EMOTE_DOWNLOADER_CXXFLAGS=-Wall -fno-exceptions -std=c++17 -ggdb `pkg-config --cflags $(EMOTE_DOWNLOADER_PKGS)`

+ 4 - 4
src/vodus_emotes.cpp

@@ -19,10 +19,10 @@ struct Gif_Animat
         while (delay_time <= 0.0f) {
         while (delay_time <= 0.0f) {
             index = (index + 1) % file->ImageCount;
             index = (index + 1) % file->ImageCount;
             int ok = DGifSavedExtensionToGCB(file, index, &gcb);
             int ok = DGifSavedExtensionToGCB(file, index, &gcb);
-            // if (!ok) {
-            //     println(stderr, "[ERROR] Could not retrieve Graphics Control Block from `", file_path, "`");
-            //     abort();
-            // }
+            if (!ok) {
+                println(stderr, "[ERROR] Could not retrieve Graphics Control Block from `", file_path, "`");
+                abort();
+            }
             delay_time = gcb.DelayTime + delay_time;
             delay_time = gcb.DelayTime + delay_time;
         }
         }
     }
     }

+ 2 - 0
third_party/.gitignore

@@ -1,3 +1,5 @@
 *.tar.xz
 *.tar.xz
+*.tar.gz
 *-dist/
 *-dist/
 ffmpeg-*/
 ffmpeg-*/
+giflib-*/

+ 17 - 5
third_party/build_third_party.sh

@@ -1,16 +1,28 @@
 #!/bin/sh
 #!/bin/sh
 
 
 FFMPEG_VERSION=4.3
 FFMPEG_VERSION=4.3
+GIFLIB_VERSION=5.2.1
 
 
 if [ ! -d "ffmpeg-${FFMPEG_VERSION}-dist" ]; then
 if [ ! -d "ffmpeg-${FFMPEG_VERSION}-dist" ]; then
-    wget "https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz" 2>&1 > /dev/null
-    tar fvx "ffmpeg-${FFMPEG_VERSION}.tar.xz" 2>&1 > /dev/null
+    wget "https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz"
+    tar fvx "ffmpeg-${FFMPEG_VERSION}.tar.xz"
     mkdir "ffmpeg-${FFMPEG_VERSION}-dist"
     mkdir "ffmpeg-${FFMPEG_VERSION}-dist"
     
     
     cd "ffmpeg-${FFMPEG_VERSION}"
     cd "ffmpeg-${FFMPEG_VERSION}"
-    ./configure --disable-doc --disable-programs
-    make -j5
-    DESTDIR="../ffmpeg-${FFMPEG_VERSION}-dist" make install
+      ./configure --disable-doc --disable-programs
+      make -j5
+      DESTDIR="../ffmpeg-${FFMPEG_VERSION}-dist" make install
+    cd ..
 fi
 fi
 
 
+if [ ! -d "giflib-${GIFLIB_VERSION}-dist" ]; then
+    wget "https://deac-riga.dl.sourceforge.net/project/giflib/giflib-${GIFLIB_VERSION}.tar.gz"
+    tar fvx "giflib-${GIFLIB_VERSION}.tar.gz"
+    mkdir "giflib-${GIFLIB_VERSION}-dist"
+
+    cd "giflib-${GIFLIB_VERSION}"
+      make -j5
+      DESTDIR="../giflib-${GIFLIB_VERSION}-dist" make install
+    cd ..
+fi