Removed Visual Studio project and NuGet infrastructure (#148)

* Removed many uncessary things and forced the project to be CMake only

* Updated README status badge
This commit is contained in:
Sergio R. Z. Masson 2024-09-05 15:46:31 -03:00 коммит произвёл GitHub
Родитель 187f76f565
Коммит 4888f0a386
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
74 изменённых файлов: 1 добавлений и 7067 удалений

Просмотреть файл

@ -1,13 +0,0 @@
cmake_minimum_required(VERSION 3.9)
if (NOT GLTFSDK_FOUND)
set(GLTFSDK_FOUND TRUE)
add_library(GLTFSDK STATIC IMPORTED GLOBAL)
set_target_properties(GLTFSDK PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/build/native/include")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_DEBUG "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/arm64-v8a/Debug/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELEASE "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/arm64-v8a/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELWITHDEBINFO "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/arm64-v8a/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_MINSIZEREL "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/arm64-v8a/Release/static/libGLTFSDK.a")
# Default location for other build configurations defaults to Debug
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/arm64-v8a/Debug/static/libGLTFSDK.a")
endif()

Просмотреть файл

@ -1,13 +0,0 @@
cmake_minimum_required(VERSION 3.9)
if (NOT GLTFSDK_FOUND)
set(GLTFSDK_FOUND TRUE)
add_library(GLTFSDK STATIC IMPORTED GLOBAL)
set_target_properties(GLTFSDK PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/build/native/include")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_DEBUG "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/armeabi-v7a/Debug/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELEASE "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/armeabi-v7a/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELWITHDEBINFO "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/armeabi-v7a/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_MINSIZEREL "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/armeabi-v7a/Release/static/libGLTFSDK.a")
# Default location for other build configurations defaults to Debug
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/armeabi-v7a/Debug/static/libGLTFSDK.a")
endif()

Просмотреть файл

@ -1,13 +0,0 @@
cmake_minimum_required(VERSION 3.9)
if (NOT GLTFSDK_FOUND)
set(GLTFSDK_FOUND TRUE)
add_library(GLTFSDK STATIC IMPORTED GLOBAL)
set_target_properties(GLTFSDK PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/build/native/include")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_DEBUG "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x86/Debug/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELEASE "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x86/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELWITHDEBINFO "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x86/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_MINSIZEREL "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x86/Release/static/libGLTFSDK.a")
# Default location for other build configurations defaults to Debug
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x86/Debug/static/libGLTFSDK.a")
endif()

Просмотреть файл

@ -1,13 +0,0 @@
cmake_minimum_required(VERSION 3.9)
if (NOT GLTFSDK_FOUND)
set(GLTFSDK_FOUND TRUE)
add_library(GLTFSDK STATIC IMPORTED GLOBAL)
set_target_properties(GLTFSDK PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/build/native/include")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_DEBUG "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x86_64/Debug/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELEASE "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x86_64/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELWITHDEBINFO "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x86_64/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_MINSIZEREL "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x86_64/Release/static/libGLTFSDK.a")
# Default location for other build configurations defaults to Debug
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x86_64/Debug/static/libGLTFSDK.a")
endif()

Просмотреть файл

@ -1,13 +0,0 @@
cmake_minimum_required(VERSION 3.9)
if (NOT GLTFSDK_FOUND)
set(GLTFSDK_FOUND TRUE)
add_library(GLTFSDK STATIC IMPORTED GLOBAL)
set_target_properties(GLTFSDK PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/build/native/include")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_DEBUG "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/iOS/Debug/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELEASE "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/iOS/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELWITHDEBINFO "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/iOS/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_MINSIZEREL "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/iOS/Release/static/libGLTFSDK.a")
# Default location for other build configurations defaults to Debug
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/iOS/Debug/static/libGLTFSDK.a")
endif()

Просмотреть файл

@ -1,13 +0,0 @@
cmake_minimum_required(VERSION 3.9)
if (NOT GLTFSDK_FOUND)
set(GLTFSDK_FOUND TRUE)
add_library(GLTFSDK STATIC IMPORTED GLOBAL)
set_target_properties(GLTFSDK PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/build/native/include")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_DEBUG "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/iOSSimulator64/Debug/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELEASE "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/iOSSimulator64/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELWITHDEBINFO "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/iOSSimulator64/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_MINSIZEREL "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/iOSSimulator64/Release/static/libGLTFSDK.a")
# Default location for other build configurations defaults to Debug
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/iOSSimulator64/Debug/static/libGLTFSDK.a")
endif()

Просмотреть файл

@ -1,13 +0,0 @@
cmake_minimum_required(VERSION 3.9)
if (NOT GLTFSDK_FOUND)
set(GLTFSDK_FOUND TRUE)
add_library(GLTFSDK STATIC IMPORTED GLOBAL)
set_target_properties(GLTFSDK PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/build/native/include")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_DEBUG "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x64/Debug/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELEASE "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x64/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_RELWITHDEBINFO "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x64/Release/static/libGLTFSDK.a")
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION_MINSIZEREL "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x64/Release/static/libGLTFSDK.a")
# Default location for other build configurations defaults to Debug
set_target_properties(GLTFSDK PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/build/native/lib/x64/Debug/static/libGLTFSDK.a")
endif()

Двоичные данные
Build/CoApp/CoApp.Tools.Powershell.msi

Двоичный файл не отображается.

Просмотреть файл

@ -1,26 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Gets Git.exe location.
.DESCRIPTION
Looks for git.exe in multiple program file locations.
.PARAMETER GitLocations
Additional locations in which to search for git.exe
#>
[CmdletBinding()]
Param(
[Parameter()]
[string[]]$GitLocations
)
function main {
$searchLocations = $GitLocations + @("git", "${env:ProgramFiles(x86)}\Git\bin\git.exe", "${env:ProgramFiles}\Git\bin\git.exe", "${env:ProgramW6432}\Git\bin\git.exe")
return ($searchLocations | ? { Get-Command $_ -ErrorAction SilentlyContinue } | Select -First 1)
}
main

Просмотреть файл

@ -1,55 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Creates a new annotated git tag using a VSTS RESTful API call.
.DESCRIPTION
Constructs and invokes the following RESTful API call:
https://www.visualstudio.com/en-us/docs/integrate/api/git/annotatedtags#create-annotated-tag
We do things this way rather than using git directly because of auth issues.
Git repos cloned through automatic builds aren't set up to authenticate against
their remotes, so we can't make any git calls that affect the central repo.
REST calls are very easy to authenticate against from build definitions.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$TagName,
[Parameter(Mandatory)]
[String]$TagMessage,
[Parameter()]
[String]$RepoName = $Env:BUILD_REPOSITORY_NAME,
[Parameter()]
[String]$Sha1 = $Env:BUILD_SOURCEVERSION
)
$ErrorActionPreference = "stop"
$Verbose = [bool]$PSBoundParameters["Verbose"]
function main {
if (! $RepoName) {
Write-Error "Must provide a RepoName if this isn't invoked through VSTS"
}
elseif (! $Sha1) {
Write-Error "Must provide a Sha1 if this isn't invoked through VSTS"
}
else
{
$uri = "https://microsoft.visualstudio.com/DefaultCollection/Apps/_apis/git/repositories/$RepoName/annotatedTags"
$body = @{
"name" = "$TagName"
"message" = "$TagMessage"
"taggedObject" = @{
"objectId" = "$Sha1"
}
}
&"$PSScriptRoot\..\..\XplatScripts\NuGet.macOS\Invoke-VstsRestMethod.ps1" -Uri "$uri" -Body $body -Method "Post" -ApiVersion "4.0-preview" -Verbose
}
}
main

Просмотреть файл

@ -1,168 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
function CheckTextForReleaseNotesTags
{
Param(
[Parameter()]
[String[]]$FormattedText
)
$definedTags = GetDefinedTags
$allTags = @()
foreach ($line in $FormattedText)
{
$tags = @()
while ($line -match "^\s*\[(\w+)\](.+)*$")
{
$tag,$line = $matches[1,2]
$tags += $tag
}
if (!$tags)
{
Write-Verbose @"
No tags in line:
$line
"@
continue
}
if ($tags -contains $definedTags.noReleaseTag)
{
Write-Verbose "The `"No Release Notes`" tag was detected - this PR won't generate release notes"
# if there's only one tag in the entire line, the length will return the string length instead of 1
if ($tags.count -gt 1)
{
Write-Host $tags.count
Write-Host "Additional tags detected after [NORELEASENOTES] tag that will not be used: $($tags[1..($tags.length-1)])"
return $false
}
return $true
}
$containsSectionTag = $false
# make sure the tags contain only one sectionTags
foreach ($tag in $tags)
{
if ($definedTags.sectionTags -contains $tag)
{
if ($containsSectionTag)
{
Write-Host "Each Release Note line must contain only 1 section tag: $($definedTags.sectionTags). The following line has more than one valid section tag: `n$line"
return $false
}
$containsSectionTag = $true
}
else
{
Write-Host "Invalid tag provided: $tag. Each release note line must contain exactly one section tag: $($definedTags.sectionTags). To instead have no release notes for this PR, use: $NoReleaseTag"
return $false
}
}
if (!$containsSectionTag)
{
Write-Host "Each Release Note line must contain 1 section tag: $($definedTags.sectionTags). The following line is missing a valid section tag: `n$line"
return $false
}
Write-Verbose @"
Found Tags: $tags in line:
$line
"@
if ($line -notmatch "[\d\w]+")
{
Write-Host @"
Each Release Notes line must contain release note text after the tags, on the same line. For example:
[Minor] This text is the release note line that will get added to the release notes file :)
"@
return $false
}
$allTags += $tags
}
if (!$allTags)
{
Write-Host "No tags found - please tag your PR title or description appropriately for release notes."
return $false
}
return $true
}
function GetDefinedTags
{
Param(
[Parameter()]
[String]$DefinedTagsFile
)
if (! $DefinedTagsFile) {
$DefinedTagsFile = (Join-Path $PSScriptRoot "ReleaseNotesTags.json")
}
Write-Verbose "Reading defined tags from $DefinedTagsFile"
if (!(Test-Path $DefinedTagsFile))
{
Write-Error "Cannot read in $DefinedTagsFile file containing standard tag names"
}
$tagFile = Get-Content -Path $DefinedTagsFile | ConvertFrom-Json
Write-Verbose ($tagFile | Format-Table -Wrap | Out-String)
return $tagFile
}
function GetCommitInfoObject
{
Param(
[Parameter(Mandatory=$true)]
[String]$sha1
)
$GitCommand = . (Join-Path $PSScriptRoot "GetGitCommand.ps1")
if (!$GitCommand)
{
Write-Error "Unable to find git"
}
$commitInfo = & $GitCommand show -s --format='%B' $sha1
$descriptionLines = @()
foreach ($line in $commitInfo)
{
if ($line -match "Merged PR ([\d]+):(.+|$)")
{
$prNum = $matches[1]
if ($matches[2])
{
$descriptionLines += $matches[2].Trimstart(' ')
}
Write-Verbose "PR number found: $prNum with title: $descriptionLines"
}
# Related work items
elseif ($line -match "^Related work items: #(.+)")
{
$WorkItems = $Matches[1] -split ', #'
Write-Verbose "Work Items found: $WorkItems"
}
# Release note line
else
{
$descriptionLines += $line
Write-Verbose "Adding description line: $line"
}
}
return [PSObject]@{
PRNum = $prNum;
WorkItems = $workItems;
Description = $descriptionLines;
}
}
Export-ModuleMember -Function 'GetDefinedTags'
Export-ModuleMember -Function 'CheckTextForReleaseNotesTags'
Export-ModuleMember -Function 'GetCommitInfoObject'

Просмотреть файл

@ -1,140 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<# .SYNOPSIS
Checks a Pull Request to make sure it is formatted to automatically generate release notes.
.DESCRIPTION
Given a Pull Request's ID number, checks the PR's title and description to ensure it contains correctly formatted release notes.
This is only a format checker, it does not generate release notes from the Pull Request.
.PARAMETER PullRequestID
Optional. The ID number of the Pull Request. This is defaulted to env:SYSTEM_PULLREQUEST_PULLREQUESTID, which is set when invoked from a PR build.
.PARAMETER RepoName
Optional. The git repository name, this is defaulted to env:BUILD_REPOSITORY_NAME, which is set when invoked from a PR build.
.PARAMETER DefinedTagsFilePath
Optional. The .json file containing the defined valid tags we use to generate release notes. The path should be relative to this script.
.PARAMETER LocalPATLocation
Optional. The location of a local PAT token to make authorized VSTS REST calls to get info for the given PR and repo.
For use when running locally, as this script will use env:SYSTEM_ACCESSTOKEN by default, which is set when invoked from a PR build.
#>
[CmdletBinding()]
Param(
[Parameter()]
[String]$PullRequestID = $env:SYSTEM_PULLREQUEST_PULLREQUESTID,
[Parameter()]
[String]$RepoName = $env:BUILD_REPOSITORY_NAME,
[Parameter()]
[String]$LocalPATLocation
)
$ErrorActionPreference = "Stop"
function Main
{
Import-Module (Join-Path $PSScriptRoot "ReleaseNotesHelper.psm1")
PrintReleaseNoteFormatInfo
if (!$PullRequestID)
{
Write-Error "Pull Request ID cannot be null."
}
$prInfo = GetPRInfo
$validFormat = CheckTextForReleaseNotesTags $prInfo
if (!$validFormat)
{
Write-Error "Please tag your PR title or description appropriately for release notes."
}
Write-Verbose "Finished checking - the PR is in a correct format to generate release notes"
}
function PrintReleaseNoteFormatInfo
{
Write-Host @"
This script will check the format of the PR to ensure it will work with the automated release notes system.
Your PR must contain at least one formatted release note entry, either within the PR's title or the PR's description.
The format of this release note entry must begin with tags.
If your PR does not involve any changes that should generate release notes, use the [NORELEASENOTES] tag.
To generate release notes, put each release note line on a single line each, and prefix it with tags to describe the file and section.
Within each release note file, you must define what kind of change was made. For each release note line, specify one (and only one) section tag. The project tag values are:
[FEATURE]
[BREAKING]
[MINOR]
[BUG]
As an example, here is a PR description you may have:
[FEATURE] Adding new feature that does something and everything. This is a very long release note line that must not contain any line breaks.
[BUG] Fixed hang in ViewerApp
And if I were to type text in my PR title or description, without any tags in front, they won't be included in the release notes.
Pull Request ID provided for this build: $PullRequestID
"@
}
# Use REST apis to get the current Pull Request information
function GetPRInfo()
{
# edits to a PR title/description happens extremely quickly, GET calls get updated info.
$url = "https://microsoft.visualstudio.com/DefaultCollection/Apps/_apis/git/repositories/$RepoName/pullRequests/$PullRequestID" + "?api-version=3.0"
$result = Rest $url
Write-Verbose $result
$prInfo = @($result.title)
$prInfo += $result.description -split '\n'
Write-Verbose "PR text: $prInfo"
if (!$prInfo)
{
Write-Error "PR title and description are empty for PR id: $PullRequestID"
}
return $prInfo
}
function Rest($url)
{
if ($env:SYSTEM_ACCESSTOKEN)
{
$authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
# Running locally
else
{
Write-Host "No SYSTEM_ACCESSTOKEN environment variable found. Getting local PAT token at location $LocalPATLocation"
$encodedPat = getEncodedPat
$authorization = "Basic $encodedPat"
}
return Invoke-RestMethod $url -Headers @{Authorization = $authorization}
}
# Decrypt a secure string, and then convert to base64 (expected by auth headers)
# Taken from https://github.com/DarqueWarrior/team/blob/master/src/team.psm1
function getEncodedPat()
{
if (!$LocalPATLocation)
{
Write-Error "No local pat provided, and no value in `$env:SYSTEM_ACCESSTOKEN."
}
[SecureString]$encryptedPat = Get-Content $LocalPATLocation | ConvertTo-SecureString
$credential = New-Object System.Management.Automation.PSCredential "foo",$encryptedPat
$decryptedPat = $credential.GetNetworkCredential().Password
return [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$decryptedPat"))
}
Main

Просмотреть файл

@ -1,6 +0,0 @@
{
"NoReleaseTag": "NoReleaseNotes",
"SectionTags": [
"Feature", "Breaking", "Minor", "Bug"
]
}

Просмотреть файл

@ -1,14 +0,0 @@
#!/usr/local/bin/powershell
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
pushd $PSScriptRoot
$ScriptPath = "$PSScriptRoot/../../XPlatScripts/NuGet.macOS/NuGetRestore.ps1"
$Args = "-Verbose -PackagesConfigRoot ../../ -NuGetConfig ../../NuGet.Config -PackagesPath ../../packages"
Invoke-Expression "& $ScriptPath $Args"
popd

Просмотреть файл

@ -1,36 +0,0 @@
[{
"name": "Release",
"reasons": ["Release"],
"config": {
"PublishNuGet": "true",
"PublishMarkdownDocs": "true"
}
}, {
"name": "CI",
"reasons": ["IndividualCI", "BatchedCI"],
"config": {
"PublishNuGet": "true",
"PublishMarkdownDocs": "true"
}
}, {
"name": "Nightly",
"reasons": ["Schedule"],
"config": {
"PublishNuGet": "false",
"PublishMarkdownDocs": "false"
}
}, {
"name": "PullRequest",
"reasons": ["PullRequest"],
"config": {
"PublishNuGet": "false",
"PublishMarkdownDocs": "false"
}
}, {
"name": "Manual",
"reasons": ["Manual"],
"config": {
"PublishNuGet": "false",
"PublishMarkdownDocs": "false"
}
}]

Просмотреть файл

@ -1,74 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
# Based on the build reason, modify the build output location and set some
# default VSTS variables that will control behavior. If these variables have
# been explicitly set this script won't override them.
# See build.reason at: https://www.visualstudio.com/en-us/docs/build/define/variables
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$BuildDefinitionBase,
[Parameter()]
[String]$BuildReason
)
$ErrorActionPreference = "Stop"
if (! $BuildReason) {
$BuildReason = $Env:BUILD_REASON
if (! $BuildReason) {
Write-Error "BuildReason must be provided if this script wasn't invoked from VSTS"
}
}
function main {
$buildConfig = getConfigForBuildReason $BuildReason
# We want to update <definition name> to be $base.$qualifier so e.g. PR builds go to a
# separate path. We are actually updating the reserved variable that indicates the build
# definition name, but it doesn't seem to have any adverse effects.
setVstsVariable "Build.DefinitionName" "${BuildDefinitionBase}.$($buildConfig.name)"
setDefaultVariables $buildConfig.config
}
function getConfigForBuildReason([String]$buildReason) {
$allConfig = Get-Content "$PSScriptRoot\SetBuildVariables.json" | ConvertFrom-Json
foreach ($config in $allConfig) {
foreach ($reason in $config.reasons) {
if ($reason -match $buildReason) {
Write-Verbose "Reason '$buildReason' matches $($config | ConvertTo-Json)"
return $config
}
}
Write-Verbose "Reason '$buildReason' does not match $($config | ConvertTo-Json)"
}
Write-Error "Unable to find a config matching reason $buildReason."
}
function setDefaultVariables([PSCustomObject]$config) {
foreach ($configEntry in $config.PSObject.Properties) {
setDefaultVstsVariable $configEntry.Name $configEntry.Value
}
}
function setDefaultVstsVariable([String]$name, [String]$value) {
$setValue = (Get-Item -ErrorAction SilentlyContinue "Env:$name").value
if ($setValue) {
Write-Verbose "Variable $name is already set to $setValue; not overriding it."
return
}
setVstsVariable $name $value
}
# https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md
function setVstsVariable([String]$name, [String]$value) {
Write-Verbose "Setting $name to $value"
Write-Host "##vso[task.setvariable variable=$name;]$value"
}
main

Просмотреть файл

@ -1,11 +0,0 @@
{
"relativeRoot": "../..",
"tests": [{
"Name": "GLTFSDK.Test",
"Framework": "androidEmulator",
"Path": "Built/Out/android_<abi>/<configuration>/GLTFSDK.Test/GLTFSDK.Test",
"Tags": "emulator",
"Configurations": ["Debug"],
"Platforms": ["x86"]
}]
}

Просмотреть файл

@ -1,256 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Determines the build/package version based on the most recent tags in the git branch hierarchy, or a provided override version number.
.DESCRIPTION
Determines the next version number either for release or pre-release, with the ability to override all version numbers.
It will use git describe and the branch name in combination with the version overrides to determine the new version.
MASTER branch:
- Branch name "master". By default, will +1 to the last found tag's patch number, unless overrides are provided
PATCH branch:
- Branch name "Release/a.b", overrided version must match a.b
- By default, will +1 to the last found tag's patch number, unless overrides are provided
HOTFIX branch:
- Branch name "Release/a.b.c", overrided version numbers must match a.b.c
- By default, will +1 to the last found tag's hotfix number, unless overrides are provided
.PARAMETER SourceDirectory
Optional. The root source tree to scan, which must be a valid git repo with current branch master, or a patch/hotfix branch
.PARAMETER VersionOverride
Optional. The version number to override with, in format "vMajor.vMinor.vPatch.vHotfix". Must be either all overrided
with numbers, or must be left null let the script decide the next version.
.PARAMETER GenerateReleaseVersion
Optional. Defaults to pre-release (false). If true, generates release version number instead
.EXAMPLE
VersionNumberGenerator.ps1 -SourceDirectory "D:\Build vNext\Builds\cb11432a\Infrastructure\Code" -VersionOverride "1.2.3.4" -GenerateReleaseVersion True
.RESULT EXAMPLE
1.2.3.4 for release
<Major>.<Minor>.<Patch>.<Hotfix>
1.2.3.4-b05-g94f7eb5 for prerelease
<Major>.<Minor>.<Patch>.<Hotfix>-b<2-digit-#-commits>-<SHA1-gitcommit-hash>
CoApp follows semver 1.0.0 so the part after <Hotfix> cannot include periods.
#>
[CmdletBinding()]
param(
[string]$SourceDirectory,
[string]$VersionOverride,
[string]$GenerateReleaseVersion = $false
)
$ErrorActionPreference = "Stop"
# TO DO: comparing if versionoverride is a string of $null is a workaround
# to deal with Command Line build step that doesn't allow passing in empty parameters
if ($VersionOverride -eq '$null')
{
$VersionOverride = $null
}
# Initialize global params
if (!$SourceDirectory)
{
$SourceDirectory = (Get-Item $PSScriptRoot).Parent.Parent.FullName
}
$GitCommand = . (Join-Path $PSScriptRoot "GetGitCommand.ps1")
if (!$GitCommand)
{
Write-Error "Unable to find git"
}
[Boolean]$GenerateReleaseVersion = [System.Convert]::ToBoolean($GenerateReleaseVersion)
Enum BranchType
{
Master
Patch
Hotfix
}
function Main
{
Write-Verbose "Begin script VersionNumberGenerator.ps1"
Write-Verbose "Source Directory = $SourceDirectory"
Write-Verbose "GenerateReleaseVersion = $GenerateReleaseVersion"
Write-Verbose "VersionOverride = $VersionOverride"
$overridedVerNumbers = ParseVersionOverride $VersionOverride
Push-Location $SourceDirectory
$gitTraceOriginal = $env:GIT_TRACE
try
{
$env:GIT_TRACE = 1
$tagInfo = GetLastTagInfo
if ($overridedVerNumbers)
{
$versionNums = $overridedVerNumbers
}
else
{
$branchObject = GetBranchInfo
# deep copy
$versionNums = $tagInfo.VerNums | foreach { $_ }
if ($branchObject.Type -eq [BranchType]::Master)
{
$versionNums[2] = [int]($versionNums[2]) + 1
$versionNums[3] = 0
}
else
{
$verNumLength = $branchObject.VerNums.length
# if git describe doesn't match branch name, use the branch name and set remaining numbers to 0
if ($branchObject.VerNums[0..$verNumLength] | where { $versionNums[0..$verNumLength] -notcontains $_})
{
Write-Verbose "Last tag doesn't match branch name - using branch name version instead"
[array]::copy($branchObject.VerNums, $versionNums, $verNumLength)
if ($branchObject.Type -eq [BranchType]::Hotfix -or $branchObject.Type -eq [BranchType]::Patch)
{
$versionNums[3] = 0
}
if ($branchObject.Type -eq [BranchType]::Patch)
{
$versionNums[2] = 0
}
}
else
{
if ($branchObject.Type -eq [BranchType]::Hotfix)
{
$versionNums[3] = [int]($versionNums[3]) + 1
}
elseif ($branchObject.Type -eq [BranchType]::Patch)
{
$versionNums[2] = [int]($versionNums[2]) + 1
$versionNums[3] = 0
}
}
}
}
$versionString = FormatVersionNumsIntoString $versionNums $GenerateReleaseVersion $tagInfo.CommitInfo
Write-Host "##vso[task.setvariable variable=GLTFSDKVersionNumber;]$versionString"
Write-Verbose "New version number is: $versionString"
Write-Verbose "Set GLTFSDKVersionNumber to $versionString"
Write-Verbose "Exiting script VersionNumberGenerator.ps1"
}
finally
{
Pop-Location
$env:GIT_TRACE = $gitTraceOriginal
}
return $versionString
}
# Checks that the provided override version is valid and returns a string array containing the separate version parts.
function ParseVersionOverride($VersionOverride)
{
if ($VersionOverride -match "^(\d+)\.(\d+)\.(\d+)\.(\d+)$")
{
return $Matches[1..4]
}
elseif (!$VersionOverride)
{
return $null
}
Write-Error "Version Override is not valid: must be empty or a 4-part version number, ex. 1.4.6.0"
}
function GetBranchInfo()
{
# If this is a PR build, derive versions using the branch we're merging to
if ($Env:SYSTEM_PULLREQUEST_TARGETBRANCH) {
$gitBranchName = $Env:SYSTEM_PULLREQUEST_TARGETBRANCH
# If this is a central build that isn't a PR, use the branch we're building on
} elseif ($Env:BUILD_SOURCEBRANCH) {
$gitBranchName = $Env:BUILD_SOURCEBRANCH
# Otherwise, just make git calls to see if there's a branch on the commit we're building
} else {
$gitBranchName = & $GitCommand name-rev --name-only HEAD
}
if ($gitBranchName -match "^refs/heads/(.+)$") {
$gitBranchName = $matches[1]
}
Write-Verbose "Branch name: $gitBranchName"
$info = [PSObject]@{ Type=""; VerNums=""}
if ($gitBranchName -match "^Release/(\d+)\.(\d+).(\d+)$")
{
$info.Type = [BranchType]::Hotfix
$info.VerNums = $Matches[1..3]
}
elseif ($gitBranchName -match "^Release/(\d+)\.(\d+)$")
{
$info.Type = [BranchType]::Patch
$info.VerNums = $Matches[1..2]
}
else
{
$info.Type = [BranchType]::Master
}
Write-Verbose "$($info.Type) branch detected"
return $info
}
# Formats the given array of version numbers into a final version string
# Pre-release versions are suffixed with additional commit information
function FormatVersionNumsIntoString($versionNums, $generateRelease, $commitInfo)
{
$result = $versionNums -join '.'
if (!$generateRelease)
{
$result += "-b"
$result += $commitInfo
}
return $result
}
# Calls git describe to find the last tag, given overrided version numbers. If there is no tag found, it will error or continue depending on $noMatchShouldError
# Note: the [0-9]* in the git match will look for a single digit and then wildcard, so "1a" would match even though it is an invalid version number.
# So, immediately afterwards, we make sure it uses only digits using more powerful regex matching
function GetLastTagInfo
{
$lastTag = & $GitCommand describe --tags --long --dirty --always --first-parent --match "[rv][0-9]*.[0-9]*.[0-9]"
Write-Verbose "Git describe result: $lastTag"
if ($lastTag -match "[rv](\d+)\.(\d+)\.(\d+)\.(\d+)-(\d+)(-g\S{7})\S*$")
{
$info = [PSObject]@{ VerNums=""; CommitInfo=""}
$info.VerNums = $Matches[1..4]
$info.CommitInfo = ("{0:D2}" -f [int]$Matches[5]) + $Matches[6]
return $info
}
Write-Error "No tag found with format: $formatString. Erroring out."
}
Main

Просмотреть файл

@ -1,31 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
# Based on the build reason, modify the build output location and set some
# default VSTS variables that will control behavior. If these variables have
# been explicitly set this script won't override them.
# See build.reason at: https://www.visualstudio.com/en-us/docs/build/define/variables
[CmdletBinding()]
param(
[string]$SourceDirectory = $env:BUILD_SOURCESDIRECTORY,
[string]$CommitId = $env:BUILD_SOURCEVERSION,
[string]$BranchName = $env:BUILD_SOURCEBRANCH,
[string]$VersionOverride,
[string]$GenerateReleaseVersion = $false,
[string]$ModifyWindowsStoreApps = $true,
[string]$ModifyCoAppPackages = $true,
[string]$ModifyNuGetPackages = $true,
[string]$WriteVersionHeader = $true,
[string]$ExcludeFolders
)
$ErrorActionPreference = "Stop"
function Main
{
$versionString = . "$PSScriptRoot\VersionGenerator.ps1" -SourceDirectory $SourceDirectory -VersionOverride $VersionOverride -GenerateReleaseVersion $GenerateReleaseVersion -Verbose
. "$PSScriptRoot\VersionModifier.ps1" -SourceDirectory $SourceDirectory -CommitId $CommitId -BranchName $BranchName -ExcludeFolders $ExcludeFolders -VersionString $versionString -ModifyWindowsStoreApps $ModifyWindowsStoreApps -ModifyCoAppPackages $ModifyCoAppPackages -ModifyNuGetPackages $ModifyNuGetPackages -WriteVersionHeader $WriteVersionHeader -Verbose
}
Main

Просмотреть файл

@ -1,251 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Scans the source tree for various file types and modifies their version numbers to all be the same
depending on the version of the build
.DESCRIPTION
Scans the source tree for Windows Store App package.appxmanifest files, CoApp autopkg files and NuGet nuspec files.
For each one modifies the version information stored in the package metadata appropriately.
Nuget and CoApp builds (ie based on autopkg or nuspec files) have their version (xml) tag replaced directly by the
version string. AppxManifest files only have the X.Y.Z modified because they cannot contain any other semantic
information within their version information.
.PARAMETER SourceDirectory
MANDATORY. The root source tree to scan.
.PARAMETER ModifyWindowsStoreApps
Whether or not to modify the package.appxmanifest files for Windows Store Apps.
.PARAMETER ModifyCoAppPackages
Whether or not to modify the autopkg files for c++ nuget packages generated with CoApp.
.PARAMETER ModifyNuGetPackages
Whether or not to modify the nuspec files for non-c++ nuget packages.
.PARAMETER WriteVersionHeader
Whether or not to modify the SpectreVersionInternal.h header file that is compiled into the Spectre::Utils::GetPackageVersion() method.
.PARAMETER ExcludeFolders
A semi-colon delimited list of folder patterns to ignore.
.PARAMETER VersionString
The version number we will use.
.EXAMPLE
VersionModifier.ps1 -VersionString "1.2.3.4" -SourceDirectory "D:\Build vNext\Builds\cb11432a\Infrastructure\Code" -ModifyWindowsStoreApps true -ExcludeFolders "Microsoft.Lift.WorkflowActivities.Tests"
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)][string]$VersionString,
[string]$SourceDirectory = $env:BUILD_SOURCESDIRECTORY,
[string]$CommitId = $env:BUILD_SOURCEVERSION,
[string]$BranchName = $env:BUILD_SOURCEBRANCH,
[string]$ModifyWindowsStoreApps = $true,
[string]$ModifyCoAppPackages = $true,
[string]$ModifyNuGetPackages = $true,
[string]$WriteVersionHeader = $true,
[string]$ExcludeFolders
)
$ErrorActionPreference = "Stop"
# Initialize global params
if (!$SourceDirectory)
{
$SourceDirectory = (Get-Item $PSScriptRoot).Parent.Parent.FullName
}
[Boolean]$ModifyWindowsStoreApps = [System.Convert]::ToBoolean($ModifyWindowsStoreApps)
[Boolean]$ModifyCoAppPackages = [System.Convert]::ToBoolean($ModifyCoAppPackages)
[Boolean]$ModifyNuGetPackages = [System.Convert]::ToBoolean($ModifyNuGetPackages)
[Boolean]$WriteVersionHeader = [System.Convert]::ToBoolean($WriteVersionHeader)
[Boolean]$IsReleaseVersion = [System.Convert]::ToBoolean($IsReleaseVersion)
function Main
{
if ($VersionString -notmatch "^((\d+)\.(\d+)\.(\d+)\.(\d+))")
{
Write-Error "Version string $VersionString must include 4 digits separated by ."
}
$versionNumString = $Matches[1]
Write-Verbose "Entering script VersionModifier.ps1"
Write-Verbose "Source Directory = $SourceDirectory"
Write-Verbose "Full version string is: $VersionString, version numbers are $versionNumString"
$buildInfo = "Built from git commit $($CommitId) ($BranchName) on build machine $(hostname) at $(Get-Date), version $VersionString"
Write-Verbose "Build info: $buildInfo"
if ($ModifyWindowsStoreApps)
{
ModifyPackageAppxManifest $versionNumString
}
if ($ModifyCoAppPackages)
{
ModifyAutoPkgFiles $buildInfo
}
if ($ModifyNuGetPackages)
{
ModifyNuSpecPackages $buildInfo
}
if ($WriteVersionHeader)
{
WriteVersionHeader
}
Write-Verbose "Exiting script VersionModifier.ps1"
}
<#make sure the reference apps still build
We aren't going to be publishing any of these (Although it'd be nice if we could, because then we could just run WACK tests real easy)
So, make sure that the version number in the appxmanifest still allows it to build, check if dashes are allowed and letters
Want to try to keep the hash in the release version if possible.
Use our release version, not this funky logic here
Version in appxmanifest must be in format: "Major.Minor.Build.Revision". Value must contain a valid four-part version number.
# Reads the version number from the given package.appxmanifest
# Modifies the version numbers in package.appxmanifest files
#>
function ModifyPackageAppxManifest
{
Foreach ($file in GetFileWrapper "*.appxmanifest")
{
Write-Verbose $file
[xml]$appxData = Get-Content $file
Write-Verbose "Replacing $($appxData.Package.Identity.Version) with $VersionString"
$appxData.Package.Identity.Version = $VersionString
$appxData.Save($file)
}
}
# Reads various properties from the given nuspec file and returns them in a hash-table
# Writes the new version number, tags and releaseNotes (the build info) into the nuSpec file
# Modifies the version numbers in nuspec files
function ModifyNuSpecPackages($buildInfo)
{
Foreach ($file in GetFileWrapper "*.nuspec")
{
Write-Verbose $file
[xml]$nuspecData = Get-Content $file
Write-Verbose "Replacing version $($nuspecData.package.metadata.version) with $VersionString"
Write-Verbose "Replacing release notes with: $buildInfo"
$nuspecData.package.metadata.version = $VersionString
$nuspecData.package.metadata.releaseNotes = $buildInfo
foreach ($dependency in $nuspecData.package.metadata.dependencies.dependency) {
if (IsPackageNameInternal $dependency.id) {
Write-Verbose "Replacing dependency $($dependency.id) version $($dependency.version) with $VersionString"
$dependency.version = $VersionString
}
}
$nuspecData.Save($file)
}
}
# Modifies the version numbers in autopkg files
function ModifyAutoPkgFiles($buildInfo)
{
Foreach ($file in GetFileWrapper "*.autopkg")
{
Write-Verbose $file
$newContent = ""
Foreach ($line in Get-Content $file)
{
# Match line of the form "<whitespace?>version<whitespace?>:<whitespace?><versionString><whitespace?><semicolon>"
if ($line -match "(\s+)?(version)(\s+)?:(\s+)?([\S\.]+)(\s+)?;")
{
Write-Verbose "Replacing $oldVersion with $VersionString"
$line = $line.Replace($matches[5], $VersionString)
}
# Match dependency line of the form "Microsoft.Lift.*/<version>;" or "Microsoft.Lift.*/<version>,"
elseif ($line -match "^\s+(\S+?)\/([0-9\.]+)[;,]$" -and (IsPackageNameInternal $matches[1]))
{
$packageName = $matches[1]
$oldVersion = $matches[2]
Write-Verbose "Replacing dependency $packageName version $oldVersion with $VersionString"
$line = $line.Replace($oldVersion, $VersionString)
}
# Match "releaseNotes" line which uses a string enclosed in double-quotes with an optional at symbol at the start
elseif ($line -match "(\s+)?(releaseNotes)(\s+)?:(\s+)?(@)?\""(.*)\""(\s+)?;")
{
# Replace releaseNotes with new value (the build info). We don't do a blind replace of the old release notes with the new because that fails if
# the existing release notes are a substring that is found elsewhere in the line. Instead we reconstruct the string, including whitespace and
# optional @ symbol, but replacing the current release notes section with the new one.
Write-Verbose "Replacing release notes with: $buildInfo"
$line = "$($matches[1])$($matches[2])$($matches[3]):$($matches[4])$($matches[5])""$buildInfo""$($matches[7]);"
}
$newContent += "$line`n"
}
Set-Content $file $newContent
}
}
function IsPackageNameInternal([String]$packageName) {
return $packageName.StartsWith("Microsoft.Lift")
}
# Writes Version.h file in nuspec files
# [void] prevents stringBuilder.Append from outputting capacity/length information
function WriteVersionHeader
{
$outPath = $SourceDirectory + "\Built\Int\";
$outFile = $outPath + "SpectreVersionInternal.h";
# This just writes SpectreVersionInternal.h into the intermediate folder
Write-Verbose "Writing $outFile with SPECTRE_PACKAGE_VERSION = $VersionString"
# just overwrite the whole .h file
$stringBuilder = New-Object System.Text.StringBuilder
[void]$stringBuilder.Append("// Copyright (c) Microsoft Corporation. All rights reserved." + [Environment]::NewLine)
[void]$stringBuilder.Append("// Licensed under the MIT License." + [Environment]::NewLine)
[void]$stringBuilder.Append([Environment]::NewLine)
[void]$stringBuilder.Append("#pragma once" + [Environment]::NewLine)
[void]$stringBuilder.Append([Environment]::NewLine)
[void]$stringBuilder.Append("// This file is autogenerated by VersionModifier.ps1" + [Environment]::NewLine)
[void]$stringBuilder.Append([Environment]::NewLine)
[void]$stringBuilder.Append("#define SPECTRE_PACKAGE_VERSION " + '"' + $VersionString + '"' + [Environment]::NewLine)
$item = New-Item $outPath -ItemType Directory -Force
Out-File -encoding "UTF8" -filepath $outFile -inputobject $stringBuilder.ToString() -force
}
# This function is a wrapper around Get-ChildItem so we can mock the return
function GetFileWrapper($searchPattern)
{
$files = Get-ChildItem $SourceDirectory -Recurse -Include $searchPattern
$fileNames = $files | Foreach-Object { $_.FullName }
return $fileNames | Where-Object { ! (ShouldIgnoreFile $_) }
}
function ShouldIgnoreFile($fileName)
{
foreach ($excludeFolder in ($ExcludeFolders.Split(";") | Where-Object { $_ }))
{
if ($fileName.Contains($excludeFolder))
{
Write-Verbose "Ignoring $fileName due to exclusion folder $ignore"
return $true
}
}
return $false
}
Main

Просмотреть файл

@ -1,98 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Build the Windows solutions from the command line.
.DESCRIPTION
Builds the Visual Studio projects generated by wininit.ps1
.PARAMETER NoNuGet
Disable build of NuGet packages
.EXAMPLE
winbuild.ps1
#>
[CmdletBinding()]
param(
[switch]$NoNuGet,
[switch]$NoArm,
[switch]$NoArm64,
[switch]$Nox64,
[switch]$NoWin32,
[switch]$NoDebug,
[switch]$NoRelease
)
$ErrorActionPreference = "stop"
function BuildPlatform($folder)
{
Write-Host "Build $folder"
Push-Location "$PSScriptRoot/../../Built/Int/$folder"
try
{
if (!$NoDebug)
{
cmake --build . --target install --config Debug
}
if (!$NoRelease)
{
cmake --build . --target install --config Release
}
}
finally
{
Pop-Location
}
}
function BuildNuGet()
{
#nuget pack $PSScriptRoot/GLTFSDK/GLTFSDK.macOS.CPP.nuspec -OutputDirectory $PSScriptRoot/Built/Out/NuGet
try
{
# You must install CoApp for this to work.
# See http://coapp.org/tutorials/installation.html
# Also, if it still doesn't work, try this https://github.com/appveyor/ci/issues/1446
Write-NuGetPackage $PSScriptRoot/../../GLTFSDK/GLTFSDK.Windows.CPP.autopkg
}
catch
{
Write-Error "Unable to generate NuGet package. Check that you have CoApp installed."
}
}
function Main()
{
if (!$NoWin32)
{
BuildPlatform "cmake_Win32"
}
if (!$Nox64)
{
BuildPlatform "cmake_x64"
}
if (!$NoArm)
{
BuildPlatform "cmake_ARM"
}
if (!$NoArm64)
{
BuildPlatform "cmake_ARM64"
}
if (!$NoNuGet)
{
BuildNuGet
}
}
Main

Просмотреть файл

@ -1,85 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Setup the Visual Studio solution for building on Windows.
This should be run after every git pull or clean and should be safe to run any time.
.DESCRIPTION
Runs the cmake build required to generate the solutions for building all variants of the GLTFSDK on Windows.
Regenerates SpectreVersionInternal.h
.PARAMETER Clean
Clean the output folders before building
.EXAMPLE
wininit.ps1
#>
[CmdletBinding()]
param(
[switch]$Clean,
[switch]$NoArm,
[switch]$NoArm64,
[switch]$Nox64,
[switch]$NoWin32
)
$ErrorActionPreference = "stop"
function CleanFiles()
{
Remove-Item "$PSScriptRoot/../../Built" -Recurse -Force -ErrorAction Ignore | Write-Host
Remove-Item "$PSScriptRoot/../../packages" -Recurse -Force -ErrorAction Ignore | Write-Host
}
function GeneratePlatform($platform, $path)
{
Write-Host "Generate $platform Solution"
New-Item -Path "$PSScriptRoot/../../Built/Int" -Name $path -ItemType Directory -Force | Out-Null
Push-Location "$PSScriptRoot/../../Built/Int/$path" | Out-Null
try
{
$argList = @(
"-G", "Visual Studio 16 2019",
"-A", "$platform"
)
& cmake $argList "..\..\.."
}
finally
{
Pop-Location | Out-Null
}
}
function Main()
{
if ($Clean)
{
CleanFiles
}
if (!$NoWin32)
{
GeneratePlatform "Win32" "cmake_Win32"
}
if (!$Nox64)
{
GeneratePlatform "x64" "cmake_x64"
}
if (!$NoArm)
{
GeneratePlatform "ARM" "cmake_ARM"
}
if (!$NoArm64)
{
GeneratePlatform "ARM64" "cmake_ARM64"
}
}
Main

Просмотреть файл

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="rapidjson.temprelease" version="0.0.2.20" targetFramework="native" />
</packages>

Просмотреть файл

@ -1,261 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{DE6A7757-2DF3-4705-829B-96A77BABF0B2}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>Deserialize</RootNamespace>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="Source\main.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\GLTFSDK\GLTFSDK.vcxproj">
<Project>{f656c078-7f2a-4753-9b92-5e959af80e26}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

Просмотреть файл

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="Source\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

Просмотреть файл

@ -1,261 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{DE6A7757-2DE3-4705-829B-96A77BABF0B2}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>Serialize</RootNamespace>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(SolutionDir)GLTFSDK\Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="Source\main.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\GLTFSDK\GLTFSDK.vcxproj">
<Project>{f656c078-7f2a-4753-9b92-5e959af80e26}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

Просмотреть файл

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="Source\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

Просмотреть файл

@ -1,115 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<ItemsProjectGuid>{45d41acc-2c3c-43d2-bc10-02aa73ffc7c7}</ItemsProjectGuid>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ProjectCapability Include="SourceItemsFromImports" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\AnimationUtils.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\BufferBuilder.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Color.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Deserialize.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Document.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Extension.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\ExtensionHandlers.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\ExtensionsKHR.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\GLBResourceReader.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\GLBResourceWriter.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\GLTFResourceReader.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\GLTFResourceWriter.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Math.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\MeshPrimitiveUtils.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\MicrosoftGeneratorVersion.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\PBRUtils.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\ResourceWriter.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Schema.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\SchemaValidation.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Serialize.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Validation.cpp" />
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Version.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\AnimationUtils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\BufferBuilder.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Color.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Constants.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Deserialize.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Document.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Exceptions.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Extension.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\ExtensionHandlers.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\ExtensionsKHR.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\ExtrasDocument.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\GLBResourceReader.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\GLBResourceWriter.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\GLTF.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\GLTFResourceReader.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\GLTFResourceWriter.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\IStreamCache.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\IStreamReader.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\IStreamWriter.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\IndexedContainer.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Math.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\MeshPrimitiveUtils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\MicrosoftGeneratorVersion.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Optional.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\PBRUtils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\RapidJsonUtils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\ResourceReaderUtils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\ResourceWriter.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Schema.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\SchemaValidation.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Serialize.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\StreamCache.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\StreamCacheLRU.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\StreamUtils.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Traverse.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Validation.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Version.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Visitor.h" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\accessor.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\accessor.sparse.indices.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\accessor.sparse.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\accessor.sparse.values.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\animation.channel.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\animation.channel.target.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\animation.sampler.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\animation.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\asset.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\buffer.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\bufferView.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\camera.orthographic.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\camera.perspective.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\camera.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\extension.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\extras.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\glTF.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\glTFChildOfRootProperty.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\glTFProperty.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\glTFid.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\image.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\material.normalTextureInfo.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\material.occlusionTextureInfo.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\material.pbrMetallicRoughness.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\material.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\mesh.primitive.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\mesh.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\node.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\sampler.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\scene.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\skin.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\texture.schema.json" />
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\textureInfo.schema.json" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,308 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{5a13d977-5e8b-49dd-b668-963625ef9f63}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\GLTFSDK">
<UniqueIdentifier>{a70fdcf2-7d10-4464-92b9-354dca3e5455}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{aced3b92-d8be-4cbb-b67e-2fd30a9cf404}</UniqueIdentifier>
</Filter>
<Filter Include="Header Files\GLTFSDK">
<UniqueIdentifier>{2d9c059f-2d4b-4972-959d-466c338929c7}</UniqueIdentifier>
</Filter>
<Filter Include="Schema">
<UniqueIdentifier>{b291fdfc-80fc-4b07-9b60-64a6373f5409}</UniqueIdentifier>
</Filter>
<Filter Include="Schema\Extension">
<UniqueIdentifier>{f49e18b0-39bc-4049-8304-ab9683888d6f}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\AnimationUtils.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\BufferBuilder.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Color.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Deserialize.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Document.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Extension.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\ExtensionHandlers.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\ExtensionsKHR.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\GLBResourceReader.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\GLBResourceWriter.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\GLTFResourceReader.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\GLTFResourceWriter.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Math.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\MeshPrimitiveUtils.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\MicrosoftGeneratorVersion.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\PBRUtils.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\ResourceWriter.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Serialize.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Validation.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Version.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\SchemaValidation.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
<ClCompile Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Source\Schema.cpp">
<Filter>Source Files\GLTFSDK</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\AnimationUtils.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Color.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Constants.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\BufferBuilder.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Deserialize.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Document.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Exceptions.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Extension.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\ExtensionHandlers.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\ExtensionsKHR.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\ExtrasDocument.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\GLBResourceReader.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\GLBResourceWriter.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\GLTF.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\GLTFResourceReader.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\GLTFResourceWriter.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\IndexedContainer.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\IStreamReader.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\IStreamCache.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\IStreamWriter.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Math.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\MeshPrimitiveUtils.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\MicrosoftGeneratorVersion.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\PBRUtils.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\RapidJsonUtils.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\ResourceReaderUtils.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\ResourceWriter.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Schema.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Serialize.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\StreamCache.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\StreamCacheLRU.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\StreamUtils.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Traverse.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Visitor.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Validation.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Version.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\SchemaValidation.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
<ClInclude Include="$(MSBuildThisFileDirectory)..\GLTFSDK\Inc\GLTFSDK\Optional.h">
<Filter>Header Files\GLTFSDK</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\accessor.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\accessor.sparse.indices.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\accessor.sparse.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\accessor.sparse.values.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\animation.channel.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\animation.channel.target.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\animation.sampler.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\animation.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\asset.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\buffer.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\bufferView.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\camera.orthographic.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\camera.perspective.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\camera.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\extension.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\extras.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\glTF.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\glTFChildOfRootProperty.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\glTFProperty.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\glTFid.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\image.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\material.normalTextureInfo.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\material.occlusionTextureInfo.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\material.pbrMetallicRoughness.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\material.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\mesh.primitive.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\mesh.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\node.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\sampler.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\scene.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\skin.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\texture.schema.json">
<Filter>Schema</Filter>
</None>
<None Include="$(MSBuildThisFileDirectory)..\GLTFSDK\schema\textureInfo.schema.json">
<Filter>Schema</Filter>
</None>
</ItemGroup>
</Project>

Просмотреть файл

@ -1,112 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2003
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLTFSDK", "GLTFSDK\GLTFSDK.vcxproj", "{F656C078-7F2A-4753-9B92-5E959AF80E26}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLTFSDK.Test", "GLTFSDK.Test\GLTFSDK.Test.vcxproj", "{F170B140-6AB9-4014-97D9-D897E0493CEC}"
ProjectSection(ProjectDependencies) = postProject
{F656C078-7F2A-4753-9B92-5E959AF80E26} = {F656C078-7F2A-4753-9B92-5E959AF80E26}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLTFSDK.Shared.CPP", "GLTFSDK.Shared.CPP\GLTFSDK.Shared.CPP.vcxitems", "{45D41ACC-2C3C-43D2-BC10-02AA73FFC7C7}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLTFSDK.TestUtils", "GLTFSDK.TestUtils\GLTFSDK.TestUtils.vcxitems", "{F4FD814F-0664-49AE-A41D-99F1BB24F0CE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{86B90B4A-0EEE-4154-8A57-003225F65D6B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Deserialize", "GLTFSDK.Samples\Deserialize\Deserialize.vcxproj", "{DE6A7757-2DF3-4705-829B-96A77BABF0B2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Serialize", "GLTFSDK.Samples\Serialize\Serialize.vcxproj", "{DE6A7757-2DE3-4705-829B-96A77BABF0B2}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
GLTFSDK.Shared.CPP\GLTFSDK.Shared.CPP.vcxitems*{45d41acc-2c3c-43d2-bc10-02aa73ffc7c7}*SharedItemsImports = 9
GLTFSDK.TestUtils\GLTFSDK.TestUtils.vcxitems*{f4fd814f-0664-49ae-a41d-99f1bb24f0ce}*SharedItemsImports = 9
GLTFSDK.Shared.CPP\GLTFSDK.Shared.CPP.vcxitems*{f656c078-7f2a-4753-9b92-5e959af80e26}*SharedItemsImports = 4
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|ARM = Release|ARM
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Debug|ARM.ActiveCfg = Debug|ARM
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Debug|ARM.Build.0 = Debug|ARM
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Debug|ARM64.ActiveCfg = Debug|ARM64
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Debug|ARM64.Build.0 = Debug|ARM64
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Debug|x64.ActiveCfg = Debug|x64
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Debug|x64.Build.0 = Debug|x64
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Debug|x86.ActiveCfg = Debug|Win32
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Debug|x86.Build.0 = Debug|Win32
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Release|ARM.ActiveCfg = Release|ARM
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Release|ARM.Build.0 = Release|ARM
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Release|ARM64.ActiveCfg = Release|ARM64
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Release|ARM64.Build.0 = Release|ARM64
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Release|x64.ActiveCfg = Release|x64
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Release|x64.Build.0 = Release|x64
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Release|x86.ActiveCfg = Release|Win32
{F656C078-7F2A-4753-9B92-5E959AF80E26}.Release|x86.Build.0 = Release|Win32
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Debug|ARM.ActiveCfg = Debug|ARM
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Debug|ARM.Build.0 = Debug|ARM
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Debug|ARM64.ActiveCfg = Debug|ARM
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Debug|x64.ActiveCfg = Debug|x64
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Debug|x64.Build.0 = Debug|x64
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Debug|x86.ActiveCfg = Debug|Win32
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Debug|x86.Build.0 = Debug|Win32
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Release|ARM.ActiveCfg = Release|ARM
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Release|ARM.Build.0 = Release|ARM
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Release|ARM64.ActiveCfg = Release|ARM
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Release|x64.ActiveCfg = Release|x64
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Release|x64.Build.0 = Release|x64
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Release|x86.ActiveCfg = Release|Win32
{F170B140-6AB9-4014-97D9-D897E0493CEC}.Release|x86.Build.0 = Release|Win32
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Debug|ARM.ActiveCfg = Debug|ARM
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Debug|ARM.Build.0 = Debug|ARM
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Debug|ARM64.ActiveCfg = Debug|ARM64
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Debug|ARM64.Build.0 = Debug|ARM64
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Debug|x64.ActiveCfg = Debug|x64
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Debug|x64.Build.0 = Debug|x64
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Debug|x86.ActiveCfg = Debug|Win32
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Debug|x86.Build.0 = Debug|Win32
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Release|ARM.ActiveCfg = Release|ARM
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Release|ARM.Build.0 = Release|ARM
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Release|ARM64.ActiveCfg = Release|ARM64
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Release|ARM64.Build.0 = Release|ARM64
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Release|x64.ActiveCfg = Release|x64
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Release|x64.Build.0 = Release|x64
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Release|x86.ActiveCfg = Release|Win32
{DE6A7757-2DF3-4705-829B-96A77BABF0B2}.Release|x86.Build.0 = Release|Win32
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Debug|ARM.ActiveCfg = Debug|ARM
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Debug|ARM.Build.0 = Debug|ARM
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Debug|ARM64.ActiveCfg = Debug|ARM64
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Debug|ARM64.Build.0 = Debug|ARM64
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Debug|x64.ActiveCfg = Debug|x64
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Debug|x64.Build.0 = Debug|x64
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Debug|x86.ActiveCfg = Debug|Win32
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Debug|x86.Build.0 = Debug|Win32
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Release|ARM.ActiveCfg = Release|ARM
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Release|ARM.Build.0 = Release|ARM
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Release|ARM64.ActiveCfg = Release|ARM64
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Release|ARM64.Build.0 = Release|ARM64
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Release|x64.ActiveCfg = Release|x64
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Release|x64.Build.0 = Release|x64
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Release|x86.ActiveCfg = Release|Win32
{DE6A7757-2DE3-4705-829B-96A77BABF0B2}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{DE6A7757-2DF3-4705-829B-96A77BABF0B2} = {86B90B4A-0EEE-4154-8A57-003225F65D6B}
{DE6A7757-2DE3-4705-829B-96A77BABF0B2} = {86B90B4A-0EEE-4154-8A57-003225F65D6B}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B683866C-07F1-4E03-8D84-0A683408D980}
EndGlobalSection
EndGlobal

Просмотреть файл

@ -1,50 +0,0 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Microsoft.glTF.Android.CPP</id>
<version>0.0.0.0</version>
<title>Microsoft.glTF.Android.CPP</title>
<authors>Microsoft</authors>
<owners>Microsoft</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>A C++ library for decoding and encoding glTF files.</description>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<licenseUrl>https://opensource.org/licenses/MIT</licenseUrl>
<projectUrl>https://aka.ms/Y8fymc</projectUrl>
<iconUrl>https://i.imgur.com/dj5ogtZ.png</iconUrl>
<tags></tags>
<releaseNotes>(Replaced by NuGet build system)</releaseNotes>
</metadata>
<files>
<!-- x86|Debug -->
<file src="..\Built\Out\android_x86\Debug\GLTFSDK\libGLTFSDK.a" target="\build\native\lib\x86\Debug\static" />
<!-- x86|Release -->
<file src="..\Built\Out\android_x86\Release\GLTFSDK\libGLTFSDK.a" target="\build\native\lib\x86\Release\static" />
<!-- x64|Debug -->
<file src="..\Built\Out\android_x86_64\Debug\GLTFSDK\libGLTFSDK.a" target="\build\native\lib\x86_64\Debug\static" />
<!-- x64|Release -->
<file src="..\Built\Out\android_x86_64\Release\GLTFSDK\libGLTFSDK.a" target="\build\native\lib\x86_64\Release\static" />
<!-- arm32|Debug -->
<file src="..\Built\Out\android_armeabi-v7a\Debug\GLTFSDK\libGLTFSDK.a" target="\build\native\lib\armeabi-v7a\Debug\static" />
<!-- arm32|Release -->
<file src="..\Built\Out\android_armeabi-v7a\Release\GLTFSDK\libGLTFSDK.a" target="\build\native\lib\armeabi-v7a\Release\static" />
<!-- arm64|Debug -->
<file src="..\Built\Out\android_arm64-v8a\Debug\GLTFSDK\libGLTFSDK.a" target="\build\native\lib\arm64-v8a\Debug\static" />
<!-- arm64|Release -->
<file src="..\Built\Out\android_arm64-v8a\Release\GLTFSDK\libGLTFSDK.a" target="\build\native\lib\arm64-v8a\Release\static" />
<!-- Build (C++) -->
<file src="..\GLTFSDK\Inc\**\*" target="\build\native\include" />
<!-- Build (C++) -->
<file src="..\Built\Out\RapidJSON\include\**\*" target="\build\native\include" />
<!-- CMake Module -->
<file src="..\Build\CMake\Android\FindGLTFSDK.android_x86.cmake" target="" />
<file src="..\Build\CMake\Android\FindGLTFSDK.android_x86_64.cmake" target="" />
<file src="..\Build\CMake\Android\FindGLTFSDK.android_armeabi-v7a.cmake" target="" />
<file src="..\Build\CMake\Android\FindGLTFSDK.android_arm64-v8a.cmake" target="" />
<!-- Readme files -->
<file src="..\LICENSE**" target="\" />
<file src="..\thirdPartyNotices.txt" target="\" />
<file src="..\readme.md" target="\" />
</files>
</package>

Просмотреть файл

@ -1,130 +0,0 @@
configurations {
Platform {
key : "Platform";
choices: { Win32, x64, ARM, ARM64, AnyCPU };
Win32.aliases : { x86, win32, ia32, 386 };
x64.aliases : { x64, amd64, em64t, intel64, x86-64, x86_64 };
ARM.aliases : { arm, woa };
ARM64.aliases : { arm64 };
AnyCPU.aliases : { anycpu, any };
};
}
nuget {
nuspec {
id = Microsoft.glTF.VS2017.CPP;
version : 0.0.0.0;
title : Microsoft.glTF.VS2017.CPP;
authors : { Microsoft };
owners : { Microsoft };
requireLicenseAcceptance : true;
summary : @"A C++ library for decoding and encoding glTF files.";
description : @"A C++ library for decoding and encoding glTF files.";
copyright : @"© Microsoft Corporation. All rights reserved.";
licenseUrl : "https://opensource.org/licenses/MIT";
projectUrl : "https://aka.ms/Y8fymc";
iconUrl : "https://i.imgur.com/dj5ogtZ.png";
releaseNotes: "(Replaced by NuGet build system)";
}
files {
#defines {
BASE = "..";
};
readmes:{
#destination = ${pkg_root};
"${BASE}\LICENSE",
"${BASE}\thirdPartyNotices.txt",
"${BASE}\readme.md"
};
side-by-side-symbols += {
#output {
package = default;
};
#destination : ${d_lib};
};
nestedIncludePluginManager:{
#destination = ${d_include}GLTFSDK;
"${BASE}\GLTFSDK\Inc\GLTFSDK\*.h",
};
nested2IncludePluginManager: {
#destination = ${d_include}rapidjson;
"${BASE}\Built\Out\RapidJSON\include\rapidjson\**\*.h"
};
[win32,debug] {
lib: {
${BASE}\Built\Out\windows_Win32\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_Win32\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[win32,release] {
lib: {
${BASE}\Built\Out\windows_Win32\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_Win32\Release\GLTFSDK\GLTFSDK.pdb
};
};
[x64,debug] {
lib: {
${BASE}\Built\Out\windows_x64\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_x64\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[x64,release] {
lib: {
${BASE}\Built\Out\windows_x64\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_x64\Release\GLTFSDK\GLTFSDK.pdb
};
};
[arm,debug] {
lib: {
${BASE}\Built\Out\windows_ARM\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[arm,release] {
lib: {
${BASE}\Built\Out\windows_ARM\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM\Release\GLTFSDK\GLTFSDK.pdb
};
};
[arm64,debug] {
lib: {
${BASE}\Built\Out\windows_ARM64\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM64\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[arm64,release] {
lib: {
${BASE}\Built\Out\windows_ARM64\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM64\Release\GLTFSDK\GLTFSDK.pdb
};
};
};
}

Просмотреть файл

@ -1,130 +0,0 @@
configurations {
Platform {
key : "Platform";
choices: { Win32, x64, ARM, ARM64, AnyCPU };
Win32.aliases : { x86, win32, ia32, 386 };
x64.aliases : { x64, amd64, em64t, intel64, x86-64, x86_64 };
ARM.aliases : { arm, woa };
ARM64.aliases : { arm64 };
AnyCPU.aliases : { anycpu, any };
};
}
nuget {
nuspec {
id = Microsoft.glTF.VS2019.CPP;
version : 0.0.0.0;
title : Microsoft.glTF.VS2019.CPP;
authors : { Microsoft };
owners : { Microsoft };
requireLicenseAcceptance : true;
summary : @"A C++ library for decoding and encoding glTF files.";
description : @"A C++ library for decoding and encoding glTF files.";
copyright : @"© Microsoft Corporation. All rights reserved.";
licenseUrl : "https://opensource.org/licenses/MIT";
projectUrl : "https://aka.ms/Y8fymc";
iconUrl : "https://i.imgur.com/dj5ogtZ.png";
releaseNotes: "(Replaced by NuGet build system)";
}
files {
#defines {
BASE = "..";
};
readmes:{
#destination = ${pkg_root};
"${BASE}\LICENSE",
"${BASE}\thirdPartyNotices.txt",
"${BASE}\readme.md"
};
side-by-side-symbols += {
#output {
package = default;
};
#destination : ${d_lib};
};
nestedIncludePluginManager:{
#destination = ${d_include}GLTFSDK;
"${BASE}\GLTFSDK\Inc\GLTFSDK\*.h",
};
nested2IncludePluginManager: {
#destination = ${d_include}rapidjson;
"${BASE}\Built\Out\RapidJSON\include\rapidjson\**\*.h"
};
[win32,debug] {
lib: {
${BASE}\Built\Out\windows_Win32\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_Win32\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[win32,release] {
lib: {
${BASE}\Built\Out\windows_Win32\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_Win32\Release\GLTFSDK\GLTFSDK.pdb
};
};
[x64,debug] {
lib: {
${BASE}\Built\Out\windows_x64\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_x64\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[x64,release] {
lib: {
${BASE}\Built\Out\windows_x64\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_x64\Release\GLTFSDK\GLTFSDK.pdb
};
};
[arm,debug] {
lib: {
${BASE}\Built\Out\windows_ARM\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[arm,release] {
lib: {
${BASE}\Built\Out\windows_ARM\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM\Release\GLTFSDK\GLTFSDK.pdb
};
};
[arm64,debug] {
lib: {
${BASE}\Built\Out\windows_ARM64\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM64\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[arm64,release] {
lib: {
${BASE}\Built\Out\windows_ARM64\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM64\Release\GLTFSDK\GLTFSDK.pdb
};
};
};
}

Просмотреть файл

@ -1,130 +0,0 @@
configurations {
Platform {
key : "Platform";
choices: { Win32, x64, ARM, ARM64, AnyCPU };
Win32.aliases : { x86, win32, ia32, 386 };
x64.aliases : { x64, amd64, em64t, intel64, x86-64, x86_64 };
ARM.aliases : { arm, woa };
ARM64.aliases : { arm64 };
AnyCPU.aliases : { anycpu, any };
};
}
nuget {
nuspec {
id = Microsoft.glTF.VS2017.CPP;
version : 0.0.0.0;
title : Microsoft.glTF.VS2017.CPP;
authors : { Microsoft };
owners : { Microsoft };
requireLicenseAcceptance : true;
summary : @"A C++ library for decoding and encoding glTF files.";
description : @"A C++ library for decoding and encoding glTF files.";
copyright : @"© Microsoft Corporation. All rights reserved.";
licenseUrl : "https://opensource.org/licenses/MIT";
projectUrl : "https://aka.ms/Y8fymc";
iconUrl : "https://i.imgur.com/dj5ogtZ.png";
releaseNotes: "(Replaced by NuGet build system)";
}
files {
#defines {
BASE = "..";
};
readmes:{
#destination = ${pkg_root};
"${BASE}\LICENSE",
"${BASE}\thirdPartyNotices.txt",
"${BASE}\readme.md"
};
side-by-side-symbols += {
#output {
package = default;
};
#destination : ${d_bin};
};
nestedIncludePluginManager:{
#destination = ${d_include}GLTFSDK;
"${BASE}\GLTFSDK\Inc\GLTFSDK\*.h",
};
nested2IncludePluginManager: {
#destination = ${d_include}rapidjson;
"${BASE}\Built\Out\RapidJSON\include\rapidjson\**\*.h"
};
[win32,debug] {
lib: {
${BASE}\Built\Out\windows_Win32\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_Win32\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[win32,release] {
lib: {
${BASE}\Built\Out\windows_Win32\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_Win32\Release\GLTFSDK\GLTFSDK.pdb
};
};
[x64,debug] {
lib: {
${BASE}\Built\Out\windows_x64\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_x64\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[x64,release] {
lib: {
${BASE}\Built\Out\windows_x64\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_x64\Release\GLTFSDK\GLTFSDK.pdb
};
};
[arm,debug] {
lib: {
${BASE}\Built\Out\windows_ARM\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[arm,release] {
lib: {
${BASE}\Built\Out\windows_ARM\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM\Release\GLTFSDK\GLTFSDK.pdb
};
};
[arm64,debug] {
lib: {
${BASE}\Built\Out\windows_ARM64\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM64\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[arm64,release] {
lib: {
${BASE}\Built\Out\windows_ARM64\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM64\Release\GLTFSDK\GLTFSDK.pdb
};
};
};
}

Просмотреть файл

@ -1,130 +0,0 @@
configurations {
Platform {
key : "Platform";
choices: { Win32, x64, ARM, ARM64, AnyCPU };
Win32.aliases : { x86, win32, ia32, 386 };
x64.aliases : { x64, amd64, em64t, intel64, x86-64, x86_64 };
ARM.aliases : { arm, woa };
ARM64.aliases : { arm64 };
AnyCPU.aliases : { anycpu, any };
};
}
nuget {
nuspec {
id = Microsoft.glTF.VS2019.CPP;
version : 0.0.0.0;
title : Microsoft.glTF.VS2019.CPP;
authors : { Microsoft };
owners : { Microsoft };
requireLicenseAcceptance : true;
summary : @"A C++ library for decoding and encoding glTF files.";
description : @"A C++ library for decoding and encoding glTF files.";
copyright : @"© Microsoft Corporation. All rights reserved.";
licenseUrl : "https://opensource.org/licenses/MIT";
projectUrl : "https://aka.ms/Y8fymc";
iconUrl : "https://i.imgur.com/dj5ogtZ.png";
releaseNotes: "(Replaced by NuGet build system)";
}
files {
#defines {
BASE = "..";
};
readmes:{
#destination = ${pkg_root};
"${BASE}\LICENSE",
"${BASE}\thirdPartyNotices.txt",
"${BASE}\readme.md"
};
side-by-side-symbols += {
#output {
package = default;
};
#destination : ${d_bin};
};
nestedIncludePluginManager:{
#destination = ${d_include}GLTFSDK;
"${BASE}\GLTFSDK\Inc\GLTFSDK\*.h",
};
nested2IncludePluginManager: {
#destination = ${d_include}rapidjson;
"${BASE}\Built\Out\RapidJSON\include\rapidjson\**\*.h"
};
[win32,debug] {
lib: {
${BASE}\Built\Out\windows_Win32\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_Win32\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[win32,release] {
lib: {
${BASE}\Built\Out\windows_Win32\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_Win32\Release\GLTFSDK\GLTFSDK.pdb
};
};
[x64,debug] {
lib: {
${BASE}\Built\Out\windows_x64\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_x64\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[x64,release] {
lib: {
${BASE}\Built\Out\windows_x64\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_x64\Release\GLTFSDK\GLTFSDK.pdb
};
};
[arm,debug] {
lib: {
${BASE}\Built\Out\windows_ARM\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[arm,release] {
lib: {
${BASE}\Built\Out\windows_ARM\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM\Release\GLTFSDK\GLTFSDK.pdb
};
};
[arm64,debug] {
lib: {
${BASE}\Built\Out\windows_ARM64\Debug\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM64\Debug\GLTFSDK\GLTFSDK.pdb
};
};
[arm64,release] {
lib: {
${BASE}\Built\Out\windows_ARM64\Release\GLTFSDK\GLTFSDK.lib,
};
side-by-side-symbols: {
${BASE}\Built\Out\windows_ARM64\Release\GLTFSDK\GLTFSDK.pdb
};
};
};
}

Просмотреть файл

@ -1,32 +0,0 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Microsoft.glTF.iOS.CPP</id>
<version>0.0.0.0</version>
<title>Microsoft.glTF.iOS.CPP</title>
<authors>Microsoft</authors>
<owners>Microsoft</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>A C++ library for decoding and encoding glTF files.</description>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<tags></tags>
<releaseNotes>(Replaced by NuGet build system)</releaseNotes>
</metadata>
<files>
<!-- iOS|Debug -->
<file src="../Built/Out/iOS/Debug/GLTFSDK/libGLTFSDK.a" target="/build/native/lib/iOS/Debug/static" />
<!-- iOS|Release -->
<file src="../Built/Out/iOS/Release/GLTFSDK/libGLTFSDK.a" target="/build/native/lib/iOS/Release/static" />
<!-- iOSSimulator|Debug -->
<file src="../Built/Out/iOSSimulator64/Debug/GLTFSDK/libGLTFSDK.a" target="/build/native/lib/iOSSimulator64/Debug/static" />
<!-- iOSSimulator|Release -->
<file src="../Built/Out/iOSSimulator64/Release/GLTFSDK/libGLTFSDK.a" target="/build/native/lib/iOSSimulator64/Release/static" />
<!-- Build (C++) -->
<file src="../GLTFSDK/Inc/**/*" target="/build/native/include" />
<!-- Build (C++) -->
<file src="..\Built\Out\RapidJSON\include\**\*" target="\build\native\include" />
<!-- CMake Modules -->
<file src="../Build/CMake/FindGLTFSDK.iOS.cmake" target="" />
<file src="../Build/CMake/FindGLTFSDK.iOSSimulator64.cmake" target="" />
</files>
</package>

Просмотреть файл

@ -1,34 +0,0 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Microsoft.glTF.macOS.CPP</id>
<version>0.0.0.0</version>
<title>Microsoft.glTF.macOS.CPP</title>
<authors>Microsoft</authors>
<owners>Microsoft</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>A C++ library for decoding and encoding glTF files.</description>
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<licenseUrl>https://opensource.org/licenses/MIT</licenseUrl>
<projectUrl>https://aka.ms/Y8fymc</projectUrl>
<iconUrl>https://i.imgur.com/dj5ogtZ.png</iconUrl>
<tags></tags>
<releaseNotes>(Replaced by NuGet build system)</releaseNotes>
</metadata>
<files>
<!-- x64|Debug -->
<file src="../Built/Out/macOS/Debug/GLTFSDK/libGLTFSDK.a" target="/build/native/lib/x64/Debug/static" />
<!-- x64|Release -->
<file src="../Built/Out/macOS/Release/GLTFSDK/libGLTFSDK.a" target="/build/native/lib/x64/Release/static" />
<!-- Build (C++) -->
<file src="../GLTFSDK/Inc/**/*" target="/build/native/include" />
<!-- Build (C++) -->
<file src="..\Built\Out\RapidJSON\include\**\*" target="\build\native\include" />
<!-- CMake Module -->
<file src="../Build/CMake/FindGLTFSDK.macOS.cmake" target="" />
<!-- Readme files -->
<file src="../LICENSE**" target="/" />
<file src="../thirdPartyNotices.txt" target="/" />
<file src="../readme.md" target="/" />
</files>
</package>

Просмотреть файл

@ -1,219 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F656C078-7F2A-4753-9B92-5E959AF80E26}</ProjectGuid>
<RootNamespace>GLTFSDK</RootNamespace>
<WindowsTargetPlatformVersion>10.0.10586.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<WholeProgramOptimization>false</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="Shared">
<Import Project="..\GLTFSDK.Shared.CPP\GLTFSDK.Shared.CPP.vcxitems" Label="Shared" />
</ImportGroup>
<PropertyGroup>
<OutDir>$(SolutionDir)Built\Out\$(PlatformToolset)\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</OutDir>
<IntDir>$(SolutionDir)Built\Int\$(PlatformToolset)\$(Platform)\$(Configuration)\$(MSBuildProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup>
<IncludePath>$(VC_IncludePath);$(WindowsSDK_IncludePath);$(OutDir)Inc;</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ItemDefinitionGroup>
<ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalIncludeDirectories>Inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MinimalRebuild>false</MinimalRebuild>
<TreatWarningAsError>true</TreatWarningAsError>
<AdditionalOptions>/permissive- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<PreBuildEvent>
<Command>powershell -ExecutionPolicy Bypass $(ProjectDir)GenerateSchemaJsonHeader.ps1 -outPath $(OutDir)Inc</Command>
</PreBuildEvent>
<PreBuildEvent>
<Message>Autogenerate SchemaJson.h header.</Message>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<None Include="GenerateSchemaJsonHeader.ps1" />
<None Include="GLTFSDK.CPP.autopkg" />
<None Include="packages.config" />
</ItemGroup>
<!--<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />-->
<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\rapidjson.temprelease.0.0.2.20\build\native\rapidjson.temprelease.targets" Condition="Exists('..\packages\rapidjson.temprelease.0.0.2.20\build\native\rapidjson.temprelease.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\rapidjson.temprelease.0.0.2.20\build\native\rapidjson.temprelease.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\rapidjson.temprelease.0.0.2.20\build\native\rapidjson.temprelease.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<None Include="GLTFSDK.CPP.autopkg" />
<None Include="packages.config" />
<None Include="GenerateSchemaJsonHeader.ps1" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="rapidjson.temprelease" version="0.0.2.20" targetFramework="native" />
</packages>

Просмотреть файл

@ -1,4 +1,4 @@
[![Build Status](https://gltfsdk.visualstudio.com/build/_apis/build/status/Microsoft.glTF-SDK)](https://gltfsdk.visualstudio.com/build/_build/latest?definitionId=1)
[![Build Status](https://github.com/microsoft/glTF-SDK/actions/workflows/ci.yml/badge.svg)](https://github.com/microsoft/glTF-SDK/actions/workflows/ci.yml)
# Microsoft glTF SDK - A C++ Deserializer/Serializer for glTF
@ -10,14 +10,6 @@
* Low memory overhead
* Utilities for converting input data of any type (e.g. float/uint8/uint16 RGB/RGBA color) into a single type such as float RGBA color
# Nuget Packages
* [Microsoft.glTF.VS2019.CPP](https://www.nuget.org/packages/Microsoft.glTF.VS2019.CPP/)
* [Microsoft.glTF.VS2017.CPP](https://www.nuget.org/packages/Microsoft.glTF.VS2017.CPP/)
* [Microsoft.glTF.macOS.CPP](https://www.nuget.org/packages/Microsoft.glTF.macOS.CPP/)
* [Microsoft.glTF.iOS.CPP](https://www.nuget.org/packages/Microsoft.glTF.iOS.CPP/)
* [Microsoft.glTF.Android.CPP](https://www.nuget.org/packages/Microsoft.glTF.Android.CPP/)
# Trademarks
glTF is a trademark of The Khronos Group Inc.

Просмотреть файл

@ -1,11 +0,0 @@
; DO NOT EDIT (unless you know what you are doing)
;
; This subdirectory is a git "subrepo", and this file is maintained by the
; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme
;
[subrepo]
remote = https://microsoft.visualstudio.com/DefaultCollection/Apps/_git/bigpark.canvas.xplatScripts
branch = master
commit = dc613aec03efa5ac16d41021a6cb28b435244864
parent = cef0f3b6b89a94b82c80d12f8c6c00d8ae787843
cmdver = 0.4.0

2
XPlatScripts/NuGet.macOS/.gitignore поставляемый
Просмотреть файл

@ -1,2 +0,0 @@
packages.config

Просмотреть файл

@ -1,24 +0,0 @@
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$NewVersion,
[Parameter()]
[String[]]$RootPackages,
[Parameter()]
[String]$SourceDirectory,
[Parameter()]
[String]$ExcludeFolders = "Build\packages"
)
$ErrorActionPreference = "stop"
$Verbose = [bool]$PSBoundParameters["Verbose"]
$CalculateClosure = Join-Path $PSScriptRoot "CalculateNugetPackageClosure.ps1"
$UpdatePackages = Join-Path $PSScriptRoot "UpdateNugetPackages.ps1"
function main
{
$closure = . $CalculateClosure -NewVersion $NewVersion -RootPackages $RootPackages -Verbose:$Verbose
. $UpdatePackages -NuGetPackageClosure $closure -SourceDirectory $SourceDirectory -ExcludeFolders $ExcludeFolders -Verbose:$Verbose
}
main

Просмотреть файл

@ -1,224 +0,0 @@
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$NewVersion,
[Parameter()]
[String[]]$RootPackages
)
$ErrorActionPreference = "stop"
$Verbose = [bool]$PSBoundParameters["Verbose"]
$InvokeVsts = Join-Path $PSScriptRoot "Invoke-VstsRestMethod.ps1"
function main
{
if (! $RootPackages)
{
$RootPackages = Get-Content (Join-Path $PSScriptRoot "CanvasCoreNugetPackages.config")
}
$packageRegistry = getPackageRegistry
$closure = @{}
$rootPackages | % { $closure[$_] = (getActualPackageVersion $_ $NewVersion $packageRegistry) }
foreach ($packageName in $rootPackages)
{
addPackageAndDirectDependencies $packageName $closure[$packageName] $closure $packageRegistry
}
return $closure
}
function addPackageAndDirectDependencies($packageName, $packageVersion, $closure, $packageRegistry)
{
$packageDependencies = getPackageDependencies $packageName $packageVersion $packageRegistry
foreach ($dependency in $packageDependencies)
{
addDependencyToClosure $dependency $closure $packageRegistry
}
}
function addDependencyToClosure($dependency, $closure, $packageRegistry)
{
$packageName = $dependency.packageName
$packageVersion = getMinimumDependencyVersion $dependency $packageRegistry
if (! $packageVersion)
{
Write-Verbose "Didn't find a valid version for $packageName"
return
}
Write-Verbose "Using version $packageVersion for $packageName"
$existing = $closure[$packageName]
if ($existing -and ($existing -ne $packageVersion))
{
# For now, we're just assuming that multiple packages can't depend on different versions of the same dependency.
# This works right now, but we may want to enhance this in the future by e.g. taking the maximum if
# there are conflicting versions.
Write-Error "Package $packageName has two conflicting versions: $packageVersion =/= $existing"
}
$closure[$packageName] = $packageVersion
}
function getMinimumDependencyVersion($dependency, $packageRegistry)
{
$packageInfo = $packageRegistry | ? { $_.name -eq $dependency.packageName }
if (! $packageInfo)
{
Write-Warning "Not updating version for dependency $($dependency.packageName) because it isn't in the BigPark feed"
return $null
}
# Right now Canvas dependency versions are only specified with inclusive mins
if (! ($dependency.versionRange -match "\[(.+), \)"))
{
Write-Error "Don't know how to parse dependency $($dependency.packageName) range: $($dependency.versionRange)"
}
$partialMin = $matches[1]
Write-Verbose "Looking for the earliest version of $($dependency.packageName) that is at least $partialMin"
$versionsInRange = $packageInfo.versions.version | ? { (compareVersions $_ $partialMin) -ge 0 }
if ($versionsInRange.count -eq 0)
{
Write-Error "No available versions of $($dependency.packageName) in range $($dependency.versionRange)"
}
Write-Verbose "Available versions: $($versionsInRange -join ", ")"
return getMinimumVersion $versionsInRange
}
function getMinimumVersion($versions)
{
if (! $versions)
{
return $versions
}
$min = $null
foreach ($version in $versions)
{
if (($min -eq $null) -or ((compareVersions $version $min) -lt 0))
{
$min = $version.ToString()
}
}
return $min
}
# Return -1 if a < b, 1 if a > b, or 0 if a == b
# Doesn't do complicated nuget v3 prerelease comparisons
function compareVersions($a, $b)
{
$aRelease,$aPrerelease = $a.split("-", 2)
$bRelease,$bPrerelease = $b.split("-", 2)
$aParts = [int[]]$aRelease.split(".")
$bParts = [int[]]$bRelease.split(".")
# Pad out the version numbers with zeroes.
# e.g. 1.1 == 1.1.0
while ($aParts.count -lt $bParts.count)
{
$aParts += @(0)
}
while ($bParts.count -lt $aParts.count)
{
$bParts += @(0)
}
foreach ($idx in (0..($aParts.count-1)))
{
$cmp = compareScalars $aParts[$idx] $bParts[$idx]
if ($cmp -ne 0)
{
return $cmp
}
}
# If we're here the release part of the number is equal, so compare the prerelease part
# Note we're doing an alphabetic comparison, so e.g. 1.0.0-b2 > 1.0.0-b11
# This shouldn't matter because we don't typically take dependencies on prerelease versions
$cmp = compareScalars $aPrerelease $bPrerelease
return $cmp
}
function compareScalars($a, $b)
{
if ($a -lt $b)
{
return -1
}
if ($a -gt $b)
{
return 1
}
if ($a -eq $b)
{
return 0
}
Write-Error "Objects $a and $b aren't comparable"
}
function getPackageRegistry
{
return (. $InvokeVsts "https://microsoft.feeds.visualstudio.com/DefaultCollection/_apis/packaging/feeds/BigPark/packages?includeAllVersions=true" -Verbose:$Verbose).value
}
function getPackageDependencies($packageName, $packageVersion, $packageRegistry)
{
$packageInfo = $packageRegistry | ? { $_.name -eq $packageName }
if (! $packageInfo)
{
Write-Error "No package in the BigPark feed with name $packageName"
}
$shallowVersionInfo = $packageInfo.versions | ? { $_.version -eq $packageVersion }
if (! $shallowVersionInfo)
{
Write-Error "Version $packageVersion of $packageName is not in BigPark feed"
}
$versionUrl = "$($packageInfo.url)/Versions/$($shallowVersionInfo.id)"
return (. $InvokeVsts $versionUrl -Verbose:$Verbose).dependencies
}
function getActualPackageVersion($packageName, $packageVersion, $packageRegistry)
{
$availableVersions = ($packageRegistry | ? { $_.name -eq $packageName }).versions.version
if ($availableVersions -contains $packageVersion)
{
return $packageVersion
}
$normalizedVersion = getNormalizedVersion $packageVersion
if ($availableVersions -contains $normalizedVersion)
{
return $normalizedVersion
}
Write-Error "Version $packageVersion or $normalizedVersion of $packageName is not in BigPark feed"
}
function getNormalizedVersion($version)
{
$release,$prerelease = $version.split("-", 2)
$parts = $release.split(".")
while ($parts.length -gt 3 -and $parts[-1] -eq 0)
{
$parts = $parts[0..($parts.length-2)]
}
$release = $parts -join "."
return "$release-$prerelease"
}
main

Просмотреть файл

@ -1,9 +0,0 @@
Microsoft.Lift.Core.CPP
Microsoft.Lift.Core.CPP.symbols
Microsoft.Lift.Core.CX
Microsoft.Lift.Core.CX.symbols
Microsoft.Lift.Engine.CPP
Microsoft.Lift.Engine.CX
Microsoft.Lift.Loader.CPP
Microsoft.Lift.Loader.CX
Microsoft.Lift.Loader.CS

Просмотреть файл

@ -1,42 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Create NuGet access token file from plaintext PAT.
.DESCRIPTION
macOS credentials for NuGet do not work in the same way as
Windows due to OS support differences. We create a file
~/.nuget/pat.txt to hold the required personal access token
to be used by NuGet.
This file should be encrypted but currently is not, again due
to OS support issues.
.PARAMETER AccessToken
Takes a plaintext PersonalAccessToken and writes it out to PATFilename.
Note: macOS Powershell does not implement required functionality to
encrypt the PAT so is stored in plaintext.
.PARAMETER PATFilename
The filename to write the credentials (access token) to. Default is
~/.nuget/pat.txt
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[string]$AccessToken,
[string]$PATFilename = '~/.nuget/pat.txt'
)
$ErrorActionPreference = "Stop"
# create pat directory if it doesn't exist
$parentDir = Split-Path -Parent $PATFilename
New-Item $parentDir -type directory -force | Out-Null
# write token to file
$AccessToken | Out-File $PATFilename
Write-Host "Wrote access token to $PATFilename"

Просмотреть файл

@ -1,10 +0,0 @@
$ErrorActionPreference = "Stop"
$searchLocations = $GitLocations + @("git", "${env:ProgramFiles(x86)}\Git\bin\git.exe", "${env:ProgramFiles}\Git\bin\git.exe", "${env:ProgramW6432}\Git\bin\git.exe")
$git = ($searchLocations | ? { Get-Command $_ -ErrorAction SilentlyContinue } | Select -First 1)
if (! $git)
{
Write-Error "Unable to find git"
}
return $git

Просмотреть файл

@ -1,23 +0,0 @@
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
$AppxFilePath
)
$ErrorActionPreference = "stop"
[Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem') | Out-Null
$APPX_MANIFEST = "AppxManifest.xml"
function main
{
$file = [IO.Compression.ZipFile]::OpenRead($AppxFilePath).Entries | Where-Object { $_.FullName -eq $APPX_MANIFEST }
if (! $file)
{
Write-Error "Appx $AppxFilePath does not contain a $APPX_MANIFEST"
}
$reader = New-Object IO.StreamReader($file.Open())
return [xml]($reader.ReadToEnd())
}
main

Просмотреть файл

@ -1,137 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Download a VSTS build artifact.
.PARAMETER BuildId
The unique ID (NOT build number) of the build containing the artifact we want to download.
.PARAMETER ArtifactName
The name of the artifact we want to download.
.PARAMETER ItemPath
Supplying this parameter allows downloading of sub folder or file of an artifact. The item path starts from the root of the artifact folder
.PARAMETER OutPath
The local filesystem path we'll extract the artifact to.
.PARAMETER TeamCollectionUri
The uri of the collection, e.g. https://microsoft.visualstudio.com/.
Is set to the current collection if invoked through a build.
.PARAMETER TeamProject
The name of the project, e.g. Apps.
Is set to the current project if invoked through a build.
.PARAMETER PatPath
The path to a PAT token for making VSTS REST API calls.
.PARAMETER MaxTries
The maximum number of times we'll try downloading the artifact before giving up.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$BuildId,
[Parameter(Mandatory)]
[String]$ArtifactName,
[Parameter()]
[String]$ItemPath,
[Parameter(Mandatory)]
[String]$OutPath,
[Parameter()]
[String]$TeamCollectionUri = $env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI,
[Parameter()]
[String]$TeamProject = $env:SYSTEM_TEAMPROJECT,
[Parameter()]
[String]$PatPath = $env:VSTS_PAT_PATH,
[Parameter()]
[Int]$MaxTries = 10
)
$ErrorActionPreference = "stop"
$Verbose = [bool]$PSBoundParameters["Verbose"]
$GetAuthString = Join-Path $PSScriptRoot "Get-VstsRestAuthString.ps1"
$InvokeVsts = Join-Path $PSScriptRoot "Invoke-VstsRestMethod.ps1"
$InvokeWithRetries = Join-Path $PSScriptRoot "Invoke-CommandWithRetries.ps1"
Add-Type -AssemblyName System.IO.Compression.FileSystem
function main
{
$tempFile = [IO.Path]::GetTempFileName()
try
{
$downloadUrl = getDownloadUrl
downloadArtifact $downloadUrl $tempFile
Write-Verbose "Extracting $tempFile to $OutPath"
[IO.Compression.ZipFile]::ExtractToDirectory($tempFile, $OutPath)
# If $ItemPath is defined then move the subfolder $ItemPath into the root of $OutPath
# If $ItemPath is not defined then retain the full paths for backward compatibility.
if($ItemPath)
{
$toMove = "$OutPath/$ArtifactName/$ItemPath"
Move-Item $toMove $OutPath -Force
Remove-Item "$OutPath/$ArtifactName" -Force -Recurse
}
}
finally
{
Remove-Item $tempFile -Force
}
}
function getDownloadUrl
{
$uri = "$TeamCollectionUri`DefaultCollection/$TeamProject/_apis/build/builds/$BuildId/artifacts"
$artifacts = . $InvokeVsts -Uri $uri -ApiVersion "2.0" -PatPath $PatPath -Verbose:$Verbose
$artifact = $artifacts.value | Where-Object { $_.name -eq $ArtifactName }
if (! $artifact)
{
Write-Error "No artifact with name $ArtifactName"
}
$downloadUrl = $artifact.resource.downloadUrl
if (! $downloadUrl)
{
Write-Error "Artifact $ArtifactName doesn't have a download URL. Is it a UNC drop?"
}
# VSTS Artifact API does not explicitly support downloading sub folders or files, this generates the link VSTS would provide through the artifacts page
if($ItemPath)
{
$artifactItemPath = [uri]::EscapeDataString($ItemPath)
$artifactId = ($artifact.resource.data -split "/")[1]
return "${TeamCollectionUri}_apis/resources/Containers/${artifactId}?itemPath=${ArtifactName}%2F${artifactItemPath}&%24format=zip"
}
return $downloadUrl
}
function downloadArtifact($downloadUrl, $outFile)
{
# Using WebClient because Invoke-WebRequest is WAAAY too slow.
# TODO: Port Invoke-VstsRestMethod to use WebClient, and then use Invoke-VstsRestMethod here.
Write-Verbose "Downloading ${ArtifactName}: $downloadUrl => $outFile"
$client = New-Object System.Net.WebClient
$client.Headers.Add("Authorization", (. $GetAuthString -PatPath $PatPath -Verbose:$Verbose))
. $InvokeWithRetries -MaxTries $MaxTries -IsErrorRetriable ${function:isErrorRetriable} -Verbose:$Verbose -Command {
$client.DownloadFile($downloadUrl, $outFile)
}
}
function isErrorRetriable([Management.Automation.ErrorRecord]$err)
{
$statusCode = $err.Exception.Response.StatusCode
return $statusCode -and ([int]$statusCode -ge 500)
}
main

Просмотреть файл

@ -1,56 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Get the auth string needed to make a VSTS REST call.
.PARAMETER PatPath
Should only be used when called locally. The path to a file containing an encrypted PAT token. You can also provide a PatPath by setting the environment variable VSTS_PAT_PATH.
Can set up this file by doing the following:
* Create a PAT token here: https://microsoft.visualstudio.com/_details/security/tokens
* Run the following in PowerShell:
$pat = (Get-Credential).password # (set password to your PAT; username doesn't matter)
Set-Content "c:\creds\microsoftPat" ($pat | ConvertFrom-SecureString)
#>
[CmdletBinding()]
Param(
[Parameter()]
[String]$PatPath = $env:VSTS_PAT_PATH
)
$ErrorActionPreference = "stop"
$PatDocUrl = "https://microsoft.sharepoint.com/:o:/r/teams/segcentral/_layouts/15/WopiFrame.aspx?sourcedoc=%7B817af5db-69b2-413b-a333-4acfb9a5c0bf%7D"
function main
{
if ($env:SYSTEM_ACCESSTOKEN)
{
return "Bearer $env:SYSTEM_ACCESSTOKEN"
}
if ($PatPath)
{
$encodedPat = getEncodedPat
return "Basic $encodedPat"
}
Write-Error @"
No credentials available to invoke VSTS methods.
If this script was called from a VSTS build definition, ensure 'Allow Scripts to Access OAuth Token' is checked.
To get this script working locally, follow the instructions here: $PatDocUrl
"@
}
# Decrypt a secure string, and then convert to base64 (expected by auth headers)
# Taken from https://github.com/DarqueWarrior/team/blob/master/src/team.psm1
function getEncodedPat
{
[SecureString]$encryptedPat = Get-Content $PatPath | ConvertTo-SecureString
$credential = New-Object System.Management.Automation.PSCredential "foo",$encryptedPat
$decryptedPat = $credential.GetNetworkCredential().Password
return [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$decryptedPat"))
}
main

Просмотреть файл

@ -1,57 +0,0 @@
<#
.SYNOPSIS
Gets nuget.exe location.
.DESCRIPTION
Looks for nuget.exe in multiple program file locations.
.PARAMETER NuGetLocations
Additional locations in which to search for nuget.exe
.PARAMETER MinVerNumber
Minimum version number that the nuget command must be
#>
[CmdletBinding()]
Param(
[Parameter()]
[string[]]$NuGetLocations,
[Parameter()]
[string]$MinVerNumber = "4.0.0.0"
)
$ErrorActionPreference = "Stop"
function main
{
$searchLocations = $NuGetLocations + @(
"nuget",
"/usr/local/bin/nuget",
"/Library/Frameworks/Mono.framework/Versions/Current/Commands/nuget"
)
return ($searchLocations | Where-Object { NugetCommandIsValid $_ } | Select -First 1)
}
function NugetCommandIsValid($nuget)
{
if (!(Get-Command $nuget -ErrorAction SilentlyContinue))
{
return $false
}
$nugetVersionString = . $nuget "help" | Select -First 1
if ($nugetVersionString -match ".+((\d+)\.(\d+)\.(\d+)\.(\d+))")
{
$versionString = $matches[1]
Write-Verbose "Nuget found at $nuget with version number $versionString. Comparing to minimum version $minVerNum"
return ([Version]$versionString -ge [Version]$minVerNum)
}
Write-Error "Nuget command provided at path $nuget does not have `"nuget help`" command that lists a version number."
}
main

Просмотреть файл

@ -1,70 +0,0 @@
<#
.SYNOPSIS
Installs all passed-in appx files.
.PARAMETER AppxFiles
The list of appx files to install.
.PARAMETER DeviceIp
If passed in, we'll use WinAppDeploy to install the files onto the device at this IP.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String[]]$AppxFiles,
[Parameter()]
[String]$DeviceIp
)
$ErrorActionPreference = "Stop"
$Verbose = [bool]$PSBoundParameters["Verbose"]
$WinAppDeploy = "$PSScriptRoot/WinAppDeploy.ps1"
function main
{
if ($DeviceIp)
{
foreach ($appxFile in $appxFiles)
{
installAppxFile $appxFile
}
}
else
{
$AppxFiles | Foreach-Object { Add-AppxPackage -Path $_ -Verbose:$Verbose -ErrorAction Ignore }
}
}
function installAppxFile($appxFile)
{
while ($true)
{
try
{
. $WinAppDeploy -DeviceIp $DeviceIp -Command install -AdditionalArgs @("-file", $appxFile) | Write-Verbose
return
}
catch
{
$errorMessage = $_.exception.message
if ($errorMessage -match "A higher version .+ of this package is already installed")
{
Write-Host "Not installing $appxFile because a higher version is already installed."
return
}
if ($errorMessage -notmatch "The process cannot access the file because it is being used by another process")
{
throw
}
Write-Host "Cannot install $appxFile because the phone is trying to use an old version. Sleeping and trying again."
Start-Sleep -Seconds 10
}
}
}
main

Просмотреть файл

@ -1,139 +0,0 @@
[CmdletBinding()]
param(
[Parameter()]
[String]$Platform,
[Parameter()]
[String]$Configuration,
[Parameter()]
[String]$ApiLevel,
[Parameter()]
[String]$ReportPath,
[Parameter()]
[Object]$Tests
)
$DEST_PATH="/data/local/tmp"
function main()
{
$abi = findAbi
$AVD_NAME="AndroidAVD_$($abi)_$($Configuration)"
$ROOT_PATH = "$PSScriptRoot\..\.."
return (runTests $abi)
}
function findAbi()
{
$abi = "x86"
if ($Platform -eq "arm32")
{
$abi = "armeabi-v7a"
}
elseif ($Platform -eq "arm64")
{
$abi = "arm64-v8a"
}
elseif ($Platform -eq "x86_64")
{
$abi = "x86_64"
}
return $abi
}
function runTests($abi)
{
$testResult = @()
launchAvd $abi
foreach ($test in $Tests)
{
$testDir = $test.Name
$testName = $test.Name
$outputFilename = "$($testName).$($Configuration).android_$($abi)-GoogleTest.xml"
if (Test-Path $ReportPath\$outputFilename)
{
Remove-Item -Path $ReportPath\$outputFilename
}
pushTest $testDir $testName
$lines = runTest $testDir $testName $outputFilename
$testResult += [PSObject]@{ testBinaryName=$testName; testSucceeded=$true; output=$lines}
}
cleanAndDeleteEmulator
return $testResult
}
function launchAvd($abi)
{
cleanAndDeleteEmulator
Write-Verbose "launching avd"
$package = "system-images;android-$ApiLevel;google_apis;$abi"
echo no | avdmanager create avd -n $AVD_NAME -k $package -f | Write-Host
Write-Verbose "avd $($AVD_NAME) created"
start powershell "emulator -port 5554 -partition-size 900 -avd $AVD_NAME -no-audio -verbose -no-snapshot -wipe-data"
Write-Verbose "adb emulator-5554 waiting for device"
adb -s emulator-5554 wait-for-device | Write-Host
Write-Verbose "emulator-5554 booting"
$state = adb -s emulator-5554 shell getprop sys.boot_completed
$timeout = New-TimeSpan -Minutes 2
$customTimer = [diagnostics.stopwatch]::StartNew()
while (($customTimer.elapsed -lt $timeout) -and ($state -ne 1))
{
if ($state -like "*error*")
{
cleanAndDeleteEmulator
Write-Error "$($state), unable to start emulator"
}
Start-Sleep -Seconds 2
$state = adb -s emulator-5554 shell getprop sys.boot_completed
}
$customTimer.Stop()
if ($state -ne 1)
{
cleanAndDeleteEmulator
Write-Error "2 minutes timeout. Emulator state: $($state). Unable to start emulator within 2 minutes"
}
Write-Verbose "emulator-5554 boot completed."
}
function pushTest($testDir, $testName)
{
Write-Verbose "pushing test $testName"
adb -s emulator-5554 shell rm -rf $DEST_PATH/* | Write-Host
adb -s emulator-5554 push $ROOT_PATH\Built\Out\android_$abi\$Configuration\$testDir $DEST_PATH/ | Write-Host
adb -s emulator-5554 shell chmod 777 $DEST_PATH/$testDir/$testName | Write-Host
}
function runTest($testDir, $testName, $outputFilename)
{
Write-Verbose "running test $testName"
adb -s emulator-5554 shell "cd $DEST_PATH/$testDir; ./$testName --gtest_output=xml:$outputFilename" | Tee-Object -Variable outputLog | Write-Host
Write-Verbose "finished running $testName"
adb -s emulator-5554 pull $DEST_PATH/$testDir/$outputFilename $ReportPath | Write-Host
return $outputLog
}
function cleanAndDeleteEmulator()
{
Write-Verbose "cleaning and deleting emulator-5554"
$deviceList = adb devices
if ($deviceList -like "*emulator-5554*")
{
adb -s emulator-5554 shell rm -rf $DEST_PATH/* | Write-Host
adb -s emulator-5554 shell wipe data | Write-Host
adb -s emulator-5554 emu kill | Write-Host
}
$avdList = avdmanager list avd
if ($avdList -like "*$($AVD_NAME)*")
{
avdmanager delete avd -n $AVD_NAME | Write-Host
}
Write-Verbose "cleaning and deleting emulator-5554 completed."
}
function resolveString($string, $abi)
{
$string = $string -replace "<abi>", $abi
$string = $string -replace "<configuration>", $Configuration
return $string
}
main

Просмотреть файл

@ -1,84 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Retry a generic ScriptBlock with incremental backoff.
.DESCRIPTION
Invokes the passed-in $Command. If we hit an exception, we call into $IsErrorRetriable.
If it returns false, we just re-throw the exception. If it retruns true, we retry
with incremental backoff, first sleeping $InitialSleepSeconds and then doubling
that number on every retry up to $MaxSleepSeconds.
.PARAMETER Command
The ScriptBlock to run.
.PARAMETER IsErrorRetriable
A ScriptBlock that takes an ErrorRecord on the command-line (the exception is
available at $errorRecord.Exception). Return $true if we want to retry this error.
.PARAMETER MaxTries
The maximum number of times we'll try $Command before failing.
.PARAMETER InitialSleepSeconds
The number of seconds we'll sleep the first time we hit a retriable exception.
.PARAMETER MaxSleepSeconds
We double InitialSleepSeconds every time we want to retry, up to MaxSleepSeconds.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[ScriptBlock]$Command,
[Parameter(Mandatory)]
[ScriptBlock]$IsErrorRetriable,
[Parameter()]
[Int]$MaxTries = 10,
[Parameter()]
[Int]$InitialSleepSeconds = 5,
[Parameter()]
[Int]$MaxSleepSeconds = 300
)
$ErrorActionPreference = "stop"
function main
{
$currentTry = 1
while ($true)
{
try
{
return Invoke-Command $Command
}
catch
{
$err = $_
if ((-not (retriable $err)) -or ($currentTry -ge $MaxTries))
{
throw $err
}
Write-Warning "Caught retriable error ($currentTry of $MaxTries): $err"
sleepBeforeRetrying $currentTry
$currentTry += 1
}
}
}
function retriable($err)
{
return Invoke-Command -ArgumentList @($err) -ScriptBlock $IsErrorRetriable
}
function sleepBeforeRetrying($currentTry)
{
$multiplier = [math]::pow(2, $currentTry-1)
$seconds = [math]::min($MaxSleepSeconds, $InitialSleepSeconds * $multiplier)
Write-Verbose "Sleeping for $seconds seconds"
Start-Sleep -Seconds $seconds
}
main

Просмотреть файл

@ -1,745 +0,0 @@
<#
.SYNOPSIS
Invokes a configured set of tests.
.DESCRIPTION
This script is mostly for running tests from VSTS, but can also be used to run
tests locally. It uses a passed-in configuration file to determine the set of
tests it will run. It currently handles running .dll and .appx tests through
VSTest on Windows, and GoogleTest executables on Windows, MacOS and Android.
.PARAMETER ConfigFile
A .json file with a list of tests to run. For sample format
see: Build/Scripts/Tests.*.json
.PARAMETER Platform
The platform these tests were built for. Valid values are: arm, x64, x86, win32. Valid values for Android are: x86, x86_64, arm32, arm64.
.PARAMETER Configuration
The configuration these tests were built for. Valid values are: release, debug
.PARAMETER iOSSimulatorType
This value must be a valid simulator device type, that can be called when prefixed
with com.appleCoreSimulator.SimDeviceType (e.g. iPhone-7-Plus)
.PARAMETER iOSSimulatorRuntime
This must be a valid iOS Simulator Runtime, and must be a valid command
when suffixed with com.apple.CoreSimulator.SimRuntime (e.g. iOS-11-2)
.PARAMETER ReportPath
The directory we will drop all of our test reports.
.PARAMETER VSTestVersion
The version of Visual Studio we'll use when running VSTest tests. Valid values are: 14.0, 15.0
.PARAMETER TestNames
A list of test names to run. If not provided, we'll use the config file to determine which tests to run.
.PARAMETER Tags
A comma-separated list of test tags we want to run. Every test in the passed-in config file has one
or more tags (if a test has no provided tags it will have the 'default' tag).
If a test has at least one of the passed-in tags we run it.
.PARAMETER JustRunEverything
If set, we'll run every configured test regardless of whether or not it's configured to run for
this reason/platform/configuration.
.PARAMETER DryRun
If set, we won't run tests - we'll just print what we would run.
.PARAMETER BuildReason
DEPRECATED - DON'T USE. Retained for now so this PR doesn't break existing build definitions.
.PARAMETER AndroidApiLevel
This must be a valid android api level. For example: "21", etc.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$ConfigFile,
[Parameter()]
[String]$Platform,
[Parameter()]
[String]$Configuration,
[Parameter()]
[String]$iOSSimulatorType = "iPhone-8",
[Parameter()]
[String]$iOSSimulatorRuntime = "iOS-11-3",
[Parameter()]
[String]$ReportPath,
[Parameter()]
[String]$VsTestVersion = "15.0",
[Parameter()]
[String[]]$TestNames,
[Parameter()]
[String]$Tags = "default",
[Parameter()]
[String]$AppxDependencyPath,
[Parameter()]
[Switch]$JustRunEverything,
[Parameter()]
[Switch]$DryRun,
[Parameter()]
[Switch]$BuildReason,
[Parameter()]
[String]$AndroidApiLevel = "21"
)
$CurrentPath = Get-Location
$ErrorActionPreference = "Stop"
$Verbose = [bool]$PSBoundParameters["Verbose"]
$RunSimulatorTest = (Join-Path $PSScriptRoot "Invoke-iOSSimulatorTest.ps1")
$RunAndroidEmulatorTest = (Join-Path $PSScriptRoot "Invoke-AndroidEmulatorTest.ps1")
$UninstallAppx = (Join-Path $PSScriptRoot "Uninstall-AppxFiles.ps1")
$InstallAppx = (Join-Path $PSScriptRoot "Install-AppxFiles.ps1")
if ($BuildReason)
{
Write-Warning "Build reason $BuildReason was provided, but this parameter is no longer being used."
}
$TestReportExtensions = @{
"AppxCpp" = "trx"
"AppxCSharp" = "trx"
"Dll" = "trx"
"GoogleTest" = "xml"
}
$TestReportTypes = @{
"AppxCpp" = "VSTest"
"AppxCSharp" = "VSTest"
"Dll" = "VSTest"
"GoogleTest" = "JUnit"
}
$VsTestPaths = @{
'14.0' = 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe'
'15.0' = 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe'
}
$VsTestPath = $VsTestPaths[$VsTestVersion]
if (! $VsTestPath)
{
Write-Error "No vstest path defined for version $VsTestVersion"
}
function main
{
if ($ReportPath -and -not (Test-Path $ReportPath))
{
New-Item -Type Directory $ReportPath | Out-Null
}
$config = Get-Content $ConfigFile | ConvertFrom-Json
$testsToRun = getTestsToRun $config
# We can run all non-appx tests in parallel, but we must run appx tests one at a time
$appxTests = $testsToRun | Where-Object { $_.Framework -match "Appx" }
$iOSSimulatorTests = $testsToRun | Where-Object { $_.Framework -match "iOSSimulator" }
$androidEmulatorTests = $testsToRun | Where-Object { $_.Framework -match "androidEmulator" }
$nonAppxTests = $testsToRun | Where-Object { $_.Framework -notmatch "Appx" -and $_.Framework -notmatch "iOSSimulator" -and $_.Framework -notmatch "androidEmulator"}
$testResults = @()
# First, start all non-appx tests in parallel
$nonAppxJobs = $nonAppxTests | Foreach-Object { runTest $_ $config }
Write-Verbose "Running $($nonAppxJobs.Count) tests in the background."
# If there are existing appx tests or dependencies installed on the system they can prevent us from installing new appx tests.
if ($appxTests -and $AppxDependencyPath)
{
removeAllExistingAppxTests $appxTests $config
reinstallAllAppxDependencies
}
# Then, run appx tests one at a time
foreach ($test in $appxTests)
{
$testResults += runTest $test $config | Receive-Job -Wait -AutoRemoveJob -ErrorAction Continue
}
# Simulator tests need to be run one at a time
$testResults += runiOSSimulatorTests $iOSSimulatorTests
$testResults += runAndroidEmulatorTests $androidEmulatorTests
# Then, wait for all non-appx tests to complete (they're probably already all completed)
Write-Verbose "All child jobs: $(Get-Job | Format-Table Id,Name,State | Out-String)"
foreach ($job in $nonAppxJobs)
{
Write-Verbose "Waiting for job: $($job | Format-Table Id,Name,State | Out-String)"
$testResults += $job | Receive-Job -Wait -AutoRemoveJob
}
publishTestReports
# Then, fail if any test failed
if ($testResults -contains $false)
{
Write-Host "##vso[task.logissue type=error]Hit at least one test failure. Search for [TEST FAILED] or [TEST BINARY FAILED] to in the log to find where we failed."
exit 1
}
exit 0
}
function getTestsToRun($config)
{
foreach ($test in $config.tests)
{
if (isTestApplicable $test)
{
Write-Verbose "Running $test"
Write-Output $test
}
}
}
function isTestApplicable($test)
{
if ($JustRunEverything)
{
return $true
}
# If -TestNames was provided, trust that the user knows what they're doing
if ($TestNames)
{
return ($TestNames -contains $test.Name)
}
if (($test.Framework -notmatch "Appx") -and ((getTestPlatform) -eq "ARM"))
{
Write-Verbose "Not running $($test.Framework) test $($test.Name) on ARM"
return $false
}
if ($test.Platforms -and -not ($test.Platforms -contains $Platform))
{
Write-Verbose "Not running $($test.Name) because we aren't on one of: $($test.Platforms)"
return $false
}
if ($test.Configurations -and -not ($test.Configurations -contains $Configuration))
{
Write-Verbose "Not running $($test.Name) because we aren't on one of: $($test.Configurations)"
return $false
}
if ($test.Tags)
{
$testTags = $test.Tags
}
else
{
$testTags = "default"
}
$providedTags = $Tags -split ","
if (! ($testTags | Where-Object { $providedTags -contains $_ }))
{
Write-Verbose "Not running $($test.Name) because it has tags [$($testTags -join ",")] but we're only running tests with tags [$($providedTags -join ",")]"
return $false
}
return $true
}
# Launch each simulator type one at a time, and gracefully clean up after tests
function runiOSSimulatorTests($simulatorTests)
{
if (!$simulatorTests)
{
return
}
$testBinaries = $simulatorTests | ForEach-Object { findTestBinary $_ $config}
# iOSSimulatorTest script returns a list of PSObjects [testSucceeded; output; testBinaryName;], one object for each test run
$testResults = . $RunSimulatorTest -DeviceType $iOSSimulatorType -DeviceRuntime $iOSSimulatorRuntime -TestBinaryPaths $testBinaries -ReportPath $ReportPath -Verbose:$Verbose
foreach($object in $testResults)
{
$testBinaryName = $object.testBinaryName
foreach ($line in $object.output)
{
Write-Host $line
if ($line -match "\[\s*FAILED\s*\]\s*(.+)$")
{
$testName = $matches[1]
Write-Host "##vso[task.logissue type=error][TEST FAILED] $testBinaryName::$testName"
# this edits the actual $testResults object
$object.testSucceeded = $false
}
}
if ($object.output -notcontains "Global test environment tear-down")
{
Write-Host "##vso[task.logissue type=error][TEST FAILED] $testBinaryName exited unexpectedly or crashed"
$object.testSucceeded = $false
}
if ($object.testSucceeded)
{
Write-Verbose "[TEST BINARY PASSED] $testBinaryName"
}
else
{
Write-Host "##vso[task.logissue type=error][TEST BINARY FAILED] $testBinaryName"
}
}
return $testResults.testSucceeded
}
function runAndroidEmulatorTests($emulatorTests)
{
if (!$emulatorTests)
{
return
}
$testResults = . $RunAndroidEmulatorTest -Platform $Platform -Configuration $Configuration -Tests $emulatorTests -ApiLevel $AndroidApiLevel -ReportPath $ReportPath
foreach ($object in $testResults)
{
$testBinaryName = $object.testBinaryName
foreach ($line in $object.output)
{
if ($line -match "\[\s*FAILED\s*\]\s*(.+)$")
{
$testName = $matches[1]
Write-Host "##vso[task.logissue type=error][TEST FAILED] $testBinaryName::$testName"
# this edits the actual $testResults object
$object.testSucceeded = $false
}
}
if ("$($object.output)" -notlike "*Global test environment tear-down*")
{
Write-Host "##vso[task.logissue type=error][TEST FAILED] $testBinaryName exited unexpectedly or crashed"
$object.testSucceeded = $false
}
if ($object.testSucceeded)
{
Write-Verbose "[TEST BINARY PASSED] $testBinaryName"
}
else
{
Write-Host "##vso[task.logissue type=error][TEST BINARY FAILED] $testBinaryName"
}
}
return $testResults.testSucceeded
}
function runTest($test, $config)
{
if ($test.framework -eq "GoogleTest")
{
return runGoogleTest $test $config
}
if ($test.framework -match "Appx")
{
return runAppxTest $test $config
}
if ($test.framework -eq "Dll")
{
return runDllTest $test $config
}
Write-Error "Don't know how to run $($test.framework)"
}
function runGoogleTest($test, $config)
{
$testBinary = findTestBinary $test $config
$testReportPath = getTestReportPath $test
$arguments = @()
if ($testReportPath)
{
$arguments += "--gtest_output=xml:$testReportPath"
}
if ($test.Filter)
{
$arguments += "--gtest_filter=$($test.Filter)"
}
if ($test.AdditionalArguments)
{
$arguments += $test.AdditionalArguments
}
return Start-Job -Verbose:$Verbose -ArgumentList @($testBinary, $arguments, $DryRun) {
Param($testBinary, $arguments, $DryRun)
$ErrorActionPreference = "Stop"
$testBinaryName = Split-Path -Leaf $testBinary
Write-Verbose "Running from $($testBinary.Directory)"
Set-Location $testBinary.Directory
Write-Verbose "Running: $testBinary $arguments"
if ($DryRun)
{
return $true
}
$ErrorActionPreference = "Continue" # Don't fail immediately if the test writes to stderr
&$testBinary $arguments 2>&1 | Foreach-Object {
# Parse the log and print errors to the error stream, so we get failure messages in email.
$line = [String]$_
Write-Host $line
if ($line -match "\[\s*FAILED\s*\]\s*(.+)$")
{
$testName = $matches[1]
Write-Host "##vso[task.logissue type=error][TEST FAILED] $testBinaryName::$testName"
}
}
# TODO: We currently ignore stderr because some tests are printing to stderr due to an issue
# where we don't properly clean up devices on Metal. Once we fix those issues, we should start
# failing on stderr (check $? or $error)
$testSuccess = $lastexitcode -eq 0
if ($testSuccess)
{
Write-Verbose "[TEST BINARY PASSED] $testBinaryName"
}
else
{
Write-Host "##vso[task.logissue type=error][TEST BINARY FAILED] $testBinaryName"
}
return $testSuccess
}
}
function runAppxTest($test, $config)
{
$testBinary = findTestBinary $test $config @"
Visual Studio doesn't build appx packages by default; consider building on the command-line with something like:
&"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe" Build\Canvas3d.sln /p:platform="$Platform" /p:configuration="$Configuration" /p:VisualStudioVersion="$VsTestVersion"
"@
# There's a silly bug in VSTest right now: it tries to install all .appx packages in the dependencies folder except ARM
# tests, but Visual Studio recently started deploying ARM64 tests as well. VSTest does try to install these, but fails
# because of course we're not running on an ARM64 device.
Remove-Item (Join-Path $testBinary.Directory.FullName "Dependencies/ARM64") -Recurse -Force -ErrorAction Ignore
_runVsTest $test $config @("/InIsolation")
}
function runDllTest($test, $config)
{
_runVsTest $test $config @("/InIsolation", "/EnableCodeCoverage")
}
function _runVsTest($test, $config, $arguments)
{
$testPlatform = getTestPlatform
$settingsFile = findAppxSettingsFile $config
$testBinary = findTestBinary $test $config
$testBinaryName = Split-Path -Leaf $testBinary
$testReportPath = getTestReportPath $test
$arguments += @("/Platform:$testPlatform", $testBinary)
if ($settingsFile)
{
$arguments += "/Settings:$settingsFile"
}
$frameworkFilter = getFilterForFramework $test.framework
$configuredFilter = $test.filter
if ($frameworkFilter -and $configuredFilter)
{
$filter = "($frameworkFilter)&($configuredFilter)"
}
elseif ($frameworkFilter)
{
$filter = $frameworkFilter
}
elseif ($configuredFilter)
{
$filter = $configuredFilter
}
if ($filter)
{
$arguments += "/TestCaseFilter:$filter"
}
return Start-Job -ArgumentList @($VsTestPath, $arguments, $testReportPath, $testBinaryName, $DryRun) {
Param($VsTestPath, $arguments, $testReportPath, $testBinaryName, $DryRun)
$ErrorActionPreference = "Stop"
$VerbosePreference = "Continue"
if ($testReportPath)
{
$arguments += "/logger:trx"
# VSTest doesn't allow you to specify your test filename yet. Once we're
# using 15.5+ we'll be able to specify a filename with /logger:trx;LogFile[Name]=<filename>
# For now, just make sure our PWD is in a temporary directory and move it afterwards
$tempPath = Join-Path (Split-Path $testReportPath) ([System.IO.Path]::GetRandomFileName())
New-Item -ItemType Directory -Path $tempPath | Out-Null
Write-Verbose "Running from $tempPath to ensure test results are dropped in the right location."
Set-Location $tempPath
}
$ErrorActionPreference = "Continue"
Write-Verbose "Running: $VsTestPath $arguments"
if ($DryRun)
{
return $true
}
&$VsTestPath $arguments 2>&1 | ForEach-Object {
# Parse the log and print errors to the error stream, so we get failure messages in email.
$line = [String]$_
Write-Host $line
if ($line -match "^(Passed|Failed)\s+(\S+)$")
{
$result,$testName = $matches[1..2]
if ($result -eq "Failed")
{
Write-Host "##vso[task.logissue type=error][TEST FAILED] $testBinaryName::$testName"
}
}
if ($line.StartsWith("Error: The active Test Run was aborted"))
{
$err = "[TEST FAILED] $testBinaryName crashed"
if ($testName)
{
$err += ". Last test that ran without crashing was $testName"
}
Write-Host "##vso[task.logissue type=error]$err"
}
}
$testSuccess = $lastexitcode -eq 0
if ($testSuccess)
{
Write-Verbose "[TEST BINARY PASSED] $testBinaryName"
}
else
{
Write-Host "##vso[task.logissue type=error][TEST BINARY FAILED] $testBinaryName"
}
# We can get rid of this once we move to a version of VSTest that allows us to specify
# test filenames.
if ($tempPath)
{
$tempFile = Get-ChildItem $tempPath -Recurse -File
if ($tempFile.Count -eq 0)
{
Write-Warning "Test $testBinaryName didn't generate a .trx file"
}
elseif ($tempFile.Count -gt 1)
{
Write-Warning "Test $testBinaryName generated too many .trx files"
}
else
{
Move-Item $tempFile[0].FullName $testReportPath | Out-Null
}
}
return $testSuccess
}
}
function getFilterForFramework($framework)
{
# Tests built in CppUnitTestFramework allow you to filter on Owner, FullyQualifiedName, ClassName
# Tests built in CSharp allow you to filter on TestCategory, Priority, FullyQualifiedName, Name, ClassName
# We only have a standard for filtering out CppUnitTestFramework tests right now
if ($framework -ne "AppxCpp")
{
return $null
}
$ignorePlatformFilter = "Ignore" + (Get-Culture).TextInfo.ToTitleCase($Platform.ToLower())
$ignoreConfigurationFilter = "Ignore" + (Get-Culture).TextInfo.ToTitleCase($Configuration.ToLower())
return "Owner!=$ignorePlatformFilter&Owner!=$ignoreConfigurationFilter"
}
function removeAllExistingAppxTests($appxTests, $config)
{
$appxFiles = $appxTests | Foreach-Object { findTestBinary $_ $config }
if ($Platform -eq "arm")
{
$DeviceIp = "127.0.0.1"
}
. $UninstallAppx -AppxFiles $appxFiles -DeviceIp $DeviceIp -Verbose:$Verbose
}
function reinstallAllAppxDependencies
{
if (! $AppxDependencyPath)
{
return
}
if ($Platform -eq "arm")
{
$DeviceIp = "127.0.0.1"
}
$appxFiles = (Get-ChildItem $AppxDependencyPath -File -Recurse).FullName
. $UninstallAppx -AppxFiles $appxFiles -DeviceIp $DeviceIp -Verbose:$Verbose
. $InstallAppx -AppxFiles $appxFiles -DeviceIp $DeviceIp -Verbose:$Verbose
}
function findTestBinary($test, $config, $extraFailureMessage)
{
$path = Join-Path (getRootPath $config) (resolveString $test.Path)
$binary = Get-Item $path
if (! $binary)
{
Write-Host "##vso[task.logissue type=error]No test binary at $path. $extraFailureMessage"
}
if ($binary.Count -ne 1)
{
Write-Host "##vso[task.logissue type=error]Multiple test binaries at $path"
}
# On mac, make sure the test binary artifact is executable and not just a document
$Runtime = [System.Runtime.InteropServices.RuntimeInformation]
$OSPlatform = [System.Runtime.InteropServices.OSPlatform]
if ($Runtime::IsOSPlatform($OSPlatform::OSX) -and $test.framework -ne "iOSSimulator")
{
chmod a+x $binary
}
return $binary
}
function findAppxSettingsFile($config)
{
if ($Platform -eq "arm")
{
$testSetting = "appxSettingsArm"
}
else
{
$testSetting = "appxSettings"
}
if ($config.$testSetting)
{
return Join-Path (getRootPath $config) $config.$testSetting
}
return $null
}
function getTestReportPath($test)
{
if (! $ReportPath)
{
return $null
}
if (! [System.IO.Path]::IsPathRooted($ReportPath))
{
$ReportPath = Join-Path $CurrentPath $ReportPath
}
$extension = $TestReportExtensions[$test.Framework]
if (! $extension)
{
Write-Error "No report extension defined for $($test.Framework)"
}
$testFileName = $test.Name
if ($Configuration)
{
$testFileName += ".$Configuration"
}
if ($Platform)
{
$testFileName += ".$Platform"
}
$testFileName += "-" + $test.Framework + ".$extension"
return (Join-Path $ReportPath $testFileName)
}
function publishTestReports
{
if (! $ReportPath)
{
return
}
foreach ($reportFile in (Get-ChildItem -File $ReportPath))
{
publishTestReport $reportFile
}
}
function publishTestReport($reportFile)
{
if ($reportFile.BaseName -notmatch "^(.+)-(.+)$")
{
Write-Warning "Don't know how to handle report file $($reportFile.Fullname)"
return
}
$runTitle = $matches[1]
$framework = $matches[2]
$reportType = $TestReportTypes[$framework]
if (! $reportType)
{
Write-Warning "No report type defined for framework $framework"
return
}
$params = "type=$reportType;runTitle=$runTitle;publishRunAttachments=true;resultFiles=$($reportFile.FullName);"
if (getTestPlatform)
{
$params += "platform=$(getTestPlatform);"
}
if ($Configuration)
{
$params += "configuration=$Configuration"
}
Write-Host "##vso[results.publish $params]"
}
function getTestPlatform
{
if ($Platform -eq "win32")
{
return "x86"
}
return $Platform
}
function resolveString($string)
{
$string = $string -replace "<platform>",$Platform
$string = $string -replace "<configuration>",$Configuration
return $string
}
function getRootPath($config)
{
$root = (Get-Item $ConfigFile).Directory.FullName
if ($config.relativeRoot)
{
return Resolve-Path (Join-Path $root $config.relativeRoot)
}
return $root
}
main

Просмотреть файл

@ -1,118 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Makes a VSTS RESTful API call.
.DESCRIPTION
This method is mostly just a wrapper around Invoke-RestMethod. It sets up some
VSTS-specific defaults and automatically sets up authentication if invoked from
a build definition that has 'Allow Scripts to Access OAuth Token' checked.
.PARAMETER Uri
The full URL of the RESTful call we're making.
.PARAMETER Method
The HTTP method to use in this call.
.PARAMETER Body
Data we'll include in our request. If it isn't a string we'll convert to json before sending it.
.PARAMETER ApiVersion
The version of the RESTful method we're using. See: https://www.visualstudio.com/en-us/docs/integrate/get-started/rest/basics#versions
.PARAMETER PatPath
Should only be used when called locally. The path to a file containing an encrypted PAT token. You can also provide a PatPath by setting the environment variable VSTS_PAT_PATH.
Instructions for setting this up locally are here: https://microsoft.sharepoint.com/:o:/r/teams/segcentral/_layouts/15/WopiFrame.aspx?sourcedoc=%7B817af5db-69b2-413b-a333-4acfb9a5c0bf%7D
.PARAMETER FullResponse
By default, we return the response body as a JSON object. If FullResponse is set, we return the full Invoke-WebRequest response.
.PARAMETER MaxTries
We retry with incremental backoff if VSTS returns a 500. MaxTries is maximum number of times we'll retry before giving up.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$Uri,
[Parameter()]
[String]$Method = "Default",
[Parameter()]
$Body,
[Parameter()]
[String]$ApiVersion,
[Parameter()]
[String]$PatPath = $env:VSTS_PAT_PATH,
[Parameter()]
[Switch]$FullResponse,
[Parameter()]
[Int]$MaxTries = 10
)
$ErrorActionPreference = "stop"
$Verbose = [bool]$PSBoundParameters["Verbose"]
$GetAuthString = Join-Path $PSScriptRoot "Get-VstsRestAuthString.ps1"
$InvokeWithRetries = Join-Path $PSScriptRoot "Invoke-CommandWithRetries.ps1"
$PatDocUrl = "https://microsoft.sharepoint.com/:o:/r/teams/segcentral/_layouts/15/WopiFrame.aspx?sourcedoc=%7B817af5db-69b2-413b-a333-4acfb9a5c0bf%7D"
function main
{
$headers = @{
"Accept" = getAcceptString
"Authorization" = . $GetAuthString -PatPath $PatPath -Verbose:$Verbose
}
if ($Body -ne $null -and $Body.GetType().Name -ne "String")
{
$Body = $Body | ConvertTo-Json -Depth 100 -Compress
Write-Verbose "Request body:`n$Body"
}
$resp = . $InvokeWithRetries -MaxTries $MaxTries -IsErrorRetriable ${function:isErrorRetriable} -Verbose:$Verbose -Command {
Invoke-WebRequest -Uri $Uri -Method $Method -Body $Body -ContentType "application/json" -Headers $headers -UseBasicParsing -Verbose:$Verbose
}
if ($resp.StatusCode -eq 203)
{
Write-Error @"
Got a redirect to a sign-in page; this usually happens when authentication fails.
Follow the instructions here to cache a valid PAT token: $PatDocUrl
To see what you're using as a PAT token, run:
[PSCredential]::new("foo", (Get-Content `$env:VSTS_PAT_PATH | ConvertTo-SecureString)).GetNetworkCredential().Password
"@
}
$resp | Add-Member -MemberType NoteProperty -Name "Content" -Value ($resp.Content | ConvertFrom-Json) -Force
if ($FullResponse)
{
return $resp
}
else
{
return $resp.Content
}
}
function getAcceptString
{
$acceptString = "application/json"
if ($ApiVersion)
{
$acceptString += ";api-version=$ApiVersion"
}
return $acceptString
}
function isErrorRetriable([Management.Automation.ErrorRecord]$err)
{
$statusCode = $err.Exception.Response.StatusCode
return $statusCode -and ([int]$statusCode -ge 500)
}
main

Просмотреть файл

@ -1,176 +0,0 @@
<#
.SYNOPSIS
Run WACK tests against a single appx package.
.DESCRIPTION
Makes the necessary calls to appcert.exe to run WACK tests against
an appx package. Parses the resulting report to fail if any tests
failed that we don't want to ignore.
.PARAMETER PackageToTest
The path to the .appx or .appxbundle package we want to run WACK
tests against.
.PARAMETER ReportDirectory
A directory where we will drop WACK test results. We'll also try to
convert results to an .html file, which we'll drop in the same
directory. Right now we just drop a wackreport.xml file in the report
directory, and if that file already exists this script will fail.
.PARAMETER ConfigFile
A .json file containing a list of tests we want to ignore.
#>
#Requires -RunAsAdministrator
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$PackageToTest,
[Parameter(Mandatory)]
[String]$ReportDirectory,
[Parameter(Mandatory)]
[String]$ConfigFile
)
$ErrorActionPreference = "Stop"
$AppCert = Join-Path ${Env:ProgramFiles(x86)} "Windows Kits/10/App Certification Kit/appcert.exe"
function main
{
$config = Get-Content $ConfigFile | ConvertFrom-Json
$reportFile = Join-Path $ReportDirectory "wackreport.xml"
$packageFile = (Get-Item $PackageToTest).FullName
resetWackState
runWackTest $reportFile $packageFile
processWackReport $reportFile $config
}
function resetWackState
{
runAppCert "reset" | Out-Null
}
function runWackTest($reportFile, $packageFile)
{
$exitCode = runAppCert @("test", "-appxpackagepath", $packageFile, "-reportoutputpath", $reportFile)
handleWackExit $exitCode
}
function runAppCert($wackArgs)
{
Write-Verbose "Running: AppCert.exe $wackArgs"
$procInfo = New-Object System.Diagnostics.ProcessStartInfo
$procInfo.CreateNoWindow = $true
$procInfo.UseShellExecute = $false
$procInfo.RedirectStandardOutput = $true
$procInfo.RedirectStandardError = $true
$procInfo.FileName = $AppCert
$procInfo.Arguments = $wackArgs
$proc = New-Object System.Diagnostics.Process
$proc.StartInfo = $procInfo
$proc.Start() | Out-Null
$proc.StandardOutput.ReadToEnd() | Write-Host
$proc.WaitForExit() | Out-Null
[int]$exitCode = $proc.ExitCode
Write-Verbose "AppCert.exe exit code: $exitCode"
return $exitCode
}
function processWackReport($reportFile, $config)
{
uploadFile $reportFile
$htmlFile = convertReportToHtml $reportFile
if ($htmlFile)
{
uploadFile $htmlFile
}
failOnReportErrors $reportFile $config
}
function uploadFile($file)
{
Write-Verbose "Uploading $file to WACK artifact folder."
# If we're running under VSTS this will upload the report as an attachment
Write-Host "##vso[artifact.upload artifactname=WACK]$file"
}
function convertReportToHtml($reportFile)
{
[xml]$xml = Get-Content $reportFile
if (! ($xml."xml-stylesheet" -match "href='(.+)'"))
{
Write-Warning "No stylesheet available to convert report to html."
return
}
$xslFile = $matches[1]
$htmlFile = "$reportFile.html"
Write-Verbose "Converting WACK report to HTML at $htmlFile"
$xsl = New-Object System.Xml.Xsl.XslCompiledTransform
$xslSettings = New-Object System.Xml.Xsl.XsltSettings
$xslSettings.EnableDocumentFunction = $true
$xsl.Load($xslFile, $xslSettings, (New-Object System.Xml.XmlUrlResolver)) | Out-Null
$xsl.Transform($reportFile, $htmlFile) | Out-Null
return $htmlFile
}
function failOnReportErrors($reportFile, $config)
{
[xml]$xml = Get-Content $reportFile
$failedTests = $xml.REPORT.REQUIREMENTS.REQUIREMENT.TEST | Where-Object { $_.RESULT."#cdata-section" -ne "PASS" }
$notIgnored = @()
foreach ($test in $failedTests)
{
$ignoreConfig = $config.testsToIgnore | Where-Object { $_.id -eq $test.INDEX }
if ($ignoreConfig)
{
Write-Verbose "Test '$($test.NAME)' failed, but we are ignoring it because $($ignoreConfig.ignoreReason)"
}
else
{
$notIgnored += @($test)
}
}
if ($notIgnored)
{
$messages = $notIgnored | Foreach-Object { "$($_.NAME): $($_.DESCRIPTION) $($_.MESSAGES.MESSAGE.TEXT -join '. ')" }
Write-Error "Failed WACK tests. See attached report for more details.`n$($messages -join "`n")"
}
}
# Running 'appcert' without any parameters provides a decoding of exit codes
function handleWackExit($exitCode)
{
if ($exitCode -eq -1)
{
Write-Error "Invalid command line error occurred."
}
if ($exitCode -eq -2)
{
Write-Error "Infrastructure error occurred."
}
if ($exitCode -eq -3)
{
Write-Error "User initiated error occurred."
}
if ($exitCode -eq -4)
{
Write-Error "App installation error occurred."
}
if ($exitCode -eq -5)
{
Write-Error "App unpackaging error occurred."
}
if ($exitCode -lt 0)
{
Write-Error "Unknown error occurred, exit code $exitCode."
}
}
main

Просмотреть файл

@ -1,224 +0,0 @@
<#
.SYNOPSIS
Invokes a list of tests on the iOS Simulator. This returns a list PSObjects containing test success result and test output.
.DESCRIPTION
Runs a list of test binaries locally on a specific iOS Simulator device and runtime. This script
sets up the iOS Simulator at the beginning and cleanly handles shutting it down after test execution.
It returns a list of PSObjects, each containing the following:
testBinaryName: name of the test binary
testSucceeded: boolean result of this test, true if it passed
output: the output of this test
.PARAMETER DeviceType
This value must be a valid simulator device type, that can be called when prefixed
with com.appleCoreSimulator.SimDeviceType (e.g. iPhone-7-Plus)
See the list by running 'xcrun simctl list runtimes'
.PARAMETER DeviceRuntime
This must be a valid iOS Simulator Runtime, and must be a valid command
when suffixed with com.apple.CoreSimulator.SimRuntime (e.g. iOS-11-2)
See the list by running 'xcrun simctl list devicetypes'
.PARAMETER TestBinaryPaths
A list of test binaries to install and run on the iOS Simulator
.PARAMETER ReportPath
The directory we will drop all of our test reports.
.PARAMETER TestTimeoutSeconds
Test timeout, in seconds, for a single test.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$DeviceType,
[Parameter(Mandatory)]
[String]$DeviceRuntime,
[Parameter(Mandatory)]
[String[]]$TestBinaryPaths,
[Parameter()]
[String]$ReportPath = $env:BUILD_BINARIESDIRECTORY,
[Parameter()]
[Int]$TestTimeoutSeconds = 0
)
$ErrorActionPreference = "Stop"
function main
{
$deviceUDID = launchSimulator
$testResults = @()
try
{
foreach ($test in $TestBinaryPaths)
{
$testResults += runiOSSimulatorTest $test
}
}
finally
{
shutdownSimulator $deviceUDID
}
return $testResults
}
# Shut down all simulators that may be on. Some of them might be in broken or weird states,
# so make a new instance ourselves each time. After testing or if exception is hit, we will
# clean up and delete the simulator in the function shutdownSimulator
function launchSimulator
{
$xcodePath = getXcodePath
$simulatorPath = [io.path]::combine($xcodePath, "Applications", "Simulator.app")
Write-Verbose "Launching Simulator App: open $simulatorPath"
. open $simulatorPath
$simDevice = "com.apple.CoreSimulator.SimDeviceType.$DeviceType"
$simRuntime = "com.apple.CoreSimulator.SimRuntime.$DeviceRuntime"
. xcrun simctl shutdown all | Out-Null
Write-Host "Creating a simulator: xcrun simctl create BigParkiOS $simDevice $simRuntime"
$simulatorUDID = . xcrun simctl create BigParkiOS $simDevice $simRuntime
if (!$simulatorUDID)
{
Write-Error "Error creating simulator $DeviceType, $DeviceRuntime. Please ensure this simulator is installed on the machine by viewing all simulators with 'xcrun simctl list'"
}
. xcrun simctl boot $simulatorUDID | Out-Null
return $simulatorUDID
}
# Each XCode version automatically includes SDKs for specific iOS runtimes. Try to use
# this corresponding version of XCode for a runtime, otherwise default to the active XCode version
function getXcodePath()
{
if ($DeviceRuntime -match "11-2")
{
Write-Verbose "Using Xcode 9.2 to run Simulator with runtime $DeviceRuntime"
$xcodePath = "/Applications/Xcode_9.2.app/Contents/Developer"
}
elseif ($DeviceRuntime -match "11-3")
{
Write-Verbose "Using Xcode 9.3 to run Simulator with runtime $DeviceRuntime"
$xcodePath = "/Applications/Xcode_9.3.app/Contents/Developer"
}
if (!$xcodePath -or -not (Test-Path $xcodePath))
{
Write-Verbose "Xcode developer path $xcodePath does not exist"
$xcodePath = . xcode-select -p
Write-Verbose "Using active Xcode developer directory instead: $xcodePath"
}
if (!$xcodePath -or -not (Test-Path $xcodePath))
{
Write-Error "No Xcode path exists. Check that Xcode is installed and that 'xcode-select -p' returns a path"
}
return $xcodePath
}
function shutdownSimulator($deviceUDID)
{
Write-Verbose "Deleting $DeviceType Simulator ($deviceUDID)"
. xcrun simctl shutdown $deviceUDID | Out-Null
. xcrun simctl erase $deviceUDID | Out-Null
. xcrun simctl delete $deviceUDID | Out-Null
$deviceStillPresent = . xcrun simctl list | grep $deviceUDID
if ($deviceStillPresent)
{
Write-Error "$DeviceType Simulator ($deviceUDID) could not be deleted!" -ErrorAction Continue
}
}
# Wrap the call to launch the iOS app in a timeout job in case it doesn't return
# in the unexpected case something goes wrong with the simulator or the test hangs
function runiOSSimulatorTest($testBinary)
{
$testBinaryName = Split-Path -Leaf $testBinary
Write-Verbose "Installing iOS Simulator test $testBinaryName"
. xcrun simctl install booted $testBinary | Out-Null
Write-Verbose "Running iOS Simulator test $testBinaryName"
$appBundleName = . "/usr/libexec/PlistBuddy" -c "print CFBundleIdentifier" "$testBinary/Info.plist"
$outputFileName = (Join-Path $ReportPath "$testBinaryName.txt")
# xcrun simctl launch --stdout to a file is an alternative solution to --console,
# Using --console will print to stdout and block until it completes. However, --stdout
# is non-blocking, so we need to wait for the app process to finish before reading output.
$output = . xcrun simctl launch --stdout="$outputFileName" booted "$appBundleName"
# output is in the form: <appbundlename>: <pid>
Write-Verbose "app bundle name and pid are $output"
$appPid = $output.Split()[-1]
$testOutput = getTestOutput $appPid $outputFileName
Write-Verbose "iOS Simulator test $testBinaryName completed run"
Write-Verbose "Test output located at $outputFileName"
# TODO: implement return code parsing so we can actually determine if the test succeeded or not (e.g. crashed)
$resultObject = [PSObject]@{ testBinaryName=$testBinaryName; testSucceeded=$true; output=$testOutput}
return $resultObject
}
# get test output written to $outputFileName after $appPid finishes running
function getTestOutput($appPid, $outputFileName)
{
waitForProcess $appPid
waitForOutputWriteToFinish $outputFileName
return (Get-Content $outputFileName)
}
function waitForProcess($appPid)
{
$psResult = . ps -p $appPid
while ($psResult.Count > 1)
{
Start-Sleep 5
$psResult = . ps -p $appPid
}
}
# The output file is empty immediately after because the output text hasn't yet been populated
# Keep checking the contents of the file to make sure the test has been fully written before actually returning it
# In the case that the test crashed or doesn't finish writing output, we will error out after the timeout
# TODO: look into better ways of telling when writing to the file is complete.
# e.g. Check if the process or parent has a file handler open with lsof, watch out for intermittent writes though
function waitForOutputWriteToFinish($outputFileName)
{
if (-not (Test-Path $outputFileName))
{
Write-Error "There is no output file for $testBinaryName - expecting it at $outputFileName"
}
# wait for the file contents to be written for 2 minutes before returning what we have
$fileWriteTimeout = 120
Write-Verbose "Waiting for process to finish writing to output file ..."
$startTime = Get-Date
while (($(Get-Date) - $startTime).TotalSeconds -lt $fileWriteTimeout)
{
$output = (Get-Content $outputFileName)
foreach ($line in $output)
{
if ($line -match "Global test environment tear-down")
{
Start-Sleep 5
return
}
}
}
Write-Warning "Test process completed but did not reach global tear-down state - it may have crashed or hit an unexpected error. Timed out while writing to output file for $fileWriteTimeout sec".
}
main

Просмотреть файл

@ -1,20 +0,0 @@
# This is simple enough to be an inline script, but we can't currently pass in arguments
# to inline scripts using the cross-platform PowerShell task.
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$Path,
[Parameter(Mandatory)]
[String]$Contents
)
$ErrorActionPreference = "Stop"
function main
{
$directory = Split-Path $Path
New-Item $directory -ErrorAction Ignore -Type Directory
$Contents | Out-File -Encoding ascii $Path
}
main

Просмотреть файл

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</packageSources>
<packageRestore>
<!-- Allow NuGet to download missing packages -->
<add key="enabled" value="True" />
<!-- Automatically check for missing packages during build in Visual Studio -->
<add key="automatic" value="True" />
</packageRestore>
<disabledPackageSources>
<add key="myget-dotnet-core" value="true" />
</disabledPackageSources>
</configuration>

Просмотреть файл

@ -1,93 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Helper module for using NuGet on MacOS.
.DESCRIPTION
Provides common abd useful functions to be used by the scripts.
#>
# ------------
# Write out a NuGet config file with packageSourceCredentials added in
function Install-NuGetConfig
{
Param(
[Parameter(Mandatory)]
[String]$NuGetConfigSource,
[Parameter()]
[String]$NuGetConfigDest = [io.path]::GetTempFileName(),
[Parameter()]
[String]$AccessToken,
[Parameter()]
[String]$PATFilename
)
Copy-Item $NuGetConfigSource $NugetConfigDest | Out-Null
return $NugetConfigDest
}
# Obtain personal access token from commandline or pat.txt
function getAccessToken($AccessToken, $PATFilename)
{
if (-not [String]::IsNullOrEmpty($AccessToken))
{
Write-Verbose "Using commandline-supplied access token"
return $AccessToken
}
if (Test-Path $PATFilename)
{
Write-Verbose "Using access token from file $PATFilename"
return Get-Content $PATFilename
}
Write-Verbose "Continuing without an access token"
return $null
}
function Start-NuGet
{
$nugetCommandLocations = @(
"nuget",
"/usr/local/bin/nuget",
"/Library/Frameworks/Mono.framework/Versions/Current/Commands/nuget"
)
$nugetCommand = $nugetCommandLocations | Where-Object { NugetCommandIsValid $_ } | Select -First 1
Write-Verbose "Using nuget at: $nugetCommand"
if (-not $nugetCommand)
{
Write-Error "NuGet not found."
}
Write-Verbose "Arguments = $args"
Start-Process -FilePath $nugetCommand -Wait -Args $args
}
function NugetCommandIsValid($nuget, $minVerNumber = "4.0.0.0")
{
if (!(Get-Command $nuget -ErrorAction SilentlyContinue))
{
return $false
}
$nugetVersionString = . $nuget "help" | Select -First 1
if ($nugetVersionString -match ".+((\d+)\.(\d+)\.(\d+)\.(\d+))")
{
$versionString = $matches[1]
Write-Verbose "Nuget found at $nuget with version number $versionString. Comparing to minimum version $minVerNum"
return ([Version]$versionString -ge [Version]$minVerNum)
}
Write-Error "Nuget command provided at path $nuget does not have `"nuget help`" command that lists a version number."
}
Export-ModuleMember -function Install-NuGetConfig
Export-ModuleMember -function Start-NuGet

Просмотреть файл

@ -1,37 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Push a NuGet package to a feed.
.DESCRIPTION
This script pushes the nuget package to the feed. It takes care of necessary authentication.
.PARAMETER Source
The name of the NuGet source
.PARAMETER Packages
The packages to push
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$Source,
[Parameter(Mandatory)]
[String]$Packages
)
$ErrorActionPreference = "stop"
function main
{
$allPackages = Get-Item $Packages
foreach($currentPackage in $allPackages)
{
dotnet nuget push "$currentPackage" --source "$Source" --api-key VSTS
}
}
main

Просмотреть файл

@ -1,147 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Restore NuGet packages and generate XCode config for search paths.
.DESCRIPTION
This script recursively searches for packages.config files in the
filesystem, runs NuGet to restore the packages in them one by one,
then writes out an XCode config file that sets search paths properly.
.PARAMETER XCodeConfigFile
The path to the XCode config file we'll create.
.PARAMETER PackagesDirectory
The directory where NuGet packages will be restored to.
.PARAMETER PackagesConfigRoot
The root directory where the recursive search for packages.config files
will begin.
.PARAMETER NuGetConfigSource
The path to the Nuget.Config file we'll use as a starting point for creating
our nuget.config file with credentials attached.
.PARAMETER AccessToken
Clear text PersonalAccessToken to use for credentials.
.PARAMETER PATFilename
File containing PersonalAccessToken, default ~/.nuget/pat.txt
#>
[CmdletBinding()]
Param (
[Parameter(Mandatory)]
[String]$XCodeConfigFile,
[Parameter(Mandatory)]
[String]$PackagesDirectory,
[Parameter(Mandatory)]
[String]$PackagesConfigRoot,
[Parameter(Mandatory)]
[String]$NugetConfigSource,
[Parameter()]
[String]$AccessToken,
[Parameter()]
[string]$PATFilename = '~/.nuget/pat.txt'
)
$ErrorActionPreference = "stop"
Import-Module (Join-Path $PSScriptRoot "NuGetHelper.psm1") -Force
function main
{
$temporaryNugetConfig = Install-NuGetConfig -AccessToken $AccessToken -PATFilename $PATFilename -NuGetConfigSource $NugetConfigSource
try
{
nugetRestore $temporaryNugetConfig
}
finally
{
Remove-Item -Path $temporaryNugetConfig -ErrorAction "SilentlyContinue"
}
createCmakeListsFile
}
# NuGet restore on all package.config files under $PackagesConfigRoot
function nugetRestore($nugetConfigPath)
{
foreach ($configFile in getPackageConfigFiles)
{
Start-NuGet restore $configFile -ConfigFile $nugetConfigPath -OutputDirectory $PackagesDirectory -DisableParallelProcessing
}
}
# Parse packages.config file and save search path keys for later
function parsePackagesXml($packagesFile, $xcodeConfigs)
{
# Read in config as XML
[xml]$xml = Get-Content $packagesFile
# Add config keys uniquely
foreach ($package in $xml.packages.package)
{
$id = $package.id
$idup = $id.ToUpper() -replace '\.','_'
$key = "NUGET_$idup"
if (!$xcodeConfigs.ContainsKey($key))
{
$version = $package.version
$val = Join-Path -Path $PackagesDirectory -ChildPath "$id"
$xcodeConfigs.Add($key, $val)
}
}
}
function getPackageConfigFiles
{
return (Get-ChildItem $PackagesConfigRoot -Recurse packages.config).FullName
}
function createCmakeListsFile
{
$cmakeListsFile = Join-Path $PackagesDirectory "CMakeLists.txt"
printCmakeListsFile | Out-File $cmakeListsFile -Force -Encoding ASCII
}
function getNormalizedVersion($version)
{
$release,$prerelease = $version.split("-", 2)
$parts = $release.split(".")
while ($parts.length -gt 3 -and $parts[-1] -eq 0)
{
$parts = $parts[0..($parts.length-2)]
}
$release = $parts -join "."
return $release, $prerelease -ne $null -join "-"
}
function printCmakeListsFile
{
foreach ($configFile in getPackageConfigFiles)
{
[xml]$config = Get-Content $configFile
foreach ($package in $config.SelectNodes("/packages/package"))
{
$version = getNormalizedVersion $package.getAttribute("version")
$name = $package.getAttribute("id")
$path = Join-Path $PackagesDirectory ($name + "." + $version) | Resolve-Path
# Convert Windows style path with "\" to Unix style path using "/" as delimiter, otherwise CMake complains on Windows host
$path = $path -replace "\\", "/"
Write-Verbose "list(APPEND CMAKE_MODULE_PATH `"$path`")"
Write-Output "list(APPEND CMAKE_MODULE_PATH `"$path`")"
}
}
# Pass back the new CMAKE_MODULE_PATH to the parent scope
Write-Output "set(CMAKE_MODULE_PATH `${CMAKE_MODULE_PATH} PARENT_SCOPE)"
}
Main

Просмотреть файл

@ -1,223 +0,0 @@
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$ConfigFile,
[Parameter(Mandatory)]
[String]$PublishPath,
[Parameter()]
[String]$Platform,
[Parameter()]
[String]$Configuration
)
$ErrorActionPreference = "Stop"
$ExtensionsToIgnore = @(".pdb")
$Git = . (Join-Path $PSScriptRoot "Find-Git.ps1")
function main
{
if (! (Test-Path $PublishPath))
{
New-Item -Type Directory $PublishPath | Out-Null
}
$config = Get-Content $ConfigFile | ConvertFrom-Json
# git operations and `Resolve-Path -Relative` require us to be in the root
# of the repo we're publishing from
Push-Location (getRootPath $config)
try
{
publishTestDependencies
$gitFiles = getGitFiles
$testsToPublish = $config.Tests | Where-Object { shouldPublishTest $_ }
$postCommands = $testsToPublish | Foreach-Object { publishTest $_ $config $gitFiles }
$postCommands | Out-File "$PublishPath/PostPublish.ps1" -Encoding ascii
}
finally
{
Pop-Location
}
}
# Find all appx dependencies available under a Dependencies\ folder, and copy
# to a single 'stage' folder that can be used as the dependencies folder for
# a vstest run.
# We do it this way rather than copying test dependencies beside each test for a
# couple reasons:
# * Most tests have the same set of dependencies, so we minimize copying
# duplicates.
# * Different tests copy dependencies under different folder patterns.
function publishTestDependencies
{
$testPlatform = getTestPlatform
$destFolder = "$PublishPath/Dependencies/$testPlatform"
New-Item -Type Directory -ErrorAction Ignore -Path $destFolder | Out-Null
foreach ($dependencyFolder in Get-ChildItem -Directory -Recurse -Filter Dependencies)
{
foreach ($dependencyAppx in (Get-Item "$($dependencyFolder.FullName)/$testPlatform/*.appx"))
{
Write-Verbose "Copying $($dependencyAppx.FullName) to $destFolder"
Copy-Item -ErrorAction Ignore $dependencyAppx.FullName $destFolder | Out-Null
}
}
}
# We want to publish tests that we may want to run manually (e.g. publish nightly tests for CI builds)
# but don't waste time publishing tests we don't ever run (e.g. don't publish .dll ARM tests).
function shouldPublishTest($test)
{
if (($Platform -eq "ARM") -and ($test.Framework -notmatch "Appx"))
{
return $false
}
if ($test.Platforms -and !($test.Platforms -contains $Platform))
{
return $false
}
if ($test.Configurations -and !($test.Configurations -contains $Configuration))
{
return $false
}
return $true
}
function publishTest($test, $config, $gitFiles)
{
foreach ($file in (getFilesToPublish $test $config))
{
$checkedInFile = findCheckedInCopyOfFile $file $gitFiles
if ($checkedInFile)
{
Write-Output (getPublishCommandForCheckedInFile $checkedInFile $file)
}
else
{
$dest = Join-Path $PublishPath (Resolve-Path $file.FullName -Relative)
Write-Verbose "Copy from $($file.FullName) to $dest"
New-Item -Type Directory -ErrorAction Ignore (Split-Path -Parent $dest) | Out-Null
Copy-Item $file.FullName $dest -Force | Out-Null
}
}
}
function getFilesToPublish($test, $config)
{
$testBinary = findTestBinary $test $config
if ($test.Framework -match "Appx")
{
return $testBinary
}
$testDirectory = (Get-Item $testBinary).Directory
$files = Get-ChildItem $testDirectory -Recurse -File
return $files | Where-Object { shouldPublishFile $_ $test.AlwaysPublishFiles }
}
function shouldPublishFile($file, $alwaysPublishFiles)
{
$fileFullName = $file.FullName.Replace("\", "/")
foreach ($alwaysPublishRegex in $alwaysPublishFiles)
{
if ($fileFullName -match $alwaysPublishRegex)
{
Write-Verbose "Publishing $fileFullName because it matches AlwaysPublishFiles regex $alwaysPublishRegex"
return $true
}
}
if ($ExtensionsToIgnore -contains $file.Extension)
{
Write-Verbose "Not publishing $fileFullName because if its extension."
return $false
}
return $true
}
# Find a file that's checked-in that has the exact same contents as this file.
# As an optimization we only consider files that have the same name as this file.
function findCheckedInCopyOfFile($file, $gitFiles)
{
# Assume if the file length is the same this is the file we want to use
# If we really wanted we could use 'git hash-object', but this would take quite a bit longer
return $gitFiles[$file.Name] | Where-Object { $file.Length -eq $_.Length } | Select-Object -First 1
}
function getPublishCommandForCheckedInFile($checkedInFile, $destFile)
{
$source = Resolve-Path $checkedInFile.FullName -Relative
$dest = Resolve-Path $destFile.FullName -Relative
$destDir = Split-Path -Parent $dest
Write-Verbose "Adding post-publish command to copy from $source to $dest"
Write-Output "New-Item -Type Directory `"`$PSScriptRoot/$destDir`" -ErrorAction Ignore | Out-Null"
Write-Output "Copy-Item `"`$PSScriptRoot/$source`" `"`$PSScriptRoot/$dest`" -Force -ErrorAction Stop"
}
# Assumes we're already in the root directory
function findTestBinary($test, $config)
{
$path = resolveString $test.Path
$binary = Get-Item $path
if (! $binary)
{
Write-Error "No test binary at $path"
}
if ($binary.Count -ne 1)
{
Write-Error "Multiple test binaries at $path"
}
return $binary
}
function resolveString($string)
{
$string = $string -replace "<platform>",$Platform
$string = $string -replace "<configuration>",$Configuration
return $string
}
# Builds an index of filenames to a list of checked-in files with that name
# Assumes we're already in the root directory
function getGitFiles
{
$gitFiles = @{}
foreach ($relativePath in (&$git ls-files))
{
$file = Get-Item $relativePath -Force
if (! $gitFiles[$file.Name])
{
$gitFiles[$file.Name] = @()
}
$gitFiles[$file.Name] += @($file)
}
return $gitFiles
}
function getRootPath($config)
{
$root = (Get-Item $ConfigFile).Directory.FullName
if ($config.relativeRoot)
{
return Resolve-Path (Join-Path $root $config.relativeRoot)
}
return $root
}
function getTestPlatform
{
if ($Platform -eq "win32")
{
return "x86"
}
return $Platform
}
main

Просмотреть файл

@ -1,4 +0,0 @@
#!/bin/bash
# parameter is the file and path
echo "$1 ${@:2}"
powershell -NoProfile -ExecutionPolicy unrestricted -Command ". '$1' ${@:2}; exit $LASTEXITCODE"

Просмотреть файл

@ -1,138 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<# .SYNOPSIS
Cross-platform XESSerializeForPostbuild script. Checks if this build is the last running build, and then sets XESSERIALPOSTBUILDREADY to true.
.DESCRIPTION
In-house implementation of XESSerializeForPostbuild step
.PARAMETER SerializeTaskName
The name of this serialize task step in VSTS to query for.
.PARAMETER BuildId
The id number of the build. By default, is set to env:BUILD_BUILDID
.PARAMETER AgentName
The name of the agent that is registered with the pool. By default, set to env:AGENT_NAME
.PARAMETER TeamCollectionUri
The uri of the collection, e.g. https://microsoft.visualstudio.com/. By default, is set to env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI
.PARAMETER TeamProject
The name of the project, e.g. Apps. By default, is set to env:SYSTEM_TEAMPROJECT
.PARAMETER PatPath
The path to a PAT token for making VSTS REST API calls.
#>
[CmdletBinding()]
Param(
[Parameter()]
[string]$SerializeTaskName = $env:TASK_DISPLAYNAME,
[Parameter()]
[string]$AgentName = $env:AGENT_NAME,
[Parameter()]
[string]$BuildId = $env:BUILD_BUILDID,
[Parameter()]
[string]$TeamCollectionUri = $env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI,
[Parameter()]
[string]$TeamProject = $env:SYSTEM_TEAMPROJECT,
[Parameter()]
[string]$PatPath
)
$ErrorActionPreference = "stop"
$RestScript = [io.path]::combine($PSScriptRoot, "Invoke-VstsRestMethod.ps1")
function main
{
Write-Host @"
Agent name: $AgentName
Build id: $BuildId
TeamcollectionUri: $TeamCollectionUri
TeamProject: $TeamProject
Serialize Task Name: $SerializeTaskName
"@
if (isLastBuild)
{
# Set the serialize for postbuild env variable to true
Write-Host @"
This is the last build. Setting 'XESSERIALPOSTBUILDREADY' to true.
##vso[task.setvariable variable=XESSERIALPOSTBUILDREADY]true
"@
}
else
{
Write-Host "Not the last build. Moving on."
}
return
}
function isLastBuild
{
$buildInfo = getBuildInfo
while (!(hasSerializeTaskDataInitialized $buildInfo))
{
Write-Host "Current machine does not have a start time yet for $SerializeTaskName. Waiting 10 seconds..."
Start-Sleep -s 10 #poll every 10 seconds
$buildInfo = getBuildInfo
}
$serializeTaskList = getSerializeTasksFromBuildInfo $buildInfo
$jobList = getJobsFromBuildInfo $buildInfo
$numberOfSerializeTasks = $serializeTaskList.Count
$numberOfJobs = $jobList.Count
if ($numberOfSerializeTasks -lt $numberOfJobs)
{
Write-Host "Not all jobs initialized yet - only $numberOfSerializeTasks of $numberOfJobs"
return $false
}
$nullTaskList = $serializeTaskList | Where-Object {!$_.startTime} | Sort-Object workerName
$sortedTaskList = $serializeTaskList | Where-Object {$_.startTime -ne $null} | Sort-Object startTime
Write-Verbose "null task list: $($nullTaskList | Out-String)"
Write-Verbose "sorted task list: $($sortedTaskList | Out-String)"
return ($sortedTaskList[-1].workerName -eq $AgentName -and !$nullTaskList)
}
function getBuildInfo
{
$uri = "$TeamCollectionUri`DefaultCollection/$TeamProject/_apis/build/builds/$BuildId/timeline?api-version=2.0"
$buildInfo = . $RestScript -Uri $uri -PatPath $PatPath
Write-Verbose "result: $($buildInfo.records | Out-String)"
return $buildInfo
}
# There can only be one currently-running serialize task for this agent
function hasSerializeTaskDataInitialized($buildInfo)
{
$serializeTaskList = getSerializeTasksFromBuildInfo $buildInfo
foreach ($task in $serializeTaskList)
{
if ($task.workerName -match $AgentName -and $task.state -match "inProgress")
{
return ($task.startTime -ne $null)
}
}
return $false
}
function getSerializeTasksFromBuildInfo($buildInfo)
{
return $buildInfo.records | Where-Object {$_.type -match "Task" -and $_.name -match $SerializeTaskName}
}
function getJobsFromBuildInfo($buildInfo)
{
return $buildInfo.records | Where-Object {$_.type -match "Job"}
}
Main

Просмотреть файл

@ -1,184 +0,0 @@
<#
.SYNOPSIS
Summarizes test failures by analyzing the output .trx and .xml files.
.DESCRIPTION
Provides
.PARAMETER ReportPath
The folder to recursively search for .trx and .xml files
.INPUTS
Example format of GoogleTest .xml files are:
<testsuites tests="268" failures="17" disabled="0" errors="0" timestamp="2018-03-01T15:09:46" time="22.15" name="AllTests">
<testsuite name="SpectreIfStreamTest" tests="10" failures="8" disabled="0" errors="0" time="0.074">
<testcase name="SpectreIfStreamTest_ReadWriteAccess__none" status="run" time="0" classname="SpectreIfStreamTest" />
<testcase name="SpectreIfStreamTest_PositionAndLength__none" status="run" time="0.001" classname="SpectreIfStreamTest">
<failure message="C:\BA\74\s\CoreUtils\Shared\TestUtils\cpp\Inc\TestUtils/BigparkUnitTest.h:219&#x0A; hit exception"></failure>
...
</testcase>
...
</testsuite>
...
</testsuites>
-----
Example format of VSTest .trx files are:
<TestRun id="<guid>" name="bpbeibld@BP-SEGBUILD-20 2018-03-01 15:09:56" runUser="NORTHAMERICA\bpbeibld" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Results>
<UnitTestResult testName="InitialiseLoader_Default" computerName="BP-SEGBUILD-20" duration="00:00:00.0119040" outcome="Passed"/>
<UnitTestResult testName="Loader_ConvertAsync" computerName="BP-SEGBUILD-20" duration="00:00:00.1728856" outcome="Failed">
<Output>
<ErrorInfo>
<Message>Test method Lift.Spectre.Loader.Test.LoaderCSTests.Loader_ConvertAsync threw exception blah</Message>
<StackTrace> at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) </StackTrace>
</ErrorInfo>
</Output>
</UnitTestResult>
...
</Results>
<TestDefinitions>
<UnitTest name="InitialiseLoader_Default">
<TestMethod className="Lift.Spectre.Loader.Test.LoaderCSTests"/>
</UnitTest>
...
</TestDefinitions>
<ResultSummary outcome="Failed">
<Counters total="31" executed="31" passed="15" failed="16" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
</ResultSummary>
</TestRun>
Copyright (C) 2017 Microsoft.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$ReportPath
)
$ErrorActionPreference = "Stop"
function main()
{
Write-Host @"
Note: to view errors in the Run Tests build task, search its log for [TEST FAILED] or [TEST BINARY FAILED] to in the log to find where we failed."
This task is a summary of the erors hit."
Analyzing .xml and .trx files in $ReportPath
"@
writeErrorsFromXmlFiles
# Make sure this task fails, but without extra write-error fluff
exit 1
}
function writeErrorsFromXmlFiles()
{
$gtestXmlPaths = Get-ChildItem -path $ReportPath -Include *.xml -Recurse | % { $_.FullName }
$vstestTrxPaths = Get-ChildItem -path $ReportPath -Include *.trx -Recurse | % { $_.FullName }
foreach ($xmlPath in $gtestXmlPaths)
{
writeErrorsFromGTestXmlFile $xmlPath
}
foreach ($trxPath in $vstestTrxPaths)
{
writeErrorsFromTrxFile $trxPath
}
}
function writeErrorsFromGTestXmlFile($xmlPath)
{
Write-Verbose $xmlPath
$testSuites = ([xml](Get-Content -LiteralPath $xmlPath)).testsuites.testsuite
$failedTestSuites = $testSuites | Where-Object { $_.failures -gt 0 }
$fullErrorMessage = @()
foreach ($testSuite in $failedTestSuites)
{
$failedTestCases = $testSuite.testcase | Where-Object { $_.failure -ne $null }
$fullErrorMessage += @"
-----
$($testSuite.name) (GoogleTest) contained $($testSuite.failures) failure(s) of $($testSuite.tests) tests
"@
foreach ($testCase in $failedTestCases)
{
$fullErrorMessage += @"
$($testCase.name) in class $($testCase.classname) failed, duration $($testCase.time)
"@
$failures = $testCase.failure | Select-Object -Unique
$failures | ForEach-Object {
$errorMessage = $_.message -replace "`n", "`n`t"
$fullErrorMessage += "
Error Message:
$errorMessage
"
}
}
}
writeMultilineMessage $fullErrorMessage
}
function writeErrorsFromTrxFile($trxPath)
{
Write-Verbose $trxPath
$testRun = ([xml](Get-Content -LiteralPath $trxPath)).TestRun
$fullErrorMessage += @()
if ($testRun.ResultSummary.outcome -ne "Failed")
{
return
}
$testSuite = $testRun.TestDefinitions.UnitTest.TestMethod[0].className
$buildMachine = $testRun.Results.UnitTestResult[0].computerName
$totalNumTests = $testRun.ResultSummary.Counters.total
$totalFailedTests = $testRun.ResultSummary.Counters.failed
$fullErrorMessage += @"
-----
$testSuite (vsTest) contained $totalFailedTests failure(s) of $totalNumTests tests, on build machine $buildMachine
"@
$failedTestCases = $testRun.Results.UnitTestResult | Where-Object { $_.outcome -eq "Failed" }
foreach ($testCase in $failedTestCases)
{
$testCaseName = $testCase.testName
$testCaseDuration = $testCase.duration
$fullErrorMessage += @"
$testCaseName failed, duration: $testCaseDuration
"@
$errorMessage = $testCase.Output.ErrorInfo.Message -replace "`n", "`n`t"
$stackTrace = $testCase.Output.ErrorInfo.StackTrace -replace "`n", "`n`t"
$fullErrorMessage += @"
Error Message:
$errorMessage
Stack Trace:
$stackTrace
"@
}
writeMultilineMessage $fullErrorMessage
}
function writeMultilineMessage([string]$message)
{
foreach ($line in $message.Split("`n"))
{
Write-Host $line
}
}
main

Просмотреть файл

@ -1,124 +0,0 @@
<#
.SYNOPSIS
Uninstalls all passed-in appx files, removing packages that take these on as dependencies if necessary.
.PARAMETER AppxFiles
The list of appx files to uninstall.
.PARAMETER DeviceIp
If passed in, we'll use WinAppDeploy to remove the files on the device at this IP.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String[]]$AppxFiles,
[Parameter()]
[String]$DeviceIp
)
$ErrorActionPreference = "Stop"
$Verbose = [bool]$PSBoundParameters["Verbose"]
$GetAppxDetailsFromFile = "$PSScriptRoot/Get-AppxDetailsFromFile.ps1"
$WinAppDeploy = "$PSScriptRoot/WinAppDeploy.ps1"
function main
{
$appxPackageNames = $AppxFiles | Foreach-Object { (. $GetAppxDetailsFromFile $_).Package.Identity.Name }
if ($DeviceIp)
{
removeDevicePackagesWithNames $appxPackageNames
}
else
{
getAllAppxPackages | Where-Object { $appxPackageNames -contains $_.Name } | Remove-AppxPackage -Verbose:$Verbose -ErrorAction Ignore | Write-Verbose
}
}
function removeDevicePackagesWithNames($names)
{
$installedPackages = . $WinAppDeploy -DeviceIp $DeviceIp -Command list
foreach ($name in $names)
{
$installedPackages = removeDevicePackageWithName $name $installedPackages
}
}
function removeDevicePackageWithName($name, $installedPackages)
{
if ($name -eq "Microsoft.VCLibs.140.00")
{
Write-Verbose "The system depends on $name so we can't uninstall it. If a test relies on a different version of this package we're out of luck."
return $installedPackages
}
$package = $installedPackages | Where-Object { $_.StartsWith("${name}_") }
if (! $package)
{
Write-Verbose "Package $name is not installed."
return $installedPackages
}
if ($package.Count -gt 1)
{
Write-Error "Multiple [$name] packages installed: [$package]"
}
# We'll be removing this so remove it from the list of packages we have installed
$installedPackages = $installedPackages | Where-Object { $_ -ne $package }
try
{
tryRemoveDevicePackage $package
}
catch
{
# If other packages have this package as a dependency the uninstall will fail.
# In that case remove those packages. Windows will then automatically uninstall this package.
$namesWithDependencies = extractPackageNamesWithDependenciesFromErrorMessage $_.exception.message
if (! $namesWithDependencies)
{
throw
}
foreach ($nameWithDependency in $namesWithDependencies)
{
$installedPackages = removeDevicePackageWithName $nameWithDependency $installedPackages
}
}
return $installedPackages
}
function extractPackageNamesWithDependenciesFromErrorMessage($errorMessage)
{
if ($errorMessage -match "package\(s\)\s+(.+?)\s+currently depends on the framework")
{
return $matches[1] -split "\s+"
}
return @()
}
function tryRemoveDevicePackage($package)
{
. $WinAppDeploy -DeviceIp $DeviceIp -Command uninstall -AdditionalArgs @("-package", $package) | Write-Verbose
}
# We can only get appx packages installed for other users if we're admin. Try
# that first, but if it fails we're probably still ok so fall back to just
# uninstalling packages we have access to.
function getAllAppxPackages
{
try
{
return Get-AppxPackage -AllUsers
}
catch
{
return Get-AppxPackage
}
}
main

Просмотреть файл

@ -1,175 +0,0 @@
<#
.SYNOPSIS
Updates all projects to use the passed-in nuget package closure.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[Hashtable]$NuGetPackageClosure,
[Parameter()]
[String]$SourceDirectory,
[Parameter()]
[String]$ExcludeFolders = "Build\packages"
)
if (! $SourceDirectory) {
$SourceDirectory = (Get-Item $PSScriptRoot).Parent.Parent.FullName
}
$ErrorActionPreference = "stop"
function main
{
updatePackagesConfigVersions
updateVcxprojVersions
updateProjectJsonVersions
updateCsprojVersions
}
function updatePackagesConfigVersions
{
Write-Verbose "Updating the version for packages.config files"
foreach ($file in (getFiles "packages.config"))
{
Write-Verbose $file
[xml]$xml = Get-Content $file
foreach ($package in $xml.packages.package)
{
$newVersion = $NuGetPackageClosure[$package.id]
if ($newVersion)
{
if ($newVersion -eq $package.version)
{
Write-Verbose "$($package.id) is already at desired package version $newVersion"
}
else
{
Write-Verbose "Updating $($package.id) from $($package.version) to $newVersion"
$package.version = $newVersion
}
}
else
{
Write-Verbose "No version provided for $($package.id), so just using the checked-in version."
}
}
$xml.Save($file)
}
}
function updateVcxprojVersions
{
Write-Verbose "Updating the version for vcxproj files"
foreach ($file in (getFiles "*.vcxproj"))
{
Write-Verbose $file
[xml]$xml = Get-Content $file
$attributes = $xml.SelectNodes("//*[local-name()='Import' or local-name()='Error']/attribute::*[local-name()='Text' or local-name()='Condition' or local-name()='Project']")
foreach ($attribute in $attributes)
{
foreach ($package in $NuGetPackageClosure.Keys)
{
$attribute.Value = updateProjectVersionNumber $attribute.Value $package $NuGetPackageClosure[$package]
}
}
$xml.Save($file)
}
}
function updateCsprojVersions
{
Write-Verbose "Updating the version for csproj files"
foreach ($file in (getFiles "*.csproj"))
{
Write-Verbose $file
[xml]$xml = Get-Content $file
$nodes = $xml.SelectNodes("//*[local-name()='HintPath' or local-name()='Reference/HintPath']")
$attributes = $xml.SelectNodes("//*[local-name()='Import' or local-name()='Error' or local-name()='Reference/HintPath']/attribute::*[local-name()='Text' or local-name()='Condition' or local-name()='Project']")
foreach ($attribute in $attributes)
{
foreach ($package in $NuGetPackageClosure.Keys)
{
$attribute.Value = updateProjectVersionNumber $attribute.Value $package $NuGetPackageClosure[$package]
}
}
foreach ($node in $nodes)
{
foreach ($package in $NuGetPackageClosure.Keys)
{
$node.'#text' = updateProjectVersionNumber $node.'#text' $package $NuGetPackageClosure[$package]
}
}
$xml.Save($file)
}
}
function updateProjectJsonVersions
{
Write-Verbose "Updating the version for project.json files"
foreach ($file in (getFiles "project.json"))
{
Write-Verbose $file
$json = Get-Content $file | ConvertFrom-Json
foreach ($package in $NuGetPackageClosure.Keys)
{
if ($json.dependencies.$package)
{
$json.dependencies.$package = $NuGetPackageClosure[$package]
}
}
$json | ConvertTo-Json -Depth 100 | Out-File $file -Force -Encoding ascii
}
}
# .csproj, vcxproj, etc. files contain text lines pointing to nuget packages
# use regex replace to have these point to the updated nuget packages
function updateProjectVersionNumber($string, $packageName, $newVersion)
{
$escapedPackage = [Regex]::Escape($packageName)
$newString = $string -replace "\\$escapedPackage\.(\d+\.[0-9a-z\.\-]+)\\", "\$packageName.$newVersion\"
if ($newString -ne $string)
{
Write-Verbose "Replacing $packageName version:`n$string`n$newString"
}
return $newString
}
function getFiles($searchPattern)
{
$files = Get-ChildItem $SourceDirectory -Recurse -Include $searchPattern
$fileNames = $files | Foreach-Object { $_.FullName }
return $fileNames | Where-Object { ! (shouldIgnoreFile $_) }
}
function shouldIgnoreFile($fileName)
{
foreach ($excludeFolder in ($ExcludeFolders.Split(";") | Where-Object { $_ }))
{
if ($fileName.Contains($excludeFolder))
{
Write-Verbose "Ignoring $fileName due to exclusion folder $ignore"
return $true
}
}
return $false
}
main

Просмотреть файл

@ -1,29 +0,0 @@
<#
.SYNOPSIS
Runs WinAppDeployCmd to deploy to a specific device.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory)]
[String]$DeviceIp,
[Parameter(Mandatory)]
[String]$Command,
[Parameter()]
[String[]]$AdditionalArgs = @()
)
$ErrorActionPreference = "Stop"
$WinAppDeployCmd = "C:\Program Files (x86)\Windows Kits\10\bin\x86\WinAppDeployCmd.exe"
function main
{
$allArgs = @($Command, "-ip", $DeviceIp) + $AdditionalArgs
Write-Verbose "$WinAppDeployCmd $allArgs"
&$WinAppDeployCmd $allArgs | Tee-Object -Variable deployOutput
if (! $?)
{
Write-Error "Error running [$WinAppDeployCmd $allArgs]: $($deployOutput -join "`n")"
}
}
main

Просмотреть файл

@ -1,145 +0,0 @@
<#
/**************************************************************
* *
# Copyright (c) Microsoft Corporation. All rights reserved. *
# Licensed under the MIT License. *
* *
**************************************************************/
.SYNOPSIS
Invokes CMake to build GLTFSDK for android targets.
This should be run after every git pull or clean and should be safe to run any time.
.DESCRIPTION
It first creates ninja files as native build target. Then invokes ninja to kick off
actual build process.
Assumes, CMake, ninja and Android-ndk are available.
.EXAMPLE
androidbuild.ps1 -arm64
#>
[CmdletBinding()]
param(
[switch]$Clean,
[switch]$Rebuild,
[switch]$NoUnitTests,
[switch]$arm64,
[switch]$arm32,
[switch]$x86,
[switch]$x86_64,
[switch]$NoDebug
)
$ErrorActionPreference = "stop"
if($NoDebug) {$BuildType = "Release"} else { $BuildType = "Debug"}
function GenerateNinjaFiles()
{
$AndroidABI = findABI
$BuildDirName = getBuildDirName
Write-Host "Generating Android ninja files for $AndroidABI"
New-Item -Path "$PSScriptRoot\Built\Int" -Name $BuildDirName -ItemType Directory -Force | Out-Null
Push-Location "$PSScriptRoot\Built\Int\$BuildDirName" | Out-Null
try
{
if (Test-Path Env:ANDROID_HOME)
{
$AndroidNDKRoot = "$Env:ANDROID_HOME\ndk-bundle"
}
else
{
$Appdata = [Environment]::GetFolderPath('ApplicationData')
$AndroidNDKRoot = "$Appdata\..\Local\Android\Sdk\ndk-bundle"
}
$AndroidToolChain = "$AndroidNDKRoot\build\cmake\android.toolchain.cmake"
$AndroidPlatform = "android-19"
if ($NoUnitTests)
{
$ENABLE_UNIT_TESTS = "OFF"
}
else
{
$ENABLE_UNIT_TESTS = "ON"
}
cmake ..\..\.. -DANDROID_ABI="$AndroidABI" -DANDROID_PLATFORM="$AndroidPlatform" -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=intermediates -DCMAKE_BUILD_TYPE="$BuildType" -DANDROID_NDK="$AndroidNDKRoot" -DCMAKE_TOOLCHAIN_FILE="$AndroidToolChain" -DCMAKE_CXX_FLAGS=-fexceptions -DANDROID_STL=c++_static -GNinja -DANDROID_OS_PLATFORM=ANDROID -DENABLE_UNIT_TESTS="$ENABLE_UNIT_TESTS" | Write-Host
}
finally
{
Pop-Location | Out-Null
}
}
function BuildTarget()
{
$BuildDirName = getBuildDirName
Push-Location "$PSScriptRoot\Built\Int\$BuildDirName" | Out-Null
try
{
cmake --build . --target install --config "$BuildType"
}
finally
{
Pop-Location | Out-Null
}
}
function cleanAllTargets()
{
Remove-Item "$PSScriptRoot\Built" -Recurse -Force -ErrorAction Ignore | Write-Host
}
function cleanTarget()
{
# Delete both compilation and installation directories.
$BuildDirName = getBuildDirName
Remove-Item "$PSScriptRoot\Built\Int\$BuildDirName" -Recurse -Force -ErrorAction Ignore | Write-Host
Remove-Item "$PSScriptRoot\Built\Out\$BuildDirName\$BuildType" -Recurse -Force -ErrorAction Ignore | Write-Host
}
function findABI()
{
$ABI = "x86"
if($arm32)
{
$ABI = "armeabi-v7a"
}
elseif($arm64)
{
$ABI = "arm64-v8a"
}
elseif($x86_64)
{
$abi = "x86_64"
}
return $ABI
}
function getBuildDirName()
{
$AndroidABI = findABI
$BuildDirName = "android_$AndroidABI"
return $BuildDirName
}
function Main()
{
if($Clean)
{
cleanTarget
}
else
{
if($Rebuild)
{
cleanTarget
}
GenerateNinjaFiles
BuildTarget
}
}
Main

Просмотреть файл

@ -1,130 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Build the macOS projects from the command line.
.DESCRIPTION
Builds the xcode projects generated by macinit.ps1
.PARAMETER NoNuGet
Disable build of NuGet packages
.EXAMPLE
macbuild.ps1
#>
[CmdletBinding()]
param(
[switch]$NoNuGet,
[switch]$NoMacOS,
[switch]$NoIOS,
[switch]$NoSimulator,
[switch]$NoDebug,
[switch]$NoRelease
)
$ErrorActionPreference = "stop"
function BuildMacOS()
{
Write-Host "Build macOS"
Push-Location "$PSScriptRoot/Built/Int/cmake_macos"
try
{
if (!$NoDebug)
{
cmake --build . --target install --config Debug
}
if (!$NoRelease)
{
cmake --build . --target install --config Release
}
}
finally
{
Pop-Location
}
}
function BuildIOS()
{
Write-Host "Build iOS"
Push-Location "$PSScriptRoot/Built/Int/cmake_ios"
try
{
if (!$NoDebug)
{
cmake --build . --target install --config Debug
}
if (!$NoRelease)
{
cmake --build . --target install --config Release
}
}
finally
{
Pop-Location
}
}
function BuildIOSSimulator()
{
Write-Host "Build iOS Simulator"
Push-Location "$PSScriptRoot/Built/Int/cmake_ios_simulator"
try
{
if (!$NoDebug)
{
cmake --build . --target install --config Debug
}
if (!$NoRelease)
{
cmake --build . --target install --config Release
}
}
finally
{
Pop-Location
}
}
function BuildMacOSNuGet()
{
nuget pack $PSScriptRoot/GLTFSDK/GLTFSDK.macOS.CPP.nuspec -OutputDirectory $PSScriptRoot/Built/Out/NuGet
}
function BuildIOSNuGet()
{
nuget pack $PSScriptRoot/GLTFSDK/GLTFSDK.iOS.CPP.nuspec -OutputDirectory $PSScriptRoot/Built/Out/NuGet
}
function Main()
{
if (!$NoMacOS)
{
BuildMacOS
}
if (!$NoIOS)
{
BuildIOS
}
if (!$NoSimulator)
{
BuildIOSSimulator
}
if (!$NoNuGet)
{
BuildMacOSNuGet
BuildIOSNuGet
}
}
Main

Просмотреть файл

@ -1,119 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License.
<#
.SYNOPSIS
Setup the xcode workspace for building on MacOS.
This should be run after every git pull or clean and should be safe to run any time.
.DESCRIPTION
Fetches NuGet packages and updates any configuration required for the xcode workspace to load and build.
Could go so far as to update or generate the xcode projects if needed.
.EXAMPLE
macosini.ps1
#>
[CmdletBinding()]
param(
[switch]$Clean,
[switch]$NoMacOS,
[switch]$NoIOS,
[switch]$NoSimulator,
[switch]$NoUnitTests
)
$ErrorActionPreference = "stop"
if ($NoUnitTests) {$ENABLE_UNIT_TESTS = "OFF"} else {$ENABLE_UNIT_TESTS = "ON"}
function CleanFiles()
{
Remove-Item "$PSScriptRoot/Build/packages" -Recurse -Force -ErrorAction Ignore | Write-Host
Remove-Item "$PSScriptRoot/Built" -Recurse -Force -ErrorAction Ignore | Write-Host
}
function RestoreNuGet()
{
Write-Host "Restoring NuGet packages"
&"$PSScriptRoot/XPlatScripts/NuGet.macOS/NuGetRestore.ps1" -XCodeConfigFile "$PSScriptRoot/Built/Int/XCode.xcconfig" -PackagesDirectory "$PSScriptRoot/Build/packages" -PackagesConfigRoot "$PSScriptRoot/Build/macOSPackageRoot" -NugetConfigSource "$PSScriptRoot/NuGet.Config"
}
function GenerateSpectreVersion()
{
Write-Host "Generating SpectreVersionInternal.h"
&"$PSScriptRoot/Build/Scripts/VersionGeneratorAndModifier.ps1" -sourceDirectory $PSScriptRoot -Exclude "$PSScriptRoot/Build/packages;$PSScriptRoot/Build/NuGet/FBX" -ModifyCoAppPackages false -ModifyNuGetPackages false -ModifyWindowsStoreApps false -WriteVersionHeader true
}
function GenerateProjectsMacOS()
{
Write-Host "Generate MacOS Projects"
New-Item -Path "$PSScriptRoot/Built/Int" -Name cmake_macos -ItemType Directory -Force | Out-Null
Push-Location "$PSScriptRoot/Built/Int/cmake_macos" | Out-Null
try
{
cmake -G Xcode ../../.. -DENABLE_UNIT_TESTS="$ENABLE_UNIT_TESTS" | Write-Host
}
finally
{
Pop-Location | Out-Null
}
}
function GenerateProjectsIOS()
{
Write-Host "Generate iOS Projects"
New-Item -Path "$PSScriptRoot/Built/Int" -Name cmake_ios -ItemType Directory -Force | Out-Null
Push-Location "$PSScriptRoot/Built/Int/cmake_ios" | Out-Null
try
{
cmake -G Xcode ../../.. -DCMAKE_TOOLCHAIN_FILE="$PSScriptRoot/Build/CMake/ios.toolchain.cmake" -DIOS_PLATFORM=OS -DIOS_DEPLOYMENT_TARGET="9.0" -DENABLE_UNIT_TESTS="$ENABLE_UNIT_TESTS" | Write-Host
}
finally
{
Pop-Location | Out-Null
}
}
function GenerateProjectsIOSSimulator()
{
Write-Host "Generate iOS Simulator Projects"
New-Item -Path "$PSScriptRoot/Built/Int" -Name cmake_ios_simulator -ItemType Directory -Force | Out-Null
Push-Location "$PSScriptRoot/Built/Int/cmake_ios_simulator" | Out-Null
try
{
cmake -G Xcode ../../.. -DCMAKE_TOOLCHAIN_FILE="$PSScriptRoot/Build/CMake/ios.toolchain.cmake" -DIOS_PLATFORM=SIMULATOR64 -DIOS_DEPLOYMENT_TARGET="9.0" -DENABLE_UNIT_TESTS="$ENABLE_UNIT_TESTS" | Write-Host
}
finally
{
Pop-Location | Out-Null
}
}
function Main()
{
if ($Clean)
{
CleanFiles
}
RestoreNuGet
GenerateSpectreVersion
if (!$NoMacOS)
{
GenerateProjectsMacOS
}
if (!$NoIOS)
{
GenerateProjectsIOS
}
if (!$NoSimulator)
{
GenerateProjectsIOSSimulator
}
}
Main