167 lines
6.9 KiB
YAML
167 lines
6.9 KiB
YAML
image:
|
|
- Visual Studio 2022
|
|
environment:
|
|
CMAKE_INSTALL_PREFIX: C:\projects\cmake
|
|
LIBZ: C:\projects\zlib
|
|
LIBEXPAT: C:\projects\libexpat
|
|
LIBAVIF: C:\projects\libavif
|
|
LIBEXIV2: C:\projects\exiv2
|
|
PPKG: C:\projects\ppkg
|
|
matrix:
|
|
- job_name: mingw_64_qt6_7
|
|
QTDIR: C:\Qt\6.7\mingw_64
|
|
MINGW64: C:\Qt\Tools\mingw1120_64
|
|
KF_BRANCH: master
|
|
EXIV2_VERSION: "0.28.2"
|
|
EXIV2_CMAKE_OPTIONS: "-DEXIV2_ENABLE_BROTLI=OFF -DEXIV2_ENABLE_INIH=OFF -DEXIV2_BUILD_EXIV2_COMMAND=OFF"
|
|
PPIC_CMAKE_OPTIONS: "-DPREFER_QT_5=OFF"
|
|
WINDEPLOYQT_ARGS: "--verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-system-d3d-compiler --skip-plugin-types tls,networkinformation"
|
|
- job_name: mingw81_64_qt5_15_2
|
|
QTDIR: C:\Qt\5.15.2\mingw81_64
|
|
MINGW64: C:\Qt\Tools\mingw810_64
|
|
KF_BRANCH: kf5
|
|
EXIV2_VERSION: "0.27.7"
|
|
EXIV2_CMAKE_OPTIONS: "-DEXIV2_BUILD_SAMPLES=OFF -DEXIV2_ENABLE_WIN_UNICODE=ON -DEXIV2_BUILD_EXIV2_COMMAND=OFF"
|
|
PPIC_CMAKE_OPTIONS: "-DPREFER_QT_5=ON"
|
|
WINDEPLOYQT_ARGS: "--verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-angle --no-system-d3d-compiler"
|
|
|
|
install:
|
|
- mkdir %CMAKE_INSTALL_PREFIX%
|
|
- mkdir %LIBZ%
|
|
- mkdir %LIBEXPAT%
|
|
- mkdir %LIBAVIF%
|
|
- mkdir %LIBEXIV2%
|
|
- mkdir %PPKG%
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
- git submodule update --init --recursive
|
|
- set PATH=%PATH%;%CMAKE_INSTALL_PREFIX%;%QTDIR%\bin;%MINGW64%\bin;%PPKG%
|
|
- set CC=%MINGW64%\bin\gcc.exe
|
|
- set CXX=%MINGW64%\bin\g++.exe
|
|
|
|
build_script:
|
|
# prepare
|
|
- mkdir 3rdparty
|
|
- choco install ninja
|
|
- cd %PPKG%
|
|
- curl -fsSL -o ppkg.exe https://github.com/BLumia/pineapple-package-manager/releases/latest/download/ppkg.exe
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
# download and install zlib for KArchive
|
|
- cd %LIBZ%
|
|
- curl -fsSL -o zlib131.zip https://zlib.net/zlib131.zip
|
|
- 7z x zlib131.zip -y
|
|
- cd zlib-1.3.1
|
|
- mkdir build
|
|
- cd build
|
|
- cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX%
|
|
- cmake --build . --config Release
|
|
- cmake --build . --config Release --target install/strip
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
# install ECM so we can build KImageFormats
|
|
- cd 3rdparty
|
|
- git clone -b %KF_BRANCH% -q https://invent.kde.org/frameworks/extra-cmake-modules.git
|
|
- git rev-parse HEAD
|
|
- cd extra-cmake-modules
|
|
- cmake -G "Ninja" . -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% -DBUILD_TESTING=OFF
|
|
- cmake --build .
|
|
- cmake --build . --target install
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
# install AOM for libavif AV1 decoding support...
|
|
- cd 3rdparty
|
|
#- git clone -b v3.6.0 --depth 1 https://aomedia.googlesource.com/aom
|
|
#- cd aom
|
|
#- mkdir build.aom
|
|
#- cd build.aom
|
|
#- cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% -DENABLE_DOCS=OFF -DBUILD_SHARED_LIBS=ON -DAOM_TARGET_CPU=generic -DENABLE_TESTS=OFF -DENABLE_TESTDATA=OFF -DENABLE_TOOLS=OFF -DENABLE_EXAMPLES=0
|
|
#- cmake --build . --config Release
|
|
#- cmake --build . --config Release --target install/strip
|
|
- mkdir aom
|
|
- cd aom
|
|
- curl -fsSL -o ppkg-aom.zip https://sourceforge.net/projects/pineapple-package-manager/files/packages/mingw-w64-x86_64-windows/aom-3.6.0-1.zip
|
|
- ppkg ppkg-aom.zip
|
|
- 7z x ppkg-aom.zip LICENSE -y
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
# install libavif for avif format support of KImageFormats
|
|
- cd %LIBAVIF%
|
|
- curl -fsSL -o libavif-v0_11_1.zip https://github.com/AOMediaCodec/libavif/archive/v0.11.1.zip
|
|
- 7z x libavif-v0_11_1.zip -y
|
|
- cd libavif-0.11.1
|
|
- mkdir build
|
|
- cd build
|
|
- cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% -DAVIF_CODEC_AOM=ON
|
|
- cmake --build . --config Release
|
|
- cmake --build . --config Release --target install/strip
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
# install KArchive for kra format support of KImageFormats
|
|
- cd 3rdparty
|
|
- git clone -b %KF_BRANCH% -q https://invent.kde.org/frameworks/karchive.git
|
|
- git rev-parse HEAD
|
|
- cd karchive
|
|
- mkdir build
|
|
- cd build
|
|
- cmake .. -G "Ninja" -DWITH_LIBZSTD=OFF -DWITH_BZIP2=OFF -DWITH_LIBLZMA=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX%
|
|
- cmake --build . --config Release
|
|
- cmake --build . --config Release --target install/strip
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
# build libexpat for libexiv2
|
|
- cd %LIBEXPAT%
|
|
- curl -fsSL -o R_2_5_0.zip https://github.com/libexpat/libexpat/archive/R_2_5_0.zip
|
|
- 7z x R_2_5_0.zip -y
|
|
- cd libexpat-R_2_5_0/expat/
|
|
- cmake -G "Ninja" . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_BUILD_TOOLS=OFF
|
|
- cmake --build . --target install/strip
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
# build libexiv2
|
|
- cd %LIBEXIV2%
|
|
- curl -fsSL -o v%EXIV2_VERSION%.zip https://github.com/Exiv2/exiv2/archive/v%EXIV2_VERSION%.zip
|
|
- 7z x v%EXIV2_VERSION%.zip -y
|
|
- cd exiv2-%EXIV2_VERSION%
|
|
- cmake -G "Ninja" . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% %EXIV2_CMAKE_OPTIONS%
|
|
- cmake --build . --target install/strip
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
# install KImageFormats
|
|
- cd 3rdparty
|
|
- git clone -b %KF_BRANCH% -q https://invent.kde.org/frameworks/kimageformats.git
|
|
- git rev-parse HEAD
|
|
- cd kimageformats
|
|
- mkdir build
|
|
- cd build
|
|
- cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DKDE_INSTALL_QTPLUGINDIR=%QTDIR%\plugins
|
|
- cmake --build . --config Release
|
|
- cmake --build . --config Release --target install/strip
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
# finally...
|
|
- mkdir build
|
|
- cd build
|
|
- cmake .. -G "Ninja" %PPIC_CMAKE_OPTIONS% -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX='%cd%'
|
|
- cmake --build . --config Release
|
|
- cmake --build . --config Release --target install/strip
|
|
# fixme: I don't know how to NOT make the binary installed to the ./bin/ folder...
|
|
- cd bin
|
|
- copy %APPVEYOR_BUILD_FOLDER%\LICENSE
|
|
- copy %CMAKE_INSTALL_PREFIX%\bin\libaom.dll
|
|
- copy %CMAKE_INSTALL_PREFIX%\bin\libexpat-1.dll
|
|
- copy %CMAKE_INSTALL_PREFIX%\bin\libexiv2.dll
|
|
- copy %CMAKE_INSTALL_PREFIX%\bin\libavif.dll
|
|
- copy %CMAKE_INSTALL_PREFIX%\bin\libzlib.dll
|
|
- copy %CMAKE_INSTALL_PREFIX%\bin\libKF?Archive.dll
|
|
- windeployqt %WINDEPLOYQT_ARGS% .\ppic.exe
|
|
# copy 3rdparty licenses for the libs we vendored for windows...
|
|
- mkdir licenses
|
|
- cd licenses
|
|
- copy %APPVEYOR_BUILD_FOLDER%\3rdparty\aom\LICENSE License.aom.txt
|
|
- copy %APPVEYOR_BUILD_FOLDER%\3rdparty\karchive\LICENSES\LGPL-2.0-or-later.txt License.KArchive.txt
|
|
- copy %APPVEYOR_BUILD_FOLDER%\3rdparty\kimageformats\LICENSES\LGPL-2.1-or-later.txt License.kimageformats.txt
|
|
- copy %LIBEXPAT%\libexpat-R_2_5_0\expat\COPYING License.expat.txt
|
|
- copy %LIBAVIF%\libavif-0.11.1\LICENSE License.libavif.txt
|
|
- copy %LIBEXIV2%\exiv2-%EXIV2_VERSION%\COPYING License.exiv2.txt
|
|
# TODO: Qt, zlib
|
|
- cd ..
|
|
# for debug..
|
|
- tree /f
|
|
- cd %APPVEYOR_BUILD_FOLDER%
|
|
- xcopy %CMAKE_INSTALL_PREFIX% .\cmake-prefix-copy /E /H /C /I
|
|
|
|
artifacts:
|
|
- path: build\bin
|
|
- path: cmake-prefix-copy
|