environment: CMAKE_INSTALL_ROOT: C:\projects\cmake ZLIB_ROOT: C:\projects\zlib LIBEXPAT: C:\projects\libexpat LIBEXIV2_ROOT: C:\projects\exiv2 matrix: - build_name: mingw73_32_qt5_12_6 QTPATH: C:\Qt\5.12.6\mingw73_32 MINGW32: C:\Qt\Tools\mingw730_32 install: - mkdir %CMAKE_INSTALL_ROOT% - mkdir %ZLIB_ROOT% - mkdir %LIBEXPAT% - mkdir %LIBEXIV2_ROOT% - cd %APPVEYOR_BUILD_FOLDER% - git submodule update --init --recursive - set PATH=%PATH%;%CMAKE_INSTALL_ROOT%;%QTPATH%\bin;%MINGW32%\bin build_script: # prepare - mkdir 3rdparty - cinst ninja # install ECM so we can build KImageFormats - cd 3rdparty - git clone -q https://invent.kde.org/frameworks/extra-cmake-modules.git - cd extra-cmake-modules - cmake -G "Ninja" . -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_ROOT% -DBUILD_TESTING=OFF - cmake --build . - cmake --build . --target install - cd %APPVEYOR_BUILD_FOLDER% # download and install zlib for KArchive - cd %ZLIB_ROOT% - curl -fsS -o zlib128-dll.zip http://zlib.net/zlib128-dll.zip - 7z x zlib128-dll.zip - cd %APPVEYOR_BUILD_FOLDER% # build libexpat for libexiv2 - cd %LIBEXPAT_ROOT% - curl -fsSL -o R_2_2_10.zip https://github.com/libexpat/libexpat/archive/R_2_2_10.zip - 7z x R_2_2_10.zip -y - cd libexpat-R_2_2_10/expat/ - cmake -G "Ninja" . -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_ROOT% -DCMAKE_CXX_FLAGS_RELEASE="-s" - cmake --build . --target install - cd %APPVEYOR_BUILD_FOLDER% # build libexiv2 - cd %LIBEXIV2_ROOT% - curl -fsSL -o v0.27.3.zip https://github.com/Exiv2/exiv2/archive/v0.27.3.zip - 7z x v0.27.3.zip -y - cd exiv2-0.27.3 - cmake -G "Ninja" . -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_ROOT% -DEXIV2_BUILD_SAMPLES=OFF -DCMAKE_CXX_FLAGS_RELEASE="-s" -DZLIB_ROOT=%ZLIB_ROOT% - cmake --build . --target install - cd %APPVEYOR_BUILD_FOLDER% # install KArchive for kra format support of KImageFormats - cd 3rdparty - git clone -q https://invent.kde.org/frameworks/karchive.git - cd karchive - mkdir build - cd build - cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_ROOT% -DCMAKE_CXX_FLAGS_RELEASE="-s" -DZLIB_ROOT=%ZLIB_ROOT% # -DCMAKE_PREFIX_PATH=%CMAKE_INSTALL_ROOT% - cmake --build . --config Release - cmake --build . --config Release --target install - cd %APPVEYOR_BUILD_FOLDER% # install KImageFormats - cd 3rdparty - git clone -q https://invent.kde.org/frameworks/kimageformats.git - cd kimageformats - mkdir build - cd build - cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-s" -DQT_PLUGIN_INSTALL_DIR=%QTPATH%\plugins - cmake --build . --config Release - cmake --build . --config Release --target install - cd %APPVEYOR_BUILD_FOLDER% # finally... - mkdir build - cd build - cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-s" -DCMAKE_MAKE_PROGRAM=mingw32-make -DCMAKE_INSTALL_PREFIX='%cd%' - mingw32-make - mingw32-make install # 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_ROOT%\bin\libexpat.dll - copy %CMAKE_INSTALL_ROOT%\bin\libexiv2.dll - copy %ZLIB_ROOT%\zlib1.dll . - copy C:\projects\cmake\bin\libKF5Archive.dll . - windeployqt --verbose=2 --no-quick-import --no-translations --no-opengl-sw --no-angle --no-system-d3d-compiler --release .\ppic.exe # for debug.. - tree /f artifacts: - path: build\bin