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 dist: focal
compiler: gcc compiler: gcc
env: env:
- ARCH_ROOT_MINGW=x86_64
- DAILY_BUILD=1 - DAILY_BUILD=1
- os: linux - os: linux
dist: focal dist: focal
compiler: gcc compiler: gcc
env: 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 - RELEASE_BUILD=1
- os: osx - os: osx
osx_image: xcode10.2 osx_image: xcode10.2
@ -88,19 +74,6 @@ install:
- chmod +x ports/ci/travis/install_deps.sh - chmod +x ports/ci/travis/install_deps.sh
- 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: script:
- chmod +x ports/ci/travis/build.sh - chmod +x ports/ci/travis/build.sh
- ports/ci/travis/build.sh - ports/ci/travis/build.sh

View file

@ -2,7 +2,7 @@ version: 9.0.0.{build}-{branch}
os: MinGW os: MinGW
image: Visual Studio 2019 image: Visual Studio 2019
platform: platform:
- x64 - x64
@ -10,15 +10,9 @@ build:
parallel: true parallel: true
verbosity: detailed verbosity: detailed
configuration:
- release
# - debug
environment: environment:
global: global:
PYTHON_VERSION: Python39 PYTHON_VERSION: Python39
QMAKESPEC: win32-g++
MAKETOOL: mingw32-make
INSTALL_PREFIX: C:/projects/akvirtualcamera/ports/deploy/temp_priv INSTALL_PREFIX: C:/projects/akvirtualcamera/ports/deploy/temp_priv
# api key from https://bintray.com/profile/edit # api key from https://bintray.com/profile/edit
# encrypted in https://ci.appveyor.com/tools/encrypt # encrypted in https://ci.appveyor.com/tools/encrypt
@ -26,44 +20,18 @@ environment:
secure: seneRk4ppI4bquIsdweI8pd8FT0RXUvU2LOUNGSBEA28IhFQijypil2CfC3WtJxa secure: seneRk4ppI4bquIsdweI8pd8FT0RXUvU2LOUNGSBEA28IhFQijypil2CfC3WtJxa
matrix: matrix:
- MSYS2_BUILD: 1 - CMAKE_GENERATOR: MSYS Makefiles
- QTDIR: C:\Qt\5.15\mingw81_64 - CMAKE_GENERATOR: Visual Studio 16 2019
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
install: install:
- if "%MSYS2_BUILD%" == "" ( - ports\ci\appveyor\install_deps.bat
ports\ci\appveyor\install_deps.bat
) else (
C:\msys64\usr\bin\bash -lc "cd /c/projects/akvirtualcamera && ./ports/ci/appveyor/install_deps.sh"
)
build_script: build_script:
- if "%MSYS2_BUILD%" == "" ( - ports\ci\appveyor\build.bat
ports\ci\appveyor\build.bat
) else (
C:\msys64\usr\bin\bash -lc "cd /c/projects/akvirtualcamera && ./ports/ci/appveyor/build.sh '%INSTALL_PREFIX%'"
)
after_build: after_build:
- if "%MSYS2_BUILD%" == "" ( - ports\ci\appveyor\deploy.bat
ports\ci\appveyor\deploy.bat
) else (
C:\msys64\usr\bin\bash -lc "cd /c/projects/akvirtualcamera && ./ports/ci/appveyor/deploy.sh"
)
# - ports\ci\appveyor\push_artifacts.bat # - ports\ci\appveyor\push_artifacts.bat
# #
#deploy_script: #deploy_script:

View file

@ -16,53 +16,64 @@ REM along with Webcamoid. If not, see <http://www.gnu.org/licenses/>.
REM REM
REM Web-Site: http://webcamoid.github.io/ 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.
echo Building %DRV_ARCH% virtual camera driver echo Building x64 virtual camera driver
echo. echo.
mkdir akvcam set PATH_ORIG=%Path%
cd akvcam mkdir build-x64
cd build-x64
set PATH=%QTDIR_ALT%\bin;%TOOLSDIR_ALT%\bin;%PATH_ORIG% if "%CMAKE_GENERATOR%" == "MSYS Makefiles" (
qmake -query set Path=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%Path%
qmake ^ cmake ^
CONFIG+=silent ^ -G "%CMAKE_GENERATOR%" ^
..\akvirtualcamera.pro -DCMAKE_INSTALL_PREFIX="%INSTALL_PREFIX%" ^
%MAKETOOL% -j4 ..
)
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 .. 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 rem Installing various utilities
choco install -y jfrog-cli 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/ # 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 BUILDSCRIPT=dockerbuild.sh
if [ "${TRAVIS_OS_NAME}" = linux ]; then if [ "${TRAVIS_OS_NAME}" = linux ]; then
sudo mount --bind root.x86_64 root.x86_64 sudo mount --bind root.x86_64 root.x86_64
sudo mount --bind $HOME root.x86_64/$HOME sudo mount --bind $HOME root.x86_64/$HOME
QMAKE_CMD=/usr/${ARCH_ROOT_MINGW}-w64-mingw32/lib/qt/bin/qmake
cat << EOF > ${BUILDSCRIPT} cat << EOF > ${BUILDSCRIPT}
#!/bin/sh #!/bin/sh
export LC_ALL=C export LC_ALL=C
export HOME=$HOME 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 cd $TRAVIS_BUILD_DIR
${QMAKE_CMD} -query echo
${QMAKE_CMD} -spec ${COMPILESPEC} akvirtualcamera.pro \ echo "Building x64 virtual camera driver"
CONFIG+=silent \ echo
QMAKE_CXX="${COMPILER}" 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 EOF
chmod +x ${BUILDSCRIPT} chmod +x ${BUILDSCRIPT}
sudo cp -vf ${BUILDSCRIPT} root.x86_64/$HOME/ sudo cp -vf ${BUILDSCRIPT} root.x86_64/$HOME/
EXEC='sudo ./root.x86_64/bin/arch-chroot root.x86_64'
${EXEC} bash $HOME/${BUILDSCRIPT} ${EXEC} bash $HOME/${BUILDSCRIPT}
elif [ "${TRAVIS_OS_NAME}" = osx ]; then
${EXEC} qmake -query sudo mkdir -p build-x64/AkVirtualCamera.plugin/x86
${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}
EOF
chmod +x ${BUILDSCRIPT}
sudo cp -vf ${BUILDSCRIPT} root.x86_64/$HOME/
${EXEC} bash $HOME/${BUILDSCRIPT}
sudo mkdir -p ports/deploy/temp_priv/AkVirtualCamera.plugin/${mingw_dstdir}
sudo cp -rvf \ sudo cp -rvf \
akvcam/AkVirtualCamera.plugin/${mingw_dstdir}/* \ build-x86/AkVirtualCamera.plugin/x86/* \
ports/deploy/temp_priv/AkVirtualCamera.plugin/${mingw_dstdir}/ build-x64/AkVirtualCamera.plugin/x86/
sudo umount root.x86_64/$HOME sudo umount root.x86_64/$HOME
sudo umount root.x86_64 sudo umount root.x86_64
elif [ "${TRAVIS_OS_NAME}" = osx ]; then
mkdir build
cd build
cmake ..
cmake --build .
fi fi

View file

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