aboutsummaryrefslogblamecommitdiff
path: root/.github/workflows/build.yml
blob: e675de28feffe7d269d5bbd9dfbada99c1846227 (plain) (tree)
1
2
3
4
5
6
7
8
9







                        
                                                                                                     




                               
               
            
                           

                                                                                         
                                      
                                                          



                                                                                                        


                                         
                            





                                                                                          
                                








                                                                    
               
            
                           
                                                                                         

                                                                    
                                                          



                                                                                                        


                                         
                            





                                                                                          
                                



                                                                    
name: Build

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

# NOTE: "stable" tcc is too old and fails at linking. instead fetching a recent known working commit.
jobs:
  full-build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: dep
      run: |
        sudo apt-get update
        sudo apt-get install libimlib2 libimlib2-dev xserver-xorg-core xserver-xorg-dev \
                             libxft2 libxft-dev libexif12 libexif-dev \
                             gcc clang
        TCC_SHA="027b8fb9b88fe137447fb8bb1b61079be9702472"
        wget "https://github.com/TinyCC/tinycc/archive/${TCC_SHA}.tar.gz" && tar xzf "${TCC_SHA}.tar.gz"
        ( cd "tinycc-$TCC_SHA" && ./configure && make && sudo make install; )
    - name: build
      run: |
        # vanilla flags
        CFLAGS="-std=c99 -Wall -pedantic"
        # extra flags
        CFLAGS+=" -O3 -flto"
        CFLAGS+=" -Werror -Wextra -Wshadow -Wvla -Wpointer-arith -Wstrict-prototypes"
        CFLAGS+=" -Wundef -Wstrict-overflow=4 -Wwrite-strings -Wunreachable-code"
        CFLAGS+=" -Wbad-function-cast -Wdeclaration-after-statement"
        # silence
        CFLAGS+=" -Wno-sign-compare -Wno-unused-parameter -Wno-missing-field-initializers"
        export CFLAGS
        export LDFLAGS="$CFLAGS"
        export OPT_DEP_DEFAULT=1
        echo "###  GCC BUILD  ###" && make clean && CC=gcc   make -s
        echo "### CLANG BUILD ###" && make clean && CC=clang make -s
        echo "###  TCC BUILD  ###" && make clean && CC=tcc   make -s

  minimal-build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: dep
      run: |
        sudo apt-get update
        sudo apt-get install libimlib2 libimlib2-dev xserver-xorg-core xserver-xorg-dev \
                             gcc clang
        sudo apt-get remove libxft2 libxft-dev libexif12 libexif-dev
        TCC_SHA="027b8fb9b88fe137447fb8bb1b61079be9702472"
        wget "https://github.com/TinyCC/tinycc/archive/${TCC_SHA}.tar.gz" && tar xzf "${TCC_SHA}.tar.gz"
        ( cd "tinycc-$TCC_SHA" && ./configure && make && sudo make install; )
    - name: build
      run: |
        # vanilla flags
        CFLAGS="-std=c99 -Wall -pedantic"
        # extra flags
        CFLAGS+=" -O3 -flto"
        CFLAGS+=" -Werror -Wextra -Wshadow -Wvla -Wpointer-arith -Wstrict-prototypes"
        CFLAGS+=" -Wundef -Wstrict-overflow=4 -Wwrite-strings -Wunreachable-code"
        CFLAGS+=" -Wbad-function-cast -Wdeclaration-after-statement"
        # silence
        CFLAGS+=" -Wno-sign-compare -Wno-unused-parameter -Wno-missing-field-initializers"
        export CFLAGS
        export LDFLAGS="$CFLAGS"
        export OPT_DEP_DEFAULT=0
        echo "###  GCC BUILD  ###" && make clean && CC=gcc   make -s
        echo "### CLANG BUILD ###" && make clean && CC=clang make -s
        echo "###  TCC BUILD  ###" && make clean && CC=tcc   make -s