vs: tweak output and add x64 to build script

This commit is contained in:
bnnm 2023-02-09 01:11:03 +01:00
parent 5e764e3447
commit 6477ed8a4d
5 changed files with 113 additions and 72 deletions

View File

@ -68,7 +68,7 @@ jobs:
env: env:
UPLOADER_GITHUB_TOKEN: ${{ secrets.UPLOADER_GITHUB_TOKEN }} UPLOADER_GITHUB_TOKEN: ${{ secrets.UPLOADER_GITHUB_TOKEN }}
run: | run: |
python .github/uploader.py bin/vgmstream-win.zip bin/foo_input_vgmstream.fb2k-component python .github/uploader.py bin/vgmstream-win.zip bin/vgmstream-win64.zip bin/foo_input_vgmstream.fb2k-component
python .github/uploader.py --changelog python .github/uploader.py --changelog
#- name: Upload artifacts to S3 #- name: Upload artifacts to S3

1
.gitignore vendored
View File

@ -24,6 +24,7 @@ ipch
*.VC.db *.VC.db
*.VC.VC.opendb *.VC.VC.opendb
/build-msvc
**/Debug **/Debug
**/Release **/Release
**/Debug FB2K **/Debug FB2K

View File

@ -19,7 +19,7 @@ if (!$toolset) { $toolset = "" }
# - sdks: "" (default), "7.0" (Win7 SDK), "8.1" (Win8 SDK), "10.0" (Win10 SDK), etc # - sdks: "" (default), "7.0" (Win7 SDK), "8.1" (Win8 SDK), "10.0" (Win10 SDK), etc
if (!$sdk) { $sdk = "" } if (!$sdk) { $sdk = "" }
# - platforms: "" (default), "Win32" # - platforms: "" (default), "Win32", "x64"
if (!$platform) { $platform = "" } if (!$platform) { $platform = "" }
# print compilation log # print compilation log
@ -138,12 +138,26 @@ function CallMsbuild
throw "Unable to find MSBuild. Is Visual Studio installed?" throw "Unable to find MSBuild. Is Visual Studio installed?"
} }
# TODO improve (why does every xxxxer make their own scripting engine)
# main build (pass config separate and not as a single string) # main build (pass config separate and not as a single string)
if (!$log) { if (!$log) {
& $msbuild $solution $config $platform $toolset $sdk $target /m if ($platform) {
throw "has platform"
& $msbuild $solution $config $platform $toolset $sdk $target /m
}
else {
& $msbuild $solution $config /p:Platform=Win32 $toolset $sdk $target /m
& $msbuild $solution $config /p:Platform=x64 $toolset $sdk $target /m
}
} }
else { else {
& $msbuild $solution $config $platform $toolset $sdk $target /m > "msvc-build.log" if ($platform) {
& $msbuild $solution $config $platform $toolset $sdk $target /m > "msvc-build.log"
}
else {
& $msbuild $solution $config /p:Platform=Win32 $toolset $sdk $target /m > "msvc-build.log"
& $msbuild $solution $config /p:Platform=x64 $toolset $sdk $target /m > "msvc-build.log"
}
} }
if ($LASTEXITCODE -ne 0) { if ($LASTEXITCODE -ne 0) {
@ -153,7 +167,7 @@ function CallMsbuild
function Build function Build
{ {
CallMsbuild "Build" CallMsbuild "Build"
} }
function Rebuild function Rebuild
@ -166,55 +180,68 @@ function Clean
CallMsbuild "Clean" CallMsbuild "Clean"
# todo fix the above, for now: # todo fix the above, for now:
#Remove-Item -Path "$dependencies" -Recurse -ErrorAction Ignore #Remove-Item -Path "$dependencies" -Recurse -ErrorAction Ignore
Remove-Item -Path "cli/Debug" -Recurse -ErrorAction Ignore Remove-Item -Path "build-msvc" -Recurse -ErrorAction Ignore
Remove-Item -Path "cli/Release" -Recurse -ErrorAction Ignore
Remove-Item -Path "ext_libs/Debug" -Recurse -ErrorAction Ignore
Remove-Item -Path "ext_libs/Release" -Recurse -ErrorAction Ignore
Remove-Item -Path "ext_libs/Getopt/Debug" -Recurse -ErrorAction Ignore
Remove-Item -Path "ext_libs/Getopt/Release" -Recurse -ErrorAction Ignore
Remove-Item -Path "fb2k/Debug" -Recurse -ErrorAction Ignore
Remove-Item -Path "fb2k/Release" -Recurse -ErrorAction Ignore
Remove-Item -Path "src/Debug" -Recurse -ErrorAction Ignore
Remove-Item -Path "src/Release" -Recurse -ErrorAction Ignore
Remove-Item -Path "winamp/Debug" -Recurse -ErrorAction Ignore
Remove-Item -Path "winamp/Release" -Recurse -ErrorAction Ignore
Remove-Item -Path "xmplay/Debug" -Recurse -ErrorAction Ignore
Remove-Item -Path "xmplay/Release" -Recurse -ErrorAction Ignore
Remove-Item -Path "Debug" -Recurse -ErrorAction Ignore Remove-Item -Path "Debug" -Recurse -ErrorAction Ignore
Remove-Item -Path "Release" -Recurse -ErrorAction Ignore Remove-Item -Path "Release" -Recurse -ErrorAction Ignore
Remove-Item -Path "bin" -Recurse -ErrorAction Ignore Remove-Item -Path "bin" -Recurse -ErrorAction Ignore
Remove-Item -Path "tmp" -Recurse -ErrorAction Ignore Remove-Item -Path "tmp" -Recurse -ErrorAction Ignore
Remove-Item "msvc-build.log" -ErrorAction Ignore Remove-Item "msvc-build.log" -ErrorAction Ignore
} }
$fb2kFiles = @( $cliFiles32 = @(
"ext_libs/*.dll", "ext_libs/*.dll",
"$configuration/foo_input_vgmstream.dll",
"README.md"
"doc/USAGE.md"
)
$cliFiles = @(
"ext_libs/*.dll",
"$configuration/in_vgmstream.dll",
"$configuration/vgmstream-cli.exe", "$configuration/vgmstream-cli.exe",
"$configuration/in_vgmstream.dll",
"$configuration/xmp-vgmstream.dll", "$configuration/xmp-vgmstream.dll",
"COPYING", "COPYING",
"README.md" "README.md"
"doc/USAGE.md" "doc/USAGE.md"
) )
$fb2kPdbFiles = @( $cliFiles64 = @(
"ext_libs/dll-x64/*.dll",
"x64/$configuration/vgmstream-cli.exe",
"COPYING",
"README.md"
"doc/USAGE.md"
)
$fb2kFiles32 = @(
"ext_libs/*.dll",
"$configuration/foo_input_vgmstream.dll",
"README.md"
"doc/USAGE.md"
)
$fb2kFiles64 = @(
"ext_libs/dll-x64/*.dll",
"x64/$configuration/foo_input_vgmstream.dll",
"README.md"
"doc/USAGE.md"
)
$cliPdbFiles32 = @(
"$configuration/vgmstream-cli.pdb",
"$configuration/in_vgmstream.pdb",
"$configuration/xmp-vgmstream.pdb"
)
$cliPdbFiles64 = @(
"x64/$configuration/vgmstream-cli.pdb"
)
$fb2kPdbFiles32 = @(
"$configuration/foo_input_vgmstream.pdb" "$configuration/foo_input_vgmstream.pdb"
) )
$cliPdbFiles = @( $fb2kPdbFiles64 = @(
"$configuration/in_vgmstream.pdb", "x64/$configuration/foo_input_vgmstream.pdb"
"$configuration/vgmstream-cli.pdb",
"$configuration/xmp-vgmstream.pdb"
) )
function MakePackage function MakePackage
{ {
Build Build
@ -224,16 +251,20 @@ function MakePackage
return return
} }
Compress-Archive $cliFiles $configuration/vgmstream-win.zip -Force mkdir -Force bin
Compress-Archive $fb2kFiles $configuration/foo_input_vgmstream.zip -Force
Compress-Archive $cliPdbFiles $configuration/vgmstream-win.pdb.zip -Force
Compress-Archive $fb2kPdbFiles $configuration/foo_input_vgmstream.pdb.zip -Force
md -Force bin Compress-Archive $cliFiles32 bin/vgmstream-win.zip -Force
Move-Item $configuration/vgmstream-win.zip bin/vgmstream-win.zip -Force Compress-Archive $cliFiles64 bin/vgmstream-win64.zip -Force
Move-Item $configuration/foo_input_vgmstream.zip bin/foo_input_vgmstream.fb2k-component -Force Compress-Archive $cliPdbFiles32 bin/vgmstream-win.pdb.zip -Force
Move-Item $configuration/vgmstream-win.pdb.zip bin/vgmstream-win.pdb.zip -Force Compress-Archive $cliPdbFiles64 bin/vgmstream-win64.pdb.zip -Force
Move-Item $configuration/foo_input_vgmstream.pdb.zip bin/foo_input_vgmstream.pdb.zip -Force
Compress-Archive $fb2kFiles32 bin/foo_input_vgmstream.zip -Force
Move-Item bin/foo_input_vgmstream.zip bin/foo_input_vgmstream.fb2k-component -Force
#Compress-Archive $fb2kFiles64 bin/foo_input_vgmstream64.zip -Force
#Move-Item $configuration/foo_input_vgmstream64.zip bin/foo_input_vgmstream64.fb2k-component -Force
Compress-Archive $fb2kPdbFiles32 bin/foo_input_vgmstream.pdb.zip -Force
#Compress-Archive $fb2kPdbFiles64 bin/foo_input_vgmstream64.pdb.zip -Force
} }
@ -242,13 +273,13 @@ function MakePackageTmp
{ {
MakePackage MakePackage
md -Force tmp/cli mkdir -Force tmp/cli
md -Force tmp/fb2k mkdir -Force tmp/fb2k
md -Force tmp/cli-p mkdir -Force tmp/cli-p
md -Force tmp/fb2k-p mkdir -Force tmp/fb2k-p
Copy-Item $cliFiles tmp/cli/ -Recurse -Force Copy-Item $cliFiles32 tmp/cli/ -Recurse -Force
Copy-Item $fb2kFiles tmp/fb2k/ -Recurse -Force Copy-Item $fb2kFiles32 tmp/fb2k/ -Recurse -Force
Copy-Item $cliPdbFiles tmp/cli-p/ -Recurse -Force Copy-Item $cliPdbFiles tmp/cli-p/ -Recurse -Force
Copy-Item $fb2kPdbFiles tmp/fb2k-p/ -Recurse -Force Copy-Item $fb2kPdbFiles tmp/fb2k-p/ -Recurse -Force
} }

View File

@ -76,44 +76,44 @@ Global
{42D86561-8CE4-40F5-86CE-58C986B77502}.Release|x64.ActiveCfg = Release|Win32 {42D86561-8CE4-40F5-86CE-58C986B77502}.Release|x64.ActiveCfg = Release|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|Win32.ActiveCfg = Debug|Win32 {F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|Win32.ActiveCfg = Debug|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|Win32.Build.0 = Debug|Win32 {F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|Win32.Build.0 = Debug|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|x64.ActiveCfg = Debug|x64 # {F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|x64.ActiveCfg = Debug|x64
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|x64.Build.0 = Debug|x64 # {F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Debug|x64.Build.0 = Debug|x64
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|Win32.ActiveCfg = Release|Win32 {F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|Win32.ActiveCfg = Release|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|Win32.Build.0 = Release|Win32 {F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|Win32.Build.0 = Release|Win32
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|x64.ActiveCfg = Release|x64 # {F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|x64.ActiveCfg = Release|x64
{F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|x64.Build.0 = Release|x64 # {F3739CF2-F422-4A3D-BB0A-53C5D4C5ABA0}.Release|x64.Build.0 = Release|x64
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|Win32.ActiveCfg = Debug|Win32 {E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|Win32.ActiveCfg = Debug|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|Win32.Build.0 = Debug|Win32 {E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|Win32.Build.0 = Debug|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|x64.ActiveCfg = Debug|x64 # {E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|x64.ActiveCfg = Debug|x64
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|x64.Build.0 = Debug|x64 # {E8091321-D79D-4575-86EF-064EA1A4A20D}.Debug|x64.Build.0 = Debug|x64
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|Win32.ActiveCfg = Release|Win32 {E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|Win32.ActiveCfg = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|Win32.Build.0 = Release|Win32 {E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|Win32.Build.0 = Release|Win32
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|x64.ActiveCfg = Release|x64 # {E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|x64.ActiveCfg = Release|x64
{E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|x64.Build.0 = Release|x64 # {E8091321-D79D-4575-86EF-064EA1A4A20D}.Release|x64.Build.0 = Release|x64
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|Win32.ActiveCfg = Debug|Win32 {EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|Win32.ActiveCfg = Debug|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|Win32.Build.0 = Debug|Win32 {EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|Win32.Build.0 = Debug|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|x64.ActiveCfg = Debug|x64 # {EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|x64.ActiveCfg = Debug|x64
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|x64.Build.0 = Debug|x64 # {EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Debug|x64.Build.0 = Debug|x64
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|Win32.ActiveCfg = Release|Win32 {EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|Win32.ActiveCfg = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|Win32.Build.0 = Release|Win32 {EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|Win32.Build.0 = Release|Win32
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|x64.ActiveCfg = Release|x64 # {EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|x64.ActiveCfg = Release|x64
{EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|x64.Build.0 = Release|x64 # {EE47764E-A202-4F85-A767-ABDAB4AFF35F}.Release|x64.Build.0 = Release|x64
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|Win32.ActiveCfg = Debug|Win32 {71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|Win32.ActiveCfg = Debug|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|Win32.Build.0 = Debug|Win32 {71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|Win32.Build.0 = Debug|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|x64.ActiveCfg = Debug|x64 # {71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|x64.ActiveCfg = Debug|x64
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|x64.Build.0 = Debug|x64 # {71AD2674-065B-48F5-B8B0-E1F9D3892081}.Debug|x64.Build.0 = Debug|x64
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|Win32.ActiveCfg = Release|Win32 {71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|Win32.ActiveCfg = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|Win32.Build.0 = Release|Win32 {71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|Win32.Build.0 = Release|Win32
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|x64.ActiveCfg = Release|x64 # {71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|x64.ActiveCfg = Release|x64
{71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|x64.Build.0 = Release|x64 # {71AD2674-065B-48F5-B8B0-E1F9D3892081}.Release|x64.Build.0 = Release|x64
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|Win32.ActiveCfg = Debug|Win32 {EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|Win32.ActiveCfg = Debug|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|Win32.Build.0 = Debug|Win32 {EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|Win32.Build.0 = Debug|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|x64.ActiveCfg = Release FB2K|x64 # {EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|x64.ActiveCfg = Release FB2K|x64
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|x64.Build.0 = Release FB2K|x64 # {EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Debug|x64.Build.0 = Release FB2K|x64
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|Win32.ActiveCfg = Release|Win32 {EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|Win32.ActiveCfg = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|Win32.Build.0 = Release|Win32 {EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|Win32.Build.0 = Release|Win32
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|x64.ActiveCfg = Release|x64 # {EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|x64.ActiveCfg = Release|x64
{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|x64.Build.0 = Release|x64 # {EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}.Release|x64.Build.0 = Release|x64
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Debug|Win32.ActiveCfg = Debug|Win32 {49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Debug|Win32.ActiveCfg = Debug|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Debug|Win32.Build.0 = Debug|Win32 {49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Debug|Win32.Build.0 = Debug|Win32
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Debug|x64.ActiveCfg = Debug|Win32 {49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Debug|x64.ActiveCfg = Debug|Win32
@ -123,12 +123,12 @@ Global
{49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Release|x64.ActiveCfg = Release|Win32 {49AF76F7-CBA0-4486-9DDF-51F30DF45F33}.Release|x64.ActiveCfg = Release|Win32
{7729EB82-4069-4414-964B-AD399091A03F}.Debug|Win32.ActiveCfg = Debug|Win32 {7729EB82-4069-4414-964B-AD399091A03F}.Debug|Win32.ActiveCfg = Debug|Win32
{7729EB82-4069-4414-964B-AD399091A03F}.Debug|Win32.Build.0 = Debug|Win32 {7729EB82-4069-4414-964B-AD399091A03F}.Debug|Win32.Build.0 = Debug|Win32
{7729EB82-4069-4414-964B-AD399091A03F}.Debug|x64.ActiveCfg = Debug|x64 # {7729EB82-4069-4414-964B-AD399091A03F}.Debug|x64.ActiveCfg = Debug|x64
{7729EB82-4069-4414-964B-AD399091A03F}.Debug|x64.Build.0 = Debug|x64 # {7729EB82-4069-4414-964B-AD399091A03F}.Debug|x64.Build.0 = Debug|x64
{7729EB82-4069-4414-964B-AD399091A03F}.Release|Win32.ActiveCfg = Release|Win32 {7729EB82-4069-4414-964B-AD399091A03F}.Release|Win32.ActiveCfg = Release|Win32
{7729EB82-4069-4414-964B-AD399091A03F}.Release|Win32.Build.0 = Release|Win32 {7729EB82-4069-4414-964B-AD399091A03F}.Release|Win32.Build.0 = Release|Win32
{7729EB82-4069-4414-964B-AD399091A03F}.Release|x64.ActiveCfg = Release|x64 # {7729EB82-4069-4414-964B-AD399091A03F}.Release|x64.ActiveCfg = Release|x64
{7729EB82-4069-4414-964B-AD399091A03F}.Release|x64.Build.0 = Release|x64 # {7729EB82-4069-4414-964B-AD399091A03F}.Release|x64.Build.0 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View File

@ -55,6 +55,15 @@
<VBuildCommandVersion>"$(ProjectDir)..\version-make.bat"</VBuildCommandVersion> <VBuildCommandVersion>"$(ProjectDir)..\version-make.bat"</VBuildCommandVersion>
</PropertyGroup> </PropertyGroup>
<!-- common properties
OutDir: where .exe/dll/etc are copied
InDir: where .obj/logs/etc are generated -->
<PropertyGroup>
<OutDir Condition="'$(Platform)'=='Win32'">$(SolutionDir)\$(Configuration)\</OutDir>
<OutDir Condition="'$(Platform)'=='x64'">$(SolutionDir)\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\build-msvc\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<!-- common compile config --> <!-- common compile config -->
<ItemDefinitionGroup> <ItemDefinitionGroup>
<ClCompile> <ClCompile>