diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml
index cf4c2d7..199df82 100644
--- a/.github/workflows/android.yml
+++ b/.github/workflows/android.yml
@@ -14,7 +14,7 @@ jobs:
matrix:
BUILD_TYPE: [Release]
qt_arch: [android_arm64_v8a, android_armv7, android_x86_64]
- qt_version: [6.6.1]
+ qt_version: [6.6.2]
include:
- BUILD_TYPE: Release
qt_arch: android_arm64_v8a
@@ -39,7 +39,7 @@ jobs:
VCPKGGITCOMMITID: eb33d2f7583405fca184bcdf7fdd5828ec88ac05
ANDROID_PLATFORM: android-23
ANDROID_NATIVE_API_LEVEL: 23
- qt_modules: 'qtimageformats qtmultimedia qtscxml'
+ qt_modules: 'qtwebengine qtimageformats qtmultimedia qtscxml qt5compat'
# Map the job outputs to step outputs
outputs:
@@ -59,21 +59,61 @@ jobs:
cmake -E make_directory ${{github.workspace}}/build
- name: Cache installed
- #if: false
uses: actions/cache@v2
id: cache-installed
with:
path: |
${{env.INSTALL_DIR}}
- key: cache-installed-android-qt${{matrix.qt_version}}-${{matrix.VCPKG_TARGET_TRIPLET}}-${{matrix.BUILD_TYPE}}
+ key: install_android_qt${{matrix.qt_version}}_${{matrix.qt_arch}}_${{matrix.BUILD_TYPE}}
- - name: Cache Qt
- #if: false
- id: cache-qt
- uses: actions/cache@v1 # not v2!
+ - name: run-vcpkg
+ uses: lukka/run-vcpkg@v11
with:
- path: ${{env.TOOSL_DIR}}/qt
- key: qt${{matrix.qt_version}}_${{matrix.qt_arch}}
+ # Indicates whether to only setup vcpkg (i.e. installing it and setting the environment variables VCPKG_ROOT, RUNVCPK_VCPKG_ROOT), without installing any port.
+ #setupOnly: # optional
+ #vcpkgGitURL: https://github.com/KangLin/vcpkg.git
+ vcpkgGitCommitId: ${{env.VCPKGGITCOMMITID}}
+ vcpkgDirectory: ${{ runner.workspace }}/vcpkg/
+
+ - name: build SeetaFace2
+ working-directory: ${{env.SOURCE_DIR}}
+ run: |
+ if [ ! -f ${{env.INSTALL_DIR}}/lib/cmake/SeetaFaceDetectorConfig.cmake ]; then
+ git clone https://github.com/KangLin/SeetaFace2.git
+ cd SeetaFace2
+ cmake -E make_directory build
+ cd build
+ cmake .. \
+ -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \
+ -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} \
+ -DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake \
+ -DVCPKG_CHAINLbuildOAD_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
+ -DANDROID_ABI=${{matrix.ANDROID_ABI}} \
+ -DANDROID_PLATFORM=${{matrix.ANDROID_PLATFORM}} \
+ -DBUILD_EXAMPLE=OFF
+ cmake --build . --config ${{matrix.BUILD_TYPE}}
+ cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
+ fi
+
+ - name: build libfacedetection
+ working-directory: ${{env.SOURCE_DIR}}
+ run: |
+ if [ ! -f ${{env.INSTALL_DIR}}/lib/cmake/facedetection/facedetectionConfig.cmake ]; then
+ git clone https://github.com/ShiqiYu/libfacedetection.git
+ cd libfacedetection
+ cmake -E make_directory build
+ cd build
+ cmake .. \
+ -DCMAKE_BUILD_TYPE=${{ matrix.BUILD_TYPE }} \
+ -DCMAKE_INSTALL_PREFIX=${{ env.INSTALL_DIR }} \
+ -DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake \
+ -DVCPKG_CHAINLbuildOAD_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake \
+ -DANDROID_ABI=${{matrix.ANDROID_ABI}} \
+ -DANDROID_PLATFORM=${{matrix.ANDROID_PLATFORM}} \
+ -DBUILD_SHARED_LIBS=ON
+ cmake --build . --config ${{matrix.BUILD_TYPE}}
+ cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
+ fi
- name: Install Qt of gcc_64
uses: jurplel/install-qt-action@v3
@@ -84,7 +124,8 @@ jobs:
target: 'desktop'
arch: 'gcc_64'
set-env: false
- cached: '${{ steps.cache-qt.outputs.cache-hit }}' # optional, default is false
+ cache: true
+ cache-key-prefix: cached_qt
- name: Install Qt of android
uses: jurplel/install-qt-action@v3
@@ -101,33 +142,8 @@ jobs:
arch: '${{matrix.qt_arch}}' # optional
# Additional Qt modules to install
modules: '${{env.qt_modules}}' # optional. See: https://ddalcino.github.io/aqt-list-server/
- cached: '${{ steps.cache-qt.outputs.cache-hit }}' # optional, default is false
-
-# - name: run-vcpkg
-# uses: lukka/run-vcpkg@v7.4
-# with:
-# # Indicates whether to only setup vcpkg (i.e. installing it and setting the environment variables VCPKG_ROOT, RUNVCPK_VCPKG_ROOT), without installing any port.
-# #setupOnly: # optional
-# #vcpkgGitURL: https://github.com/KangLin/vcpkg.git
-# vcpkgGitCommitId: ${{env.VCPKGGITCOMMITID}}
-# vcpkgDirectory: ${{ runner.workspace }}/vcpkg/
-# # Since the cache must be invalidated when content of the vcpkg.json file changes, let's
-# # compute its hash and append this to the computed cache's key.
-# appendedCacheKey: android_${{matrix.os}}-qt${{matrix.qt_version}}-${{matrix.VCPKG_TARGET_TRIPLET}}-${{matrix.BUILD_TYPE}}-${{env.VCPKGGITCOMMITID}}
-# additionalCachedPaths: $VCPKG_ROOT/installed
-# vcpkgTriplet: '${{ matrix.VCPKG_TARGET_TRIPLET }}'
-# vcpkgArguments: 'openssl ffmpeg opencv opencv[contrib] dlib ncnn'
-
- - name: run vcpkg
- working-directory: ${{env.SOURCE_DIR}}
- run: |
- if [ ! -d vcpkg ]; then
- git clone https://github.com/microsoft/vcpkg.git
- cd vcpkg
- git checkout -b ${{env.VCPKGGITCOMMITID}} ${{env.VCPKGGITCOMMITID}}
- ./bootstrap-vcpkg.sh
- ./vcpkg install --triplet=${{matrix.VCPKG_TARGET_TRIPLET}} openssl libyuv ffmpeg opencv[contrib]
- fi
+ cache: true
+ cache-key-prefix: cached_qt
- name: git clone RabbitCommon
working-directory: ${{env.SOURCE_DIR}}
@@ -158,7 +174,11 @@ jobs:
-DVCPKG_VERBOSE=ON \
-DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON \
-DCMAKE_TOOLCHAIN_FILE="${{env.VCPKG_ROOT}}\scripts\buildsystems\vcpkg.cmake" \
- -DCMAKE_INSTALL_PREFIX=`pwd`/install
+ -DCMAKE_INSTALL_PREFIX=`pwd`/install \
+ -DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON \
+ -DVCPKG_APPLOCAL_DEPS=ON \
+ -DINSTALL_QT=ON \
+ -DENABLE_DOWNLOAD=ON
cmake --build . --config ${{matrix.BUILD_TYPE}} --target all
cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
APK_FILE=`find . -name "android-*.apk"`
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 9fdb315..72fa5fa 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -16,16 +16,14 @@ jobs:
matrix:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: [Release, Debug]
- qt_version: [6.5.1, 5.15.2, 5.12.12]
+ qt_version: [6.6.2, 5.15.2, 5.12.12]
include:
- - qt_version: 6.5.1
- qt_modules: qtscxml qtpositioning qt5compat qtwebchannel qtwebsockets
+ - qt_version: 6.6.2
+ qt_modules: qtscxml qtpositioning qt5compat qtwebchannel qtwebsockets qtmultimedia
- qt_version: 5.15.2
- qt_modules: ""
- qt_version: 5.12.12
- qt_modules: ""
runs-on: macos-latest
@@ -34,7 +32,7 @@ jobs:
SOURCE_DIR: ${{github.workspace}}/.cache/source
TOOSL_DIR: ${{github.workspace}}/.cache/tools
INSTALL_DIR: ${{github.workspace}}/.cache/install_macos
- qt_modules: ${{matrix.qt_modules}}
+ qt_modules: qtwebengine ${{matrix.qt_modules}}
FaceRecognizer_VERSION: v0.0.4
artifact_name: build_macos
VCPKGGITCOMMITID: eb33d2f7583405fca184bcdf7fdd5828ec88ac05
@@ -62,23 +60,22 @@ jobs:
with:
path: |
${{env.INSTALL_DIR}}
- key: Cache-macos-installed-qt${{matrix.qt_version}}-${{matrix.BUILD_TYPE}}
+ key: install_macos_qt${{matrix.qt_version}}_${{matrix.qt_arch}}_${{matrix.BUILD_TYPE}}
- name: Install application
run: |
brew install nasm
- name: run-vcpkg
- uses: lukka/run-vcpkg@v7.4
+ uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: ${{env.VCPKGGITCOMMITID}}
vcpkgDirectory: ${{runner.workspace}}/vcpkg/
- # Since the cache must be invalidated when content of the vcpkg.json file changes, let's
- # compute its hash and append this to the computed cache's key.
- appendedCacheKey: vcpkg-macos-${{env.VCPKGGITCOMMITID}}
- vcpkgTriplet: '${{matrix.triplet}}'
- vcpkgArguments: 'openssl libyuv ffmpeg opencv opencv[contrib] dlib ncnn'
-
+
+ - name: run vcpkg
+ run: |
+ brew install nasm
+
- name: Cache Qt
id: cache-qt
uses: actions/cache@v1 # not v2!
@@ -87,15 +84,14 @@ jobs:
key: qt${{matrix.qt_version}}-${{matrix.qt_arch}}
- name: Install Qt
- # You may pin to the exact commit or the version.
- # uses: jurplel/install-qt-action@a962fb91949c8e846a3e4a944d50e7ef5cc3a28a
uses: jurplel/install-qt-action@v3
with:
- # Directory to install Qt
- dir: ${{env.TOOSL_DIR}}/qt # optional
- # Version of Qt to install
- version: ${{matrix.qt_version}} # optional, default is 5.15.2
- modules: ${{env.qt_modules}} # optional. See: https://ddalcino.github.io/aqt-list-server/
+ dir: '${{env.TOOSL_DIR}}/qt' # optional
+ version: '${{matrix.qt_version}}' # optional, default is 5.15.2
+ arch: '${{matrix.qt_arch}}' # optional
+ modules: '${{env.qt_modules}}' # optional
+ cache: true
+ cache-key-prefix: cached_qt
- name: build SeetaFace2
working-directory: ${{env.SOURCE_DIR}}
@@ -108,7 +104,8 @@ jobs:
cmake .. \
-DCMAKE_BUILD_TYPE=${{matrix.BUILD_TYPE}} \
-DCMAKE_INSTALL_PREFIX="${{ env.INSTALL_DIR }}" \
- -DCMAKE_TOOLCHAIN_FILE="${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake"
+ -DCMAKE_TOOLCHAIN_FILE="${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake" \
+ -DBUILD_EXAMPLE=OFF
cmake --build . --config ${{matrix.BUILD_TYPE}}
cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
fi
@@ -148,6 +145,8 @@ jobs:
-DCMAKE_TOOLCHAIN_FILE="${{env.VCPKG_ROOT}}\scripts\buildsystems\vcpkg.cmake" \
-DVCPKG_VERBOSE=ON \
-DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON \
+ -DVCPKG_APPLOCAL_DEPS=ON \
+ -DINSTALL_QT=ON \
-DSeetaFace_DIR=${{env.INSTALL_DIR}}/lib/cmake \
-DSeetaNet_DIR=${{env.INSTALL_DIR}}/lib/cmake \
-DSeetaFaceDetector_DIR=${{env.INSTALL_DIR}}/lib/cmake \
@@ -155,7 +154,8 @@ jobs:
-DSeetaFaceRecognizer_DIR=${{env.INSTALL_DIR}}/lib/cmake \
-DSeetaFaceTracker_DIR=${{env.INSTALL_DIR}}/lib/cmake \
-DSeetaQualityAssessor_DIR=${{env.INSTALL_DIR}}/lib/cmake \
- -Dfacedetection_DIR=${{env.INSTALL_DIR}}/lib/cmake/facedetection
+ -Dfacedetection_DIR=${{env.INSTALL_DIR}}/lib/cmake/facedetection \
+ -DENABLE_DOWNLOAD=ON
cmake --build . --config ${{ matrix.BUILD_TYPE }} --target install
7z a FaceRecognizer_${{env.FaceRecognizer_VERSION}}_macos_qt${{matrix.qt_version}}.zip ./install/*
diff --git a/.github/workflows/mingw.yml b/.github/workflows/mingw.yml
index c0f5aa2..2d30d20 100644
--- a/.github/workflows/mingw.yml
+++ b/.github/workflows/mingw.yml
@@ -93,7 +93,8 @@ jobs:
cd build
cmake .. -G"MinGW Makefiles" ^
-DCMAKE_BUILD_TYPE=${{matrix.BUILD_TYPE}} ^
- -DCMAKE_INSTALL_PREFIX="${{ env.INSTALL_DIR }}"
+ -DCMAKE_INSTALL_PREFIX="${{ env.INSTALL_DIR }}" ^
+ -DBUILD_EXAMPLE=OFF
cmake --build . --config ${{matrix.BUILD_TYPE}}
cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
)
diff --git a/.github/workflows/msvc.yml b/.github/workflows/msvc.yml
index 31524f7..a09281a 100644
--- a/.github/workflows/msvc.yml
+++ b/.github/workflows/msvc.yml
@@ -13,16 +13,9 @@ jobs:
strategy:
matrix:
BUILD_TYPE: [Release, Debug]
- qt_version: [6.6.1, 6.5.2, 5.15.2, 5.12.12]
+ qt_version: [6.6.2, 5.15.2, 5.12.12]
include:
- - qt_version: 6.6.1
- triplet: x64-windows
- VCPKG_PLATFORM_TOOLSET: v142
- qt_arch: win64_msvc2019_64
- CMAKE_GENERATOR_PLATFORM: x64
- qt_modules: qtscxml qtpositioning qtwebchannel qtwebsockets qtwebview qtmultimedia qt5compat
-
- - qt_version: 6.5.2
+ - qt_version: 6.6.2
triplet: x64-windows
VCPKG_PLATFORM_TOOLSET: v142
qt_arch: win64_msvc2019_64
@@ -82,18 +75,19 @@ jobs:
with:
path: |
${{env.INSTALL_DIR}}
- key: FaceRecognizer_msvc_cache-installed-${{matrix.os}}-vc${{matrix.VCPKG_PLATFORM_TOOLSET}}-${{matrix.triplet}}-qt${{matrix.qt_version}}-${{matrix.BUILD_TYPE}}-${{env.VCPKGGITCOMMITID}}_2033_03_02
+ key: install_msvc_qt${{matrix.qt_version}}_${{matrix.qt_arch}}_${{matrix.BUILD_TYPE}}
- name: run-vcpkg
- uses: lukka/run-vcpkg@v7.4
+ uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: ${{env.VCPKGGITCOMMITID}}
vcpkgDirectory: ${{runner.workspace}}/vcpkg/
- # Since the cache must be invalidated when content of the vcpkg.json file changes, let's
- # compute its hash and append this to the computed cache's key.
- appendedCacheKey: cache-vcpkg-msvc-${{matrix.os}}-vc${{matrix.VCPKG_PLATFORM_TOOLSET}}-${{matrix.triplet}}-qt${{matrix.qt_version}}-${{matrix.BUILD_TYPE}}-${{env.VCPKGGITCOMMITID}}
- vcpkgTriplet: '${{matrix.triplet}}'
- vcpkgArguments: 'openssl libyuv ffmpeg opencv opencv[contrib] dlib ncnn'
+
+ - name: run vcpkg
+ if: false
+ run: |
+ vcpkg install --VCPKG_TARGET_TRIPLET=${{matrix.VCPKG_TARGET_TRIPLET}} ^
+ --x-feature=SeetaFace
- name: build SeetaFace2
working-directory: ${{env.SOURCE_DIR}}
@@ -108,7 +102,8 @@ jobs:
-T ${{matrix.VCPKG_PLATFORM_TOOLSET}} ^
-DCMAKE_BUILD_TYPE=${{matrix.BUILD_TYPE}} ^
-DCMAKE_INSTALL_PREFIX="${{ env.INSTALL_DIR }}" ^
- -DCMAKE_TOOLCHAIN_FILE="${{env.VCPKG_ROOT}}\scripts\buildsystems\vcpkg.cmake"
+ -DCMAKE_TOOLCHAIN_FILE="${{env.VCPKG_ROOT}}\scripts\buildsystems\vcpkg.cmake" ^
+ -DBUILD_EXAMPLE=OFF
cmake --build . --config ${{matrix.BUILD_TYPE}}
cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
)
@@ -169,6 +164,8 @@ jobs:
-DCMAKE_TOOLCHAIN_FILE=${{env.VCPKG_ROOT}}/scripts/buildsystems/vcpkg.cmake ^
-DVCPKG_VERBOSE=ON ^
-DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON ^
+ -DVCPKG_APPLOCAL_DEPS=ON ^
+ -DINSTALL_QT=ON ^
-DSeetaFace_DIR=${{env.INSTALL_DIR}}/lib/cmake ^
-DSeetaNet_DIR=${{env.INSTALL_DIR}}/lib/cmake ^
-DSeetaFaceDetector_DIR=${{env.INSTALL_DIR}}/lib/cmake ^
@@ -176,7 +173,8 @@ jobs:
-DSeetaFaceRecognizer_DIR=${{env.INSTALL_DIR}}/lib/cmake ^
-DSeetaFaceTracker_DIR=${{env.INSTALL_DIR}}/lib/cmake ^
-DSeetaQualityAssessor_DIR=${{env.INSTALL_DIR}}/lib/cmake ^
- -Dfacedetection_DIR=${{env.INSTALL_DIR}}/lib/cmake/facedetection
+ -Dfacedetection_DIR=${{env.INSTALL_DIR}}/lib/cmake/facedetection ^
+ -DENABLE_DOWNLOAD=ON
cmake --build . --config ${{matrix.BUILD_TYPE}}
cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
@@ -192,8 +190,8 @@ jobs:
makensis Install.nsi
copy /Y FaceRecognizer_${{env.FaceRecognizer_VERSION}}_Setup.exe FaceRecognizer_${{env.FaceRecognizer_VERSION}}_${{matrix.qt_arch}}_qt${{matrix.qt_version}}_Setup.exe
- - name: Update xml
- if: ${{ matrix.BUILD_TYPE == 'Release' && matrix.qt_version == '6.6.1' }}
+ - name: Update configure file
+ if: ${{ matrix.BUILD_TYPE == 'Release' && matrix.qt_version == '6.6.2' }}
working-directory: ${{github.workspace}}\build
run: |
${{github.workspace}}\build\install\bin\FaceRecognizerApp.exe ^
@@ -205,13 +203,14 @@ jobs:
-m "${{env.FaceRecognizer_VERSION}}"
- name: Update artifact
- if: ${{ matrix.BUILD_TYPE == 'Release' }}
+ if: ${{ matrix.BUILD_TYPE == 'Release' && matrix.qt_version == '6.6.2' }}
uses: actions/upload-artifact@v3
with:
name: ${{ env.artifact_name }}
path: |
${{github.workspace}}\build\FaceRecognizer_${{env.FaceRecognizer_VERSION}}_${{matrix.qt_arch}}_qt${{matrix.qt_version}}_Setup.exe
- ${{github.workspace}}\build\update_windows.xml
+ ${{github.workspace}}\build\update_windows.json
+ ${{github.workspace}}\build\update_windows.json.xml
# - name: Upload To Github Release
# if: ${{ matrix.BUILD_TYPE == 'Release' && '5.12.12' == matrix.qt_version && startsWith(github.ref, 'refs/tags/') }}
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index 39f7fce..822533b 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -16,13 +16,13 @@ jobs:
matrix:
BUILD_TYPE: [Release, Debug]
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-latest
env:
BUILD_TYPE: ${{matrix.BUILD_TYPE}}
SOURCE_DIR: ${{github.workspace}}/.cache/source
TOOSL_DIR: ${{github.workspace}}/.cache/tools
- INSTALL_DIR: ${{github.workspace}}/.cache/install_${{matrix.BUILD_TYPE}}
+ INSTALL_DIR: ${{github.workspace}}/.cache/install
FaceRecognizer_VERSION: 0.0.4
artifact_name: build_ubuntu
@@ -49,9 +49,9 @@ jobs:
- name: Install apt packages
run: |
- sudo apt-get update -y \
- && sudo apt-get upgrade -y \
- && sudo apt-get install -y xvfb xpra \
+ sudo apt-get update -y -q
+ sudo apt-get upgrade -y -q
+ sudo apt-get install -y -q xvfb xpra \
cmake build-essential \
debhelper fakeroot graphviz \
libglu1-mesa-dev libpulse-mainloop-glib0 \
@@ -75,7 +75,7 @@ jobs:
with:
path: |
${{env.INSTALL_DIR}}
- key: cache-installed-ubuntu
+ key: install_ubuntu_${{matrix.BUILD_TYPE}}
- name: build SeetaFace2
working-directory: ${{env.SOURCE_DIR}}
@@ -87,7 +87,8 @@ jobs:
cd build
cmake .. \
-DCMAKE_BUILD_TYPE=${{matrix.BUILD_TYPE}} \
- -DCMAKE_INSTALL_PREFIX="${{ env.INSTALL_DIR }}"
+ -DCMAKE_INSTALL_PREFIX="${{ env.INSTALL_DIR }}" \
+ -DBUILD_EXAMPLE=OFF
cmake --build . --config ${{matrix.BUILD_TYPE}}
cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
fi
@@ -120,12 +121,13 @@ jobs:
SeetaFaceTracker_DIR: ${{env.INSTALL_DIR}}/lib/cmake
SeetaQualityAssessor_DIR: ${{env.INSTALL_DIR}}/lib/cmake
facedetection_DIR: ${{env.INSTALL_DIR}}/lib/cmake/facedetection
+ ENABLE_DOWNLOAD: ON
run: |
export Qt6_DIR=/usr/lib/`uname -a`-linux-gnu/cmake/Qt6
./build_debpackage.sh
cp ../facerecognizer_${{env.FaceRecognizer_VERSION}}_amd64.deb facerecognizer_${{env.FaceRecognizer_VERSION}}_amd64.deb
- - name: Update xml file
+ - name: Update configure file
working-directory: ${{github.workspace}}
run: |
sudo Xvfb :99 -ac &
@@ -134,13 +136,24 @@ jobs:
MD5=`md5sum facerecognizer_${{env.FaceRecognizer_VERSION}}_amd64.deb|awk '{print $1}'`
echo "MD5:${MD5}"
/bin/bash /opt/FaceRecognizer/bin/FaceRecognizer.sh \
- -f "${{github.workspace}}/update_linux.json" \
+ -f "${{github.workspace}}/update_ubuntu.json" \
--foc 1 \
--md5 ${MD5} \
-m "${{env.FaceRecognizer_VERSION}}" \
-n "facerecognizer_${{env.FaceRecognizer_VERSION}}_amd64.deb" \
-u "https://github.com/KangLin/FaceRecognizer/releases/download/v${{env.FaceRecognizer_VERSION}}/facerecognizer_${{env.FaceRecognizer_VERSION}}_amd64.deb;https://sourceforge.net/projects/FaceRecognizer/files/v${{env.FaceRecognizer_VERSION}}/facerecognizer_${{env.FaceRecognizer_VERSION}}_amd64.deb"
+ - name: Update version configure file
+ if: ${{ matrix.BUILD_TYPE == 'Release'}}
+ working-directory: ${{github.workspace}}
+ run: |
+ sudo Xvfb :99 -ac &
+ export DISPLAY=:99.0
+ /bin/bash /opt/FaceRecognizer/bin/FaceRecognizer.sh \
+ -f "${{github.workspace}}/version.json" \
+ --foc 0 \
+ --pv ${{env.FaceRecognizer_VERSION}}
+
- name: Update artifact
if: ${{ matrix.BUILD_TYPE == 'Release' }}
uses: actions/upload-artifact@v3
diff --git a/ChangeLog.md b/ChangeLog.md
index f80c95a..5fe99bd 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -9,8 +9,10 @@
See RabbitCommon: 7ed300a206d8a36c30003b6c19ad181682d0ff5f
+ FFmpeg: update API avpicture_* to av_image_*
+ Support Qt6
- + Replace RabbitCommon::CDir::GetOpenDirectory with QFileDialog::getExistingDirectory etc
-
+ + Use RabbitCommon v2.0.1
+ + Replace RabbitCommon::CDir::GetOpenDirectory with QFileDialog::getExistingDirectory etc
+ + Use json format update
+
- v0.0.4
+ Add opencv face
- Add opencv dnn face detect
diff --git a/ChangeLog_zh_CN.md b/ChangeLog_zh_CN.md
index 8af0023..b30b629 100644
--- a/ChangeLog_zh_CN.md
+++ b/ChangeLog_zh_CN.md
@@ -9,8 +9,9 @@
详见:RabbitCommon: 7ed300a206d8a36c30003b6c19ad181682d0ff5f
+ FFmpeg: 兼容 API avpicture_* to av_image_*
+ 支持 Qt6
- + 使用 RabbitCommon v2
- + 用 QFileDialog::getExistingDirectory 替换 RabbitCommon::CDir::GetOpenDirectory
+ + 使用 RabbitCommon v2.0.1
+ - 使用 json 格式更新
+ - 用 QFileDialog::getExistingDirectory 替换 RabbitCommon::CDir::GetOpenDirectory
- v0.0.4
+ 增加 opencv 实现人脸接口
diff --git a/README.md b/README.md
index 883414e..8f16be6 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
## [人脸识别](https://github.com/KangLin/FaceRecognizer)
-作者:康林(kl222@126.com)
+作者:康林
[![Windows build status](https://ci.appveyor.com/api/projects/status/n50nxc7d8mm9bdpb/branch/master?svg=true)](https://ci.appveyor.com/project/KangLin/facerecognizer/branch/master)
[![build](https://github.com/KangLin/FaceRecognizer/actions/workflows/build.yml/badge.svg)](https://github.com/KangLin/FaceRecognizer/actions/workflows/build.yml)
diff --git a/appveyor.yml b/appveyor.yml
index d7b74f4..f401e06 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,101 +1,35 @@
-#TODO: Change version
-
-version: 'v0.0.4.{build}'
+version: "v0.0.26.{build}"
cache:
- - model
- - Package
-
+ - ..\other_source
+# Clean cached
+# https://www.appveyor.com/docs/build-cache/#cleaning-up-cache
+
environment:
+ FaceRecognizerVersion: v0.0.4
STOREPASS:
secure: l9BZEU39F1a4vSkhwl0CHR+yh6CD1c7byGzMv+1NUa4=
QT_USER:
secure: EoBPaPuJ6u9UDYpQWjKhUg==
QT_PASSWORD:
secure: ejAYGgB+3sBispRxUSr0xw==
+ APPVEYOR_RDP_PASSWORD:
+ secure: PUmp7039ro52579dlxAk59tjpeeyiFbdWvHfLCkjF5c=
matrix:
- ##### android ########
- - BUILD_TARGERT: android
- GENERATORS: "MSYS Makefiles"
- BUILD_ARCH: "armeabi-v7a"
- ANDROID_ARM_NEON: ON
- DOWNLOAD_QT: TRUE
- QT_VERSION_DIR: 5.12
- QT_VERSION: 5.12.6
- ANDROID_PLATFORM: android-24
- TOOLCHAIN_VERSION: 4.9
- DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.9/android4.9_arm_v0.2.9_in_windows.zip
-
- - BUILD_TARGERT: android
- GENERATORS: "MSYS Makefiles"
- BUILD_ARCH: "arm64-v8a"
- ANDROID_ARM_NEON: ON
- DOWNLOAD_QT: TRUE
- QT_VERSION_DIR: 5.12
- QT_VERSION: 5.12.6
- ANDROID_PLATFORM: android-24
- TOOLCHAIN_VERSION: 4.9
- DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.9/android4.9_arm64_v0.2.9_in_windows.zip
-
- ##### msvc 2013 ########
- #- BUILD_TARGERT: windows_msvc
- # GENERATORS: "Visual Studio 12 2013"
- # TOOLCHAIN_VERSION: 12
- # QT_ROOT: C:\Qt\5.6\msvc2013
- # BUILD_ARCH: x86
-
- #- BUILD_TARGERT: windows_msvc
- # GENERATORS: "Visual Studio 12 2013 Win64"
- # TOOLCHAIN_VERSION: 12
- # QT_ROOT: C:\Qt\5.6\msvc2013_64
- # BUILD_ARCH: x64
-
- ##### msvc 2017 ########
+ ##### msvc 2015 ########
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
- GENERATORS: "Visual Studio 15 2017"
- BUILD_TARGERT: windows_msvc
- TOOLCHAIN_VERSION: 15
- QT_ROOT: C:\Qt\5.12\msvc2017
- BUILD_ARCH: x86
- DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.9/windows_msvc15_x86_v0.2.9.zip
-
- - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
- GENERATORS: "Visual Studio 15 2017 Win64"
- BUILD_TARGERT: windows_msvc
- TOOLCHAIN_VERSION: 15
- QT_ROOT: C:\Qt\5.12\msvc2017_64
- BUILD_ARCH: x64
- DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.9/windows_msvc15_x64_v0.2.9.zip
-
- ##### msvc 2015 ########
- - BUILD_TARGERT: windows_msvc
GENERATORS: "Visual Studio 14 2015"
TOOLCHAIN_VERSION: 14
+ VCPKG_PLATFORM_TOOLSET: v140
QT_ROOT: C:\Qt\5.6\msvc2015
BUILD_ARCH: x86
- DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.9/windows_msvc14_x86_v0.2.9.zip
- - BUILD_TARGERT: windows_msvc
+ - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
GENERATORS: "Visual Studio 14 2015 Win64"
TOOLCHAIN_VERSION: 14
- QT_ROOT: C:\Qt\5.10\msvc2015_64
+ QT_ROOT: C:\Qt\5.6\msvc2015_64
BUILD_ARCH: x64
- DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.9/windows_msvc14_x64_v0.2.9.zip
-
- ##### mingw ########
- - BUILD_TARGERT: windows_mingw
- GENERATORS: "MSYS Makefiles"
- TOOLCHAIN_VERSION: 492_32
- QT_ROOT: C:\Qt\5.6\mingw49_32
- BUILD_ARCH: x86
-
- - BUILD_TARGERT: windows_mingw
- GENERATORS: "MSYS Makefiles"
- TOOLCHAIN_VERSION: 530_32
- QT_ROOT: C:\Qt\5.10\mingw53_32
- BUILD_ARCH: x86
- DOWNLOAD_THIRDLIBS_URL: https://github.com/KangLin/RabbitThirdLibrary/releases/download/v0.2.9/windows_mingw530_32_x86_v0.2.9.zip
matrix:
fast_finish: false
@@ -109,36 +43,100 @@ init:
- if NOT "%QT_ROOT%" == "NO" for /f "delims=" %%i in ('%QT_ROOT%/bin/qmake -query QT_VERSION') do (set QT_VERSION=%%i)
- echo QT_ROOT=%QT_ROOT%
- echo QT_VERSION=%QT_VERSION%
- - del C:\msys64\usr\bin\link.exe
install:
- - C:\msys64\autorebase.bat
- - C:\msys64\usr\bin\pacman.exe -S --noconfirm unzip
- - ps: Start-FileDownload https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-windows-i386.zip
- #- curl -fsSL -o cmake-3.26.4-windows-i386.zip https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-windows-i386.zip
- - 7z x cmake-3.26.4-windows-i386.zip
- - set PATH=%CD%\cmake-3.26.4-windows-i386\bin;%PATH%
- #- if "%BUILD_TARGERT%"=="windows_mingw" set PATH=C:\Qt\Tools\mingw%TOOLCHAIN_VERSION%_32\bin;%PATH%
- - if "%BUILD_TARGERT%" == "windows_mingw" set MSYSTEM=MINGW32 #设置编译系统为MINGW32
-
-before_build:
- - cd %APPVEYOR_BUILD_FOLDER%
- git submodule update --init --recursive
+ - cd %APPVEYOR_BUILD_FOLDER%
- git clone https://github.com/KangLin/RabbitCommon.git
- set RabbitCommon_DIR=%APPVEYOR_BUILD_FOLDER%/RabbitCommon
- - cd %APPVEYOR_BUILD_FOLDER%
- - C:\msys64\usr\bin\bash.exe %APPVEYOR_BUILD_FOLDER%\ci\build-install-tools-windows.sh
+
+ - set OTHER_SOURCE=%APPVEYOR_BUILD_FOLDER%\..\other_source
+ - set INSTALL_DIR=%OTHER_SOURCE%\install_dir
+ - if not exist "%OTHER_SOURCE%" ( mkdir "%OTHER_SOURCE%" )
+ - if not exist "%INSTALL_DIR%" (mkdir "%INSTALL_DIR%")
+
+ - cd %OTHER_SOURCE%
+ - set CMAKE_VERSION=3.28.3
+ - if not exist cmake-%CMAKE_VERSION%-windows-i386 (curl -fsSL -o cmake-%CMAKE_VERSION%-windows-i386.zip https://github.com/Kitware/CMake/releases/download/v%CMAKE_VERSION%/cmake-%CMAKE_VERSION%-windows-i386.zip && 7z x cmake-%CMAKE_VERSION%-windows-i386.zip)
+ - cd cmake-%CMAKE_VERSION%-windows-i386
+ - set PATH="%CD%/bin";%PATH%
+
+ - cd %OTHER_SOURCE%
+ - set VCPKG_DIR=%OTHER_SOURCE%\vcpkg
+ - |
+ if not exist %VCPKG_DIR% (
+ git clone "https://github.com/microsoft/vcpkg.git"
+ cd "%VCPKG_DIR%"
+ git checkout -b a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6 a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6
+ bootstrap-vcpkg.bat)
+
+before_build:
+ - cd %OTHER_SOURCE%
+ - |
+ IF NOT EXIST %INSTALL_DIR%\lib\cmake\SeetaFaceDetectorConfig.cmake (
+ git clone https://github.com/KangLin/SeetaFace2.git
+ cd SeetaFace2
+ cmake -E make_directory build
+ cd build
+ cmake .. ^
+ -G"%GENERATORS%" ^
+ -DCMAKE_BUILD_TYPE=Release ^
+ -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%" ^
+ -DCMAKE_TOOLCHAIN_FILE="%VCPKG_DIR%/scripts/buildsystems/vcpkg.cmake" ^
+ -DBUILD_EXAMPLE=OFF
+ cmake --build . --config ${{matrix.BUILD_TYPE}}
+ cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
+ )
+
+ - cd %OTHER_SOURCE%
+ - |
+ IF NOT EXIST %INSTALL_DIR%\lib\cmake\facedetection\facedetectionConfig.cmake (
+ git clone https://github.com/ShiqiYu/libfacedetection.git
+ cd libfacedetection
+ cmake -E make_directory build
+ cd build
+ cmake .. ^
+ -G"%GENERATORS%" ^
+ -DCMAKE_BUILD_TYPE=Release ^
+ -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%" ^
+ -DCMAKE_TOOLCHAIN_FILE="%VCPKG_DIR%/scripts/buildsystems/vcpkg.cmake" ^
+ -DBUILD_SHARED_LIBS=ON
+ cmake --build . --config ${{matrix.BUILD_TYPE}}
+ cmake --build . --config ${{matrix.BUILD_TYPE}} --target install
+ )
build_script:
- cd %APPVEYOR_BUILD_FOLDER%
- - C:\msys64\usr\bin\bash.exe %APPVEYOR_BUILD_FOLDER%\ci\build.sh
-
+ - cmake -E make_directory build
+ - cd build
+ - |
+ cmake .. ^
+ -G"%GENERATORS%" ^
+ -DCMAKE_BUILD_TYPE=Release ^
+ -DCMAKE_INSTALL_PREFIX="%CD%/install" ^
+ -DCMAKE_TOOLCHAIN_FILE="%VCPKG_DIR%/scripts/buildsystems/vcpkg.cmake" ^
+ -DCMARK_SHARED=OFF ^
+ -DCMARK_TESTS=OFF ^
+ -DCMARK_STATIC=ON ^
+ -DVCPKG_VERBOSE=ON ^
+ -DX_VCPKG_APPLOCAL_DEPS_INSTALL=ON ^
+ -DVCPKG_APPLOCAL_DEPS=ON ^
+ -DINSTALL_QT=ON ^
+ -DSeetaFace_DIR=%INSTALL_DIR%/lib/cmake ^
+ -DSeetaNet_DIR=%INSTALL_DIR%/lib/cmake ^
+ -DSeetaFaceDetector_DIR=%INSTALL_DIR%/lib/cmake ^
+ -DSeetaFaceLandmarker_DIR=%INSTALL_DIR%/lib/cmake ^
+ -DSeetaFaceRecognizer_DIR=%INSTALL_DIR%/lib/cmake ^
+ -DSeetaFaceTracker_DIR=%INSTALL_DIR%/lib/cmake ^
+ -DSeetaQualityAssessor_DIR=%INSTALL_DIR%/lib/cmake ^
+ -Dfacedetection_DIR=%INSTALL_DIR%/lib/cmake/facedetection
+ cmake --build . --config Release
+ cmake --build . --config Release --target install
+ makensis Install.nsi
+ rename FaceRecognizer_%FaceRecognizerVersion%_Setup.exe FaceRecognizer_%FaceRecognizerVersion%_windows_xp_%BUILD_ARCH%_Setup.exe
+
artifacts:
- - path: build_$(BUILD_TARGERT)\FaceRecognizer_*_Setup.exe
- name: FaceRecognizer_$(BUILD_TARGERT)$(TOOLCHAIN_VERSION)_$(BUILD_ARCH)_$(QT_VERSION)_$(appveyor_build_version)
- type: zip
- #- path: build_$(BUILD_TARGERT)\update_windows.xml
- - path: FaceRecognizer_*.apk
+ - path: build_$(BUILD_TARGERT)\FaceRecognizer_%FaceRecognizerVersion%_windows_xp_%BUILD_ARCH%_Setup.exe
test: off
diff --git a/ci/build.sh b/ci/build.sh
index f5720ed..96718b0 100644
--- a/ci/build.sh
+++ b/ci/build.sh
@@ -348,8 +348,8 @@ if [ "${BUILD_TARGERT}" = "windows_msvc" ]; then
if [ -z "${STATIC}" ]; then
"/C/Program Files (x86)/NSIS/makensis.exe" "Install.nsi"
MD5=`md5sum FaceRecognizer_${VERSION}_Setup.exe|awk '{print $1}'`
- echo "MD5:${MD5}"
- install/bin/FaceRecognizerApp.exe -f "`pwd`/update_windows.xml" --md5 ${MD5} \
- -u https://github.com/KangLin/FaceRecognizer/releases/download/${VERSION}/FaceRecognizer_${VERSION}_Setup.exe;https://sourceforge.net/projects/FaceRecognizer/files/${VERSION}/FaceRecognizer_${VERSION}_Setup.exe
+ #echo "MD5:${MD5}"
+ #install/bin/FaceRecognizerApp.exe -f "`pwd`/update_windows.json" --md5 ${MD5} \
+ # -u https://github.com/KangLin/FaceRecognizer/releases/download/${VERSION}/FaceRecognizer_${VERSION}_Setup.exe;https://sourceforge.net/projects/FaceRecognizer/files/${VERSION}/FaceRecognizer_${VERSION}_Setup.exe
fi
fi
diff --git a/debian/changelog b/debian/changelog
index 4532a6e..ec34123 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-facerecognizer (0.0.4) stable; urgency=medium
+facerecognizer (0.0.4) unstable; urgency=medium
* Initial Release.
diff --git a/deploy.sh b/deploy.sh
index 8a0d621..04f97cb 100644
--- a/deploy.sh
+++ b/deploy.sh
@@ -32,7 +32,7 @@ sed -i "s/^\!define PRODUCT_VERSION.*/\!define PRODUCT_VERSION \"${VERSION}\"/g"
sed -i "s/^\SET(BUILD_VERSION.*/\SET(BUILD_VERSION \"${VERSION}\")/g" ${SOURCE_DIR}/CMakeLists.txt
sed -i "s/.*${VERSION}