|
29 | 29 | Enable Test: yes|no|true|false|1|0
|
30 | 30 | .PARAMETER EnableTools
|
31 | 31 | Enable Tools: yes|no|true|false|1|0
|
| 32 | +.PARAMETER EnableAdderssSanitizer |
| 33 | + Enable Adderss Sanitizer: yes|no|true|false|1|0 |
| 34 | +.PARAMETER EnableThreadSanitizer |
| 35 | + Enable Thread Sanitizer: yes|no|true|false|1|0 |
| 36 | +.PARAMETER EnableLeakSanitizer |
| 37 | + Enable Leak Sanitizer: yes|no|true|false|1|0 |
| 38 | +.PARAMETER EnableUndefinedSanitizer |
| 39 | + Enable Undefined Sanitizer: yes|no|true|false|1|0 |
| 40 | +.PARAMETER EnableHWAddressSanitizer |
| 41 | + Enable Hardware Address Sanitizer: yes|no|true|false|1|0 |
32 | 42 | .PARAMETER CMakeOptions
|
33 | 43 | CMake options(pwsh -File <this file> [options...] --% [cmake options])
|
34 | 44 | .EXAMPLE
|
@@ -99,6 +109,26 @@ param (
|
99 | 109 | ValueFromPipelineByPropertyName = $true)]
|
100 | 110 | [string]$EnableTools = "true",
|
101 | 111 |
|
| 112 | + [Parameter(ValueFromPipeline = $true, |
| 113 | + ValueFromPipelineByPropertyName = $true)] |
| 114 | + [string]$EnableAdderssSanitizer = "false", |
| 115 | + |
| 116 | + [Parameter(ValueFromPipeline = $true, |
| 117 | + ValueFromPipelineByPropertyName = $true)] |
| 118 | + [string]$EnableThreadSanitizer = "false", |
| 119 | + |
| 120 | + [Parameter(ValueFromPipeline = $true, |
| 121 | + ValueFromPipelineByPropertyName = $true)] |
| 122 | + [string]$EnableLeakSanitizer = "false", |
| 123 | + |
| 124 | + [Parameter(ValueFromPipeline = $true, |
| 125 | + ValueFromPipelineByPropertyName = $true)] |
| 126 | + [string]$EnableUndefinedSanitizer = "false", |
| 127 | + |
| 128 | + [Parameter(ValueFromPipeline = $true, |
| 129 | + ValueFromPipelineByPropertyName = $true)] |
| 130 | + [string]$EnableHWAddressSanitizer = "false", |
| 131 | + |
102 | 132 | [Parameter(ValueFromPipeline = $true,
|
103 | 133 | ValueFromPipelineByPropertyName = $true,
|
104 | 134 | ValueFromRemainingArguments = $true,
|
@@ -359,6 +389,36 @@ if ((Check-BooleanString "$EnableTest")) {
|
359 | 389 | if ((Check-BooleanString "$EnableTools")) {
|
360 | 390 | $CMakeGeneratorArgs += @("-DPROJECT_ENABLE_TOOLS=ON")
|
361 | 391 | }
|
| 392 | +if ((Check-BooleanString $EnableAdderssSanitizer)) { |
| 393 | + $CMakeGeneratorArgs += @("-DPROJECT_SANTIZER_USE_ADDRESS=ON") |
| 394 | + if (-Not $BuildDirectorySet) { |
| 395 | + $BuildDirectory = "${BuildDirectory}_asan" |
| 396 | + } |
| 397 | +} |
| 398 | +elseif ((Check-BooleanString $EnableThreadSanitizer)) { |
| 399 | + $CMakeGeneratorArgs += @("-DPROJECT_SANTIZER_USE_THREAD=ON") |
| 400 | + if (-Not $BuildDirectorySet) { |
| 401 | + $BuildDirectory = "${BuildDirectory}_tsan" |
| 402 | + } |
| 403 | +} |
| 404 | +elseif ((Check-BooleanString $EnableLeakSanitizer)) { |
| 405 | + $CMakeGeneratorArgs += @("-DPROJECT_SANTIZER_USE_LEAK=ON") |
| 406 | + if (-Not $BuildDirectorySet) { |
| 407 | + $BuildDirectory = "${BuildDirectory}_lsan" |
| 408 | + } |
| 409 | +} |
| 410 | +elseif ((Check-BooleanString $EnableUndefinedSanitizer)) { |
| 411 | + $CMakeGeneratorArgs += @("-DPROJECT_SANTIZER_USE_UNDEFINED=ON") |
| 412 | + if (-Not $BuildDirectorySet) { |
| 413 | + $BuildDirectory = "${BuildDirectory}_ubsan" |
| 414 | + } |
| 415 | +} |
| 416 | +elseif ((Check-BooleanString $EnableHWAddressSanitizer)) { |
| 417 | + $CMakeGeneratorArgs += @("-DPROJECT_SANTIZER_USE_HWADDRESS=ON") |
| 418 | + if (-Not $BuildDirectorySet) { |
| 419 | + $BuildDirectory = "${BuildDirectory}_hwasan" |
| 420 | + } |
| 421 | +} |
362 | 422 |
|
363 | 423 | if (($null -ne $CMakeOptions) -and ($CMakeOptions.Count -gt 0)) {
|
364 | 424 | $CMakeGeneratorArgs += $CMakeOptions
|
|
0 commit comments