diff --git a/.travis.yml b/.travis.yml index 8b30c0b..9b09979 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 diff --git a/appveyor.yml b/appveyor.yml index 243d444..0791e2a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,7 +2,7 @@ version: 9.0.0.{build}-{branch} os: MinGW image: Visual Studio 2019 - + platform: - x64 @@ -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: diff --git a/ports/ci/appveyor/build.bat b/ports/ci/appveyor/build.bat index 45d86ca..50aa4c5 100755 --- a/ports/ci/appveyor/build.bat +++ b/ports/ci/appveyor/build.bat @@ -16,53 +16,64 @@ REM along with Webcamoid. If not, see . 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 diff --git a/ports/ci/appveyor/build.sh b/ports/ci/appveyor/build.sh deleted file mode 100644 index 5a805bd..0000000 --- a/ports/ci/appveyor/build.sh +++ /dev/null @@ -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 . -# -# Web-Site: http://webcamoid.github.io/ - -export PATH=/mingw64/bin:$PATH -qmake -query -qmake akvirtualcamera.pro \ - CONFIG+=silent \ - PREFIX="$1" -make -j4 diff --git a/ports/ci/appveyor/deploy.sh b/ports/ci/appveyor/deploy.sh deleted file mode 100644 index 9ab2ab6..0000000 --- a/ports/ci/appveyor/deploy.sh +++ /dev/null @@ -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 . -# -# 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 diff --git a/ports/ci/appveyor/install_deps.bat b/ports/ci/appveyor/install_deps.bat index bbf6ae6..ca65509 100755 --- a/ports/ci/appveyor/install_deps.bat +++ b/ports/ci/appveyor/install_deps.bat @@ -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 +) diff --git a/ports/ci/appveyor/install_deps.sh b/ports/ci/appveyor/install_deps.sh deleted file mode 100644 index e224f68..0000000 --- a/ports/ci/appveyor/install_deps.sh +++ /dev/null @@ -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 . -# -# 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 diff --git a/ports/ci/travis/build.sh b/ports/ci/travis/build.sh index d5b5ab4..33f236f 100644 --- a/ports/ci/travis/build.sh +++ b/ports/ci/travis/build.sh @@ -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}" +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} -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} -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 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 diff --git a/ports/ci/travis/install_deps.sh b/ports/ci/travis/install_deps.sh index ae03d92..6a6da60 100644 --- a/ports/ci/travis/install_deps.sh +++ b/ports/ci/travis/install_deps.sh @@ -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