diff --git a/.ci/compile.sh b/.ci/compile.sh index b644fa55f..ffa24b8e1 100755 --- a/.ci/compile.sh +++ b/.ci/compile.sh @@ -67,6 +67,10 @@ while [[ $# != 0 ]]; do shift fi ;; + '--vcpkg') + USE_VCPKG=1 + shift + ;; '--dir') shift if [[ $# == 0 ]]; then @@ -126,7 +130,10 @@ fi if [[ $PACKAGE_TYPE ]]; then flags+=("-DCPACK_GENERATOR=$PACKAGE_TYPE") fi - if [[ $TARGET_MACOS_VERSION ]]; then +if [[ $USE_VCPKG ]]; then + flags+=("-DUSE_VCPKG=1") +fi +if [[ $TARGET_MACOS_VERSION ]]; then TRIPLETS_DIR="../cmake/triplets" mkdir -p "$TRIPLETS_DIR" # Replace dots with hyphens in triplet name for vcpkg compatibility diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 10947c620..e469a84b3 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -9,20 +9,31 @@ on: push: branches: - master - paths-ignore: - - '**.md' - - 'webclient/**' - - '.github/workflows/web-*.yml' - - '.github/workflows/translations-*.yml' - - '.github/workflows/docker-release.yml' + paths: + - '*/**' # matches all files not in root + - '!**.md' + - '!.github/**' + - '!.husky/**' + - '!.tx/**' + - '!doc/**' + - '!webclient/**' + - '.github/workflows/desktop-build.yml' + - 'CMakeLists.txt' + - 'vcpkg.json' tags: - '*' pull_request: - paths-ignore: - - '**.md' - - 'webclient/**' - - '.github/workflows/web-*.yml' - - '.github/workflows/translations-*.yml' + paths: + - '*/**' # matches all files not in root + - '!**.md' + - '!.github/**' + - '!.husky/**' + - '!.tx/**' + - '!doc/**' + - '!webclient/**' + - '.github/workflows/desktop-build.yml' + - 'CMakeLists.txt' + - 'vcpkg.json' # Cancel earlier, unfinished runs of this workflow on the same branch (unless on master) concurrency: @@ -318,7 +329,7 @@ jobs: CMAKE_GENERATOR: '${{env.CMAKE_GENERATOR}}' VCPKG_DISABLE_METRICS: 1 VCPKG_BINARY_SOURCES: 'clear;files,${{ steps.vcpkg-cache.outputs.path }},readwrite' - run: .ci/compile.sh --server --test --ccache "$CCACHE_SIZE" ${{ matrix.soc == 'Intel' && format('--target-macos-version {0}', matrix.target) || '' }} + run: .ci/compile.sh --server --test --ccache "$CCACHE_SIZE" --vcpkg ${{ matrix.soc == 'Intel' && format('--target-macos-version {0}', matrix.target) || '' }} - name: Sign app bundle if: matrix.make_package && (github.ref == 'refs/heads/master' || needs.configure.outputs.tag != null) diff --git a/.github/workflows/desktop-lint.yml b/.github/workflows/desktop-lint.yml index 39b68eb72..b8c015c16 100644 --- a/.github/workflows/desktop-lint.yml +++ b/.github/workflows/desktop-lint.yml @@ -2,12 +2,20 @@ name: Code Style (C++) on: pull_request: - paths-ignore: - - '**.md' - - 'webclient/**' - - '.github/workflows/web-*.yml' - - '.github/workflows/translations-*.yml' - - '.github/workflows/docker-release.yml' + paths: + - '*/**' # matches all files not in root + - '!**.md' + - '!.ci/**' + - '!.github/**' + - '!.husky' + - '!.tx' + - '!doc/**' + - '!webclient/**' + - '.github/workflows/desktop-lint.yml' + - '.ci/lint_cpp.sh' + - '.clang-format' + - '.cmake-format.json' + - 'format.sh' jobs: format: diff --git a/CMakeLists.txt b/CMakeLists.txt index 34afff90b..4d2e4b145 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,8 @@ option(WITH_ORACLE "build oracle" ON) option(WITH_DBCONVERTER "build dbconverter" ON) # Compile tests option(TEST "build tests" OFF) +# Use vcpkg regardless of OS +option(USE_VCPKG "Use vcpkg regardless of OS" OFF) # Default to "Release" build type # User-provided value for CMAKE_BUILD_TYPE must be checked before the PROJECT() call @@ -48,8 +50,8 @@ if(USE_CCACHE) endif() endif() -if(WIN32 OR APPLE) - # Use vcpkg toolchain on Windows and macOS +if(WIN32 OR USE_VCPKG) + # Use vcpkg toolchain on Windows (and on macOS in CI) set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake CACHE STRING "Vcpkg toolchain file"