From adf9b95a5eac03b551e6922e1819ab6dc7d1e56a Mon Sep 17 00:00:00 2001 From: David Spruill Date: Tue, 1 Jul 2025 19:27:40 -0400 Subject: [PATCH 1/5] Modify the projects to build x64, arm64, and x86. Update the nuget package to include a targets file and different versions of the API lib. --- .gitignore | 5 +- Microsoft.Test.Pict.nuspec | 59 +++-- Microsoft.Test.Pict.targets | 45 ++++ api-usage/pictapi-usage.vcxproj | 298 +++++++++++++++------- api/pictapi.vcxproj | 310 ++++++++++++++++------- build_nuget.ps1 | 51 ++++ cli/pictcli.vcxproj | 328 ++++++++++++++++-------- clidll-usage/pictclidll-usage.vcxproj | 254 +++++++++++++------ clidll/pictclidll.vcxproj | 350 ++++++++++++++++++-------- pict.sln | 188 ++++++++------ 10 files changed, 1307 insertions(+), 581 deletions(-) create mode 100644 Microsoft.Test.Pict.targets create mode 100644 build_nuget.ps1 diff --git a/.gitignore b/.gitignore index fcefb0e..632da32 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,7 @@ pict *.o .DS_Store -build \ No newline at end of file +build +/*/ARM64/* +/*/Win32/* +/*/x64/* \ No newline at end of file diff --git a/Microsoft.Test.Pict.nuspec b/Microsoft.Test.Pict.nuspec index 388d8b5..036b983 100644 --- a/Microsoft.Test.Pict.nuspec +++ b/Microsoft.Test.Pict.nuspec @@ -1,25 +1,44 @@ - - Microsoft.Test.Pict - 3.7.5 - Jacek Czerwonka - contents/LICENSE.TXT - http://github.com/microsoft/pict - - PICT - Combinatorial Testing Tool - - - - + + Microsoft.Test.Pict + 3.7.5 + Jacek Czerwonka + contents/LICENSE.TXT + http://github.com/microsoft/pict + + PICT - Combinatorial Testing Tool with multi-architecture support (x64, x86, ARM64) + + + + + + + + + - - + + + + + + + - - + + + + + + + - - - - + + + + + + + + \ No newline at end of file diff --git a/Microsoft.Test.Pict.targets b/Microsoft.Test.Pict.targets new file mode 100644 index 0000000..746ff48 --- /dev/null +++ b/Microsoft.Test.Pict.targets @@ -0,0 +1,45 @@ + + + + + $(MSBuildThisFileDirectory)contents\api;%(AdditionalIncludeDirectories) + + + + $(MSBuildThisFileDirectory)contents\win-x86\api\Debug;%(AdditionalLibraryDirectories) + + $(MSBuildThisFileDirectory)contents\win-x86\api\Release;%(AdditionalLibraryDirectories) + + $(MSBuildThisFileDirectory)contents\win-x64\api\Debug;%(AdditionalLibraryDirectories) + + $(MSBuildThisFileDirectory)contents\win-x64\api\Release;%(AdditionalLibraryDirectories) + + $(MSBuildThisFileDirectory)contents\win-arm64\api\Debug;%(AdditionalLibraryDirectories) + + $(MSBuildThisFileDirectory)contents\win-arm64\api\Release;%(AdditionalLibraryDirectories) + + + pict.lib;%(AdditionalDependencies) + + + + + + + %(Filename)%(Extension) + PreserveNewest + + + + + %(Filename)%(Extension) + PreserveNewest + + + + + %(Filename)%(Extension) + PreserveNewest + + + \ No newline at end of file diff --git a/api-usage/pictapi-usage.vcxproj b/api-usage/pictapi-usage.vcxproj index 4ccf068..eec165b 100644 --- a/api-usage/pictapi-usage.vcxproj +++ b/api-usage/pictapi-usage.vcxproj @@ -1,87 +1,213 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538} - Win32Proj - pictapisamples - 10.0 - - - Application - v143 - Unicode - - - true - - - false - true - - - - - - - - - - - $(SolutionDir)$(Configuration)\api-usage\ - - - true - - - false - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - ..\api - - - Console - true - ..\$(Configuration)\api - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) - - - true - - - - - Level3 - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - ..\api - - - Console - true - true - true - ..\$(Configuration)\api - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) - - - - - - + + + + + Debug + ARM64 + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM64 + + + Release + Win32 + + + Release + x64 + + + + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538} + Win32Proj + pictapisamples + 10.0 + + + Application + v143 + Unicode + + + true + + + true + + + true + + + false + true + + + false + true + + + false + true + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir)$(Platform)\$(Configuration)\api-usage\ + + + true + $(Platform)\$(Configuration)\ + + + true + + + true + + + false + $(Platform)\$(Configuration)\ + + + false + + + false + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + ..\api + + + Console + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + true + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + ..\api + + + Console + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + true + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + ..\api + + + Console + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + true + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + ..\api + + + Console + true + true + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + ..\api + + + Console + true + true + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + ..\api + + + Console + true + true + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + + + + \ No newline at end of file diff --git a/api/pictapi.vcxproj b/api/pictapi.vcxproj index c2bd567..5ee65af 100644 --- a/api/pictapi.vcxproj +++ b/api/pictapi.vcxproj @@ -1,100 +1,216 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {348F928A-B4A7-41FC-A312-76559047BDAF} - Win32Proj - pictapi - 10.0 - - - StaticLibrary - v143 - Unicode - - - - - pict - .lib - $(Configuration)\ - $(SolutionDir)$(Configuration)\api\ - $(SolutionDir)bin\ - - - true - true - - - false - false - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - - - Console - true - ..\$(Configuration)\ - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pictcore.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - - - Console - true - true - true - ..\$(Configuration)\ - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pictcore.lib;%(AdditionalDependencies) - - + + + + + Debug + ARM64 + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM64 + + + Release + Win32 + + + Release + x64 + + + + {348F928A-B4A7-41FC-A312-76559047BDAF} + Win32Proj + pictapi + 10.0 + + + StaticLibrary + v143 + Unicode + + + + + pict + .lib + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\api\ + $(SolutionDir)bin\ + + + true + true + + + true + true + + + true + true + + + false + false + + + false + false + + + false + false + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + + + Console + true + ..\$(Configuration)\ + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pictcore.lib;%(AdditionalDependencies) + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + + + Console + true + ..\$(Configuration)\ + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pictcore.lib;%(AdditionalDependencies) + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + + + Console + true + ..\$(Configuration)\ + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pictcore.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + + + Console + true + true + true + ..\$(Configuration)\ + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pictcore.lib;%(AdditionalDependencies) + + xcopy /Y /I $(OutDir)$(TargetName)$(TargetExt) $(DropDir) - - - - true - - - - - - - - - - - - - - - - - - - - - - - + + + + true + + + + + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + + + Console + true + true + true + ..\$(Configuration)\ + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pictcore.lib;%(AdditionalDependencies) + + + + xcopy /Y /I $(OutDir)$(TargetName)$(TargetExt) $(DropDir) + + + + true + + + + + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + + + Console + true + true + true + ..\$(Configuration)\ + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pictcore.lib;%(AdditionalDependencies) + + + + xcopy /Y /I $(OutDir)$(TargetName)$(TargetExt) $(DropDir) + + + + true + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build_nuget.ps1 b/build_nuget.ps1 new file mode 100644 index 0000000..23fdc75 --- /dev/null +++ b/build_nuget.ps1 @@ -0,0 +1,51 @@ +# This script assumes it's being run from a Visual Studio Developer Command Prompt +# with MSBuild.exe and nuget.exe available in the PATH + +# Build configurations - we'll use what's actually in the solution file +$configurations = @("Debug", "Release") + +# First, let's determine which platforms are actually available in the solution +Write-Host "Analyzing available solution platforms..." +$solutionContent = Get-Content -Path "pict.sln" -Raw + +# Extract platform configurations +$platformMatches = [regex]::Matches($solutionContent, 'GlobalSection\(SolutionConfigurationPlatforms\)(.*?)EndGlobalSection', [System.Text.RegularExpressions.RegexOptions]::Singleline) +$platforms = @() + +if ($platformMatches.Count -gt 0) { + $configLines = $platformMatches[0].Groups[1].Value -split "`n" | Where-Object { $_ -match '\s+=\s+' } + $configPlatforms = $configLines | ForEach-Object { + if ($_ -match '(\w+)\|(\w+)') { + $matches[2] # Extract the platform part + } + } + $platforms = $configPlatforms | Sort-Object -Unique + + Write-Host "Found platforms in solution: $($platforms -join ', ')" +} + +# If no platforms found, fall back to defaults +if ($platforms.Count -eq 0) { + $platforms = @("x64", "ARM64") + Write-Host "Using default platforms: $($platforms -join ', ')" +} + +# Build each configuration +foreach ($platform in $platforms) { + foreach ($configuration in $configurations) { + Write-Host "Building for $platform - $configuration..." + & MSBuild.exe pict.sln /p:Configuration=$configuration /p:Platform=$platform /t:Rebuild + + # Check if build succeeded + if ($LASTEXITCODE -ne 0) { + Write-Error "Build failed for $platform - $configuration" + exit $LASTEXITCODE + } + } +} + +# Create NuGet package +Write-Host "Creating NuGet package..." +& nuget pack Microsoft.Test.Pict.nuspec -OutputDirectory .\packages + +Write-Host "Build and packaging complete!" \ No newline at end of file diff --git a/cli/pictcli.vcxproj b/cli/pictcli.vcxproj index 290e74d..8de361d 100644 --- a/cli/pictcli.vcxproj +++ b/cli/pictcli.vcxproj @@ -1,110 +1,224 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {17AF516D-4727-4022-8367-D2F7D239F6E3} - Win32Proj - pictcli - 10.0 - Application - v143 - Unicode - - - - true - - - false - true - - - - - - - pict - $(SolutionDir)$(Configuration)\cli\ - $(SolutionDir)bin\ - - - - Level3 - WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - $(SolutionDir)\api - - - Console - true - ..\$(Configuration)\api - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) - - - true - - - - - Level3 - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) - $(SolutionDir)\api - - - Console - true - true - true - ..\$(Configuration)\api - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) - - + + + + + Debug + ARM64 + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM64 + + + Release + Win32 + + + Release + x64 + + + + {17AF516D-4727-4022-8367-D2F7D239F6E3} + Win32Proj + pictcli + 10.0 + Application + v143 + Unicode + + + + true + + + true + + + true + + + false + true + + + false + true + + + false + true + + + + + + + pict + $(SolutionDir)$(Platform)\$(Configuration)\cli\ + $(SolutionDir)bin\ + + + $(Platform)\$(Configuration)\ + + + $(Platform)\$(Configuration)\ + + + + Level3 + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + $(SolutionDir)\api + + + Console + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + true + + + + + Level3 + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + $(SolutionDir)\api + + + Console + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + true + + + + + Level3 + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + $(SolutionDir)\api + + + Console + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + true + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + $(SolutionDir)\api + + + Console + true + true + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + xcopy /Y /I $(OutDir)$(TargetName)$(TargetExt) $(DropDir) && xcopy /Y /I $(SolutionDir)doc\pict.md $(DropDir) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + $(SolutionDir)\api + + + Console + true + true + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + + xcopy /Y /I $(OutDir)$(TargetName)$(TargetExt) $(DropDir) && xcopy /Y /I $(SolutionDir)doc\pict.md $(DropDir) + + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + $(SolutionDir)\api + + + Console + true + true + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + + + + xcopy /Y /I $(OutDir)$(TargetName)$(TargetExt) $(DropDir) && xcopy /Y /I $(SolutionDir)doc\pict.md $(DropDir) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/clidll-usage/pictclidll-usage.vcxproj b/clidll-usage/pictclidll-usage.vcxproj index 7276197..70047e5 100644 --- a/clidll-usage/pictclidll-usage.vcxproj +++ b/clidll-usage/pictclidll-usage.vcxproj @@ -1,78 +1,178 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - 15.0 - {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5} - Win32Proj - pictclidllusage - 10.0 - Application - v143 - Unicode - - - - true - - - false - true - - - - - - - true - $(SolutionDir)$(Configuration)\clidll-usage\ - - - false - $(SolutionDir)$(Configuration)\clidll-usage\ - - - - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - - - Console - true - - - - - Level3 - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - - - Console - true - true - true - - - - - - - - {33fa938d-1e7c-4001-a3b6-69773b6b9c9b} - - - + + + + + Debug + ARM64 + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM64 + + + Release + Win32 + + + Release + x64 + + + + 15.0 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5} + Win32Proj + pictclidllusage + 10.0 + Application + v143 + Unicode + + + + true + + + true + + + true + + + false + true + + + false + true + + + false + true + + + + + + + true + $(SolutionDir)$(Platform)\$(Configuration)\clidll-usage\ + $(Platform)\$(Configuration)\ + + + true + $(SolutionDir)$(Platform)\$(Configuration)\clidll-usage\ + + + true + $(SolutionDir)$(Platform)\$(Configuration)\clidll-usage\ + + + false + $(SolutionDir)$(Platform)\$(Configuration)\clidll-usage\ + $(Platform)\$(Configuration)\ + + + false + $(SolutionDir)$(Platform)\$(Configuration)\clidll-usage\ + + + false + $(SolutionDir)$(Platform)\$(Configuration)\clidll-usage\ + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + + + {33fa938d-1e7c-4001-a3b6-69773b6b9c9b} + + + \ No newline at end of file diff --git a/clidll/pictclidll.vcxproj b/clidll/pictclidll.vcxproj index 8693556..cc1ed1e 100644 --- a/clidll/pictclidll.vcxproj +++ b/clidll/pictclidll.vcxproj @@ -1,113 +1,243 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - 15.0 - {33FA938D-1E7C-4001-A3B6-69773B6B9C9B} - Win32Proj - pictclidll - 10.0 - DynamicLibrary - v143 - - - - true - - - false - true - - - - - - - pict - $(SolutionDir)$(Configuration)\clidll\ - $(SolutionDir)bin\ - - - true - - - false - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - false - $(SolutionDir)\api; $(SolutionDir)\cli - - - Windows - true - ..\$(Configuration)\api - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) - pictclidll.def - - - - - NotUsing - Level3 - MaxSpeed - true - true - WIN32;NDEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - false - $(SolutionDir)\api; $(SolutionDir)\cli - - - Windows - true - true - true - ..\$(Configuration)\api - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) - pictclidll.def - - + + + + + Debug + ARM64 + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM64 + + + Release + Win32 + + + Release + x64 + + + + 15.0 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B} + Win32Proj + pictclidll + 10.0 + DynamicLibrary + v143 + + + + true + + + true + + + true + + + false + true + + + false + true + + + false + true + + + + + + + pict + $(SolutionDir)$(Platform)\$(Configuration)\clidll\ + $(SolutionDir)bin\ + + + true + $(Platform)\$(Configuration)\ + + + true + + + true + + + false + $(Platform)\$(Configuration)\ + + + false + + + false + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir)\api; $(SolutionDir)\cli + + + Windows + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + pictclidll.def + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir)\api; $(SolutionDir)\cli + + + Windows + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + pictclidll.def + + + + + NotUsing + Level3 + Disabled + WIN32;_DEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir)\api; $(SolutionDir)\cli + + + Windows + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + pictclidll.def + + + + + NotUsing + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir)\api; $(SolutionDir)\cli + + + Windows + true + true + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + pictclidll.def + + xcopy /Y /I $(OutDir)$(TargetName)$(TargetExt) $(DropDir) - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + NotUsing + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir)\api; $(SolutionDir)\cli + + + Windows + true + true + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + pictclidll.def + + + + xcopy /Y /I $(OutDir)$(TargetName)$(TargetExt) $(DropDir) + + + + + + NotUsing + Level3 + MaxSpeed + true + true + WIN32;NDEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + false + $(SolutionDir)\api; $(SolutionDir)\cli + + + Windows + true + true + true + $(SolutionDir)$(Platform)\$(Configuration)\api + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;pict.lib;%(AdditionalDependencies) + pictclidll.def + + + + xcopy /Y /I $(OutDir)$(TargetName)$(TargetExt) $(DropDir) + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pict.sln b/pict.sln index 5d4897f..a4e1243 100644 --- a/pict.sln +++ b/pict.sln @@ -1,83 +1,105 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27428.2037 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pictcli", "cli\pictcli.vcxproj", "{17AF516D-4727-4022-8367-D2F7D239F6E3}" - ProjectSection(ProjectDependencies) = postProject - {348F928A-B4A7-41FC-A312-76559047BDAF} = {348F928A-B4A7-41FC-A312-76559047BDAF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pictapi", "api\pictapi.vcxproj", "{348F928A-B4A7-41FC-A312-76559047BDAF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pictapi-usage", "api-usage\pictapi-usage.vcxproj", "{F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}" - ProjectSection(ProjectDependencies) = postProject - {348F928A-B4A7-41FC-A312-76559047BDAF} = {348F928A-B4A7-41FC-A312-76559047BDAF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pictclidll", "clidll\pictclidll.vcxproj", "{33FA938D-1E7C-4001-A3B6-69773B6B9C9B}" - ProjectSection(ProjectDependencies) = postProject - {348F928A-B4A7-41FC-A312-76559047BDAF} = {348F928A-B4A7-41FC-A312-76559047BDAF} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pictclidll-usage", "clidll-usage\pictclidll-usage.vcxproj", "{ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}" - ProjectSection(ProjectDependencies) = postProject - {33FA938D-1E7C-4001-A3B6-69773B6B9C9B} = {33FA938D-1E7C-4001-A3B6-69773B6B9C9B} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {17AF516D-4727-4022-8367-D2F7D239F6E3}.Debug|x64.ActiveCfg = Debug|Win32 - {17AF516D-4727-4022-8367-D2F7D239F6E3}.Debug|x64.Build.0 = Debug|Win32 - {17AF516D-4727-4022-8367-D2F7D239F6E3}.Debug|x86.ActiveCfg = Debug|Win32 - {17AF516D-4727-4022-8367-D2F7D239F6E3}.Debug|x86.Build.0 = Debug|Win32 - {17AF516D-4727-4022-8367-D2F7D239F6E3}.Release|x64.ActiveCfg = Release|Win32 - {17AF516D-4727-4022-8367-D2F7D239F6E3}.Release|x64.Build.0 = Release|Win32 - {17AF516D-4727-4022-8367-D2F7D239F6E3}.Release|x86.ActiveCfg = Release|Win32 - {17AF516D-4727-4022-8367-D2F7D239F6E3}.Release|x86.Build.0 = Release|Win32 - {348F928A-B4A7-41FC-A312-76559047BDAF}.Debug|x64.ActiveCfg = Debug|Win32 - {348F928A-B4A7-41FC-A312-76559047BDAF}.Debug|x64.Build.0 = Debug|Win32 - {348F928A-B4A7-41FC-A312-76559047BDAF}.Debug|x86.ActiveCfg = Debug|Win32 - {348F928A-B4A7-41FC-A312-76559047BDAF}.Debug|x86.Build.0 = Debug|Win32 - {348F928A-B4A7-41FC-A312-76559047BDAF}.Release|x64.ActiveCfg = Release|Win32 - {348F928A-B4A7-41FC-A312-76559047BDAF}.Release|x64.Build.0 = Release|Win32 - {348F928A-B4A7-41FC-A312-76559047BDAF}.Release|x86.ActiveCfg = Release|Win32 - {348F928A-B4A7-41FC-A312-76559047BDAF}.Release|x86.Build.0 = Release|Win32 - {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Debug|x64.ActiveCfg = Debug|Win32 - {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Debug|x64.Build.0 = Debug|Win32 - {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Debug|x86.ActiveCfg = Debug|Win32 - {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Debug|x86.Build.0 = Debug|Win32 - {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Release|x64.ActiveCfg = Release|Win32 - {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Release|x64.Build.0 = Release|Win32 - {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Release|x86.ActiveCfg = Release|Win32 - {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Release|x86.Build.0 = Release|Win32 - {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Debug|x64.ActiveCfg = Debug|Win32 - {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Debug|x64.Build.0 = Debug|Win32 - {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Debug|x86.ActiveCfg = Debug|Win32 - {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Debug|x86.Build.0 = Debug|Win32 - {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Release|x64.ActiveCfg = Release|Win32 - {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Release|x64.Build.0 = Release|Win32 - {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Release|x86.ActiveCfg = Release|Win32 - {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Release|x86.Build.0 = Release|Win32 - {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Debug|x64.ActiveCfg = Debug|Win32 - {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Debug|x64.Build.0 = Debug|Win32 - {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Debug|x86.ActiveCfg = Debug|Win32 - {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Debug|x86.Build.0 = Debug|Win32 - {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Release|x64.ActiveCfg = Release|Win32 - {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Release|x64.Build.0 = Release|Win32 - {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Release|x86.ActiveCfg = Release|Win32 - {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {FF50E646-27C6-4432-AC63-F6BE2A426721} - EndGlobalSection -EndGlobal + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36203.30 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pictcli", "cli\pictcli.vcxproj", "{17AF516D-4727-4022-8367-D2F7D239F6E3}" + ProjectSection(ProjectDependencies) = postProject + {348F928A-B4A7-41FC-A312-76559047BDAF} = {348F928A-B4A7-41FC-A312-76559047BDAF} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pictapi", "api\pictapi.vcxproj", "{348F928A-B4A7-41FC-A312-76559047BDAF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pictapi-usage", "api-usage\pictapi-usage.vcxproj", "{F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}" + ProjectSection(ProjectDependencies) = postProject + {348F928A-B4A7-41FC-A312-76559047BDAF} = {348F928A-B4A7-41FC-A312-76559047BDAF} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pictclidll", "clidll\pictclidll.vcxproj", "{33FA938D-1E7C-4001-A3B6-69773B6B9C9B}" + ProjectSection(ProjectDependencies) = postProject + {348F928A-B4A7-41FC-A312-76559047BDAF} = {348F928A-B4A7-41FC-A312-76559047BDAF} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pictclidll-usage", "clidll-usage\pictclidll-usage.vcxproj", "{ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}" + ProjectSection(ProjectDependencies) = postProject + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B} = {33FA938D-1E7C-4001-A3B6-69773B6B9C9B} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Debug|ARM64.Build.0 = Debug|ARM64 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Debug|x64.ActiveCfg = Debug|x64 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Debug|x64.Build.0 = Debug|x64 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Debug|x86.ActiveCfg = Debug|Win32 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Debug|x86.Build.0 = Debug|Win32 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Release|ARM64.ActiveCfg = Release|ARM64 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Release|ARM64.Build.0 = Release|ARM64 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Release|x64.ActiveCfg = Release|x64 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Release|x64.Build.0 = Release|x64 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Release|x86.ActiveCfg = Release|Win32 + {17AF516D-4727-4022-8367-D2F7D239F6E3}.Release|x86.Build.0 = Release|Win32 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Debug|ARM64.Build.0 = Debug|ARM64 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Debug|x64.ActiveCfg = Debug|x64 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Debug|x64.Build.0 = Debug|x64 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Debug|x86.ActiveCfg = Debug|Win32 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Debug|x86.Build.0 = Debug|Win32 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Release|ARM64.ActiveCfg = Release|ARM64 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Release|ARM64.Build.0 = Release|ARM64 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Release|x64.ActiveCfg = Release|x64 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Release|x64.Build.0 = Release|x64 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Release|x86.ActiveCfg = Release|Win32 + {348F928A-B4A7-41FC-A312-76559047BDAF}.Release|x86.Build.0 = Release|Win32 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Debug|ARM64.Build.0 = Debug|ARM64 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Debug|x64.ActiveCfg = Debug|x64 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Debug|x64.Build.0 = Debug|x64 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Debug|x86.ActiveCfg = Debug|Win32 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Debug|x86.Build.0 = Debug|Win32 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Release|ARM64.ActiveCfg = Release|ARM64 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Release|ARM64.Build.0 = Release|ARM64 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Release|x64.ActiveCfg = Release|x64 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Release|x64.Build.0 = Release|x64 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Release|x86.ActiveCfg = Release|Win32 + {F9EE63F9-EEA9-4C4C-A9FB-F01A4427D538}.Release|x86.Build.0 = Release|Win32 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Debug|ARM64.Build.0 = Debug|ARM64 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Debug|x64.ActiveCfg = Debug|x64 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Debug|x64.Build.0 = Debug|x64 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Debug|x86.ActiveCfg = Debug|Win32 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Debug|x86.Build.0 = Debug|Win32 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Release|ARM64.ActiveCfg = Release|ARM64 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Release|ARM64.Build.0 = Release|ARM64 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Release|x64.ActiveCfg = Release|x64 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Release|x64.Build.0 = Release|x64 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Release|x86.ActiveCfg = Release|Win32 + {33FA938D-1E7C-4001-A3B6-69773B6B9C9B}.Release|x86.Build.0 = Release|Win32 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Debug|ARM64.Build.0 = Debug|ARM64 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Debug|x64.ActiveCfg = Debug|x64 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Debug|x64.Build.0 = Debug|x64 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Debug|x86.ActiveCfg = Debug|Win32 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Debug|x86.Build.0 = Debug|Win32 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Release|ARM64.ActiveCfg = Release|ARM64 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Release|ARM64.Build.0 = Release|ARM64 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Release|x64.ActiveCfg = Release|x64 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Release|x64.Build.0 = Release|x64 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Release|x86.ActiveCfg = Release|Win32 + {ACD9DAC9-D3F3-42B6-B553-4F7BF7BB81A5}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FF50E646-27C6-4432-AC63-F6BE2A426721} + EndGlobalSection +EndGlobal From 1c230450e88e209c2f9f05088f7dd5dcb62f89bc Mon Sep 17 00:00:00 2001 From: David Spruill Date: Tue, 1 Jul 2025 19:40:25 -0400 Subject: [PATCH 2/5] Move the logic from my build_nuget powershell to the github workflow yml. Update the nuget major version as the package layout is different. --- .github/workflows/nuget-publish.yml | 8 ++++- Microsoft.Test.Pict.nuspec | 4 +-- build_nuget.ps1 | 51 ----------------------------- 3 files changed, 9 insertions(+), 54 deletions(-) delete mode 100644 build_nuget.ps1 diff --git a/.github/workflows/nuget-publish.yml b/.github/workflows/nuget-publish.yml index c4c6e79..b2aaa3c 100644 --- a/.github/workflows/nuget-publish.yml +++ b/.github/workflows/nuget-publish.yml @@ -19,6 +19,12 @@ jobs: runs-on: windows-latest permissions: packages: write + strategy: + matrix: + # Add additional configurations if needed. + configuration: [Release, Debug] + # If you need to build for multiple platforms, you can add them here. + platform: [x64, x86, ARM64] steps: - uses: actions/checkout@v3 @@ -30,7 +36,7 @@ jobs: working-directory: ${{env.GITHUB_WORKSPACE}} # Add additional options to the MSBuild command line here (like platform or verbosity level). # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference - run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}} + run: msbuild /m /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} ${{env.SOLUTION_FILE_PATH}} - name: Add NUGET to PATH uses: NuGet/setup-nuget@v1.0.5 diff --git a/Microsoft.Test.Pict.nuspec b/Microsoft.Test.Pict.nuspec index 036b983..800dd03 100644 --- a/Microsoft.Test.Pict.nuspec +++ b/Microsoft.Test.Pict.nuspec @@ -2,12 +2,12 @@ Microsoft.Test.Pict - 3.7.5 + 4.0.0 Jacek Czerwonka contents/LICENSE.TXT http://github.com/microsoft/pict - PICT - Combinatorial Testing Tool with multi-architecture support (x64, x86, ARM64) + PICT - Combinatorial Testing Tool diff --git a/build_nuget.ps1 b/build_nuget.ps1 deleted file mode 100644 index 23fdc75..0000000 --- a/build_nuget.ps1 +++ /dev/null @@ -1,51 +0,0 @@ -# This script assumes it's being run from a Visual Studio Developer Command Prompt -# with MSBuild.exe and nuget.exe available in the PATH - -# Build configurations - we'll use what's actually in the solution file -$configurations = @("Debug", "Release") - -# First, let's determine which platforms are actually available in the solution -Write-Host "Analyzing available solution platforms..." -$solutionContent = Get-Content -Path "pict.sln" -Raw - -# Extract platform configurations -$platformMatches = [regex]::Matches($solutionContent, 'GlobalSection\(SolutionConfigurationPlatforms\)(.*?)EndGlobalSection', [System.Text.RegularExpressions.RegexOptions]::Singleline) -$platforms = @() - -if ($platformMatches.Count -gt 0) { - $configLines = $platformMatches[0].Groups[1].Value -split "`n" | Where-Object { $_ -match '\s+=\s+' } - $configPlatforms = $configLines | ForEach-Object { - if ($_ -match '(\w+)\|(\w+)') { - $matches[2] # Extract the platform part - } - } - $platforms = $configPlatforms | Sort-Object -Unique - - Write-Host "Found platforms in solution: $($platforms -join ', ')" -} - -# If no platforms found, fall back to defaults -if ($platforms.Count -eq 0) { - $platforms = @("x64", "ARM64") - Write-Host "Using default platforms: $($platforms -join ', ')" -} - -# Build each configuration -foreach ($platform in $platforms) { - foreach ($configuration in $configurations) { - Write-Host "Building for $platform - $configuration..." - & MSBuild.exe pict.sln /p:Configuration=$configuration /p:Platform=$platform /t:Rebuild - - # Check if build succeeded - if ($LASTEXITCODE -ne 0) { - Write-Error "Build failed for $platform - $configuration" - exit $LASTEXITCODE - } - } -} - -# Create NuGet package -Write-Host "Creating NuGet package..." -& nuget pack Microsoft.Test.Pict.nuspec -OutputDirectory .\packages - -Write-Host "Build and packaging complete!" \ No newline at end of file From 1289540d3ffec1debee7115e60dd9373b276dcda Mon Sep 17 00:00:00 2001 From: David Spruill Date: Wed, 2 Jul 2025 14:47:49 -0400 Subject: [PATCH 3/5] Fixed some issues with the nuget publishing workflow - ensured it is working on my forked branch --- .github/workflows/nuget-publish.yml | 57 +++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 4 deletions(-) diff --git a/.github/workflows/nuget-publish.yml b/.github/workflows/nuget-publish.yml index b2aaa3c..680b7db 100644 --- a/.github/workflows/nuget-publish.yml +++ b/.github/workflows/nuget-publish.yml @@ -17,8 +17,6 @@ env: jobs: build: runs-on: windows-latest - permissions: - packages: write strategy: matrix: # Add additional configurations if needed. @@ -33,13 +31,64 @@ jobs: uses: microsoft/setup-msbuild@v1.0.2 - name: Build - working-directory: ${{env.GITHUB_WORKSPACE}} # Add additional options to the MSBuild command line here (like platform or verbosity level). # See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference run: msbuild /m /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} ${{env.SOLUTION_FILE_PATH}} + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: build-artifacts-${{ matrix.configuration }}-${{ matrix.platform }} + path: | + ${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/api/pict.lib + ${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/cli/*.exe + ${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/cli/*.pdb + ${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/clidll/*.dll + ${{ matrix.platform == 'x86' && 'Win32' || matrix.platform }}/${{ matrix.configuration }}/clidll/*.pdb + retention-days: 1 + + package: + runs-on: windows-latest + needs: build + permissions: + packages: write + + steps: + - uses: actions/checkout@v3 + + - name: Download all build artifacts + uses: actions/download-artifact@v4 + with: + path: artifacts/ + + - name: Restore build structure + run: | + # Copy artifacts back to original build structure + Get-ChildItem -Path "artifacts" -Directory | ForEach-Object { + $artifactName = $_.Name + if ($artifactName -match "build-artifacts-(.+)-(.+)") { + $config = $matches[1] + $platform = $matches[2] + + # Map platform names to match directory structure + $platformDir = $platform + if ($platform -eq "x86") { + $platformDir = "Win32" + } + + # Create the target directory structure (platform/configuration) + $targetDir = "$platformDir/$config" + if (!(Test-Path $targetDir)) { + New-Item -ItemType Directory -Path $targetDir -Force + } + + # Copy contents preserving structure + Copy-Item -Path "$($_.FullName)/*" -Destination $targetDir -Recurse -Force + } + } + - name: Add NUGET to PATH - uses: NuGet/setup-nuget@v1.0.5 + uses: NuGet/setup-nuget@v2 - name: Create a package run: nuget pack From b4132b73b2a8d0412ce6386275c5244668ef09e1 Mon Sep 17 00:00:00 2001 From: David Spruill Date: Wed, 2 Jul 2025 19:27:06 -0400 Subject: [PATCH 4/5] Update the workflow to validate a bit more, update the targets file to reduce manual steps needed --- .github/workflows/nuget-publish.yml | 10 ++++++++++ Microsoft.Test.Pict.nuspec | 5 ++++- Microsoft.Test.Pict.targets | 15 ++++++++------- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/.github/workflows/nuget-publish.yml b/.github/workflows/nuget-publish.yml index 680b7db..59c70ab 100644 --- a/.github/workflows/nuget-publish.yml +++ b/.github/workflows/nuget-publish.yml @@ -61,6 +61,16 @@ jobs: with: path: artifacts/ + - name: Verify source files exist + run: | + # Verify all required source files exist + Write-Host "Checking for required files..." + if (Test-Path "api/pictapi.h") { Write-Host "✓ api/pictapi.h found" } else { Write-Host "✗ api/pictapi.h missing"; exit 1 } + if (Test-Path "doc/pict.md") { Write-Host "✓ doc/pict.md found" } else { Write-Host "✗ doc/pict.md missing"; exit 1 } + if (Test-Path "LICENSE.TXT") { Write-Host "✓ LICENSE.TXT found" } else { Write-Host "✗ LICENSE.TXT missing"; exit 1 } + if (Test-Path "Microsoft.Test.Pict.targets") { Write-Host "✓ Microsoft.Test.Pict.targets found" } else { Write-Host "✗ Microsoft.Test.Pict.targets missing"; exit 1 } + if (Test-Path "Microsoft.Test.Pict.nuspec") { Write-Host "✓ Microsoft.Test.Pict.nuspec found" } else { Write-Host "✗ Microsoft.Test.Pict.nuspec missing"; exit 1 } + - name: Restore build structure run: | # Copy artifacts back to original build structure diff --git a/Microsoft.Test.Pict.nuspec b/Microsoft.Test.Pict.nuspec index 800dd03..e201478 100644 --- a/Microsoft.Test.Pict.nuspec +++ b/Microsoft.Test.Pict.nuspec @@ -37,8 +37,11 @@ + + + - + \ No newline at end of file diff --git a/Microsoft.Test.Pict.targets b/Microsoft.Test.Pict.targets index 746ff48..ea1e840 100644 --- a/Microsoft.Test.Pict.targets +++ b/Microsoft.Test.Pict.targets @@ -1,22 +1,23 @@ + - $(MSBuildThisFileDirectory)contents\api;%(AdditionalIncludeDirectories) + $(MSBuildThisFileDirectory)..\contents\api;%(AdditionalIncludeDirectories) - $(MSBuildThisFileDirectory)contents\win-x86\api\Debug;%(AdditionalLibraryDirectories) + $(MSBuildThisFileDirectory)..\contents\win-x86\api\Debug;%(AdditionalLibraryDirectories) - $(MSBuildThisFileDirectory)contents\win-x86\api\Release;%(AdditionalLibraryDirectories) + $(MSBuildThisFileDirectory)..\contents\win-x86\api\Release;%(AdditionalLibraryDirectories) - $(MSBuildThisFileDirectory)contents\win-x64\api\Debug;%(AdditionalLibraryDirectories) + $(MSBuildThisFileDirectory)..\contents\win-x64\api\Debug;%(AdditionalLibraryDirectories) - $(MSBuildThisFileDirectory)contents\win-x64\api\Release;%(AdditionalLibraryDirectories) + $(MSBuildThisFileDirectory)..\contents\win-x64\api\Release;%(AdditionalLibraryDirectories) - $(MSBuildThisFileDirectory)contents\win-arm64\api\Debug;%(AdditionalLibraryDirectories) + $(MSBuildThisFileDirectory)..\contents\win-arm64\api\Debug;%(AdditionalLibraryDirectories) - $(MSBuildThisFileDirectory)contents\win-arm64\api\Release;%(AdditionalLibraryDirectories) + $(MSBuildThisFileDirectory)..\contents\win-arm64\api\Release;%(AdditionalLibraryDirectories) pict.lib;%(AdditionalDependencies) From 36ca61f46a9a26e89928a3805b0fa6ebac8b1219 Mon Sep 17 00:00:00 2001 From: David Spruill Date: Wed, 9 Jul 2025 18:37:33 -0400 Subject: [PATCH 5/5] Update the vcxproj files to use the staticly linked runtimes --- api-usage/pictapi-usage.vcxproj | 6 ++++++ api/pictapi.vcxproj | 6 ++++++ cli/pictcli.vcxproj | 6 ++++++ clidll-usage/pictclidll-usage.vcxproj | 6 ++++++ clidll/pictclidll.vcxproj | 6 ++++++ 5 files changed, 30 insertions(+) diff --git a/api-usage/pictapi-usage.vcxproj b/api-usage/pictapi-usage.vcxproj index eec165b..e5e6018 100644 --- a/api-usage/pictapi-usage.vcxproj +++ b/api-usage/pictapi-usage.vcxproj @@ -107,6 +107,7 @@ Disabled WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) ..\api + MultiThreadedDebug Console @@ -124,6 +125,7 @@ Disabled WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) ..\api + MultiThreadedDebug Console @@ -141,6 +143,7 @@ Disabled WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) ..\api + MultiThreadedDebug Console @@ -160,6 +163,7 @@ true WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) ..\api + MultiThreaded Console @@ -178,6 +182,7 @@ true WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) ..\api + MultiThreaded Console @@ -196,6 +201,7 @@ true WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) ..\api + MultiThreaded Console diff --git a/api/pictapi.vcxproj b/api/pictapi.vcxproj index 5ee65af..4117953 100644 --- a/api/pictapi.vcxproj +++ b/api/pictapi.vcxproj @@ -75,6 +75,7 @@ Level3 Disabled WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + MultiThreadedDebug Console @@ -88,6 +89,7 @@ Level3 Disabled WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + MultiThreadedDebug Console @@ -101,6 +103,7 @@ Level3 Disabled WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + MultiThreadedDebug Console @@ -116,6 +119,7 @@ true true WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + MultiThreaded Console @@ -145,6 +149,7 @@ true true WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + MultiThreaded Console @@ -174,6 +179,7 @@ true true WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + MultiThreaded Console diff --git a/cli/pictcli.vcxproj b/cli/pictcli.vcxproj index 8de361d..6d8e238 100644 --- a/cli/pictcli.vcxproj +++ b/cli/pictcli.vcxproj @@ -77,6 +77,7 @@ Level3 WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)\api + MultiThreadedDebug Console @@ -93,6 +94,7 @@ Level3 WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)\api + MultiThreadedDebug Console @@ -109,6 +111,7 @@ Level3 WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)\api + MultiThreadedDebug Console @@ -128,6 +131,7 @@ true WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)\api + MultiThreaded Console @@ -151,6 +155,7 @@ true WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)\api + MultiThreaded Console @@ -174,6 +179,7 @@ true WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) $(SolutionDir)\api + MultiThreaded Console diff --git a/clidll-usage/pictclidll-usage.vcxproj b/clidll-usage/pictclidll-usage.vcxproj index 70047e5..1616e74 100644 --- a/clidll-usage/pictclidll-usage.vcxproj +++ b/clidll-usage/pictclidll-usage.vcxproj @@ -93,6 +93,7 @@ Level3 Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDebug Console @@ -104,6 +105,7 @@ Level3 Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDebug Console @@ -115,6 +117,7 @@ Level3 Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreadedDebug Console @@ -128,6 +131,7 @@ true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreaded Console @@ -143,6 +147,7 @@ true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreaded Console @@ -158,6 +163,7 @@ true true WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreaded Console diff --git a/clidll/pictclidll.vcxproj b/clidll/pictclidll.vcxproj index cc1ed1e..1919f30 100644 --- a/clidll/pictclidll.vcxproj +++ b/clidll/pictclidll.vcxproj @@ -94,6 +94,7 @@ WIN32;_DEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) false $(SolutionDir)\api; $(SolutionDir)\cli + MultiThreadedDebug Windows @@ -111,6 +112,7 @@ WIN32;_DEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) false $(SolutionDir)\api; $(SolutionDir)\cli + MultiThreadedDebug Windows @@ -128,6 +130,7 @@ WIN32;_DEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) false $(SolutionDir)\api; $(SolutionDir)\cli + MultiThreadedDebug Windows @@ -147,6 +150,7 @@ WIN32;NDEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) false $(SolutionDir)\api; $(SolutionDir)\cli + MultiThreaded Windows @@ -173,6 +177,7 @@ WIN32;NDEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) false $(SolutionDir)\api; $(SolutionDir)\cli + MultiThreaded Windows @@ -199,6 +204,7 @@ WIN32;NDEBUG;PICTCLIDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) false $(SolutionDir)\api; $(SolutionDir)\cli + MultiThreaded Windows