Updated CI scripts.

This commit is contained in:
Gonzalo Exequiel Pedone 2021-02-21 00:30:52 -03:00
parent 1c014e1485
commit 4eb656e986
No known key found for this signature in database
GPG key ID: B8B09E63E9B85BAF
9 changed files with 106 additions and 303 deletions

View file

@ -20,25 +20,11 @@ matrix:
dist: focal
compiler: gcc
env:
- ARCH_ROOT_MINGW=x86_64
- DAILY_BUILD=1
- os: linux
dist: focal
compiler: gcc
env:
- ARCH_ROOT_MINGW=i686
- DAILY_BUILD=1
- os: linux
dist: focal
compiler: gcc
env:
- ARCH_ROOT_MINGW=x86_64
- RELEASE_BUILD=1
- os: linux
dist: focal
compiler: gcc
env:
- ARCH_ROOT_MINGW=i686
- RELEASE_BUILD=1
- os: osx
osx_image: xcode10.2
@ -88,19 +74,6 @@ install:
- chmod +x ports/ci/travis/install_deps.sh
- ports/ci/travis/install_deps.sh
before_script: |
if [ "${TRAVIS_OS_NAME}" = linux ]; then
export CXX=${ARCH_ROOT_MINGW}-w64-mingw32-g++
export COMPILESPEC=win32-g++
elif [ "${TRAVIS_OS_NAME}" = osx ]; then
brew link --force qt5
if [ "${CXX}" = g++ ]; then
export COMPILESPEC=macx-g++
elif [ "${CXX}" = clang++ ]; then
export COMPILESPEC=macx-clang
fi
fi
script:
- chmod +x ports/ci/travis/build.sh
- ports/ci/travis/build.sh

View file

@ -10,15 +10,9 @@ build:
parallel: true
verbosity: detailed
configuration:
- release
# - debug
environment:
global:
PYTHON_VERSION: Python39
QMAKESPEC: win32-g++
MAKETOOL: mingw32-make
INSTALL_PREFIX: C:/projects/akvirtualcamera/ports/deploy/temp_priv
# api key from https://bintray.com/profile/edit
# encrypted in https://ci.appveyor.com/tools/encrypt
@ -26,44 +20,18 @@ environment:
secure: seneRk4ppI4bquIsdweI8pd8FT0RXUvU2LOUNGSBEA28IhFQijypil2CfC3WtJxa
matrix:
- MSYS2_BUILD: 1
- QTDIR: C:\Qt\5.15\mingw81_64
TOOLSDIR: C:\Qt\Tools\mingw810_64
- QTDIR: C:\Qt\5.15\mingw81_32
TOOLSDIR: C:\Qt\Tools\mingw810_32
PLATFORM: x86
- QTDIR: C:\Qt\5.15\msvc2019
TOOLSDIR: C:\Qt\Tools\QtCreator
QMAKESPEC: win32-msvc
VSPATH: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build
MAKETOOL: jom
PLATFORM: x86
- QTDIR: C:\Qt\5.15\msvc2019_64
TOOLSDIR: C:\Qt\Tools\QtCreator
QMAKESPEC: win32-msvc
VSPATH: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build
MAKETOOL: jom
- CMAKE_GENERATOR: MSYS Makefiles
- CMAKE_GENERATOR: Visual Studio 16 2019
install:
- if "%MSYS2_BUILD%" == "" (
ports\ci\appveyor\install_deps.bat
) else (
C:\msys64\usr\bin\bash -lc "cd /c/projects/akvirtualcamera && ./ports/ci/appveyor/install_deps.sh"
)
- ports\ci\appveyor\install_deps.bat
build_script:
- if "%MSYS2_BUILD%" == "" (
ports\ci\appveyor\build.bat
) else (
C:\msys64\usr\bin\bash -lc "cd /c/projects/akvirtualcamera && ./ports/ci/appveyor/build.sh '%INSTALL_PREFIX%'"
)
- ports\ci\appveyor\build.bat
after_build:
- if "%MSYS2_BUILD%" == "" (
ports\ci\appveyor\deploy.bat
) else (
C:\msys64\usr\bin\bash -lc "cd /c/projects/akvirtualcamera && ./ports/ci/appveyor/deploy.sh"
)
- ports\ci\appveyor\deploy.bat
# - ports\ci\appveyor\push_artifacts.bat
#
#deploy_script:

View file

@ -16,53 +16,64 @@ REM along with Webcamoid. If not, see <http://www.gnu.org/licenses/>.
REM
REM Web-Site: http://webcamoid.github.io/
if "%PLATFORM%" == "x86" (
set VC_ARGS=x86
) else (
set VC_ARGS=amd64
)
rem Visual Studio init
if not "%VSPATH%" == "" call "%VSPATH%\vcvarsall" %VC_ARGS%
set PATH_ORIG=%PATH%
set PATH=%QTDIR%\bin;%TOOLSDIR%\bin;%PATH%
qmake -query
qmake akvirtualcamera.pro ^
CONFIG+=%CONFIGURATION% ^
CONFIG+=silent ^
PREFIX="%INSTALL_PREFIX%"
%MAKETOOL% -j4
if "%DAILY_BUILD%" == "" goto EndScript
if "%PLATFORM%" == "x86" (
set DRV_ARCH=x64
) else (
set DRV_ARCH=x86
)
echo.
echo Building %DRV_ARCH% virtual camera driver
echo Building x64 virtual camera driver
echo.
mkdir akvcam
cd akvcam
set PATH_ORIG=%Path%
mkdir build-x64
cd build-x64
set PATH=%QTDIR_ALT%\bin;%TOOLSDIR_ALT%\bin;%PATH_ORIG%
qmake -query
qmake ^
CONFIG+=silent ^
..\akvirtualcamera.pro
%MAKETOOL% -j4
if "%CMAKE_GENERATOR%" == "MSYS Makefiles" (
set Path=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%Path%
cmake ^
-G "%CMAKE_GENERATOR%" ^
-DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" ^
..
)
if "%CMAKE_GENERATOR:~0,13%" == "Visual Studio" (
set Path=C:\Program Files\CMake\bin;%Path%
cmake ^
-G "%CMAKE_GENERATOR%" ^
-A x64 ^
-DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" ^
..
)
cmake --build .
cd ..
mkdir AkVirtualCamera.plugin\%DRV_ARCH%
xcopy ^
akvcam\AkVirtualCamera.plugin\%DRV_ARCH%\* ^
AkVirtualCamera.plugin\%DRV_ARCH% ^
/i /y
:EndScript
echo.
echo Building x86 virtual camera driver
echo.
set Path=%PATH_ORIG%
mkdir build-x86
cd build-x86
if "%CMAKE_GENERATOR%" == "MSYS Makefiles" (
set Path=C:\msys64\mingw32\bin;C:\msys64\usr\bin;%Path%
cmake ^
-G "%CMAKE_GENERATOR%" ^
-DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" ^
..
)
if "%CMAKE_GENERATOR:~0,13%" == "Visual Studio" (
set Path=C:\Program Files\CMake\bin;%Path%
cmake ^
-G "%CMAKE_GENERATOR%" ^
-A Win32 ^
-DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" ^
..
)
cmake --build .
cd ..
mkdir build-x64\AkVirtualCamera.plugin\x86
xcopy ^
build-x86\AkVirtualCamera.plugin\x86\* ^
build-x64\AkVirtualCamera.plugin\x86 ^
/i /y

View file

@ -1,26 +0,0 @@
#!/bin/bash
# Webcamoid, webcam capture application.
# Copyright (C) 2019 Gonzalo Exequiel Pedone
#
# Webcamoid is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Webcamoid is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Webcamoid. If not, see <http://www.gnu.org/licenses/>.
#
# Web-Site: http://webcamoid.github.io/
export PATH=/mingw64/bin:$PATH
qmake -query
qmake akvirtualcamera.pro \
CONFIG+=silent \
PREFIX="$1"
make -j4

View file

@ -1,27 +0,0 @@
#!/bin/bash
# Webcamoid, webcam capture application.
# Copyright (C) 2019 Gonzalo Exequiel Pedone
#
# Webcamoid is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Webcamoid is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Webcamoid. If not, see <http://www.gnu.org/licenses/>.
#
# Web-Site: http://webcamoid.github.io/
cd ports/deploy
git clone https://github.com/webcamoid/DeployTools.git
cd ../..
export PATH=/mingw64/bin:$PATH
export PYTHONPATH="${PWD}/ports/deploy/DeployTools"
python3 ports/deploy/deploy.py

View file

@ -18,3 +18,18 @@ REM Web-Site: http://webcamoid.github.io/
rem Installing various utilities
choco install -y jfrog-cli
if "%CMAKE_GENERATOR%" == "MSYS Makefiles" (
set Path=C:\msys64\usr\bin;%Path%
pacman -Syy
pacman --noconfirm --needed -S ^
cmake ^
git ^
make ^
pkg-config ^
python3 ^
mingw-w64-x86_64-cmake ^
mingw-w64-i686-cmake ^
mingw-w64-x86_64-pkg-config ^
mingw-w64-i686-pkg-config
)

View file

@ -1,28 +0,0 @@
#!/bin/bash
# Webcamoid, webcam capture application.
# Copyright (C) 2019 Gonzalo Exequiel Pedone
#
# Webcamoid is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Webcamoid is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Webcamoid. If not, see <http://www.gnu.org/licenses/>.
#
# Web-Site: http://webcamoid.github.io/
pacman -Syy
pacman --noconfirm --needed -S \
git \
make \
pkg-config \
python3 \
mingw-w64-x86_64-pkg-config \
mingw-w64-x86_64-qt5

View file

@ -18,132 +18,49 @@
#
# Web-Site: http://webcamoid.github.io/
if [ -z "${DISABLE_CCACHE}" ]; then
if [ "${CXX}" = clang++ ]; then
UNUSEDARGS="-Qunused-arguments"
fi
COMPILER="ccache ${CXX} ${UNUSEDARGS}"
else
COMPILER=${CXX}
fi
if [ "${TRAVIS_OS_NAME}" = linux ]; then
EXEC='sudo ./root.x86_64/bin/arch-chroot root.x86_64'
fi
BUILDSCRIPT=dockerbuild.sh
if [ "${TRAVIS_OS_NAME}" = linux ]; then
sudo mount --bind root.x86_64 root.x86_64
sudo mount --bind $HOME root.x86_64/$HOME
QMAKE_CMD=/usr/${ARCH_ROOT_MINGW}-w64-mingw32/lib/qt/bin/qmake
cat << EOF > ${BUILDSCRIPT}
#!/bin/sh
export LC_ALL=C
export HOME=$HOME
EOF
if [ ! -z "${DAILY_BUILD}" ]; then
cat << EOF >> ${BUILDSCRIPT}
export DAILY_BUILD=1
EOF
fi
cat << EOF >> ${BUILDSCRIPT}
cd $TRAVIS_BUILD_DIR
${QMAKE_CMD} -query
${QMAKE_CMD} -spec ${COMPILESPEC} akvirtualcamera.pro \
CONFIG+=silent \
QMAKE_CXX="${COMPILER}"
EOF
chmod +x ${BUILDSCRIPT}
sudo cp -vf ${BUILDSCRIPT} root.x86_64/$HOME/
${EXEC} bash $HOME/${BUILDSCRIPT}
elif [ "${TRAVIS_OS_NAME}" = osx ]; then
${EXEC} qmake -query
${EXEC} qmake -spec ${COMPILESPEC} akvirtualcamera.pro \
CONFIG+=silent \
QMAKE_CXX="${COMPILER}"
fi
if [ -z "${NJOBS}" ]; then
NJOBS=4
fi
if [ "${TRAVIS_OS_NAME}" = linux ]; then
cat << EOF > ${BUILDSCRIPT}
#!/bin/sh
export LC_ALL=C
export HOME=$HOME
EOF
if [ ! -z "${DAILY_BUILD}" ]; then
cat << EOF >> ${BUILDSCRIPT}
export DAILY_BUILD=1
EOF
fi
cat << EOF >> ${BUILDSCRIPT}
cd $TRAVIS_BUILD_DIR
make -j${NJOBS}
EOF
chmod +x ${BUILDSCRIPT}
sudo cp -vf ${BUILDSCRIPT} root.x86_64/$HOME/
${EXEC} bash $HOME/${BUILDSCRIPT}
sudo umount root.x86_64/$HOME
sudo umount root.x86_64
else
${EXEC} make -j${NJOBS}
fi
if [ "${TRAVIS_OS_NAME}" = linux ]; then
if [ "$ARCH_ROOT_MINGW" = x86_64 ]; then
mingw_arch=i686
mingw_compiler=${COMPILER/x86_64/i686}
mingw_dstdir=x86
else
mingw_arch=x86_64
mingw_compiler=${COMPILER/i686/x86_64}
mingw_dstdir=x64
fi
echo
echo "Building $mingw_arch virtual camera driver"
echo
sudo mount --bind root.x86_64 root.x86_64
sudo mount --bind $HOME root.x86_64/$HOME
cat << EOF > ${BUILDSCRIPT}
#!/bin/sh
export LC_ALL=C
export HOME=$HOME
mkdir -p $TRAVIS_BUILD_DIR/akvcam
cd $TRAVIS_BUILD_DIR/akvcam
/usr/${mingw_arch}-w64-mingw32/lib/qt/bin/qmake \
-spec ${COMPILESPEC} \
../akvirtualcamera.pro \
CONFIG+=silent \
QMAKE_CXX="${mingw_compiler}"
make -j${NJOBS}
echo
echo "Building x64 virtual camera driver"
echo
mkdir build-x64
cd build-x64
/usr/x86_64-w64-mingw32/bin/cmake ..
cmake --build .
cd ..
echo
echo "Building x86 virtual camera driver"
echo
mkdir build-x86
cd build-x86
/usr/i686-w64-mingw32/bin/cmake ..
cmake --build .
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 mkdir -p ports/deploy/temp_priv/AkVirtualCamera.plugin/${mingw_dstdir}
sudo mkdir -p build-x64/AkVirtualCamera.plugin/x86
sudo cp -rvf \
akvcam/AkVirtualCamera.plugin/${mingw_dstdir}/* \
ports/deploy/temp_priv/AkVirtualCamera.plugin/${mingw_dstdir}/
build-x86/AkVirtualCamera.plugin/x86/* \
build-x64/AkVirtualCamera.plugin/x86/
sudo umount root.x86_64/$HOME
sudo umount root.x86_64
elif [ "${TRAVIS_OS_NAME}" = osx ]; then
mkdir build
cd build
cmake ..
cmake --build .
fi

View file

@ -82,7 +82,7 @@ EOF
wine \
mingw-w64-pkg-config \
mingw-w64-gcc \
mingw-w64-qt5-base
mingw-w64-cmake
qtIFW=QtInstallerFramework-win-x86.exe
@ -115,17 +115,17 @@ EOF
sudo umount root.x86_64/$HOME
sudo umount root.x86_64
elif [ "${TRAVIS_OS_NAME}" = osx ]; then
brew link --force qt5
brew update
brew upgrade
brew link --overwrite numpy
brew install \
p7zip \
python \
ccache \
cmake \
p7zip \
pkg-config \
qt5
python
brew link --overwrite python
brew link python
qtIFW=QtInstallerFramework-mac-x64.dmg