Merge pull request #1113 from PowerShell/vors/resgen

Move resgen artifacts from submodules into src subfolders
This commit is contained in:
Andy Schwartzmeyer 2016-06-15 11:11:11 -07:00 committed by GitHub
commit e8e45914a6
11 changed files with 31 additions and 50 deletions

3
.gitignore vendored
View file

@ -30,3 +30,6 @@ powershell.version
# default location for produced nuget packages
/nuget-artifacts
# resgen output
gen

View file

@ -26,6 +26,7 @@ function Start-PSBuild {
[switch]$NoPath,
[switch]$Restore,
[string]$Output,
[switch]$ResGen,
[Parameter(ParameterSetName='CoreCLR')]
[switch]$Publish,
@ -143,6 +144,13 @@ function Start-PSBuild {
Start-NativeExecution { dotnet restore $RestoreArguments }
}
# handle ResGen
if ($ResGen -or -not (Test-Path "$($Options.Top)/gen"))
{
log "Run ResGen (generating C# bindings for resx files)"
Start-ResGen
}
# Build native components
if ($IsLinux -or $IsOSX) {
$Ext = if ($IsLinux) {
@ -867,6 +875,9 @@ function Send-GitDiffToSd {
function Start-ResGen
{
[CmdletBinding()]
param()
@("Microsoft.PowerShell.Commands.Management",
"Microsoft.PowerShell.Commands.Utility",
"Microsoft.PowerShell.ConsoleHost",
@ -875,9 +886,9 @@ function Start-ResGen
"Microsoft.PowerShell.Security",
"System.Management.Automation") | % {
$module = $_
ls "$PSScriptRoot/src/$module/resources" | % {
Get-ChildItem "$PSScriptRoot/src/$module/resources" | % {
$className = $_.Name.Replace('.resx', '')
$xml = [xml](cat -raw $_.FullName)
$xml = [xml](Get-Content -raw $_.FullName)
$fileName = $className
$namespace = ''
@ -890,9 +901,9 @@ function Start-ResGen
}
$genSource = Get-StronglyTypeCsFileForResx -xml $xml -ModuleName $module -ClassName $className -NamespaceName $namespace
$outPath = "$PSScriptRoot/src/windows-build/gen/$module/$fileName.cs"
log "ResGen for $outPath"
mkdir -ErrorAction SilentlyContinue (Split-Path $outPath) > $null
$outPath = "$PSScriptRoot/src/$module/gen/$fileName.cs"
Write-Verbose "ResGen for $outPath"
New-Item -Type Directory -ErrorAction SilentlyContinue (Split-Path $outPath) > $null
Set-Content -Encoding Ascii -Path $outPath -Value $genSource
}
}

View file

@ -5,9 +5,13 @@ They live in `src\<project>\resources` folders.
At the moment `dotnet cli` doesn't support generating C# bindings (strongly typed resource files).
We are using `src\windows-build\gen` folder in [src\windows-build](https://github.com/PowerShell/psl-windows-build)
with pre-generated `.cs` files to work-around it.
See [issue 756](https://github.com/PowerShell/PowerShell/issues/746) for details.
We are using our own `Start-ResGen` to generate them.
Usually it's called as part of the regular build with
```
Start-PSBuild -ResGen
```
## Editing resx files
@ -17,15 +21,6 @@ It will try to create `.cs` files for you and you will get whole bunch of hard-t
To edit resource file, use any **plain text editor**.
Resource file is a simple xml, and it's easy to edit.
### Updating string
## Adding resx files
If you just updated the string value, that's all you need to do: no need to re-generate `.cs` files
### Adding or removing string
When you adding or removing string, `.cs` file need to be changed.
1. Run `Start-ResGen` function from `build.psm1`
1. Make sure your code is building with newly generated resources (run `Start-PSBuild`).
1. Go to submodule (`cd src\windows-build`) and perform the [submodule commit dance](../git/committing.md).
Follow working with [submodule rules](../../.github/CONTRIBUTING.md#submodules)
Add corresponding entries in `Start-ResGen` in `.\build.psm1`.

View file

@ -18,7 +18,6 @@
"buildOptions": {
"define": [ "CORECLR" ],
"compile": {
"include": [ "../windows-build/gen/Microsoft.PowerShell.Commands.Management/*.cs" ],
"exclude": [
"commands/management/ClearRecycleBinCommand.cs",
"commands/management/CommitTransactionCommand.cs",
@ -48,11 +47,6 @@
}
},
"net451": {
"buildOptions": {
"compile": {
"include": [ "../windows-build/gen/Microsoft.PowerShell.Commands.Management/*.cs" ]
}
},
"frameworkAssemblies": {
"System.ServiceProcess": "",
"System.Windows.Forms": "",

View file

@ -17,7 +17,6 @@
"buildOptions": {
"define": [ "CORECLR" ],
"compile": {
"include": [ "../windows-build/gen/Microsoft.PowerShell.Commands.Utility/*.cs" ],
"exclude": [
"commands/utility/FormatAndOutput/OutGridView/ColumnInfo.cs",
"commands/utility/FormatAndOutput/OutGridView/ExpressionColumnInfo.cs",
@ -65,11 +64,6 @@
}
},
"net451": {
"buildOptions": {
"compile": {
"include": [ "../windows-build/gen/Microsoft.PowerShell.Commands.Utility/*.cs" ]
}
},
"frameworkAssemblies": {
"System.Drawing": "",
"System.Web": "",

View file

@ -7,7 +7,6 @@
"buildOptions": {
"warningsAsErrors": true,
"allowUnsafe": true,
"compile": [ "../windows-build/gen/Microsoft.PowerShell.ConsoleHost/*.cs" ],
"copyToOutput": {
"include": [
"Modules",

View file

@ -5,8 +5,7 @@
"buildOptions": {
"warningsAsErrors": true,
"allowUnsafe": true,
"compile": [ "../windows-build/gen/Microsoft.PowerShell.CoreCLR.Eventing/*.cs" ]
"allowUnsafe": true
},
"frameworks": {

View file

@ -4,8 +4,7 @@
"authors": [ "OPS" ],
"buildOptions": {
"warningsAsErrors": true,
"compile": [ "../windows-build/gen/Microsoft.PowerShell.LocalAccounts/*.cs" ]
"warningsAsErrors": true
},
"dependencies": {

View file

@ -18,7 +18,6 @@
"buildOptions": {
"define": [ "CORECLR" ],
"compile": {
"include": [ "../windows-build/gen/Microsoft.PowerShell.Security/*.cs" ],
"exclude": [
"security/CertificateCommands.cs",
"security/CmsCommands.cs",
@ -28,11 +27,6 @@
}
},
"net451": {
"buildOptions": {
"compile": {
"include": [ "../windows-build/gen/Microsoft.PowerShell.Security/*.cs" ]
}
}
}
}
}

View file

@ -26,7 +26,6 @@
"buildOptions": {
"define": [ "CORECLR" ],
"compile": {
"include": [ "../windows-build/gen/System.Management.Automation/*.cs" ],
"exclude": [
"cimSupport/cmdletization/xml/cmdlets-over-objects.objectModel.autogen.cs",
"cimSupport/cmdletization/xml/cmdlets-over-objects.xmlSerializer.autogen.cs",
@ -163,12 +162,6 @@
}
},
"net451": {
"buildOptions": {
"compile": {
"include": [ "../windows-build/gen/System.Management.Automation/*.cs" ]
}
},
"frameworkAssemblies": {
"System.Runtime": "",
"System.Xml": "",

@ -1 +1 @@
Subproject commit 9598137e1ec976c23328880534a8f49bdce32cf0
Subproject commit 4011f04c040c88441dd93ec53191e5540832ee21