| # This is a template for building and publishing freetype2 build artifacts using autotools |
| parameters: |
| - name: buildArgs # Configure flags |
| default: '' |
| - name: mingw # Mingw requires special enviormental setup |
| type: boolean |
| default: false |
| - name: preCMD # Command(s) executed before calling configure |
| default: '' |
| - name: srcDIR # Location of freetype2 sources |
| default: '.' |
| - name: postCMD # Command(s) executed after calling make |
| default: '' |
| |
| steps: |
| - ${{ if eq(parameters.mingw, true) }}: |
| - script: | |
| set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem |
| cd $(Build.SourcesDirectory) |
| %CD:~0,2%\msys64\usr\bin\bash -lc "./autogen.sh && ./configure" |
| displayName: 'Configure' |
| env: |
| MSYSTEM: $(MINGW_UPPER) |
| CHERE_INVOKING: yes |
| MINGW_INSTALLS: $(MINGW_LOWER) |
| |
| - script: | |
| set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem |
| %CD:~0,2%\msys64\usr\bin\bash -lc "make && make install DESTDIR=$(echo \"$(Build.BinariesDirectory)/install\" | tr '\\' '/')" |
| %CD:~0,2%\msys64\usr\bin\bash -lc "cp -R ${{ parameters.srcDIR }} $(echo \"$(Build.BinariesDirectory)/freetype2\" | tr '\\' '/')" |
| displayName: 'Build and Package' |
| env: |
| MSYSTEM: $(MINGW_UPPER) |
| CHERE_INVOKING: yes |
| MINGW_INSTALLS: $(MINGW_LOWER) |
| |
| # Building Demos in mingw seems broken do to configuration error of it including termios.h in ttdebug.c which doesn't exist in mingw |
| #- script: | |
| # set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem |
| # %CD:~0,2%\msys64\usr\bin\bash -lc "cd $(echo \"$(Build.BinariesDirectory)\" | tr '\\' '/') && git clone git://git.sv.nongnu.org/freetype/freetype2-demos.git && cd freetype2-demos && make && mv bin/ $(echo \"$(Build.BinariesDirectory)/install/demos\" | tr '\\' '/')" |
| # displayName: 'Build Demos' |
| # env: |
| # MSYSTEM: $(MINGW_UPPER) |
| # CHERE_INVOKING: yes |
| # MINGW_INSTALLS: $(MINGW_LOWER) |
| |
| - script: | |
| set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem" |
| %CD:~0,2%\msys64\usr\bin\bash -lc "zip -r $(echo \"$(Build.ArtifactStagingDirectory)/freetype-build.zip\" | tr '\\' '/') $(echo \"$(Build.BinariesDirectory)/install\" | tr '\\' '/')" |
| displayName: 'Stage Artifacts' |
| |
| - ${{ if eq(parameters.mingw, false) }}: |
| - script: | |
| ${{ parameters.preCMD }} |
| cd ${{ parameters.srcDIR }} |
| ./autogen.sh |
| ./configure ${{ parameters.buildArgs }} |
| ${{ parameters.postCMD }} |
| displayName: 'Configure' |
| |
| - script: | |
| ${{ parameters.preCMD }} |
| cd ${{ parameters.srcDIR }} |
| make |
| make install DESTDIR=$(Build.BinariesDirectory)/install |
| ${{ parameters.postCMD }} |
| displayName: 'Build and Install' |
| |
| - script: | |
| cd ${{ parameters.srcDIR }} |
| git clone git://git.sv.nongnu.org/freetype/freetype2-demos.git |
| cd freetype2-demos |
| ln -s ${{ parameters.srcDIR }} ../freetype2 |
| make |
| mv bin/ $(Build.BinariesDirectory)/install/demos |
| displayName: 'Build Demos' |
| |
| - script: | |
| zip -r $(Build.ArtifactStagingDirectory)/freetype-build.zip $(Build.BinariesDirectory)/install |
| displayName: 'Stage Artifacts' |
| |
| - task: PublishBuildArtifacts@1 |
| displayName: 'Push Build Artifacts' |
| inputs: |
| pathtoPublish: $(Build.ArtifactStagingDirectory) |
| artifactName: $(Agent.JobName) |