From 25abd3eb2debf8cb78166f586a1b827b3f9d069a Mon Sep 17 00:00:00 2001 From: fabienfl-orc Date: Thu, 25 Jun 2020 08:34:44 +0200 Subject: [PATCH 01/54] tools: ci: build.ps1: add '-A Win32' for vs2019 x86 builds Do not use default architecture to avoid issue with vcpkg when checking architecture. --- tools/ci/build.ps1 | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/tools/ci/build.ps1 b/tools/ci/build.ps1 index 71be24b6..74502565 100644 --- a/tools/ci/build.ps1 +++ b/tools/ci/build.ps1 @@ -94,7 +94,7 @@ function Build-Orc $Generators = @{ "vs2017_x86" = @(("-G", "`"Visual Studio 15 2017`"")) "vs2017_x64" = @(("-G", "`"Visual Studio 15 2017 Win64`"")) - "vs2019_x86" = @(("-G", "`"Visual Studio 16 2019`"")) + "vs2019_x86" = @(("-G", "`"Visual Studio 16 2019`""), ("-A", "Win32")) "vs2019_x64" = @(("-G", "`"Visual Studio 16 2019`""), ("-A", "x64")) } @@ -119,21 +119,6 @@ function Build-Orc foreach($Config in $Configuration) { - # if($Toolchain.Equals("vs2019")) - # { - # $ToolchainArch = "-A ${Architecture}" - # } - - # $CMakeGenerationArgs = @( - # ("-G", "${Generator}") - # ("-T", "v141_xp") - # "-DORC_BUILD_VCPKG=ON" - # "-DVCPKG_TARGET_TRIPLET=${Architecture}-windows-static" - # "-DCMAKE_TOOLCHAIN_FILE=${OrcPath}\external\vcpkg\scripts\buildsystems\vcpkg.cmake" - # "${OrcPath}" - # ) - # Write-Output @CMakeGenerationArgs - # . $CMakeExe @CMakeGenerationArgs . $CMakeExe ` @Generator ` From 5d510e321d1508a666aea5bd917e2864d3f3a862 Mon Sep 17 00:00:00 2001 From: fabienfl-orc Date: Fri, 26 Jun 2020 11:08:48 +0200 Subject: [PATCH 02/54] tools: ci: build.ps1: add options -ApacheOrc -Parquet --- tools/ci/build.ps1 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tools/ci/build.ps1 b/tools/ci/build.ps1 index 74502565..5f66fef3 100644 --- a/tools/ci/build.ps1 +++ b/tools/ci/build.ps1 @@ -68,6 +68,12 @@ function Build-Orc $Runtime = 'static', [Parameter(Mandatory = $False)] [switch] + $ApacheOrc, + [Parameter(Mandatory = $False)] + [switch] + $Parquet, + [Parameter(Mandatory = $False)] + [switch] $Clean ) @@ -100,6 +106,18 @@ function Build-Orc $Generator = $Generators[$Toolchain + "_" + $Architecture] + $CMakeOptions = @() + + if($ApacheOrc) + { + $CMakeOptions += @("-DORC_BUILD_APACHE_ORC=ON") + } + + if($Parquet) + { + $CMakeOptions += @("-DORC_BUILD_PARQUET=ON") + } + if($Clean) { Remove-Item -Force -Recurse -Path $BuildDir -ErrorAction Ignore @@ -126,6 +144,7 @@ function Build-Orc -DORC_BUILD_VCPKG=ON ` -DVCPKG_TARGET_TRIPLET="${Architecture}-windows-static" ` -DCMAKE_TOOLCHAIN_FILE="${OrcPath}\external\vcpkg\scripts\buildsystems\vcpkg.cmake" ` + $CMakeOptions ` $OrcPath . $CMakeExe --build . --config $Config -- -maxcpucount From 4d92fd996556ba63237bebb0ff8eab79b5b7adf6 Mon Sep 17 00:00:00 2001 From: fabienfl-orc Date: Fri, 26 Jun 2020 11:35:03 +0200 Subject: [PATCH 03/54] tools: ci: build.ps1: handle one-liners with multiple architectures --- tools/ci/build.ps1 | 75 ++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/tools/ci/build.ps1 b/tools/ci/build.ps1 index 5f66fef3..cd1f1840 100644 --- a/tools/ci/build.ps1 +++ b/tools/ci/build.ps1 @@ -30,10 +30,10 @@ function Build-Orc None or error on failure. .EXAMPLE - Build DFIR-Orc in 'F:\dfir-orc\build-x64' and place artefacts in 'F:\dfir-orc\build-x64\Artefacts' + Build DFIR-Orc in 'F:\dfir-orc\build' and place artifacts in 'F:\dfir-orc\build\bin\' and 'F:\dfir-orc\build\pdb\' . F:\Orc\tools\ci\build.ps1 - Build-Orc -Path F:\dfir-orc -Clean -Output build-x64 -Configuration Debug,MinSizeRel -Architecture x64 -Runtime static + Build-Orc -Path F:\dfir-orc -Clean -Configuration Debug,MinSizeRel -Architecture x86,x64 -Runtime static #> [cmdletbinding()] @@ -52,7 +52,7 @@ function Build-Orc $Output, [Parameter(Mandatory = $True)] [ValidateSet('x86', 'x64')] - [String] + [String[]] $Architecture, [Parameter(Mandatory = $False)] [ValidateSet('vs2017', 'vs2019')] @@ -95,8 +95,6 @@ function Build-Orc $Output = "$OrcPath/$Output" } - $BuildDir = "$BuildDirectory/$Architecture" - $Generators = @{ "vs2017_x86" = @(("-G", "`"Visual Studio 15 2017`"")) "vs2017_x64" = @(("-G", "`"Visual Studio 15 2017 Win64`"")) @@ -104,7 +102,6 @@ function Build-Orc "vs2019_x64" = @(("-G", "`"Visual Studio 16 2019`""), ("-A", "x64")) } - $Generator = $Generators[$Toolchain + "_" + $Architecture] $CMakeOptions = @() @@ -118,43 +115,49 @@ function Build-Orc $CMakeOptions += @("-DORC_BUILD_PARQUET=ON") } - if($Clean) - { - Remove-Item -Force -Recurse -Path $BuildDir -ErrorAction Ignore - } - - New-Item -Force -ItemType Directory -Path $BuildDir | Out-Null - - Push-Location $BuildDir - try + foreach($Arch in $Architecture) { - $CMakeExe = Find-CMake - if(-not $CMakeExe) + $BuildDir = "$BuildDirectory/$Arch" + if($Clean) { - Write-Error "Cannot find 'cmake.exe'" - return + Remove-Item -Force -Recurse -Path $BuildDir -ErrorAction Ignore } - foreach($Config in $Configuration) - { - - . $CMakeExe ` - @Generator ` - -T v141_xp ` - -DORC_BUILD_VCPKG=ON ` - -DVCPKG_TARGET_TRIPLET="${Architecture}-windows-static" ` - -DCMAKE_TOOLCHAIN_FILE="${OrcPath}\external\vcpkg\scripts\buildsystems\vcpkg.cmake" ` - $CMakeOptions ` - $OrcPath + New-Item -Force -ItemType Directory -Path $BuildDir | Out-Null - . $CMakeExe --build . --config $Config -- -maxcpucount + Push-Location $BuildDir - . $CMakeExe --install . --prefix $Output --config $Config + $Generator = $Generators[$Toolchain + "_" + $Arch] + try + { + $CMakeExe = Find-CMake + if(-not $CMakeExe) + { + Write-Error "Cannot find 'cmake.exe'" + return + } + + foreach($Config in $Configuration) + { + + . $CMakeExe ` + @Generator ` + -T v141_xp ` + -DORC_BUILD_VCPKG=ON ` + -DVCPKG_TARGET_TRIPLET="${Arch}-windows-static" ` + -DCMAKE_TOOLCHAIN_FILE="${OrcPath}\external\vcpkg\scripts\buildsystems\vcpkg.cmake" ` + $CMakeOptions ` + $OrcPath + + . $CMakeExe --build . --config $Config -- -maxcpucount + + . $CMakeExe --install . --prefix $Output --config $Config + } + } + finally + { + Pop-Location } - } - finally - { - Pop-Location } } From baf5a3bcda42127b7fc7a50c47c67aead0bcc371 Mon Sep 17 00:00:00 2001 From: fabienfl Date: Wed, 29 Jul 2020 17:02:04 +0200 Subject: [PATCH 04/54] tools: ci: build.ps1: check cmake.exe exit status --- tools/ci/build.ps1 | 108 +++++++++++++++++++++++++++++++++------------ 1 file changed, 81 insertions(+), 27 deletions(-) diff --git a/tools/ci/build.ps1 b/tools/ci/build.ps1 index cd1f1840..bfcde8f1 100644 --- a/tools/ci/build.ps1 +++ b/tools/ci/build.ps1 @@ -1,8 +1,13 @@ +# TODO: add switch to disable OrcLibTest build +# TODO: add function or a switch for Orc complete configuration + function Build-Orc { <# .SYNOPSIS - Build wrapper around cmake to facilitate CI integration. + Build wrapper around CMake to ease CI integration. + + Allow one-liners for building multiple configurations: x86, x64, Debug, MinSizeRel... .PARAMETER Source Path to DFIR-ORC source root directory to build. @@ -96,23 +101,32 @@ function Build-Orc } $Generators = @{ - "vs2017_x86" = @(("-G", "`"Visual Studio 15 2017`"")) - "vs2017_x64" = @(("-G", "`"Visual Studio 15 2017 Win64`"")) - "vs2019_x86" = @(("-G", "`"Visual Studio 16 2019`""), ("-A", "Win32")) - "vs2019_x64" = @(("-G", "`"Visual Studio 16 2019`""), ("-A", "x64")) + "vs2017_x86" = @("-G `"Visual Studio 15 2017`"") + "vs2017_x64" = @("-G `"Visual Studio 15 2017 Win64`"") + "vs2019_x86" = @( + "-G `"Visual Studio 16 2019`"" + "-A Win32" + ) + "vs2019_x64" = @( + "-G `"Visual Studio 16 2019`"" + "-A x64" + ) } - - $CMakeOptions = @() + $CMakeGenerationOptions = @( + "-T v141_xp" + "-DORC_BUILD_VCPKG=ON" + "-DCMAKE_TOOLCHAIN_FILE=`"${OrcPath}\external\vcpkg\scripts\buildsystems\vcpkg.cmake`"" + ) if($ApacheOrc) { - $CMakeOptions += @("-DORC_BUILD_APACHE_ORC=ON") + $CMakeGenerationOptions += "-DORC_BUILD_APACHE_ORC=ON" } if($Parquet) { - $CMakeOptions += @("-DORC_BUILD_PARQUET=ON") + $CMakeGenerationOptions += "-DORC_BUILD_PARQUET=ON" } foreach($Arch in $Architecture) @@ -128,32 +142,30 @@ function Build-Orc Push-Location $BuildDir $Generator = $Generators[$Toolchain + "_" + $Arch] - try + + $CMakeExe = Find-CMake + if(-not $CMakeExe) { - $CMakeExe = Find-CMake - if(-not $CMakeExe) - { - Write-Error "Cannot find 'cmake.exe'" - return - } + Write-Error "Cannot find 'cmake.exe'" + return + } + try + { foreach($Config in $Configuration) { + $Parameters = $Generator + $CMakeGenerationOptions + "-DVCPKG_TARGET_TRIPLET=${Arch}-windows-${Runtime}" + "$OrcPath" + Invoke-NativeCommand $CMakeExe $Parameters - . $CMakeExe ` - @Generator ` - -T v141_xp ` - -DORC_BUILD_VCPKG=ON ` - -DVCPKG_TARGET_TRIPLET="${Arch}-windows-static" ` - -DCMAKE_TOOLCHAIN_FILE="${OrcPath}\external\vcpkg\scripts\buildsystems\vcpkg.cmake" ` - $CMakeOptions ` - $OrcPath - - . $CMakeExe --build . --config $Config -- -maxcpucount + Invoke-NativeCommand $CMakeExe "--build . --config ${Config} -- -maxcpucount" - . $CMakeExe --install . --prefix $Output --config $Config + Invoke-NativeCommand $CMakeExe "--install . --prefix ${Output} --config ${Config}" } } + catch + { + throw + } finally { Pop-Location @@ -183,3 +195,45 @@ function Find-CMake } } } + +# +# Invoke-NativeCommand +# +# Execute a native command and throw if its exit code is not 0. +# +# This simple wrapper could be smarter and rely on parameters splatting. +# In the case of CMake its not so easy to keep generic approach because of its handling of the cli options. +# +# In an attempt to use splatting I had those issues: +# +# - Options uses '-' +# - Options '-D' can have "-D=" or "-D=" +# - VALUE can be a bool or a path (quotes...) +# - Options like '-T ' is followed by a space before +# ... +# +# cmake.exe -G "Visual Studio 16 2019" -A x64 -T v141_xp -DORC_BUILD_VCPKG=ON -DCMAKE_TOOLCHAIN_FILE="C:\dev\orc\dfir-orc\external\vcpkg\scripts\buildsystems\vcpkg.cmake" "C:\dev\orc\dfir-orc\" +# + +function Invoke-NativeCommand() +{ + param( + [Parameter(ValueFromPipeline=$true, Mandatory=$true, Position=0)] + [string] + $Command, + [Parameter(ValueFromPipeline=$true, Mandatory=$true, Position=1)] + [String[]] + $Parameters + ) + + $Child = Start-Process -PassThru $Command -ArgumentList $Parameters -NoNewWindow + + # Workaround on 'Start-Process -Wait ...' which hangs sometimes (psh 7.0.3) + $Child | Wait-Process + + if ($Child.ExitCode -ne 0) + { + $ExitCode = [String]::Format("0x{0:X}", $Child.ExitCode) + throw "'${Command} ${Parameters}' exited with code ${ExitCode}" + } +} From 6c455b747b5d21a71b3c6fb424a6c5cf37684a7f Mon Sep 17 00:00:00 2001 From: fabienfl Date: Wed, 29 Jul 2020 16:52:12 +0200 Subject: [PATCH 05/54] ci: azure: use 'windows-2019' agent --- azure-pipelines-template.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines-template.yml b/azure-pipelines-template.yml index e238490d..fefa7d5f 100644 --- a/azure-pipelines-template.yml +++ b/azure-pipelines-template.yml @@ -2,9 +2,9 @@ parameters: arch: '' jobs: -- job: vs2017_${{ parameters.arch }} +- job: vs2019_${{ parameters.arch }} pool: - vmImage: 'vs2017-win2016' + vmImage: 'windows-2019' steps: - checkout: self clean: true @@ -17,7 +17,7 @@ jobs: Build-ORC ` -Source $(Build.SourcesDirectory) ` -Output $(Build.SourcesDirectory)/artifacts ` - -Toolchain vs2017 ` + -Toolchain vs2019 ` -Architecture ${{ parameters.arch }} ` -Configuration Debug,MinSizeRel From e1212aaaefeac18ea0b59d37503320c222a81ea6 Mon Sep 17 00:00:00 2001 From: fabienfl Date: Tue, 21 Jul 2020 18:53:15 +0200 Subject: [PATCH 06/54] cmake: set ORC_BUILD_BCPKG default to ON --- CMakeLists.txt | 4 ++-- README.md | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 336d3f17..50411e9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,11 +3,11 @@ cmake_policy(VERSION 3.12) # CMake user options option(ORC_USE_STATIC_CRT "Use static runtime" ON) -option(ORC_BUILD_VCPKG "Build vcpkg dependencies" OFF) +option(ORC_BUILD_VCPKG "Build vcpkg dependencies" ON) option(ORC_BUILD_APACHE_ORC "Build Apache's ORC module" OFF) option(ORC_BUILD_CHAKRACORE "Build with chakracore support" OFF) -option(ORC_BUILD_COMMAND "Build any OrcCommabd based command" ON) +option(ORC_BUILD_COMMAND "Build any OrcCommand based command" ON) option(ORC_BUILD_FASTFIND "Build FastFind binary" ON) option(ORC_BUILD_ORC "Build Orc binary" ON) option(ORC_BUILD_PARQUET "Build Parquet module" OFF) diff --git a/README.md b/README.md index 300f540e..197b151f 100644 --- a/README.md +++ b/README.md @@ -30,17 +30,17 @@ cd dfir-orc mkdir build-x86 build-x64 cd build-x86 -cmake -G "Visual Studio 16 2019" -A Win32 -T v141_xp -DORC_BUILD_VCPKG=ON .. +cmake -G "Visual Studio 16 2019" -A Win32 -T v141_xp .. cmake --build . --config MinSizeRel -- -maxcpucount cd ../build-x64 -cmake -G "Visual Studio 16 2019" -A x64 -T v141_xp -DORC_BUILD_VCPKG=ON .. +cmake -G "Visual Studio 16 2019" -A x64 -T v141_xp .. cmake --build . --config MinSizeRel -- -maxcpucount ``` * The `-T v141_xp` option will allow compatibility with Windows XP SP2 and later, it can safely be removed if this is not required. -* The `ORC_BUILD_VCPKG=ON` option will build vcpkg packages in 'external/vcpkg' subdirectory. +* The default `ORC_BUILD_VCPKG=ON` option will build vcpkg packages in 'external/vcpkg' subdirectory. **Important** Always do a `git submodule update` after any `git pull` to update submodules aswell. Alternatively, always pull with `git pull --recurse-submodules` @@ -50,7 +50,7 @@ Using default options is recommended with the exception of `ORC_BUILD_VCPKG` whi | CMake option | Default | Description | |:---------------------|:----------------------|:------------------------------| -| ORC_BUILD_VCPKG | OFF | Build vcpkg dependencies | +| ORC_BUILD_VCPKG | ON | Build vcpkg dependencies | | ORC_BUILD_APACHE_ORC | OFF | Build Apache Orc module | | ORC_BUILD_CHAKRACORE | OFF | Build with ChakraCore support | | ORC_BUILD_COMMAND | ON | Build OrcCommand library | From facae2dcb17b76848b6df560e848c1248e8afa71 Mon Sep 17 00:00:00 2001 From: fabienfl Date: Tue, 21 Jul 2020 18:55:50 +0200 Subject: [PATCH 07/54] cmake: vcpkg: fix NO_UPGRADE option --- cmake/vcpkg.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/vcpkg.cmake b/cmake/vcpkg.cmake index c9a6003f..585ceef9 100644 --- a/cmake/vcpkg.cmake +++ b/cmake/vcpkg.cmake @@ -184,7 +184,7 @@ function(vcpkg_install) PATH ${VCPKG_PATH} ) - if(NOT NO_UPGRADE) + if(NOT VCPKG_NO_UPGRADE) vcpkg_upgrade( PATH ${VCPKG_PATH} OVERLAY_PORTS ${VCPKG_OVERLAY_PORTS} From 2ad15356655aabd659fbe98cb223440afe3ca982 Mon Sep 17 00:00:00 2001 From: fabienfl Date: Tue, 21 Jul 2020 19:00:13 +0200 Subject: [PATCH 08/54] cmake: add option ORC_DOWNLOADS_ONLY --- CMakeLists.txt | 12 +++++++++++- README.md | 38 +++++++++++++++++++------------------- cmake/vcpkg.cmake | 17 ++++++++++++++--- 3 files changed, 44 insertions(+), 23 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 50411e9e..945b3c30 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,7 @@ option(ORC_BUILD_PARQUET "Build Parquet module" OFF) option(ORC_BUILD_SQL "Build SQL module" OFF) option(ORC_BUILD_SSDEEP "Build with ssdeep support" OFF) option(ORC_BUILD_JSON "Build with JSON StructuredOutput enabled" ON) +option(ORC_DOWNLOADS_ONLY "Do not build ORC but only download vcpkg third parties" OFF) if(NOT ORC_BUILD_COMMAND) set(ORC_BUILD_FASTFIND OFF) @@ -108,9 +109,14 @@ if(ORC_VCPKG_ROOT) list(APPEND _PACKAGES ssdeep) endif() + if(ORC_DOWNLOADS_ONLY) + set(ONLY_DOWNLOADS "ONLY_DOWNLOADS") + endif() + include(cmake/vcpkg.cmake) - if(ORC_BUILD_VCPKG) + if(ORC_BUILD_VCPKG OR ORC_DOWNLOADS_ONLY) vcpkg_install( + ${ONLY_DOWNLOADS} PATH ${ORC_VCPKG_ROOT} PACKAGES ${_PACKAGES} ARCH ${TARGET_ARCH} @@ -120,6 +126,10 @@ if(ORC_VCPKG_ROOT) endif() endif() +if(ORC_DOWNLOADS_ONLY) + return() +endif() + # Must be set AFTER 'VCPKG_TARGET_TRIPLET' is defined project(dfir-orc LANGUAGES C CXX ASM_MASM) diff --git a/README.md b/README.md index 197b151f..3b06f774 100644 --- a/README.md +++ b/README.md @@ -46,25 +46,25 @@ cmake --build . --config MinSizeRel -- -maxcpucount ### Options -Using default options is recommended with the exception of `ORC_BUILD_VCPKG` which should be set to **ON** so dependencies will be built automatically using vcpkg. - -| CMake option | Default | Description | -|:---------------------|:----------------------|:------------------------------| -| ORC_BUILD_VCPKG | ON | Build vcpkg dependencies | -| ORC_BUILD_APACHE_ORC | OFF | Build Apache Orc module | -| ORC_BUILD_CHAKRACORE | OFF | Build with ChakraCore support | -| ORC_BUILD_COMMAND | ON | Build OrcCommand library | -| ORC_BUILD_FASTFIND | OFF | Build FastFind binary | -| ORC_BUILD_ORC | ON | Build Orc binary | -| ORC_BUILD_PARQUET | OFF | Build Parquet module (x64) | -| ORC_BUILD_SQL | OFF | Build SQL module [1] | -| ORC_BUILD_SSDEEP | OFF | Build with ssdeep support | -| ORC_BUILD_JSON | ON | Build with JSON enabled | -| ORC_USE_STATIC_CRT | ON | Use static runtime | -| ORC_VCPKG_ROOT | ${ORC}/external/vcpkg | VCPKG root directory | -| ORC_XMLLITE_PATH | | XmlLite.dll path (xp sp2) | -| VCPKG_TARGET_TRIPLET | Autodetect | VCPKG triplet to use | -| CMAKE_TOOLCHAIN_FILE | Autodetect | VCPKG's toolchain file | + +| CMake option | Default | Description | +|:---------------------|:----------------------|:---------------------------------| +| ORC_DOWNLOADS_ONLY | OFF | Only download vcpkg dependencies | +| ORC_BUILD_VCPKG | ON | Build vcpkg dependencies | +| ORC_BUILD_APACHE_ORC | OFF | Build Apache Orc module | +| ORC_BUILD_CHAKRACORE | OFF | Build with ChakraCore support | +| ORC_BUILD_COMMAND | ON | Build OrcCommand library | +| ORC_BUILD_FASTFIND | OFF | Build FastFind binary | +| ORC_BUILD_ORC | ON | Build Orc binary | +| ORC_BUILD_PARQUET | OFF | Build Parquet module (x64) | +| ORC_BUILD_SQL | OFF | Build SQL module [1] | +| ORC_BUILD_SSDEEP | OFF | Build with ssdeep support | +| ORC_BUILD_JSON | ON | Build with JSON enabled | +| ORC_USE_STATIC_CRT | ON | Use static runtime | +| ORC_VCPKG_ROOT | ${ORC}/external/vcpkg | VCPKG root directory | +| ORC_XMLLITE_PATH | | XmlLite.dll path (xp sp2) | +| VCPKG_TARGET_TRIPLET | Autodetect | VCPKG triplet to use | +| CMAKE_TOOLCHAIN_FILE | Autodetect | VCPKG's toolchain file | [1] `ORC_BUILD_SQL=ON` requires [SQL Server Native Client](https://docs.microsoft.com/en-us/sql/relational-databases/native-client/applications/installing-sql-server-native-client?view=sql-server-2017) diff --git a/cmake/vcpkg.cmake b/cmake/vcpkg.cmake index 585ceef9..4ecacd92 100644 --- a/cmake/vcpkg.cmake +++ b/cmake/vcpkg.cmake @@ -51,12 +51,13 @@ endfunction() # PACKAGES list list of packages to be installed # ARCH x86/x64 build architecture # USE_STATIC_CRT ON/OFF use static runtime +# ONLY_DOWNLOADS