version: '{branch}.{build}' clone_depth: 1 skip_commits: message: /(iiod|IIOD):.*/ environment: # Tell msys2 to add mingw64 to the path MSYSTEM: MINGW64 # Tell msys2 to inherit the current directory when starting the shell CHERE_INVOKING: 1 configuration: - Release install: - echo "Checking out sub-modules..." - git submodule update --init - echo "Downloading deps..." - cd C:\ - appveyor DownloadFile http://swdownloads.analog.com/cse/build/libiio-win-deps.zip - 7z x -y "C:\libiio-win-deps.zip" #Install Inno Setup - choco install InnoSetup - set PATH=%PATH%;"C:\Program Files (x86)\Inno Setup 5" build_script: - set OLD_PATH=%PATH% - set OPT_PATH=C:\msys64\mingw32\bin;C:\msys64\mingw64\bin; - set PATH=%OPT_PATH%%PATH% - set GENERATOR=Unix Makefiles - cd C:\projects\libiio - set folder-path=C:\projects\libiio\build-mingw-win32\%configuration% # MinGW 32 bit - echo "Running cmake for MinGW 32 bit... " - mkdir C:\projects\libiio\build-mingw-win32 - cd C:\projects\libiio\build-mingw-win32 - C:\msys64\usr\bin\bash -lc "pwd" - mkdir C:\projects\libiio\build-mingw-win32\"%configuration%"& cd C:\projects\libiio\build-mingw-win32\"%configuration%" - C:\msys64\usr\bin\bash -lc "pwd" - C:\msys64\usr\bin\bash -lc "pacman -Rs --noconfirm mingw-w64-i686-gcc-ada mingw-w64-i686-gcc-fortran mingw-w64-i686-gcc-libgfortran mingw-w64-i686-gcc-objc" - C:\msys64\usr\bin\bash -lc "rm /mingw32/etc/gdbinit" - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -Sy mingw-w64-i686-gcc mingw-w64-i686-libusb mingw-w64-i686-curl mingw-w64-i686-cmake mingw-w64-i686-libxml2 mingw-w64-i686-pkg-config mingw-w64-i686-libzip" - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -Syu" # Newer llvm breaks doxygen, use old version for now - C:\msys64\usr\bin\bash -lc "pacman -U --noconfirm http://repo.msys2.org/mingw/i686/mingw-w64-i686-llvm-5.0.0-3-any.pkg.tar.xz http://repo.msys2.org/mingw/i686/mingw-w64-i686-clang-5.0.0-3-any.pkg.tar.xz" # set the specific version of doxygen (06-Jun-2018), need to look at this later. - C:\msys64\usr\bin\bash -lc "pacman -U --noconfirm http://repo.msys2.org/mingw/i686/mingw-w64-i686-doxygen-1.8.14-2-any.pkg.tar.xz" - C:\msys64\usr\bin\bash -lc "pacman -U --noconfirm http://repo.msys2.org/mingw/i686/mingw-w64-i686-graphviz-2.40.1-4-any.pkg.tar.xz" # Download a 32-bit version of windres.exe - appveyor DownloadFile http://swdownloads.analog.com/cse/build/windres.exe.gz -FileName C:\windres.exe.gz - C:\msys64\usr\bin\bash -lc "cd /c ; gunzip windres.exe.gz" - C:\msys64\usr\bin\bash -lc "cmake -G '%GENERATOR%' -DCMAKE_RC_COMPILER=/c/windres.exe -DGIT_EXECUTABLE=C:/Program\ Files/Git/cmd/git.exe -DCMAKE_BUILD_TYPE=%configuration% -DCMAKE_INSTALL_PREFIX=/mingw32 -DCMAKE_C_COMPILER:FILEPATH=/mingw32/bin/i686-w64-mingw32-gcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=/mingw32/bin/i686-w64-mingw32-g++.exe -DCSHARP_BINDINGS:BOOL=OFF -DPKG_CONFIG_EXECUTABLE:FILEPATH=/mingw32/bin/pkg-config.exe -DENABLE_IPV6:BOOL=OFF -DPYTHON_BINDINGS:BOOL=OFF -DLIBSERIALPORT_LIBRARIES=/c/libs/32/libserialport.dll.a -DLIBSERIALPORT_INCLUDE_DIR=/c/include -DLIBLZMA_LIBRARY=c:/msys64/mingw32/lib/liblzma.dll.a /c/projects/libiio && make -j3" # MinGW 64 bit - cd c:\projects\libiio - echo "Running cmake for MinGW 64 bit... " - mkdir c:\projects\libiio\build-mingw-win64 - cd c:\projects\libiio\build-mingw-win64 - mkdir c:\projects\libiio\build-mingw-win64\"%configuration%"& cd c:\projects\libiio\build-mingw-win64\"%configuration%" - C:\msys64\usr\bin\bash -lc "pwd" - C:\msys64\usr\bin\bash -lc "pacman -Rs --noconfirm mingw-w64-x86_64-gcc-ada mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-gcc-libgfortran mingw-w64-x86_64-gcc-objc" - C:\msys64\usr\bin\bash -lc "rm /mingw64/etc/gdbinit" - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -Sy mingw-w64-x86_64-gcc mingw-w64-x86_64-libusb mingw-w64-x86_64-curl mingw-w64-x86_64-cmake mingw-w64-x86_64-libxml2 mingw-w64-x86_64-pkg-config mingw-w64-x86_64-libzip" - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -Syu" # Newer llvm breaks doxygen, use old version for now - C:\msys64\usr\bin\bash -lc "pacman -U --noconfirm http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-llvm-5.0.0-3-any.pkg.tar.xz http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-clang-5.0.0-3-any.pkg.tar.xz" # set the specific version of doxygen, need to look at this later. - C:\msys64\usr\bin\bash -lc "pacman -U --noconfirm http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-doxygen-1.8.14-2-any.pkg.tar.xz" - C:\msys64\usr\bin\bash -lc "pacman -U --noconfirm http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-graphviz-2.40.1-4-any.pkg.tar.xz" - C:\msys64\usr\bin\bash -lc "cmake -G '%GENERATOR%' -DCMAKE_BUILD_TYPE=%configuration% -DCMAKE_INSTALL_PREFIX=/mingw64 -DCMAKE_C_COMPILER:FILEPATH=/mingw64/bin/x86_64-w64-mingw32-gcc.exe -DCMAKE_CXX_COMPILER:FILEPATH=/mingw64/bin/x86_64-w64-mingw32-g++.exe -DCSHARP_BINDINGS:BOOL=OFF -DPKG_CONFIG_EXECUTABLE:FILEPATH=/mingw64/bin/pkg-config.exe -DENABLE_IPV6:BOOL=OFF -DPYTHON_BINDINGS:BOOL=OFF -DLIBSERIALPORT_LIBRARIES=/c/libs/64/libserialport.dll.a -DLIBSERIALPORT_INCLUDE_DIR=/c/include /c/projects/libiio && make -j3" # Move the tests folder - cd c:\projects\libiio - mkdir build-mingw-win32\tests\ build-mingw-win32\tests\"%configuration%"& copy build-mingw-win32\Release\tests\*.exe build-mingw-win32\tests\"%configuration%"\ - mkdir build-mingw-win64\tests\ build-mingw-win64\tests\"%configuration%"& copy build-mingw-win64\Release\tests\*.exe build-mingw-win64\tests\"%configuration%"\ - set PATH=%OLD_PATH% - set GENERATOR=Visual Studio 12 - cd c:\projects\libiio - set folder-path=c:\projects\libiio\build-win32 #MSVC 32 bit - echo "Running cmake for Visual Studio 32 bit... " - mkdir build-win32 - cd build-win32 - set MCS_EXECUTABLE_PATH="C:\Windows\Microsoft.NET\Framework\v4.0.30319" - cmake -G "%GENERATOR%" -DCMAKE_BUILD_TYPE:STRING="%configuration%" -DENABLE_IPV6:BOOL=OFF -DCMAKE_SYSTEM_PREFIX_PATH="C:" -DPYTHON_BINDINGS:BOOL=OFF -DLIBXML2_LIBRARIES="C:\\libs\\32\\libxml2.lib" -DLIBUSB_LIBRARIES="C:\\libs\\32\\libusb-1.0.lib" -DLIBSERIALPORT_LIBRARIES="C:\\libs\\32\\libserialport.dll.a" .. - cmake --build . --config %configuration% #MSVC 64 bit - cd c:\projects\libiio - echo "Running cmake for Visual Studio 64 bit... " - mkdir build-win64 - cd build-win64 - cmake -G "%GENERATOR% Win64" -DCMAKE_BUILD_TYPE:STRING="%configuration%" -DENABLE_IPV6:BOOL=OFF -DCMAKE_SYSTEM_PREFIX_PATH="C:" -DPYTHON_BINDINGS:BOOL=OFF -DLIBXML2_LIBRARIES="C:\\libs\\64\\libxml2.lib" -DLIBUSB_LIBRARIES="C:\\libs\\64\\libusb-1.0.lib" -DLIBSERIALPORT_LIBRARIES="C:\\libs\\64\\libserialport.dll.a" .. - cmake --build . --config %configuration% #Create the installer - ISCC %folder-path%\libiio.iss - appveyor PushArtifact C:\libiio-setup.exe # Create ZIP package # set LIBIIO_VERSION to current project version determined by cmake - ps: >- Set-AppveyorBuildVariable -Name LIBIIO_VERSION -Value (get-content .version) - set ARCHIVE_NAME=libiio-%LIBIIO_VERSION% - cd c:\projects\libiio - mkdir c:\%ARCHIVE_NAME% c:\%ARCHIVE_NAME%\include c:\%ARCHIVE_NAME%\MS32 c:\%ARCHIVE_NAME%\MS64 c:\%ARCHIVE_NAME%\MinGW32 c:\%ARCHIVE_NAME%\MinGW64 - copy iio.h c:\%ARCHIVE_NAME%\include - copy build-win32\Release\libiio.* c:\%ARCHIVE_NAME%\MS32 - copy build-win64\Release\libiio.* c:\%ARCHIVE_NAME%\MS64 - copy build-mingw-win32\Release\libiio.* c:\%ARCHIVE_NAME%\MinGW32 - copy build-mingw-win64\Release\libiio.* c:\%ARCHIVE_NAME%\MinGW64 - del c:\%ARCHIVE_NAME%\MinGW32\libiio.iss - del c:\%ARCHIVE_NAME%\MinGW64\libiio.iss - del c:\%ARCHIVE_NAME%\MinGW32\libiio.pc - del c:\%ARCHIVE_NAME%\MinGW64\libiio.pc - copy build-win32\tests\Release\*.exe c:\%ARCHIVE_NAME%\MS32 - copy build-win64\tests\Release\*.exe c:\%ARCHIVE_NAME%\MS64 - copy build-mingw-win32\tests\Release\*.exe c:\%ARCHIVE_NAME%\MinGW32 - copy build-mingw-win64\tests\Release\*.exe c:\%ARCHIVE_NAME%\MinGW64 #Copy dependencies for MSVC - copy c:\libs\32\libxml2.dll c:\%ARCHIVE_NAME%\MS32 - copy c:\libs\64\libxml2.dll c:\%ARCHIVE_NAME%\MS64 - copy c:\libs\32\libusb-1.0.dll c:\%ARCHIVE_NAME%\MS32 - copy c:\libs\64\libusb-1.0.dll c:\%ARCHIVE_NAME%\MS64 - copy c:\libs\32\libserialport-0.dll c:\%ARCHIVE_NAME%\MS32 - copy c:\libs\64\libserialport-0.dll c:\%ARCHIVE_NAME%\MS64 #Copy dependencies for MinGW - C:\msys64\usr\bin\bash -lc "cd c:/msys64/mingw32/bin ; cp -r libwinpthread-*.dll libgcc_*.dll libstdc++-*.dll libiconv-*.dll zlib*.dll libxml2-*.dll liblzma-*.dll libzip*.dll libusb-*.dll /c/%ARCHIVE_NAME%/MinGW32" - C:\msys64\usr\bin\bash -lc "cd c:/msys64/mingw64/bin ; cp -r libwinpthread-*.dll libgcc_*.dll libstdc++-*.dll libiconv-*.dll zlib*.dll libxml2-*.dll liblzma-*.dll libzip*.dll libusb-*.dll /c/%ARCHIVE_NAME%/MinGW64" - C:\msys64\usr\bin\bash -lc "cd c:/libs/32 ; cp libserialport-*.dll /c/%ARCHIVE_NAME%/MinGW32" - C:\msys64\usr\bin\bash -lc "cd c:/libs/64 ; cp libserialport-*.dll /c/%ARCHIVE_NAME%/MinGW64" - copy "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x86\Microsoft.VC120.CRT\msvcr120.dll" c:\%ARCHIVE_NAME%\MS32 - copy "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT\msvcr120.dll" c:\%ARCHIVE_NAME%\MS64 - xcopy /S bindings\matlab c:\%ARCHIVE_NAME%\MS32\matlab\ - xcopy /S bindings\matlab c:\%ARCHIVE_NAME%\MS64\matlab\ - xcopy /S bindings\matlab c:\%ARCHIVE_NAME%\MinGW32\matlab\ - xcopy /S bindings\matlab c:\%ARCHIVE_NAME%\MinGW64\matlab\ - del c:\%ARCHIVE_NAME%\MS32\matlab\CMakeLists.txt - del c:\%ARCHIVE_NAME%\MS64\matlab\CMakeLists.txt - del c:\%ARCHIVE_NAME%\MinGW32\matlab\CMakeLists.txt - del c:\%ARCHIVE_NAME%\MinGW64\matlab\CMakeLists.txt - copy c:\projects\libiio\CI\travis\zip.txt c:\%ARCHIVE_NAME%\README.txt - 7z a "c:\libiio.zip" c:\%ARCHIVE_NAME% - appveyor PushArtifact c:\libiio.zip