axmol/build/winrt/scripts/createsln.ps1

99 lines
3.3 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Function CreateSolution()
{
$solution = New-Module -AsCustomObject -ScriptBlock {
. ".\scripts\converterutils.ps1"
#use MSBuild namespace
$ms = 'http://schemas.microsoft.com/developer/msbuild/2003'
$ns = @{ ms = $ms }
$projects = @()
$solutionDir = ""
Function AddProject($path) {
$globals = GetProjectGlobals $path $ns
$guid = $globals.Node.ProjectGuid
$relativePath = Get-RelativePath $this.solutionDir $path
$project = New-Object TypeName PSObject
$project | Add-Member MemberType NoteProperty Name guid Value $globals.Node.ProjectGuid
$project | Add-Member MemberType NoteProperty Name path Value $relativePath
if($globals.Node.ProjectName)
{
$project | Add-Member MemberType NoteProperty Name name Value $globals.Node.ProjectName
}
else
{
$project | Add-Member MemberType NoteProperty Name name Value $globals.Node.RootNamespace
}
$this.projects += $project
}
Function Save($path, $platform) {
$output = New-Item $path -type file -force
if($platform -eq "winrt")
{
$template = join-path $PSScriptRoot "templates\winrt_sln_header_template.txt"
}
elseif($platform -eq "wp8")
{
$template = join-path $PSScriptRoot "templates\wp8_sln_header_template.txt"
}
else
{
throw "Unknown platform argument (winrt or wp8)"
}
(Get-Content $template) |
Add-Content $path
foreach($project in $this.projects)
{
$line = 'Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "' + $project.name + '", "' + $project.path + '", "' + $project.guid + '"'
#Add-Content $path 'Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opencv_core", "opencv_core.vcxproj", "{8F928FE0-8A06-4F93-99FE-53B9C7A006CA}"'
Add-Content $path $line
Add-Content $path 'EndProject'
}
$template = join-path $PSScriptRoot "templates\global_start_template.txt"
(Get-Content $template) |
Add-Content $path
$template = join-path $PSScriptRoot "templates\globalsection_template.txt"
foreach($project in $this.projects)
{
(Get-Content $template) |
Foreach-Object {$_ -replace "REPLACE_GUID", $project.guid} |
Add-Content $path
}
$template = join-path $PSScriptRoot "templates\global_end_template.txt"
(Get-Content $template) |
Add-Content $path
}
Export-ModuleMember -Variable * -Function *
}
return $solution
}
<#
$solutionDir = join-path $WorkingDir ".\modules\core"
$path = join-path $solutionDir "opencv_core.vcxproj"
$output = join-path $solutionDir "opencv_core2.sln"
$solution = CreateSolution
$solution.solutionDir = $solutionDir
$solution.AddProject($path)
$path = join-path $WorkingDir ".\3rdparty\zlib\zlib.vcxproj"
$solution.AddProject($path)
$solution.Save($output)
notepad $output
#>