Merge pull request #1113 from PowerShell/vors/resgen
Move resgen artifacts from submodules into src subfolders
This commit is contained in:
commit
e8e45914a6
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -30,3 +30,6 @@ powershell.version
|
|||
|
||||
# default location for produced nuget packages
|
||||
/nuget-artifacts
|
||||
|
||||
# resgen output
|
||||
gen
|
||||
|
|
21
build.psm1
21
build.psm1
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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`.
|
||||
|
|
|
@ -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": "",
|
||||
|
|
|
@ -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": "",
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
"buildOptions": {
|
||||
"warningsAsErrors": true,
|
||||
"allowUnsafe": true,
|
||||
"compile": [ "../windows-build/gen/Microsoft.PowerShell.ConsoleHost/*.cs" ],
|
||||
"copyToOutput": {
|
||||
"include": [
|
||||
"Modules",
|
||||
|
|
|
@ -5,8 +5,7 @@
|
|||
|
||||
"buildOptions": {
|
||||
"warningsAsErrors": true,
|
||||
"allowUnsafe": true,
|
||||
"compile": [ "../windows-build/gen/Microsoft.PowerShell.CoreCLR.Eventing/*.cs" ]
|
||||
"allowUnsafe": true
|
||||
},
|
||||
|
||||
"frameworks": {
|
||||
|
|
|
@ -4,8 +4,7 @@
|
|||
"authors": [ "OPS" ],
|
||||
|
||||
"buildOptions": {
|
||||
"warningsAsErrors": true,
|
||||
"compile": [ "../windows-build/gen/Microsoft.PowerShell.LocalAccounts/*.cs" ]
|
||||
"warningsAsErrors": true
|
||||
},
|
||||
|
||||
"dependencies": {
|
||||
|
|
|
@ -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" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
Loading…
Reference in a new issue