From 0f9278ff7a908e3769410008419c0b504fe4d327 Mon Sep 17 00:00:00 2001 From: Gonzalo Exequiel Pedone Date: Tue, 3 Aug 2021 12:32:54 -0300 Subject: [PATCH] Improved CI build scripts. --- .github/workflows/linux-mingw.yml | 112 ++++++++++++++++++--------- .github/workflows/mac.yml | 10 +-- .github/workflows/windows-msys.yml | 19 +++-- .github/workflows/windows-vs.yml | 6 +- appveyor.yml | 2 +- ports/ci/appveyor/build.bat | 14 ++-- ports/ci/appveyor/deploy.bat | 4 +- ports/ci/appveyor/install_deps.bat | 2 + ports/ci/linux-mingw/build.sh | 66 +++++++++------- ports/ci/linux-mingw/deploy.sh | 51 +++--------- ports/ci/linux-mingw/install_deps.sh | 64 ++++----------- ports/ci/mac/build.sh | 5 +- ports/ci/mac/deploy.sh | 4 +- ports/ci/windows-msys/build.sh | 51 ++++++++---- ports/ci/windows-msys/deploy.sh | 20 +++-- ports/ci/windows-vs/build.bat | 8 +- ports/ci/windows-vs/deploy.bat | 4 +- 17 files changed, 227 insertions(+), 215 deletions(-) diff --git a/.github/workflows/linux-mingw.yml b/.github/workflows/linux-mingw.yml index 4e6fc9f..8d54fc2 100644 --- a/.github/workflows/linux-mingw.yml +++ b/.github/workflows/linux-mingw.yml @@ -4,48 +4,95 @@ on: [push, pull_request] env: QTIFWVER: 4.1.1 - ARCH_ROOT_DATE: 2021.05.01 - ARCH_ROOT_URL: https://mirror.rackspace.com/archlinux NSIS_VERSION: 3.06.1 + DOCKERIMG: archlinux:latest + ARCH_ROOT_URL: https://mirror.rackspace.com/archlinux + NJOBS: 4 jobs: build: runs-on: ubuntu-latest + strategy: + max-parallel: 10 + fail-fast: false + matrix: + include: + - compiler: gcc + - compiler: clang steps: - uses: actions/checkout@v2 - - name: Install dependencies - run: | - chmod +x ports/ci/linux-mingw/install_deps.sh - ./ports/ci/linux-mingw/install_deps.sh - - name: Release Build + - name: Release build + uses: addnab/docker-run-action@v3 if: ${{ startsWith(github.ref, 'refs/tags/') }} - run: | - chmod +x ports/ci/linux-mingw/build.sh - ./ports/ci/linux-mingw/build.sh - - name: Release Deploy - if: ${{ startsWith(github.ref, 'refs/tags/') }} - run: | - chmod +x ports/ci/linux-mingw/deploy.sh - ./ports/ci/linux-mingw/deploy.sh - - name: Daily Build + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + registry: gcr.io + image: ${{ env.DOCKERIMG }} + options: >- + -v ${{ github.workspace }}:/sources + -e NSIS_VERSION=${{ env.NSIS_VERSION }} + -e TARGET_ARCH=${{ matrix.target_arch }} + -e COMPILER=${{ matrix.COMPILER }} + -e DOCKERIMG=${{ env.DOCKERIMG }} + -e ARCH_ROOT_URL=${{ env.ARCH_ROOT_URL }} + -e NJOBS=${{ env.NJOBS }} + run: | + cd /sources + echo + echo Install dependencies + echo + chmod +x ports/ci/linux-mingw/install_deps.sh + ./ports/ci/linux-mingw/install_deps.sh + echo + echo Release Build + echo + chmod +x ports/ci/linux-mingw/build.sh + ./ports/ci/linux-mingw/build.sh + echo + echo Release Deploy + echo + chmod +x ports/ci/linux-mingw/deploy.sh + ./ports/ci/linux-mingw/deploy.sh + - name: Daily build + uses: addnab/docker-run-action@v3 if: ${{ !startsWith(github.ref, 'refs/tags/') }} - env: - DAILY_BUILD: 1 - run: | - chmod +x ports/ci/linux-mingw/build.sh - ./ports/ci/linux-mingw/build.sh - - name: Daily Deploy - if: ${{ !startsWith(github.ref, 'refs/tags/') }} - env: - DAILY_BUILD: 1 - run: | - chmod +x ports/ci/linux-mingw/deploy.sh - ./ports/ci/linux-mingw/deploy.sh + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + registry: gcr.io + image: ${{ env.DOCKERIMG }} + options: >- + -v ${{ github.workspace }}:/sources + -e NSIS_VERSION=${{ env.NSIS_VERSION }} + -e TARGET_ARCH=${{ matrix.target_arch }} + -e COMPILER=${{ matrix.COMPILER }} + -e DOCKERIMG=${{ env.DOCKERIMG }} + -e ARCH_ROOT_URL=${{ env.ARCH_ROOT_URL }} + -e NJOBS=${{ env.NJOBS }} + -e DAILY_BUILD=1 + run: | + cd /sources + echo + echo Install dependencies + echo + chmod +x ports/ci/linux-mingw/install_deps.sh + ./ports/ci/linux-mingw/install_deps.sh + echo + echo Daily Build + echo + chmod +x ports/ci/linux-mingw/build.sh + ./ports/ci/linux-mingw/build.sh + echo + echo Daily Deploy + echo + chmod +x ports/ci/linux-mingw/deploy.sh + ./ports/ci/linux-mingw/deploy.sh - name: Release Upload uses: softprops/action-gh-release@v1 if: ${{ startsWith(github.ref, 'refs/tags/') }} with: - files: webcamoid-packages/* + files: packages/windows-gcc/* env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Daily Build Upload @@ -54,13 +101,8 @@ jobs: with: body: "${{ github.event.head_commit.message }} (commit: ${{ github.sha }})" prerelease: true - files: webcamoid-packages/* + files: packages/windows-gcc/* name: Daily Build tag_name: daily-build env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Linux MinGW daily build packages - uses: actions/upload-artifact@v2 - with: - name: linux-mingw-daily-build - path: webcamoid-packages/* diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 6e3c8ec..864b8f0 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -4,6 +4,7 @@ on: [push, pull_request] env: QTIFWVER: 4.1.1 + NJOBS: 4 jobs: build: @@ -42,7 +43,7 @@ jobs: uses: softprops/action-gh-release@v1 if: ${{ startsWith(github.ref, 'refs/tags/') }} with: - files: webcamoid-packages/* + files: packages/mac/* env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Daily Build Upload @@ -51,13 +52,8 @@ jobs: with: body: "${{ github.event.head_commit.message }} (commit: ${{ github.sha }})" prerelease: true - files: webcamoid-packages/* + files: packages/mac/* name: Daily Build tag_name: daily-build env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: MacOS daily build packages - uses: actions/upload-artifact@v2 - with: - name: mac-daily-build - path: webcamoid-packages/* diff --git a/.github/workflows/windows-msys.yml b/.github/workflows/windows-msys.yml index 58e5eeb..ee44fd4 100644 --- a/.github/workflows/windows-msys.yml +++ b/.github/workflows/windows-msys.yml @@ -2,6 +2,9 @@ name: Windows MSYS on: [push, pull_request] +env: + NJOBS: 4 + jobs: build: runs-on: windows-latest @@ -9,11 +12,22 @@ jobs: run: shell: msys2 {0} steps: + strategy: + max-parallel: 10 + fail-fast: false + matrix: + include: + - compiler: gcc + - compiler: clang + env: + COMPILER: ${{ matrix.compiler }} - uses: actions/checkout@v2 - uses: msys2/setup-msys2@v2 with: update: true install: >- + ccache + clang cmake git make @@ -29,8 +43,3 @@ jobs: run: ./ports/ci/windows-msys/build.sh - name: Deploy run: ./ports/ci/windows-msys/deploy.sh - - name: Windows MSYS daily build packages - uses: actions/upload-artifact@v2 - with: - name: windows-msys-daily-build - path: webcamoid-packages/* diff --git a/.github/workflows/windows-vs.yml b/.github/workflows/windows-vs.yml index 7206f5c..a3e4d5d 100644 --- a/.github/workflows/windows-vs.yml +++ b/.github/workflows/windows-vs.yml @@ -5,6 +5,7 @@ on: [push, pull_request] env: CMAKE_GENERATOR: Visual Studio 16 2019 PYTHON_VERSION: Python39 + NJOBS: 4 jobs: build: @@ -18,8 +19,3 @@ jobs: run: ports\ci\windows-vs\build.bat - name: Deploy run: ports\ci\windows-vs\deploy.bat - - name: Windows MSVC daily build packages - uses: actions/upload-artifact@v2 - with: - name: windows-vs-daily-build - path: webcamoid-packages/* diff --git a/appveyor.yml b/appveyor.yml index 5688ba0..cf993ee 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -13,7 +13,7 @@ build: environment: global: PYTHON_VERSION: Python39 - + NJOBS: 4 matrix: - CMAKE_GENERATOR: MSYS Makefiles - CMAKE_GENERATOR: Visual Studio 16 2019 diff --git a/ports/ci/appveyor/build.bat b/ports/ci/appveyor/build.bat index c03f8e4..c144b4a 100644 --- a/ports/ci/appveyor/build.bat +++ b/ports/ci/appveyor/build.bat @@ -16,7 +16,7 @@ REM along with akvirtualcamera. If not, see . REM REM Web-Site: http://webcamoid.github.io/ -set INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%\webcamoid-data +set INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%\package-data echo. echo Building x64 virtual camera driver @@ -28,12 +28,13 @@ setlocal if "%CMAKE_GENERATOR%" == "MSYS Makefiles" set PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH% if "%CMAKE_GENERATOR%" == "MSYS Makefiles" ( cmake ^ + -LA ^ -S . ^ -B build-x64 ^ -G "%CMAKE_GENERATOR%" ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" - cmake --build build-x64 + cmake --build build-x64 --parallel "%NJOBS%" cmake --build build-x64 --target install ) @@ -41,13 +42,14 @@ endlocal if "%CMAKE_GENERATOR:~0,13%" == "Visual Studio" ( cmake ^ + -LA ^ -S . ^ -B build-x64 ^ -G "%CMAKE_GENERATOR%" ^ -A x64 ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" - cmake --build build-x64 --config Release + cmake --build build-x64 --config Release --parallel "%NJOBS%" cmake --build build-x64 --config Release --target install ) @@ -61,12 +63,13 @@ setlocal if "%CMAKE_GENERATOR%" == "MSYS Makefiles" set PATH=C:\msys64\mingw32\bin;C:\msys64\usr\bin;%PATH% if "%CMAKE_GENERATOR%" == "MSYS Makefiles" ( cmake ^ + -LA ^ -S . ^ -B build-x86 ^ -G "%CMAKE_GENERATOR%" ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" - cmake --build build-x86 + cmake --build build-x86 --parallel "%NJOBS%" cmake --build build-x86 --target install ) @@ -74,12 +77,13 @@ endlocal if "%CMAKE_GENERATOR:~0,13%" == "Visual Studio" ( cmake ^ + -LA ^ -S . ^ -B build-x86 ^ -G "%CMAKE_GENERATOR%" ^ -A Win32 ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" - cmake --build build-x86 --config Release + cmake --build build-x86 --config Release --parallel "%NJOBS%" cmake --build build-x86 --config Release --target install ) diff --git a/ports/ci/appveyor/deploy.bat b/ports/ci/appveyor/deploy.bat index 88b93e5..cd282ba 100644 --- a/ports/ci/appveyor/deploy.bat +++ b/ports/ci/appveyor/deploy.bat @@ -22,8 +22,8 @@ if "%PLATFORM%" == "x86" ( set PYTHON_PATH=C:\%PYTHON_VERSION%-x64 ) -set INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%\webcamoid-data -set PACKAGES_DIR=%APPVEYOR_BUILD_FOLDER%\webcamoid-packages +set INSTALL_PREFIX=%APPVEYOR_BUILD_FOLDER%\package-data +set PACKAGES_DIR=%APPVEYOR_BUILD_FOLDER%\packages git clone https://github.com/webcamoid/DeployTools.git diff --git a/ports/ci/appveyor/install_deps.bat b/ports/ci/appveyor/install_deps.bat index dec0739..365ba7e 100644 --- a/ports/ci/appveyor/install_deps.bat +++ b/ports/ci/appveyor/install_deps.bat @@ -25,6 +25,8 @@ if "%CMAKE_GENERATOR%" == "MSYS Makefiles" ( pacman --noconfirm -Syyu ^ --ignore filesystem,pacman,pacman-mirrors pacman --noconfirm --needed -S ^ + ccache ^ + clang ^ cmake ^ git ^ make ^ diff --git a/ports/ci/linux-mingw/build.sh b/ports/ci/linux-mingw/build.sh index 17fafd7..6df34e5 100644 --- a/ports/ci/linux-mingw/build.sh +++ b/ports/ci/linux-mingw/build.sh @@ -18,47 +18,53 @@ # # Web-Site: http://webcamoid.github.io/ -BUILDSCRIPT=dockerbuild.sh -SOURCES_DIR=${PWD} -INSTALL_PREFIX=${SOURCES_DIR}/webcamoid-data +if [ "${COMPILER}" = clang ]; then + COMPILER_C=clang + COMPILER_CXX=clang++ +else + COMPILER_C=gcc + COMPILER_CXX=g++ +fi -sudo mount --bind root.x86_64 root.x86_64 -sudo mount --bind "$HOME" "root.x86_64/$HOME" -cat << EOF > ${BUILDSCRIPT} -#!/bin/sh +if [ -z "${DISABLE_CCACHE}" ]; then + EXTRA_PARAMS="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OBJCXX_COMPILER_LAUNCHER=ccache" +fi + +INSTALL_PREFIX=${PWD}/package-data-${COMPILER} -export LC_ALL=C -export HOME=$HOME -cd "${SOURCES_DIR}" echo echo "Building x64 virtual camera driver" echo -mkdir build-x64 +COMPILER_C=x86_64-w64-mingw32-${COMPILER_C} +COMPILER_CXX=x86_64-w64-mingw32-${COMPILER_CXX} +buildDir=build-${COMPILER}-x64 +mkdir ${buildDir} x86_64-w64-mingw32-cmake \ + -LA \ -S . \ - -B build-x64 \ + -B ${buildDir} \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" -cmake --build build-x64 -cmake --build build-x64 --target install + -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" \ + -DCMAKE_C_COMPILER="${COMPILER_C}" \ + -DCMAKE_CXX_COMPILER="${COMPILER_CXX}" \ + ${EXTRA_PARAMS} +cmake --build ${buildDir} --parallel ${NJOBS} +cmake --build ${buildDir} --target install echo echo "Building x86 virtual camera driver" echo -mkdir build-x86 -cd build-x86 +COMPILER_C=i686-w64-mingw32-${COMPILER_C} +COMPILER_CXX=i686-w64-mingw32-${COMPILER_CXX} +buildDir=build-${COMPILER}-x86 +mkdir ${buildDir} i686-w64-mingw32-cmake \ + -LA \ -S . \ - -B build-x86 \ + -B ${buildDir} \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" -cmake --build build-x86 -cmake --build build-x86 --target install -EOF -chmod +x ${BUILDSCRIPT} -sudo cp -vf ${BUILDSCRIPT} "root.x86_64/$HOME/" - -EXEC='sudo ./root.x86_64/bin/arch-chroot root.x86_64' -${EXEC} bash "$HOME/${BUILDSCRIPT}" - -sudo umount "root.x86_64/$HOME" -sudo umount root.x86_64 + -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" \ + -DCMAKE_C_COMPILER="${COMPILER_C}" \ + -DCMAKE_CXX_COMPILER="${COMPILER_CXX}" \ + ${EXTRA_PARAMS} +cmake --build ${buildDir} --parallel ${NJOBS} +cmake --build ${buildDir} --target install diff --git a/ports/ci/linux-mingw/deploy.sh b/ports/ci/linux-mingw/deploy.sh index 21eed8a..e0812db 100644 --- a/ports/ci/linux-mingw/deploy.sh +++ b/ports/ci/linux-mingw/deploy.sh @@ -18,54 +18,25 @@ # # Web-Site: http://webcamoid.github.io/ -SOURCES_DIR=${PWD} -EXEC='sudo ./root.x86_64/bin/arch-chroot root.x86_64' - git clone https://github.com/webcamoid/DeployTools.git -DEPLOYSCRIPT=deployscript.sh - -sudo mount --bind root.x86_64 root.x86_64 -sudo mount --bind "$HOME" "root.x86_64/$HOME" - cat << EOF > package_info_strip.conf [System] stripCmd = x86_64-w64-mingw32-strip EOF -cat << EOF > ${DEPLOYSCRIPT} -#!/bin/sh - -export LC_ALL=C -export HOME=${HOME} -export PATH="${SOURCES_DIR}/.local/bin:\$PATH" -export INSTALL_PREFIX="${SOURCES_DIR}/webcamoid-data" -export PACKAGES_DIR="${SOURCES_DIR}/webcamoid-packages" -export PYTHONPATH="${SOURCES_DIR}/DeployTools" -export BUILD_PATH="${SOURCES_DIR}/build-x64" export WINEPREFIX=/opt/.wine -cd "${SOURCES_DIR}" -EOF +export PATH="${PWD}/.local/bin:${PATH}" +export INSTALL_PREFIX="${PWD}/package-data-${COMPILER}" +export PACKAGES_DIR="${PWD}/packages/windows-${COMPILER}" +export PYTHONPATH="${PWD}/DeployTools" +export BUILD_PATH="${PWD}/build-${COMPILER}-x64" -if [ ! -z "${DAILY_BUILD}" ]; then - cat << EOF >> ${DEPLOYSCRIPT} -export DAILY_BUILD=1 -EOF -fi - -cat << EOF >> ${DEPLOYSCRIPT} -i686-w64-mingw32-strip \${INSTALL_PREFIX}/x86/* -x86_64-w64-mingw32-strip \${INSTALL_PREFIX}/x64/* +i686-w64-mingw32-strip ${INSTALL_PREFIX}/x86/* +x86_64-w64-mingw32-strip ${INSTALL_PREFIX}/x64/* python ./DeployTools/deploy.py \ - -d "\${INSTALL_PREFIX}" \ - -c "\${BUILD_PATH}/package_info.conf" \ - -c "./package_info_strip.conf" \ - -o "\${PACKAGES_DIR}" -EOF -chmod +x ${DEPLOYSCRIPT} -sudo cp -vf ${DEPLOYSCRIPT} "root.x86_64/$HOME/" - -${EXEC} bash "$HOME/${DEPLOYSCRIPT}" -sudo umount "root.x86_64/$HOME" -sudo umount root.x86_64 + -d "${INSTALL_PREFIX}" \ + -c "${BUILD_PATH}/package_info.conf" \ + -c "${PWD}/package_info_strip.conf" \ + -o "${PACKAGES_DIR}" diff --git a/ports/ci/linux-mingw/install_deps.sh b/ports/ci/linux-mingw/install_deps.sh index a898627..af0eadf 100644 --- a/ports/ci/linux-mingw/install_deps.sh +++ b/ports/ci/linux-mingw/install_deps.sh @@ -18,24 +18,15 @@ # # Web-Site: http://webcamoid.github.io/ -SOURCES_DIR=${PWD} - if [ ! -z "${USE_WGET}" ]; then export DOWNLOAD_CMD="wget -nv -c" else export DOWNLOAD_CMD="curl --retry 10 -sS -kLOC -" fi -EXEC='sudo ./root.x86_64/bin/arch-chroot root.x86_64' - -# Download chroot image -archImage=archlinux-bootstrap-${ARCH_ROOT_DATE}-x86_64.tar.gz -${DOWNLOAD_CMD} "${ARCH_ROOT_URL}/iso/${ARCH_ROOT_DATE}/$archImage" -sudo tar xzf "$archImage" - # Configure mirrors -cp -vf root.x86_64/etc/pacman.conf . -cat << EOF >> pacman.conf + +cat << EOF >> /etc/pacman.conf [multilib] Include = /etc/pacman.d/mirrorlist @@ -44,31 +35,24 @@ Include = /etc/pacman.d/mirrorlist Server = https://ftp.f3l.de/~martchus/\$repo/os/\$arch Server = http://martchus.no-ip.biz/repo/arch/\$repo/os/\$arch EOF -sed -i 's/Required DatabaseOptional/Never/g' pacman.conf -sed -i 's/#TotalDownload/TotalDownload/g' pacman.conf -sudo cp -vf pacman.conf root.x86_64/etc/pacman.conf +sed -i 's/Required DatabaseOptional/Never/g' /etc/pacman.conf -cp -vf root.x86_64/etc/pacman.d/mirrorlist . -cat << EOF >> mirrorlist +cat << EOF >> /etc/pacman.d/mirrorlist Server = ${ARCH_ROOT_URL}/\$repo/os/\$arch EOF -sudo cp -vf mirrorlist root.x86_64/etc/pacman.d/mirrorlist # Install packages -sudo mkdir -pv "root.x86_64/$HOME" -sudo mount --bind root.x86_64 root.x86_64 -sudo mount --bind "$HOME" "root.x86_64/$HOME" -${EXEC} pacman-key --init -${EXEC} pacman-key --populate archlinux -${EXEC} pacman -Syu \ +pacman-key --init +pacman-key --populate archlinux +pacman -Syu \ --noconfirm \ --ignore linux,linux-api-headers,linux-docs,linux-firmware,linux-headers,pacman - -${EXEC} pacman --noconfirm --needed -S \ +pacman --noconfirm --needed -S \ ccache \ clang \ + cmake \ file \ git \ make \ @@ -78,34 +62,16 @@ ${EXEC} pacman --noconfirm --needed -S \ xorg-server-xvfb \ wine \ mingw-w64-pkg-config \ - mingw-w64-gcc \ - mingw-w64-cmake + mingw-w64-cmake \ + mingw-w64-gcc - # Install NSIS +# Install NSIS nsis=nsis-${NSIS_VERSION}-setup.exe ${DOWNLOAD_CMD} "https://sourceforge.net/projects/nsis/files/NSIS%20${NSIS_VERSION:0:1}/${NSIS_VERSION}/${nsis}" -if [ -e "${nsis}" ]; then - INSTALLSCRIPT=installscript.sh +if [ -e ${nsis} ]; then + export WINEPREFIX=/opt/.wine - cat << EOF > ${INSTALLSCRIPT} -#!/bin/sh - -export LC_ALL=C -export HOME=$HOME -export WINEPREFIX=/opt/.wine -cd "${SOURCES_DIR}" - -wine ./${nsis} /S -EOF - - chmod +x ${INSTALLSCRIPT} - sudo cp -vf ${INSTALLSCRIPT} "root.x86_64/$HOME/" - ${EXEC} bash "$HOME/${INSTALLSCRIPT}" + wine ./${nsis} /S fi - -# Finish - -sudo umount -f "root.x86_64/$HOME" || true -sudo umount -f root.x86_64 || true diff --git a/ports/ci/mac/build.sh b/ports/ci/mac/build.sh index ec76d7b..3f9d32b 100644 --- a/ports/ci/mac/build.sh +++ b/ports/ci/mac/build.sh @@ -19,13 +19,14 @@ # Web-Site: http://webcamoid.github.io/ SOURCES_DIR=${PWD} -INSTALL_PREFIX=${SOURCES_DIR}/webcamoid-data +INSTALL_PREFIX=${SOURCES_DIR}/package-data mkdir build cmake \ + -LA \ -S . \ -B build \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" -cmake --build build +cmake --build build --parallel ${NJOBS} cmake --build build --target install diff --git a/ports/ci/mac/deploy.sh b/ports/ci/mac/deploy.sh index e7eb223..d7211e3 100644 --- a/ports/ci/mac/deploy.sh +++ b/ports/ci/mac/deploy.sh @@ -22,8 +22,8 @@ SOURCES_DIR=${PWD} git clone https://github.com/webcamoid/DeployTools.git -export INSTALL_PREFIX="${SOURCES_DIR}/webcamoid-data" -export PACKAGES_DIR="${SOURCES_DIR}/webcamoid-packages" +export INSTALL_PREFIX="${SOURCES_DIR}/package-data" +export PACKAGES_DIR="${SOURCES_DIR}/packages/mac" export PYTHONPATH="${SOURCES_DIR}/DeployTools" export BUILD_PATH="${SOURCES_DIR}/build" python3 ./DeployTools/deploy.py \ diff --git a/ports/ci/windows-msys/build.sh b/ports/ci/windows-msys/build.sh index 4d76be5..b9f2596 100644 --- a/ports/ci/windows-msys/build.sh +++ b/ports/ci/windows-msys/build.sh @@ -18,38 +18,57 @@ # # Web-Site: http://webcamoid.github.io/ -SOURCES_DIR=${PWD} -INSTALL_PREFIX=${SOURCES_DIR}/webcamoid-data +if [ "${COMPILER}" = clang ]; then + COMPILER_C=clang + COMPILER_CXX=clang++ +else + COMPILER_C=gcc + COMPILER_CXX=g++ +fi + +if [ -z "${DISABLE_CCACHE}" ]; then + EXTRA_PARAMS="-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_OBJCXX_COMPILER_LAUNCHER=ccache" +fi + +INSTALL_PREFIX=${PWD}/package-data-${COMPILER} ORIG_PATH=${PATH} echo -echo Building x64 virtual camera driver +echo "Building x64 virtual camera driver" echo -mkdir build-x64 - export PATH=/c/msys64/mingw64/bin:/c/msys64/usr/bin:${ORIG_PATH} +buildDir=build-${COMPILER}-x64 +mkdir ${buildDir} cmake \ + -LA \ -S . \ - -B build-x64 \ + -B ${buildDir} \ -G "MSYS Makefiles" \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" -cmake --build build-x64 -cmake --build build-x64 --target install + -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" \ + -DCMAKE_C_COMPILER="${COMPILER_C}" \ + -DCMAKE_CXX_COMPILER="${COMPILER_CXX}" \ + ${EXTRA_PARAMS} +cmake --build ${buildDir} --parallel ${NJOBS} +cmake --build ${buildDir} --target install echo -echo Building x86 virtual camera driver +echo "Building x86 virtual camera driver" echo -mkdir build-x86 - export PATH=/c/msys64/mingw32/bin:/c/msys64/usr/bin:${ORIG_PATH} +buildDir=build-${COMPILER}-x86 +mkdir ${buildDir} cmake \ + -LA \ -S . \ - -B build-x86 \ + -B ${buildDir} \ -G "MSYS Makefiles" \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" -cmake --build build-x86 -cmake --build build-x86 --target install + -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" \ + -DCMAKE_C_COMPILER="${COMPILER_C}" \ + -DCMAKE_CXX_COMPILER="${COMPILER_CXX}" \ + ${EXTRA_PARAMS} +cmake --build ${buildDir} --parallel ${NJOBS} +cmake --build ${buildDir} --target install diff --git a/ports/ci/windows-msys/deploy.sh b/ports/ci/windows-msys/deploy.sh index 8f3e295..d665260 100644 --- a/ports/ci/windows-msys/deploy.sh +++ b/ports/ci/windows-msys/deploy.sh @@ -18,22 +18,20 @@ # # Web-Site: http://webcamoid.github.io/ -SOURCES_DIR=${PWD} -INSTALL_PREFIX=${SOURCES_DIR}/webcamoid-data -INSTALL_PREFIX_W=$(cygpath -w "${INSTALL_PREFIX}") -PACKAGES_DIR=${SOURCES_DIR}/webcamoid-packages -PACKAGES_DIR_W=$(cygpath -w "${PACKAGES_DIR}") - git clone https://github.com/webcamoid/DeployTools.git +export PATH="/c/Program Files (x86)/NSIS:${PATH}" +export INSTALL_PREFIX="${PWD}/package-data-${COMPILER}" +export INSTALL_PREFIX_W=$(cygpath -w "${INSTALL_PREFIX}") +export PACKAGES_DIR="${PWD}/packages/windows-${COMPILER}" +export PACKAGES_DIR_W=$(cygpath -w "${PACKAGES_DIR}") +export PYTHONPATH="${PWD}/DeployTools" +export BUILD_PATH="${PWD}/build-${COMPILER}-x64" +export BUILD_PATH_W=$(cygpath -w "${BUILD_PATH}") + /c/msys64/mingw32/bin/strip "${INSTALL_PREFIX}"/x86/* /c/msys64/mingw64/bin/strip "${INSTALL_PREFIX}"/x64/* -export PATH="/c/Program Files (x86)/NSIS:${PATH}" - -export PYTHONPATH=${SOURCES_DIR}/DeployTools -BUILD_PATH=${SOURCES_DIR}/build-x64 -BUILD_PATH_W=$(cygpath -w "${BUILD_PATH}") python DeployTools/deploy.py \ -d "${INSTALL_PREFIX_W}" \ -c "${BUILD_PATH_W}/package_info.conf" \ diff --git a/ports/ci/windows-vs/build.bat b/ports/ci/windows-vs/build.bat index 9343ee7..31d50d7 100644 --- a/ports/ci/windows-vs/build.bat +++ b/ports/ci/windows-vs/build.bat @@ -17,7 +17,7 @@ REM REM Web-Site: http://webcamoid.github.io/ set SOURCES_DIR=%cd% -set INSTALL_PREFIX=%SOURCES_DIR%\webcamoid-data +set INSTALL_PREFIX=%SOURCES_DIR%\package-data echo. echo Building x64 virtual camera driver @@ -26,13 +26,14 @@ echo. mkdir build-x64 cmake ^ + -LA ^ -S . ^ -B build-x64 ^ -G "%CMAKE_GENERATOR%" ^ -A x64 ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" -cmake --build build-x64 --config Release +cmake --build build-x64 --config Release --parallel "%NJOBS%" cmake --build build-x64 --config Release --target install echo. @@ -42,11 +43,12 @@ echo. mkdir build-x86 cmake ^ + -LA ^ -S . ^ -B build-x86 ^ -G "%CMAKE_GENERATOR%" ^ -A Win32 ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" -cmake --build build-x86 --config Release +cmake --build build-x86 --config Release --parallel "%NJOBS%" cmake --build build-x86 --config Release --target install diff --git a/ports/ci/windows-vs/deploy.bat b/ports/ci/windows-vs/deploy.bat index 289a70f..8d8a391 100644 --- a/ports/ci/windows-vs/deploy.bat +++ b/ports/ci/windows-vs/deploy.bat @@ -17,8 +17,8 @@ REM REM Web-Site: http://webcamoid.github.io/ set SOURCES_DIR=%cd% -set INSTALL_PREFIX=%SOURCES_DIR%\webcamoid-data -set PACKAGES_DIR=%SOURCES_DIR%\webcamoid-packages +set INSTALL_PREFIX=%SOURCES_DIR%\package-data +set PACKAGES_DIR=%SOURCES_DIR%\packages\windows git clone https://github.com/webcamoid/DeployTools.git