diff --git a/CI/azure/ci-ubuntu.sh b/CI/azure/ci-ubuntu.sh new file mode 100644 index 000000000..5c322263d --- /dev/null +++ b/CI/azure/ci-ubuntu.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -x +uname -a +DEBIAN_FRONTEND=noninteractive apt update +DEBIAN_FRONTEND=noninteractive apt -y upgrade +DEBIAN_FRONTEND=noninteractive apt install -y bison flex cmake git build-essential libxml2-dev doxygen +DEBIAN_FRONTEND=noninteractive apt install -y python3 python3-sphinx python3-setuptools +echo "$PWD" +mkdir build && cd build +cmake .. -DPYTHON_BINDINGS=ON -DENABLE_PACKAGING=ON -DCPACK_SYSTEM_NAME="{ARTIFACTNAME}" +make +make package diff --git a/CI/build_win.ps1 b/CI/build_win.ps1 index 061d5de33..ddf2b9b39 100644 --- a/CI/build_win.ps1 +++ b/CI/build_win.ps1 @@ -3,44 +3,19 @@ $ErrorActionPreference = "Stop" $ErrorView = "NormalView" $COMPILER=$Env:COMPILER -$ARCH=$Env:ARCH - $src_dir=$pwd -if ($ARCH -eq "Win32") { - echo "Running cmake for $COMPILER on 32 bit..." - mkdir build-win32 - cp .\libiio.iss.cmakein .\build-win32 - cd build-win32 - - cmake -G "$COMPILER" -A "$ARCH" -DCMAKE_SYSTEM_PREFIX_PATH="C:" -DENABLE_IPV6=OFF -DWITH_USB_BACKEND=ON -DWITH_SERIAL_BACKEND=ON -DPYTHON_BINDINGS=ON -DCSHARP_BINDINGS:BOOL=ON -DLIBXML2_LIBRARIES="C:\\libs\\32\\libxml2.lib" -DLIBUSB_LIBRARIES="C:\\libs\\32\\libusb-1.0.lib" -DLIBSERIALPORT_LIBRARIES="C:\\libs\\32\\libserialport.dll.a" -DLIBUSB_INCLUDE_DIR="C:\\include\\libusb-1.0" -DLIBXML2_INCLUDE_DIR="C:\\include\\libxml2" .. - cmake --build . --config Release - if ( $LASTEXITCODE -ne 0 ) { - throw "[*] cmake build failure" - } - cp .\libiio.iss $env:BUILD_ARTIFACTSTAGINGDIRECTORY - - cd ../bindings/python - python.exe setup.py.cmakein sdist - Get-ChildItem dist\pylibiio-*.tar.gz | Rename-Item -NewName "libiio-py39-win32.tar.gz" - mv .\dist\*.gz . - rm .\dist\*.gz -}else { - echo "Running cmake for $COMPILER on 64 bit..." - mkdir build-x64 - cp .\libiio.iss.cmakein .\build-x64 - cd build-x64 +echo "Running cmake for $COMPILER on 64 bit..." +mkdir build-x64 +cp .\libiio.iss.cmakein .\build-x64 +cd build-x64 - cmake -G "$COMPILER" -A "$ARCH" -DCMAKE_SYSTEM_PREFIX_PATH="C:" -DENABLE_IPV6=OFF -DWITH_USB_BACKEND=ON -DWITH_SERIAL_BACKEND=ON -DPYTHON_BINDINGS=ON -DCSHARP_BINDINGS:BOOL=ON -DLIBXML2_LIBRARIES="C:\\libs\\64\\libxml2.lib" -DLIBUSB_LIBRARIES="C:\\libs\\64\\libusb-1.0.lib" -DLIBSERIALPORT_LIBRARIES="C:\\libs\\64\\libserialport.dll.a" -DLIBUSB_INCLUDE_DIR="C:\\include\\libusb-1.0" -DLIBXML2_INCLUDE_DIR="C:\\include\\libxml2" .. - cmake --build . --config Release - if ( $LASTEXITCODE -ne 0 ) { - throw "[*] cmake build failure" - } - cp .\libiio.iss $env:BUILD_ARTIFACTSTAGINGDIRECTORY +cmake -G "$COMPILER" -DCMAKE_SYSTEM_PREFIX_PATH="C:" -DENABLE_IPV6=OFF -DWITH_USB_BACKEND=ON -DWITH_SERIAL_BACKEND=ON -DPYTHON_BINDINGS=ON -DCSHARP_BINDINGS:BOOL=ON -DLIBXML2_LIBRARIES="C:\\libs\\64\\libxml2.lib" -DLIBUSB_LIBRARIES="C:\\libs\\64\\libusb-1.0.lib" -DLIBSERIALPORT_LIBRARIES="C:\\libs\\64\\libserialport.dll.a" -DLIBUSB_INCLUDE_DIR="C:\\include\\libusb-1.0" -DLIBXML2_INCLUDE_DIR="C:\\include\\libxml2" .. +cmake --build . --config Release +cp .\libiio.iss $env:BUILD_ARTIFACTSTAGINGDIRECTORY - cd ../bindings/python - python.exe setup.py.cmakein sdist - Get-ChildItem dist\pylibiio-*.tar.gz | Rename-Item -NewName "libiio-py39-amd64.tar.gz" - mv .\dist\*.gz . - rm .\dist\*.gz -} +cd ../bindings/python +python.exe setup.py.cmakein sdist +Get-ChildItem dist\pylibiio-*.tar.gz | Rename-Item -NewName "libiio-py39-amd64.tar.gz" +mv .\dist\*.gz . +rm .\dist\*.gz \ No newline at end of file diff --git a/CI/generate_exe.ps1 b/CI/generate_exe.ps1 index 4340d7519..f6503f8e0 100644 --- a/CI/generate_exe.ps1 +++ b/CI/generate_exe.ps1 @@ -2,8 +2,7 @@ $ErrorActionPreference = "Stop" $ErrorView = "NormalView" -SET PATH=packages\Tools.InnoSetup.5.6.1\tools -iscc $env:BUILD_ARTIFACTSTAGINGDIRECTORY\Windows-VS-16-2019-Win32\libiio.iss +iscc $env:BUILD_ARTIFACTSTAGINGDIRECTORY\Windows-VS-2019-x64\libiio.iss Get-ChildItem $env:BUILD_ARTIFACTSTAGINGDIRECTORY -Force -Recurse | Remove-Item -Force -Recurse cp C:\libiio-setup.exe $env:BUILD_ARTIFACTSTAGINGDIRECTORY diff --git a/CI/publish_deps.ps1 b/CI/publish_deps.ps1 index d19e1ceeb..76ec7955a 100644 --- a/CI/publish_deps.ps1 +++ b/CI/publish_deps.ps1 @@ -3,14 +3,16 @@ $ErrorActionPreference = "Stop" $ErrorView = "NormalView" $src_dir=$pwd +$COMPILER=$Env:COMPILER -cd 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\14.29.30133' -if ($ARCH -eq "Win32") { - echo "$PWD" - mv .\x86\Microsoft.VC142.CRT\msvcp140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY +if ($COMPILER -eq "Visual Studio 16 2019") { + cd 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT' + cp .\msvcp140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY + cp .\vcruntime140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY }else { - echo "$PWD" - mv .\x64\Microsoft.VC142.CRT\msvcp140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY + cd 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT' + cp .\msvcp140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY + cp .\vcruntime140.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY } cd $src_dir @@ -19,12 +21,6 @@ cd dependencies wget http://swdownloads.analog.com/cse/build/libiio-win-deps-libusb1.0.24.zip -OutFile "libiio-win-deps.zip" 7z x -y "libiio-win-deps.zip" -if ($ARCH -eq "Win32") { - mv .\libs\32\libxml2.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY - mv .\libs\32\libserialport-0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY - mv .\libs\32\libusb-1.0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY -}else { - mv .\libs\64\libxml2.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY - mv .\libs\64\libserialport-0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY - mv .\libs\64\libusb-1.0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY -} +cp .\libs\64\libxml2.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY +cp .\libs\64\libserialport-0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY +cp .\libs\64\libusb-1.0.dll $env:BUILD_ARTIFACTSTAGINGDIRECTORY diff --git a/CI/travis/prepare_assets.sh b/CI/travis/prepare_assets.sh index efe325b7a..c96c0be7b 100755 --- a/CI/travis/prepare_assets.sh +++ b/CI/travis/prepare_assets.sh @@ -1,69 +1,86 @@ #!/bin/bash -e release_artifacts() { - local rpm_assets='CentOS-7-x86_64' - cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}" - for i in $rpm_assets; do - cd "${i}" - find . -name '*.rpm' -exec mv {} ../ ";" - cd ../ - rm -r "${i}" - done - - local deb_assets='Ubuntu-16.04-x86_64 Ubuntu-18.04-x86_64 - Ubuntu-20.04-x86_64 Debian-Buster-ARM - Debian-Buster-ARM64' + local deb_linux_assets='Fedora-34 Ubuntu-18.04 Ubuntu-20.04' cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}" - for i in $deb_assets; do - cd "${i}" + for i in $deb_linux_assets; do + cd "Linux-${i}" + if [ "${i}" == "Fedora-34" ]; then + find . -name '*.rpm' -exec mv {} ../ ";" + fi find . -name '*.deb' -exec mv {} ../ ";" cd ../ - rm -r "${i}" + rm -r "Linux-${i}" done local pkg_assets='macOS-10.15 macOS-11' cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}" for i in $pkg_assets; do cd "${i}" + + # change artifact name + old_name=$(find . -name '*.pkg' | cut -b 3-26) + name=$(echo "${old_name}" | cut -b 1-20) + new_name="${name}-${i}.pkg" + mv ./"${old_name}" ./"${new_name}" + find . -name '*.pkg' -exec mv {} ../ ";" - find . -name '*.gz' -exec mv {} ../ ";" + find . -name '*.tar.gz' -exec mv {} ../ ";" cd ../ rm -r "${i}" done - local windows_dist='Win32 x64' + local zip_assets='2019 2022' cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}" - for distribution in $windows_dist; do - zip -r Windows-VS-16-2019-"${distribution}".zip Windows-VS-16-2019-"${distribution}" - rm -r Windows-VS-16-2019-"${distribution}" + for i in $zip_assets; do + zip -r "Windows-VS-${i}-x64".zip "Windows-VS-${i}-x64" + rm -r "Windows-VS-${i}-x64" + done + + local deb_arm_assets='arm32v7 arm64v8 ppc64le x390x' + cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}" + for i in $deb_arm_assets; do + cd "Ubuntu-${i}" + find . -name '*.deb' -exec mv {} ../ ";" + cd ../ + rm -r "Ubuntu-${i}" done + } swdownloads_artifacts() { - local linux_dist='CentOS-7-x86_64 Ubuntu-16.04-x86_64 Ubuntu-18.04-x86_64 - Ubuntu-20.04-x86_64 Debian-Buster-ARM Debian-Buster-ARM64' + local linux_dist='Fedora-34 Ubuntu-18.04 Ubuntu-20.04' for distribution in $linux_dist; do - cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}" - cd "Linux-${distribution}" - find . -name '*.rpm' -exec mv {} ../"${distribution}"_latest_master_libiio.rpm ";" - find . -name '*.deb' -exec mv {} ../"${distribution}"_latest_master_libiio.deb ";" + cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}/Linux-${distribution}" + if [ "${distribution}" == "Fedora-34" ]; then + find . -name '*.rpm' -exec mv {} ../"${distribution}_latest_master_libiio.rpm" ";" + fi + find . -name '*.tar.gz' -exec mv {} ../"${distribution}_latest_master_libiio.tar.gz" ";" + find . -name '*.deb' -exec mv {} ../"${distribution}_latest_master_libiio.deb" ";" rm -r ../Linux-"${distribution}" done local macOS_dist='macOS-10.15 macOS-11' for distribution in $macOS_dist; do - cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}" - cd "${distribution}" - find . -name '*.pkg' -exec mv {} ../"${distribution}"_latest_master_libiio.pkg ";" - find . -name '*.tar.gz' -exec mv {} ../"${distribution}"_latest_master_libiio.tar.gz ";" + cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}/${distribution}" + find . -name '*.pkg' -exec mv {} ../"${distribution}_latest_master_libiio.pkg" ";" + find . -name '*.tar.gz' -exec mv {} ../"${distribution}_latest_master_libiio.tar.gz" ";" rm -r ../"${distribution}" done - local windows_dist='Win32 x64' + local windows_dist='2019 2022' for distribution in $windows_dist; do cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}" - zip -r Windows-VS-16-2019-"${distribution}".zip Windows-VS-16-2019-"${distribution}" - rm -r Windows-VS-16-2019-"${distribution}" + zip -r "Windows-VS-${distribution}-x64-latest_master_libiio".zip "Windows-VS-${distribution}-x64" + rm -r "Windows-VS-${distribution}-x64" + done + + local arm_dist='arm32v7 arm64v8 ppc64le x390x' + for distribution in $arm_dist; do + cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}/Ubuntu-${distribution}" + find . -name '*.tar.gz' -exec mv {} ../"Ubuntu-${distribution}_latest_master_libiio.tar.gz" ";" + find . -name '*.deb' -exec mv {} ../"Ubuntu-${distribution}_latest_master_libiio.deb" ";" + rm -r ../Ubuntu-"${distribution}" done cd "${BUILD_ARTIFACTSTAGINGDIRECTORY}/Libiio-Setup-Exe" @@ -71,4 +88,13 @@ swdownloads_artifacts() { rm -r ../Libiio-Setup-Exe } +check_artifacts() { + cd build + while IFS= read -r line; do + if [ -z "${line}" ]; then continue + fi + test -f ./artifacts/"${line}" && echo "${line} exist." || echo "${line} does not exist." + done < "artifact_manifest.txt" +} + "${1}"_artifacts diff --git a/README.md b/README.md index 0f69ff3be..ae3b5b2d8 100644 --- a/README.md +++ b/README.md @@ -25,17 +25,18 @@ As with many open source packages, we use [GitHub](https://github.com/analogdevi | Operating System | GitHub master status | Version | Primary Installer Package | Alternative Package, tarball or zip | |:-----------------------:|:---------------------:|:-------:|:-------------------:|:--------------:| -| Windows | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=WindowsBuilds&configuration=WindowsBuilds%20VS2019_Win64)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | Windows-64 Server 2019 | [![Latest Windows installer](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/win_box.png)](https://swdownloads.analog.com/cse/azure_builds/libiio-setup.exe)
[![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=PushArtifacts&jobName=GenerateSetupExe)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | [![Latest Windows zip](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/win_box.png)](https://swdownloads.analog.com/cse/azure_builds/Windows-VS-16-2019-x64.zip) | -| | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=WindowsBuilds&configuration=WindowsBuilds%20VS2019_Win32)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | Windows-32 Server 2019 | (libiio-setup.exe file works for both Win64 and Win32) | [![Latest Windows zip](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/win_box.png)](https://swdownloads.analog.com/cse/azure_builds/Windows-VS-16-2019-Win32.zip) | +| Windows | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=WindowsBuilds&configuration=WindowsBuilds%20VS2019_Win64)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | Windows-64 Server 2019 | [![Latest Windows installer](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/win_box.png)](https://swdownloads.analog.com/cse/azure_builds/libiio-setup.exe)
[![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=PushArtifacts&jobName=GenerateSetupExe)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | [![Latest Windows zip](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/win_box.png)](https://swdownloads.analog.com/cse/azure_builds/Windows-VS-2019-x64-latest_master_libiio.zip) | +| | | Windows-64 Server 2022 | (libiio-setup.exe works for both Windows Server 2019 and Windows Server 2022) | [![Latest Windows zip](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/win_box.png)](https://swdownloads.analog.com/cse/azure_builds/Windows-VS-2022-x64-latest_master_libiio.zip) | | OS X | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=macOSBuilds&configuration=macOSBuilds%20macOS_11)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | macOS Big Sur
(v 11) | [![OS-X package 11](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/osx_box.png)](https://swdownloads.analog.com/cse/azure_builds/macOS-11_latest_master_libiio.pkg) | [![OS-X tarball 11](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/osx_box.png)](https://swdownloads.analog.com/cse/azure_builds/macOS-11_latest_master_libiio.tar.gz) | -| | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=macOSBuilds&configuration=macOSBuilds%20macOS_10_15)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | macOS Catalina
(v 10.15) | [![OS-X package 10.13](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/osx_box.png)](https://swdownloads.analog.com/cse/azure_builds/macOS-10.15_latest_master_libiio.pkg) | [![OS-X tarball 10.13](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/osx_box.png)](https://swdownloads.analog.com/cse/azure_builds/macOS-10.15_latest_master_libiio.tar.gz) | -| Linux | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=LinuxBuilds&configuration=LinuxBuilds%20ubuntu_20_04_x86_64)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | Ubuntu Focal Fossa
(v 20.04)1 | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-20.04-x86_64_latest_master_libiio.deb) | [![RPM File](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/rpm.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-20.04-x86_64_latest_master_libiio.rpm) | -| | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=LinuxBuilds&configuration=LinuxBuilds%20ubuntu_18_04_x86_64)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | Ubuntu Bionic Beaver
(v 18.04)1 | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-18.04-x86_64_latest_master_libiio.deb) | [![RPM File](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/rpm.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-18.04-x86_64_latest_master_libiio.rpm) | -| | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=LinuxBuilds&configuration=LinuxBuilds%20ubuntu_16_04_x86_64)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | Ubuntu Xenial Xerus
(v 16.04)1 | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-16.04-x86_64_latest_master_libiio.deb) | [![RPM File](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/rpm.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-16.04-x86_64_latest_master_libiio.rpm) | -| | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=LinuxBuilds&configuration=LinuxBuilds%20debian_buster_arm32v7)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | Debian Buster ARM | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Debian-Buster-ARM_latest_master_libiio.deb) | [![RPM File](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/rpm.png)](https://swdownloads.analog.com/cse/azure_builds/Debian-Buster-ARM_latest_master_libiio.rpm) | -| | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=LinuxBuilds&configuration=LinuxBuilds%20debian_buster_arm64v8)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | Debian Buster ARM64 | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Debian-Buster-ARM64_latest_master_libiio.deb) | [![RPM File](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/rpm.png)](https://swdownloads.analog.com/cse/azure_builds/Debian-Buster-ARM64_latest_master_libiio.rpm) | -| | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=LinuxBuilds&configuration=LinuxBuilds%20centos_8_x86_64)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | CentOS 8 | [![RPM File](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/rpm.png)](https://swdownloads.analog.com/cse/azure_builds/CentOS-8-x86_64_latest_master_libiio.rpm) | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/CentOS-8-x86_64_latest_master_libiio.deb) | -| | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=LinuxBuilds&configuration=LinuxBuilds%20centos_7_x86_64)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | CentOS 7 | [![RPM File](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/rpm.png)](https://swdownloads.analog.com/cse/azure_builds/CentOS-7-x86_64_latest_master_libiio.rpm) | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/CentOS-7-x86_64_latest_master_libiio.deb) | +| | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=macOSBuilds&configuration=macOSBuilds%20macOS_10_15)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | macOS Catalina
(v 10.15) | [![OS-X package 10.15](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/osx_box.png)](https://swdownloads.analog.com/cse/azure_builds/macOS-10.15_latest_master_libiio.pkg) | [![OS-X tarball 10.15](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/osx_box.png)](https://swdownloads.analog.com/cse/azure_builds/macOS-10.15_latest_master_libiio.tar.gz) | +| Linux | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=LinuxBuilds&configuration=LinuxBuilds%20ubuntu_20_04_x86_64)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | Ubuntu Focal Fossa
(v 20.04)1 | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-20.04_latest_master_libiio.deb) | | +| | [![Build Status](https://dev.azure.com/AnalogDevices/OpenSource/_apis/build/status/analogdevicesinc.libiio?branchName=master&stageName=Builds&jobName=LinuxBuilds&configuration=LinuxBuilds%20ubuntu_18_04_x86_64)](https://dev.azure.com/AnalogDevices/OpenSource/_build/latest?definitionId=9&branchName=master) | Ubuntu Bionic Beaver
(v 18.04)1 | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-18.04_latest_master_libiio.deb) | | +| | | Fedora 34 | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Fedora-34_latest_master_libiio.deb) | [![RPM File](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/rpm.png)](https://swdownloads.analog.com/cse/azure_builds/Fedora-34_latest_master_libiio.rpm) | +| ARM | | Ubuntu-ppc64le | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-ppc64le_latest_master_libiio.deb) | | +| | | Ubuntu-x390x | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-x390x_latest_master_libiio.deb) | | +| | | Ubuntu-arm64v8 | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-arm64v8_latest_master_libiio.deb) | | +| | | Ubuntu-arm32v7 | [![Debian](https://raw.githubusercontent.com/wiki/analogdevicesinc/libiio/img/deb.png)](https://swdownloads.analog.com/cse/azure_builds/Ubuntu-arm32v7_latest_master_libiio.deb) | | + If you use it, and like it - please let us know. If you use it, and hate it - please let us know that too. The goal of the project is to try to make Linux IIO devices easier to use on a variety of platforms. If we aren't doing that - we will try to make it better. diff --git a/azure-pipelines.yml b/azure-pipelines.yml index af4b780fd..338f43173 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,3 +1,6 @@ +# If you make changes to builds or artifacts, please check and update the following files if needed: +# README.md, CI/travis/prepare_assets.sh, artifact_manifest.txt.cmakein, CI/publish_deps.ps1 + trigger: branches: include: @@ -10,104 +13,56 @@ trigger: - v* pr: -- main -- master -- 20* + branches: + include: + - main + - master + - 20* stages: - stage: Builds + ############################################# + # Builds + ############################################# jobs: - job: LinuxBuilds - strategy: - matrix: - centos_7_x86_64: - imageName: 'ubuntu-latest' - OS_TYPE: 'centos_docker' - OS_VERSION: centos7 - artifactName: 'Linux-CentOS-7-x86_64' - ubuntu_16_04_x86_64: - imageName: 'ubuntu-latest' - OS_TYPE: 'ubuntu_docker' - OS_VERSION: xenial - artifactName: 'Linux-Ubuntu-16.04-x86_64' - ubuntu_18_04_x86_64: - imageName: 'ubuntu-latest' - OS_TYPE: 'ubuntu_docker' - OS_VERSION: bionic - artifactName: 'Linux-Ubuntu-18.04-x86_64' - ubuntu_20_04_x86_64: - imageName: 'ubuntu-latest' - OS_TYPE: 'ubuntu_docker' - OS_VERSION: focal - artifactName: 'Linux-Ubuntu-20.04-x86_64' - CHECK_AGAINST_KERNEL_HEADER: 1 - debian_buster_arm32v7: - imageName: 'ubuntu-latest' - OS_TYPE: 'arm32v7/debian_docker' - OS_VERSION: 'buster' - artifactName: 'Linux-Debian-Buster-ARM' - debian_buster_arm64v8: - imageName: 'ubuntu-latest' - OS_TYPE: 'arm64v8/debian_docker' - OS_VERSION: 'buster' - artifactName: 'Linux-Debian-Buster-ARM64' - doxygen: - imageName: 'ubuntu-latest' - OS_TYPE: 'doxygen' - OS_VERSION: focal - artifactName: 'Libiio-documentation' - CI_BUILD_SPHINX_DOCS: 1 + # Host Box pool: - vmImage: $(imageName) - steps: - - checkout: self - fetchDepth: 1 - clean: true - persistCredentials: true - - script: ./CI/travis/before_install_linux - displayName: "Install Dependencies" - - script: ./CI/travis/make_linux - displayName: "Build" - - task: CopyFiles@2 - condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'), ne(variables['CI_BUILD_SPHINX_DOCS'], '1')) - inputs: - sourceFolder: '$(Agent.BuildDirectory)/s/build/' - contents: '$(Agent.BuildDirectory)/s/build/?(*.deb|*.rpm)' - targetFolder: '$(Build.ArtifactStagingDirectory)' - - task: PublishPipelineArtifact@1 - condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'), ne(variables['CI_BUILD_SPHINX_DOCS'], '1')) - inputs: - targetPath: '$(Build.ArtifactStagingDirectory)' - artifactName: '$(artifactName)' - - - job: macOSBuilds + vmImage: 'ubuntu-latest' + # Docker Images strategy: matrix: - macOS_10_15: - imageName: 'macOS-10.15' - artifactName: 'macOS-10.15' - macOS_11: - imageName: 'macOS-11' - artifactName: 'macOS-11' - pool: - vmImage: $(imageName) + ubuntu_18_04: + image: 'tfcollins/libiio_ubuntu_18_04-ci:latest' + artifactName: 'Linux-Ubuntu-18.04' + ubuntu_20_04: + image: 'tfcollins/libiio_ubuntu_20_04-ci:latest' + artifactName: 'Linux-Ubuntu-20.04' + fedora34: + image: 'tfcollins/libiio_fedora_34-ci:latest' + artifactName: 'Linux-Fedora-34' + container: $[ variables['image'] ] steps: - checkout: self fetchDepth: 1 clean: true - - script: ./CI/travis/before_install_darwin - displayName: "Install Dependencies" - - script: ./CI/travis/make_darwin - displayName: "Build" + persistCredentials: true + - script: | + mkdir build && cd build + cmake .. -DENABLE_PACKAGING=ON -DPYTHON_BINDINGS=ON -DWITH_DOC=ON -DCPACK_SYSTEM_NAME=${ARTIFACTNAME} + make + make package + displayName: 'Build' + - script: | + cd $(Agent.BuildDirectory)/s/build/ + sh generateDocumentationAndDeploy.sh + displayName: 'Documentation' + condition: eq(variables['artifactName'], 'Linux-Fedora-34') - task: CopyFiles@2 + condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) inputs: sourceFolder: '$(Agent.BuildDirectory)/s/build/' - contents: '$(Agent.BuildDirectory)/s/build/?(*.pkg)' - targetFolder: '$(Build.ArtifactStagingDirectory)' - - task: CopyFiles@2 - inputs: - sourceFolder: '$(Agent.BuildDirectory)/s/build_tar/' - contents: '$(Agent.BuildDirectory)/s/build_tar/?(*.gz)' + contents: '$(Agent.BuildDirectory)/s/build/?(*.deb|*.gz|*.rpm)' targetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishPipelineArtifact@1 condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) @@ -115,21 +70,23 @@ stages: targetPath: '$(Build.ArtifactStagingDirectory)' artifactName: '$(artifactName)' + ############################################# - job: WindowsBuilds + # Host Box strategy: matrix: - VS2019_Win32: - imageName: 'windows-2019' - COMPILER: 'Visual Studio 16 2019' - ARCH: 'Win32' - artifactName: 'Windows-VS-16-2019-Win32' - VS2019_Win64: - imageName: 'windows-2019' + VS2022: + vmImage: 'windows-2022' + COMPILER: 'Visual Studio 17 2022' + ARCH: 'x64' + artifactName: 'Windows-VS-2022-x64' + VS2019: + vmImage: 'windows-2019' COMPILER: 'Visual Studio 16 2019' ARCH: 'x64' - artifactName: 'Windows-VS-16-2019-x64' + artifactName: 'Windows-VS-2019-x64' pool: - vmImage: $[ variables['imageName'] ] + vmImage: $[ variables['vmImage'] ] steps: - checkout: self fetchDepth: 1 @@ -138,15 +95,27 @@ stages: inputs: versionSpec: '3.9' - task: PowerShell@2 + displayName: 'Dependencies' inputs: - targetType: 'filePath' - filePath: .\CI\install_deps_win.ps1 - displayName: Dependencies + targetType: inline + script: | + git submodule update --init + if ( !( Test-Path deps ) ) { + mkdir deps + } + cd deps + mkdir libxml + wget https://www.zlatkovic.com/pub/libxml/64bit/libxml2-2.9.3-win32-x86_64.7z -OutFile "libxml.7z" + 7z x -y libxml.7z + rm libxml.7z + cd C:\ + wget http://swdownloads.analog.com/cse/build/libiio-win-deps-libusb1.0.24.zip -OutFile "libiio-win-deps.zip" + 7z x -y "C:\libiio-win-deps.zip" - task: PowerShell@2 inputs: targetType: 'filePath' filePath: .\CI\build_win.ps1 - displayName: Build + displayName: 'Build' - task: CopyFiles@2 displayName: 'Copy libraries' inputs: @@ -187,66 +156,183 @@ stages: targetPath: '$(Build.ArtifactStagingDirectory)' artifactName: '$(artifactName)' -- stage: PushArtifacts + ############################################# + - job: macOSBuilds + # Host Box + strategy: + matrix: + macOS_10_15: + vmImage: 'macOS-10.15' + artifactName: 'macOS-10.15' + macOS_11: + vmImage: 'macOS-11' + artifactName: 'macOS-11' + pool: + vmImage: $[ variables['vmImage'] ] + steps: + - checkout: self + fetchDepth: 1 + clean: true + - script: | + brew install cmake doxygen libusb libxml2 ncurses cdk libserialport + pip3 install sphinx sphinx-rtd-theme + displayName: 'Dependencies' + - script: | + mkdir build && cd build + cmake .. -DOSX_PACKAGE=ON -DPYTHON_BINDINGS=ON -DWITH_EXAMPLES=ON -DWITH_SERIAL_BACKEND=OFF -DWITH_ZSTD=ON + make + sudo make install + cd .. + displayName: 'Build' + - script: | + mkdir build_tar && cd build_tar + cmake .. -DOSX_PACKAGE=OFF -DENABLE_PACKAGING=ON -DPYTHON_BINDINGS=ON -DWITH_SERIAL_BACKEND=OFF -DWITH_ZSTD=ON -DCPACK_SYSTEM_NAME=${ARTIFACTNAME} + make + make package + cd .. + displayName: 'Build tar' + - script: | + cd build + cmake .. -DPYTHON_BINDINGS=ON -DWITH_DOC=ON + make + cd .. + displayName: 'Build With Doc' + - task: CopyFiles@2 + inputs: + sourceFolder: '$(Agent.BuildDirectory)/s/build/' + contents: '$(Agent.BuildDirectory)/s/build/?(*.pkg)' + targetFolder: '$(Build.ArtifactStagingDirectory)' + - task: CopyFiles@2 + inputs: + sourceFolder: '$(Agent.BuildDirectory)/s/build_tar/' + contents: '$(Agent.BuildDirectory)/s/build_tar/?(*.gz)' + targetFolder: '$(Build.ArtifactStagingDirectory)' + - task: PublishPipelineArtifact@1 + condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) + inputs: + targetPath: '$(Build.ArtifactStagingDirectory)' + artifactName: '$(artifactName)' + + ############################################# + - job: ARMBuilds + # Host Box + pool: + vmImage: "ubuntu-latest" + # Docker Images + strategy: + matrix: + ubuntu-ppc64le: + image: tfcollins/libiio_ubuntu_18_04-ci-arm-ppc:latest + arch: ppc64le + build_script: ci-ubuntu.sh + artifactName: 'Ubuntu-ppc64le' + ubuntu-x390x: + image: tfcollins/libiio_ubuntu_18_04-ci-arm-ppc:latest + arch: s390x + build_script: ci-ubuntu.sh + artifactName: 'Ubuntu-x390x' + ubuntu-arm64v8: + image: tfcollins/libiio_ubuntu_18_04-ci-arm-ppc:latest + arch: aarch64 + build_script: ci-ubuntu.sh + artifactName: 'Ubuntu-arm64v8' + ubuntu-arm32v7: + image: tfcollins/libiio_ubuntu_18_04-ci-arm-ppc:latest + arch: arm + build_script: ci-ubuntu.sh + artifactName: 'Ubuntu-arm32v7' + steps: + - script: | + sudo apt-get install -y gcc-arm-linux-gnueabihf libc6-dev-armhf-cross qemu-arm-static + sudo apt-get install -y g++-arm-linux-gnueabihf libstdc++-4.8-dev-armhf-cross + sudo apt-get install -y g++-aarch64-linux-gnu libstdc++-4.8-dev-arm64-cross + sudo apt-get install -y qemu-system-ppc64 + sudo apt-get install qemu + sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + displayName: 'Setup' + - script: | + sudo docker run --rm -t --privileged -e ARTIFACTNAME=$(artifactName) -v "$(Agent.BuildDirectory)/s":"/ci" -v "/usr/bin/qemu-$(arch)-static":"/usr/bin/qemu-$(arch)-static" "$(image)" /bin/bash -c "cd /ci/ && chmod +x ./CI/azure/$(build_script) && ./CI/azure/$(build_script)" + displayName: 'Build' + - task: CopyFiles@2 + condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) + inputs: + sourceFolder: '$(Agent.BuildDirectory)/s/build/' + contents: '$(Agent.BuildDirectory)/s/build/?(*.deb|*.gz)' + targetFolder: '$(Build.ArtifactStagingDirectory)' + - task: PublishPipelineArtifact@1 + condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) + inputs: + targetPath: '$(Build.ArtifactStagingDirectory)' + artifactName: '$(artifactName)' + + ############################################# +- stage: ManageArtifacts dependsOn: Builds + ############################################# + # Deploy + ############################################# jobs: - job: GenerateSetupExe condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'], 'refs/tags/v'))) pool: vmImage: 'windows-2019' steps: - - task: DownloadPipelineArtifact@2 - inputs: - path: '$(Build.ArtifactStagingDirectory)' - - task: PowerShell@2 - inputs: - targetType: 'filePath' - filePath: .\CI\generate_exe.ps1 - displayName: "Generate libiio-setup.exe" - - task: PublishPipelineArtifact@1 - condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) - inputs: - targetPath: '$(Build.ArtifactStagingDirectory)' - artifactName: 'Libiio-Setup-Exe' + - task: DownloadPipelineArtifact@2 + inputs: + path: '$(Build.ArtifactStagingDirectory)' + - task: PowerShell@2 + inputs: + targetType: 'filePath' + filePath: .\CI\generate_exe.ps1 + displayName: 'Generate libiio-setup.exe' + - task: PublishPipelineArtifact@1 + condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest')) + inputs: + targetPath: '$(Build.ArtifactStagingDirectory)' + artifactName: 'Libiio-Setup-Exe' + + ############################################# - job: PushToSWDownloads dependsOn: GenerateSetupExe condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) pool: vmImage: 'ubuntu-latest' steps: - - task: DownloadPipelineArtifact@2 - inputs: - path: '$(Build.ArtifactStagingDirectory)' - - bash: ./CI/travis/prepare_assets.sh swdownloads - displayName: "Prepare artifacts for SWDownloads" - - task: DownloadSecureFile@1 - name: key - displayName: 'Download rsa key' - inputs: - secureFile: 'id_rsa' - - bash: chmod 600 $(key.secureFilePath) ; scp -2 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o HostKeyAlgorithms=+ssh-dss -i $(key.secureFilePath) -r /home/vsts/work/1/a/* $MAPPED_VAR - env: - MAPPED_VAR: $(SERVER_ADDRESS) - displayName: "Push artifacts to SW Downloads" + - task: DownloadPipelineArtifact@2 + inputs: + path: '$(Build.ArtifactStagingDirectory)' + - bash: ./CI/travis/prepare_assets.sh swdownloads + displayName: "Prepare artifacts for SWDownloads" + - task: DownloadSecureFile@1 + name: key + displayName: 'Download rsa key' + inputs: + secureFile: 'id_rsa' + - bash: chmod 600 $(key.secureFilePath) ; scp -2 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o HostKeyAlgorithms=+ssh-dss -i $(key.secureFilePath) -r /home/vsts/work/1/a/* $MAPPED_VAR + env: + MAPPED_VAR: $(SERVER_ADDRESS) + displayName: 'Push artifacts to SW Downloads' + + ############################################## - job: PushToGithubRelease condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) pool: vmImage: 'ubuntu-latest' steps: - - task: DownloadPipelineArtifact@2 - inputs: - path: '$(Build.ArtifactStagingDirectory)' - - bash: ./CI/travis/prepare_assets.sh release - displayName: "Prepare assets for release" - - task: GithubRelease@0 - displayName: 'Attach artifacts to GitHub Release' - inputs: - gitHubConnection: libiio-release - repositoryName: $(Build.Repository.Name) - action: create - target: $(Build.SourceVersion) - tag: $(Build.SourceBranchName) - title: "Libiio release $(Build.SourceBranchName)" - assets: $(Build.ArtifactStagingDirectory)/* - addChangeLog: true - isDraft: true + - task: DownloadPipelineArtifact@2 + inputs: + path: '$(Build.ArtifactStagingDirectory)' + - bash: ./CI/travis/prepare_assets.sh release + displayName: 'Prepare assets for release' + - task: GithubRelease@0 + displayName: 'Attach artifacts to GitHub Release' + inputs: + gitHubConnection: libiio-release + repositoryName: $(Build.Repository.Name) + action: create + target: $(Build.SourceVersion) + tag: $(Build.SourceBranchName) + title: "Libiio release $(Build.SourceBranchName)" + assets: $(Build.ArtifactStagingDirectory)/* + addChangeLog: true + isDraft: true diff --git a/libiio.iss.cmakein b/libiio.iss.cmakein index fc8de59a0..621144669 100644 --- a/libiio.iss.cmakein +++ b/libiio.iss.cmakein @@ -39,27 +39,13 @@ Name: "turkish"; MessagesFile: "compiler:Languages\Turkish.isl" Name: "ukrainian"; MessagesFile: "compiler:Languages\Ukrainian.isl" [Files] -Source: "D:\a\1\a\Windows-VS-16-2019-Win32\libiio.dll"; DestDir: "{sys}"; Flags: 32bit replacesameversion -Source: "D:\a\1\a\Windows-VS-16-2019-x64\libiio.dll"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: replacesameversion - -Source: "D:\a\1\a\Windows-VS-16-2019-Win32\*.exe"; DestDir: "{sys}"; Check: not Is64BitInstallMode; Flags: replacesameversion -Source: "D:\a\1\a\Windows-VS-16-2019-x64\*.exe"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: replacesameversion - -Source: "D:\a\1\a\Windows-VS-16-2019-Win32\libiio.lib"; DestDir: "{commonpf32}\Microsoft Visual Studio 12.0\VC\lib"; Check: not Is64BitInstallMode -Source: "D:\a\1\a\Windows-VS-16-2019-x64\libiio.lib"; DestDir: "{commonpf32}\Microsoft Visual Studio 12.0\VC\lib\amd64"; Check: Is64BitInstallMode -Source: "D:\a\1\a\Windows-VS-16-2019-Win32\iio.h"; DestDir: "{commonpf32}\Microsoft Visual Studio 12.0\VC\include" - -Source: "D:\a\1\a\Windows-VS-16-2019-Win32\libxml2.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist 32bit -Source: "D:\a\1\a\Windows-VS-16-2019-x64\libxml2.dll"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: onlyifdoesntexist - -Source: "D:\a\1\a\Windows-VS-16-2019-Win32\libusb-1.0.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist 32bit -Source: "D:\a\1\a\Windows-VS-16-2019-x64\libusb-1.0.dll"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: onlyifdoesntexist - -Source: "D:\a\1\a\Windows-VS-16-2019-Win32\libserialport-0.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist 32bit -Source: "D:\a\1\a\Windows-VS-16-2019-x64\libserialport-0.dll"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: onlyifdoesntexist - -Source: "D:\a\1\a\Windows-VS-16-2019-Win32\libiio-sharp.dll"; DestDir: "{commoncf}\libiio"; Flags: replacesameversion - -Source: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\14.29.30133\x86\Microsoft.VC142.CRT\msvcp140.dll"; DestDir: "{sys}"; Flags: onlyifdoesntexist 32bit +Source: "D:\a\1\a\Windows-VS-2019-x64\libiio.dll"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: replacesameversion +Source: "D:\a\1\a\Windows-VS-2019-x64\*.exe"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: replacesameversion +Source: "D:\a\1\a\Windows-VS-2019-x64\libiio.lib"; DestDir: "{commonpf32}\Microsoft Visual Studio 12.0\VC\lib\amd64"; Check: Is64BitInstallMode +Source: "D:\a\1\a\Windows-VS-2019-x64\iio.h"; DestDir: "{commonpf32}\Microsoft Visual Studio 12.0\VC\include" +Source: "D:\a\1\a\Windows-VS-2019-x64\libxml2.dll"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: onlyifdoesntexist +Source: "D:\a\1\a\Windows-VS-2019-x64\libusb-1.0.dll"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: onlyifdoesntexist +Source: "D:\a\1\a\Windows-VS-2019-x64\libserialport-0.dll"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: onlyifdoesntexist +Source: "D:\a\1\a\Windows-VS-2019-x64\libiio-sharp.dll"; DestDir: "{commoncf}\libiio"; Flags: replacesameversion Source: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT\msvcp140.dll"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: onlyifdoesntexist - +Source: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\14.29.30133\x64\Microsoft.VC142.CRT\vcruntime140.dll"; DestDir: "{sys}"; Check: Is64BitInstallMode; Flags: onlyifdoesntexist