• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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