1version: '{branch}.{build}' 2clone_depth: 1 3 4skip_commits: 5 message: /(iiod|IIOD):.*/ 6 7environment: 8 # Tell msys2 to add mingw64 to the path 9 MSYSTEM: MINGW64 10 # Tell msys2 to inherit the current directory when starting the shell 11 CHERE_INVOKING: 1 12 13configuration: 14 - Release 15 16install: 17 - echo "Checking out sub-modules..." 18 - git submodule update --init 19 - echo "Downloading deps..." 20 - cd C:\ 21 - appveyor DownloadFile http://swdownloads.analog.com/cse/build/libiio-win-deps.zip 22 - 7z x -y "C:\libiio-win-deps.zip" 23 #Install Inno Setup 24 - choco install InnoSetup 25 - set PATH=%PATH%;"C:\Program Files (x86)\Inno Setup 5" 26 27build_script: 28 - set OLD_PATH=%PATH% 29 - set OPT_PATH=C:\msys64\mingw32\bin;C:\msys64\mingw64\bin; 30 - set PATH=%OPT_PATH%%PATH% 31 - set GENERATOR=Unix Makefiles 32 - cd C:\projects\libiio 33 - set folder-path=C:\projects\libiio\build-mingw-win32\%configuration% 34 # MinGW 32 bit 35 - echo "Running cmake for MinGW 32 bit... " 36 - mkdir C:\projects\libiio\build-mingw-win32 37 - cd C:\projects\libiio\build-mingw-win32 38 - C:\msys64\usr\bin\bash -lc "pwd" 39 - mkdir C:\projects\libiio\build-mingw-win32\"%configuration%"& cd C:\projects\libiio\build-mingw-win32\"%configuration%" 40 - C:\msys64\usr\bin\bash -lc "pwd" 41 - 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" 42 - C:\msys64\usr\bin\bash -lc "rm /mingw32/etc/gdbinit" 43 - 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" 44 - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -Syu" 45 # Newer llvm breaks doxygen, use old version for now 46 - 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" 47 # set the specific version of doxygen (06-Jun-2018), need to look at this later. 48 - 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" 49 - 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" 50 # Download a 32-bit version of windres.exe 51 - appveyor DownloadFile http://swdownloads.analog.com/cse/build/windres.exe.gz -FileName C:\windres.exe.gz 52 - C:\msys64\usr\bin\bash -lc "cd /c ; gunzip windres.exe.gz" 53 - 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" 54 55 # MinGW 64 bit 56 - cd c:\projects\libiio 57 - echo "Running cmake for MinGW 64 bit... " 58 - mkdir c:\projects\libiio\build-mingw-win64 59 - cd c:\projects\libiio\build-mingw-win64 60 - mkdir c:\projects\libiio\build-mingw-win64\"%configuration%"& cd c:\projects\libiio\build-mingw-win64\"%configuration%" 61 - C:\msys64\usr\bin\bash -lc "pwd" 62 - 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" 63 - C:\msys64\usr\bin\bash -lc "rm /mingw64/etc/gdbinit" 64 - 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" 65 - C:\msys64\usr\bin\bash -lc "pacman --noconfirm -Syu" 66 # Newer llvm breaks doxygen, use old version for now 67 - 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" 68 # set the specific version of doxygen, need to look at this later. 69 - 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" 70 - 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" 71 - 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" 72 73 # Move the tests folder 74 - cd c:\projects\libiio 75 - mkdir build-mingw-win32\tests\ build-mingw-win32\tests\"%configuration%"& copy build-mingw-win32\Release\tests\*.exe build-mingw-win32\tests\"%configuration%"\ 76 - mkdir build-mingw-win64\tests\ build-mingw-win64\tests\"%configuration%"& copy build-mingw-win64\Release\tests\*.exe build-mingw-win64\tests\"%configuration%"\ 77 78 - set PATH=%OLD_PATH% 79 - set GENERATOR=Visual Studio 12 80 - cd c:\projects\libiio 81 - set folder-path=c:\projects\libiio\build-win32 82 #MSVC 32 bit 83 - echo "Running cmake for Visual Studio 32 bit... " 84 - mkdir build-win32 85 - cd build-win32 86 - set MCS_EXECUTABLE_PATH="C:\Windows\Microsoft.NET\Framework\v4.0.30319" 87 - 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" .. 88 - cmake --build . --config %configuration% 89 90 #MSVC 64 bit 91 - cd c:\projects\libiio 92 - echo "Running cmake for Visual Studio 64 bit... " 93 - mkdir build-win64 94 - cd build-win64 95 - 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" .. 96 - cmake --build . --config %configuration% 97 98 #Create the installer 99 - ISCC %folder-path%\libiio.iss 100 - appveyor PushArtifact C:\libiio-setup.exe 101 102 # Create ZIP package 103 # set LIBIIO_VERSION to current project version determined by cmake 104 - ps: >- 105 Set-AppveyorBuildVariable -Name LIBIIO_VERSION -Value (get-content .version) 106 - set ARCHIVE_NAME=libiio-%LIBIIO_VERSION% 107 - cd c:\projects\libiio 108 - mkdir c:\%ARCHIVE_NAME% c:\%ARCHIVE_NAME%\include c:\%ARCHIVE_NAME%\MS32 c:\%ARCHIVE_NAME%\MS64 c:\%ARCHIVE_NAME%\MinGW32 c:\%ARCHIVE_NAME%\MinGW64 109 - copy iio.h c:\%ARCHIVE_NAME%\include 110 - copy build-win32\Release\libiio.* c:\%ARCHIVE_NAME%\MS32 111 - copy build-win64\Release\libiio.* c:\%ARCHIVE_NAME%\MS64 112 - copy build-mingw-win32\Release\libiio.* c:\%ARCHIVE_NAME%\MinGW32 113 - copy build-mingw-win64\Release\libiio.* c:\%ARCHIVE_NAME%\MinGW64 114 - del c:\%ARCHIVE_NAME%\MinGW32\libiio.iss 115 - del c:\%ARCHIVE_NAME%\MinGW64\libiio.iss 116 - del c:\%ARCHIVE_NAME%\MinGW32\libiio.pc 117 - del c:\%ARCHIVE_NAME%\MinGW64\libiio.pc 118 119 - copy build-win32\tests\Release\*.exe c:\%ARCHIVE_NAME%\MS32 120 - copy build-win64\tests\Release\*.exe c:\%ARCHIVE_NAME%\MS64 121 - copy build-mingw-win32\tests\Release\*.exe c:\%ARCHIVE_NAME%\MinGW32 122 - copy build-mingw-win64\tests\Release\*.exe c:\%ARCHIVE_NAME%\MinGW64 123 124 #Copy dependencies for MSVC 125 - copy c:\libs\32\libxml2.dll c:\%ARCHIVE_NAME%\MS32 126 - copy c:\libs\64\libxml2.dll c:\%ARCHIVE_NAME%\MS64 127 - copy c:\libs\32\libusb-1.0.dll c:\%ARCHIVE_NAME%\MS32 128 - copy c:\libs\64\libusb-1.0.dll c:\%ARCHIVE_NAME%\MS64 129 - copy c:\libs\32\libserialport-0.dll c:\%ARCHIVE_NAME%\MS32 130 - copy c:\libs\64\libserialport-0.dll c:\%ARCHIVE_NAME%\MS64 131 132 #Copy dependencies for MinGW 133 - 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" 134 - 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" 135 - C:\msys64\usr\bin\bash -lc "cd c:/libs/32 ; cp libserialport-*.dll /c/%ARCHIVE_NAME%/MinGW32" 136 - C:\msys64\usr\bin\bash -lc "cd c:/libs/64 ; cp libserialport-*.dll /c/%ARCHIVE_NAME%/MinGW64" 137 138 - copy "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x86\Microsoft.VC120.CRT\msvcr120.dll" c:\%ARCHIVE_NAME%\MS32 139 - copy "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT\msvcr120.dll" c:\%ARCHIVE_NAME%\MS64 140 - xcopy /S bindings\matlab c:\%ARCHIVE_NAME%\MS32\matlab\ 141 - xcopy /S bindings\matlab c:\%ARCHIVE_NAME%\MS64\matlab\ 142 - xcopy /S bindings\matlab c:\%ARCHIVE_NAME%\MinGW32\matlab\ 143 - xcopy /S bindings\matlab c:\%ARCHIVE_NAME%\MinGW64\matlab\ 144 - del c:\%ARCHIVE_NAME%\MS32\matlab\CMakeLists.txt 145 - del c:\%ARCHIVE_NAME%\MS64\matlab\CMakeLists.txt 146 - del c:\%ARCHIVE_NAME%\MinGW32\matlab\CMakeLists.txt 147 - del c:\%ARCHIVE_NAME%\MinGW64\matlab\CMakeLists.txt 148 149 - copy c:\projects\libiio\CI\travis\zip.txt c:\%ARCHIVE_NAME%\README.txt 150 - 7z a "c:\libiio.zip" c:\%ARCHIVE_NAME% 151 - appveyor PushArtifact c:\libiio.zip 152