blob: 47216c46b8c1c6d5f6f6cb48e37a6af1cffe05f7 [file] [log] [blame]
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