mirror of https://github.com/pbatard/rufus.git

No known key found for this signature in database
GPG Key ID: 38E0CF5E69EDD671
13 changed files with 705 additions and 6 deletions
-
52.github/workflows/setup.yml
-
5res/icons/license.txt
-
BINres/icons/setup.ico
-
11res/icons/setup.svg
-
9res/setup/.editorconfig
-
29res/setup/readme.txt
-
16res/setup/resource.h
-
125res/setup/setup.c
-
116res/setup/setup.rc
-
37res/setup/setup.sln
-
272res/setup/setup.vcxproj
-
27res/setup/setup.vcxproj.filters
-
12src/rufus.rc
@ -0,0 +1,52 @@ |
|||
name: setup |
|||
run-name: Windows setup wrapper build |
|||
|
|||
on: |
|||
workflow_dispatch: |
|||
branches: [ master ] |
|||
|
|||
env: |
|||
SOLUTION_FILE_PATH: ./res/setup/setup.sln |
|||
BUILD_CONFIGURATION: Release |
|||
|
|||
jobs: |
|||
VS2022-Build: |
|||
runs-on: windows-latest |
|||
|
|||
strategy: |
|||
matrix: |
|||
TARGET_PLATFORM: [x64, arm64] |
|||
|
|||
steps: |
|||
- name: Checkout repository |
|||
uses: actions/checkout@v4 |
|||
|
|||
- name: Add MSBuild to PATH |
|||
uses: microsoft/setup-msbuild@v2 |
|||
with: |
|||
msbuild-architecture: x64 |
|||
|
|||
- name: Build |
|||
shell: cmd |
|||
run: | |
|||
msbuild ${{ env.SOLUTION_FILE_PATH }} /m /p:Configuration=${{ env.BUILD_CONFIGURATION }},Platform=${{ matrix.TARGET_PLATFORM }} |
|||
move .\res\setup\${{ matrix.TARGET_PLATFORM }}\Release\setup.exe .\setup_${{ matrix.TARGET_PLATFORM }}.exe |
|||
|
|||
- name: Display SHA-256 |
|||
run: sha256sum ./setup_${{ matrix.TARGET_PLATFORM }}.exe |
|||
|
|||
- name: Upload artifacts |
|||
uses: actions/upload-artifact@v4 |
|||
with: |
|||
name: ${{ matrix.TARGET_PLATFORM }} |
|||
path: ./*.exe |
|||
|
|||
Extra-Step-To-Merge-Artifacts-Thanks-To-Upload-Artifact-v4-Breaking-Backwards-Compatibility: |
|||
runs-on: windows-latest |
|||
needs: VS2022-Build |
|||
steps: |
|||
- name: Merge Artifacts |
|||
uses: actions/upload-artifact/merge@v4 |
|||
with: |
|||
name: setup |
|||
delete-merged: true |
@ -0,0 +1,11 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> |
|||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="20px" height="20px" viewBox="2 2 20 20" enable-background="new 2 2 20 20" xml:space="preserve"> |
|||
<g id="icon"> |
|||
<g> |
|||
<path d="M17.8,20l-12,-1.5c-1,-0.1,-1.8,-0.9,-1.8,-1.9v-9.2c0,-1,0.8,-1.8,1.8,-1.9l12,-1.5c1.2,-0.1,2.2,0.8,2.2,1.9v12.1c0,1.2,-1.1,2.1,-2.2,2z" fill="none" stroke="#3D73AD" stroke-width="2"/> |
|||
<path d="M12,5l0,14" stroke="#3D73AD" stroke-width="2"/> |
|||
<path d="M4,12l16,0" stroke="#3D73AD" stroke-width="2"/> |
|||
</g> |
|||
</g> |
|||
</svg> |
@ -0,0 +1,9 @@ |
|||
# indicate this is the root of the project |
|||
root = true |
|||
|
|||
[*] |
|||
indent_style = tab |
|||
indent_size = 4 |
|||
trim_trailing_whitespace = true |
|||
insert_final_newline = true |
|||
charset = utf-8 |
@ -0,0 +1,29 @@ |
|||
Rufus: The Reliable USB Formatting Utility - Windows 11 setup.exe wrapper |
|||
|
|||
# Description |
|||
|
|||
This small executable aims at solving the issue of Windows 11 24H2 having made the |
|||
bypass requirements for in-place upgrades more difficult to enact. |
|||
|
|||
Basically, per https://github.com/pbatard/rufus/issues/2568#issuecomment-2387934171, |
|||
and if the user chose to apply the hardware requirement bypasses in Rufus, you want |
|||
to apply a set of registry key creation and deletion *before* setup.exe is run. |
|||
|
|||
While we could obviously provide a simple batch file to accomplish this, the fact |
|||
that the registry commands require elevation, combined with expectations of just |
|||
being able double click setup.exe to upgrade makes us want to accomplish this in |
|||
a more user-friendly manner. |
|||
|
|||
Our solution then is to have Rufus rename the original 'setup.exe' to 'setup.dll' |
|||
insert a small 'setup.exe' that'll perform elevation, add the registry key, and |
|||
launch the original setup, which is exactly what this project does. |
|||
|
|||
Now, obviously, the fact that we "inject" a setup executable may leave people |
|||
uncomfortable about the possibility that we might use this as a malware vector, |
|||
which is also why we make sure that the one we sign and embed in Rufus does get |
|||
built using GitHub Actions and can be validated to not have been tampered through |
|||
SHA-256 validation (Since we produce SHA-256 hashes during the build process per: |
|||
https://github.com/pbatard/rufus/blob/master/.github/workflows/setup.yml). |
|||
|
|||
Also note that, since these are the only platforms Windows 11 supports, we only |
|||
build for x64 and ARM64. |
@ -0,0 +1,16 @@ |
|||
//{{NO_DEPENDENCIES}} |
|||
// Microsoft Visual C++ generated include file. |
|||
// Used by setup.rc |
|||
// |
|||
#define IDI_ICON 101 |
|||
|
|||
// Next default values for new objects |
|||
// |
|||
#ifdef APSTUDIO_INVOKED |
|||
#ifndef APSTUDIO_READONLY_SYMBOLS |
|||
#define _APS_NEXT_RESOURCE_VALUE 102 |
|||
#define _APS_NEXT_COMMAND_VALUE 40001 |
|||
#define _APS_NEXT_CONTROL_VALUE 1000 |
|||
#define _APS_NEXT_SYMED_VALUE 101 |
|||
#endif |
|||
#endif |
@ -0,0 +1,125 @@ |
|||
/* |
|||
* Setup - Wrapper around Microsoft's setup.exe that adds registry |
|||
* bypasses for in-place Windows 11 upgrade. |
|||
* |
|||
* Copyright © 2024 Pete Batard <pete@akeo.ie> |
|||
* |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
*/ |
|||
|
|||
#define WIN32_LEAN_AND_MEAN |
|||
#include <windows.h> |
|||
#include <sys/types.h> |
|||
#include <sys/stat.h> |
|||
|
|||
static BOOL RegDeleteNodeRecurse(HKEY hKeyRoot, CHAR* lpSubKey) |
|||
{ |
|||
CHAR* lpEnd; |
|||
LONG lResult; |
|||
DWORD dwSize; |
|||
CHAR szName[MAX_PATH]; |
|||
HKEY hKey; |
|||
FILETIME ftWrite; |
|||
|
|||
// First, see if we can delete the key without having to recurse. |
|||
if (RegDeleteKeyA(hKeyRoot, lpSubKey) == ERROR_SUCCESS) |
|||
return TRUE; |
|||
|
|||
lResult = RegOpenKeyExA(hKeyRoot, lpSubKey, 0, KEY_READ, &hKey); |
|||
if (lResult != ERROR_SUCCESS) |
|||
return (lResult == ERROR_FILE_NOT_FOUND); |
|||
|
|||
// Check for an ending slash and add one if it is missing. |
|||
lpEnd = lpSubKey + strlen(lpSubKey); |
|||
if (*(lpEnd - 1) != '\\') { |
|||
*lpEnd++ = '\\'; |
|||
*lpEnd = '\0'; |
|||
} |
|||
|
|||
// Enumerate the keys |
|||
dwSize = MAX_PATH; |
|||
if (RegEnumKeyExA(hKey, 0, szName, &dwSize, NULL, NULL, NULL, &ftWrite) == ERROR_SUCCESS) { |
|||
do { |
|||
*lpEnd = '\0'; |
|||
strcat_s(lpSubKey, MAX_PATH, szName); |
|||
if (!RegDeleteNodeRecurse(hKeyRoot, lpSubKey)) |
|||
break; |
|||
dwSize = MAX_PATH; |
|||
lResult = RegEnumKeyExA(hKey, 0, szName, &dwSize, NULL, NULL, NULL, &ftWrite); |
|||
} while (lResult == ERROR_SUCCESS); |
|||
} |
|||
|
|||
*--lpEnd = '\0'; |
|||
RegCloseKey(hKey); |
|||
|
|||
// Try again to delete the key. |
|||
return (RegDeleteKeyA(hKeyRoot, lpSubKey) == ERROR_SUCCESS); |
|||
} |
|||
|
|||
static BOOL RegDeleteNode(HKEY hKeyRoot, CHAR* lpSubKey) |
|||
{ |
|||
CHAR szDelKey[MAX_PATH]; |
|||
|
|||
strcpy_s(szDelKey, MAX_PATH, lpSubKey); |
|||
return RegDeleteNodeRecurse(hKeyRoot, szDelKey); |
|||
} |
|||
|
|||
static BOOL RegWriteKey(HKEY hKeyRoot, CHAR* lpKeyParent, CHAR* lpKeyName, DWORD dwType, LPBYTE lpData, DWORD dwDataSize) |
|||
{ |
|||
BOOL r = FALSE; |
|||
HKEY hRoot = NULL, hApp = NULL; |
|||
DWORD dwDisp; |
|||
HKEY hKey; |
|||
|
|||
if (RegCreateKeyExA(hKeyRoot, lpKeyParent, 0, NULL, 0, KEY_SET_VALUE | KEY_QUERY_VALUE, NULL, &hKey, &dwDisp) != ERROR_SUCCESS) |
|||
return FALSE; |
|||
|
|||
r = (RegSetValueExA(hKey, lpKeyName, 0, dwType, lpData, dwDataSize) == ERROR_SUCCESS); |
|||
RegCloseKey(hKey); |
|||
|
|||
return r; |
|||
} |
|||
|
|||
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) |
|||
{ |
|||
CHAR lpBypasses[] = "SQ_SecureBootCapable=TRUE\0SQ_SecureBootEnabled=TRUE\0SQ_TpmVersion=2\0SQ_RamMB=8192\0"; |
|||
DWORD dwUpgrade = 1, dwAttrib; |
|||
STARTUPINFOA si = { 0 }; |
|||
PROCESS_INFORMATION pi = { 0 }; |
|||
SECURITY_ATTRIBUTES sa = { sizeof(SECURITY_ATTRIBUTES), NULL, TRUE }; |
|||
|
|||
// Make sure we have 'setup.dll' in the same directory |
|||
dwAttrib = GetFileAttributesA("setup.dll"); |
|||
if (dwAttrib == INVALID_FILE_ATTRIBUTES || dwAttrib & FILE_ATTRIBUTE_DIRECTORY) |
|||
MessageBoxA(NULL, "ERROR: 'setup.dll' was not found", "Windows setup error", MB_OK | MB_ICONWARNING); |
|||
|
|||
// Apply the registry bypasses to enable Windows 11 24H2 in-place upgrade |
|||
RegDeleteNode(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\CompatMarkers"); |
|||
RegDeleteNode(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Shared"); |
|||
RegDeleteNode(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\TargetVersionUpgradeExperienceIndicators"); |
|||
RegWriteKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\HwReqChk", |
|||
"HwReqChkVars", REG_MULTI_SZ, lpBypasses, sizeof(lpBypasses)); |
|||
RegWriteKey(HKEY_LOCAL_MACHINE, "SYSTEM\\Setup\\MoSetup", "AllowUpgradesWithUnsupportedTPMOrCPU", |
|||
REG_DWORD, (LPBYTE)&dwUpgrade, sizeof(dwUpgrade)); |
|||
|
|||
// Launch the original 'setup.exe' (that was renamed to 'setup.dll') |
|||
si.cb = sizeof(si); |
|||
si.dwFlags = STARTF_USESHOWWINDOW; |
|||
si.wShowWindow = SW_SHOWNORMAL; |
|||
CreateProcessA("setup.dll", NULL, NULL, NULL, TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi); |
|||
CloseHandle(pi.hProcess); |
|||
CloseHandle(pi.hThread); |
|||
|
|||
return GetLastError(); |
|||
} |
@ -0,0 +1,116 @@ |
|||
// Microsoft Visual C++ generated resource script. |
|||
// |
|||
#include "resource.h" |
|||
|
|||
#define APSTUDIO_READONLY_SYMBOLS |
|||
///////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
// Generated from the TEXTINCLUDE 2 resource. |
|||
// |
|||
#ifndef _USING_V110_SDK71_ |
|||
#define _USING_V110_SDK71_ |
|||
#endif |
|||
#include <windows.h> |
|||
#ifndef IDC_STATIC |
|||
#define IDC_STATIC -1 |
|||
#endif |
|||
|
|||
///////////////////////////////////////////////////////////////////////////// |
|||
#undef APSTUDIO_READONLY_SYMBOLS |
|||
|
|||
///////////////////////////////////////////////////////////////////////////// |
|||
// English (Neutral) resources |
|||
|
|||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) |
|||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL |
|||
#pragma code_page(1252) |
|||
|
|||
#ifdef APSTUDIO_INVOKED |
|||
///////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
// TEXTINCLUDE |
|||
// |
|||
|
|||
1 TEXTINCLUDE |
|||
BEGIN |
|||
"resource.h\0" |
|||
END |
|||
|
|||
2 TEXTINCLUDE |
|||
BEGIN |
|||
"\0" |
|||
END |
|||
|
|||
3 TEXTINCLUDE |
|||
BEGIN |
|||
"\r\n" |
|||
"\0" |
|||
END |
|||
|
|||
#endif // APSTUDIO_INVOKED |
|||
|
|||
|
|||
///////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
// Icon |
|||
// |
|||
|
|||
// Icon with lowest ID value placed first to ensure application icon |
|||
// remains consistent on all systems. |
|||
IDI_ICON ICON "../icons/setup.ico" |
|||
|
|||
|
|||
///////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
// Version |
|||
// |
|||
|
|||
VS_VERSION_INFO VERSIONINFO |
|||
FILEVERSION 1,0,0,1 |
|||
PRODUCTVERSION 1,0,0,1 |
|||
FILEFLAGSMASK 0x3fL |
|||
#ifdef _DEBUG |
|||
FILEFLAGS 0x1L |
|||
#else |
|||
FILEFLAGS 0x0L |
|||
#endif |
|||
FILEOS 0x40004L |
|||
FILETYPE 0x1L |
|||
FILESUBTYPE 0x0L |
|||
BEGIN |
|||
BLOCK "StringFileInfo" |
|||
BEGIN |
|||
BLOCK "000004b0" |
|||
BEGIN |
|||
VALUE "CompanyName", "Akeo Consulting" |
|||
VALUE "FileDescription", "Windows Setup Wrapper" |
|||
VALUE "FileVersion", "1.0" |
|||
VALUE "InternalName", "Setup" |
|||
VALUE "LegalCopyright", "© 2024 Pete Batard (GPL v3)" |
|||
VALUE "LegalTrademarks", "https://rufus.ie/setup" |
|||
VALUE "OriginalFilename", "setup.exe" |
|||
VALUE "ProductName", "Setup" |
|||
VALUE "ProductVersion", "1.0" |
|||
END |
|||
END |
|||
BLOCK "VarFileInfo" |
|||
BEGIN |
|||
VALUE "Translation", 0x0, 1200 |
|||
END |
|||
END |
|||
|
|||
#endif // English (Neutral) resources |
|||
///////////////////////////////////////////////////////////////////////////// |
|||
|
|||
|
|||
|
|||
#ifndef APSTUDIO_INVOKED |
|||
///////////////////////////////////////////////////////////////////////////// |
|||
// |
|||
// Generated from the TEXTINCLUDE 3 resource. |
|||
// |
|||
|
|||
|
|||
///////////////////////////////////////////////////////////////////////////// |
|||
#endif // not APSTUDIO_INVOKED |
|||
|
@ -0,0 +1,37 @@ |
|||
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00 |
|||
# Visual Studio Version 16 |
|||
VisualStudioVersion = 16.0.29926.136 |
|||
MinimumVisualStudioVersion = 10.0.40219.1 |
|||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "setup", "setup.vcxproj", "{6C2BED99-5A0A-42A2-AEBE-66717FA92232}" |
|||
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 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Debug|arm64.ActiveCfg = Debug|ARM64 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Debug|arm64.Build.0 = Debug|ARM64 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Debug|x64.ActiveCfg = Debug|x64 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Debug|x64.Build.0 = Debug|x64 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Debug|x86.ActiveCfg = Debug|Win32 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Debug|x86.Build.0 = Debug|Win32 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Release|arm64.ActiveCfg = Release|ARM64 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Release|arm64.Build.0 = Release|ARM64 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Release|x64.ActiveCfg = Release|x64 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Release|x64.Build.0 = Release|x64 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Release|x86.ActiveCfg = Release|Win32 |
|||
{6C2BED99-5A0A-42A2-AEBE-66717FA92232}.Release|x86.Build.0 = Release|Win32 |
|||
EndGlobalSection |
|||
GlobalSection(SolutionProperties) = preSolution |
|||
HideSolutionNode = FALSE |
|||
EndGlobalSection |
|||
GlobalSection(ExtensibilityGlobals) = postSolution |
|||
SolutionGuid = {7994FC0C-9D7C-4AD7-855B-C3525FD8709A} |
|||
EndGlobalSection |
|||
EndGlobal |
@ -0,0 +1,272 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<ItemGroup Label="ProjectConfigurations"> |
|||
<ProjectConfiguration Include="Debug|ARM64"> |
|||
<Configuration>Debug</Configuration> |
|||
<Platform>ARM64</Platform> |
|||
</ProjectConfiguration> |
|||
<ProjectConfiguration Include="Debug|Win32"> |
|||
<Configuration>Debug</Configuration> |
|||
<Platform>Win32</Platform> |
|||
</ProjectConfiguration> |
|||
<ProjectConfiguration Include="Release|ARM64"> |
|||
<Configuration>Release</Configuration> |
|||
<Platform>ARM64</Platform> |
|||
</ProjectConfiguration> |
|||
<ProjectConfiguration Include="Release|Win32"> |
|||
<Configuration>Release</Configuration> |
|||
<Platform>Win32</Platform> |
|||
</ProjectConfiguration> |
|||
<ProjectConfiguration Include="Debug|x64"> |
|||
<Configuration>Debug</Configuration> |
|||
<Platform>x64</Platform> |
|||
</ProjectConfiguration> |
|||
<ProjectConfiguration Include="Release|x64"> |
|||
<Configuration>Release</Configuration> |
|||
<Platform>x64</Platform> |
|||
</ProjectConfiguration> |
|||
</ItemGroup> |
|||
<PropertyGroup Label="Globals"> |
|||
<VCProjectVersion>16.0</VCProjectVersion> |
|||
<ProjectGuid>{6C2BED99-5A0A-42A2-AEBE-66717FA92232}</ProjectGuid> |
|||
<Keyword>Win32Proj</Keyword> |
|||
<RootNamespace>baseconsole</RootNamespace> |
|||
</PropertyGroup> |
|||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> |
|||
<ConfigurationType>Application</ConfigurationType> |
|||
<UseDebugLibraries>true</UseDebugLibraries> |
|||
<CharacterSet>Unicode</CharacterSet> |
|||
<PlatformToolset>v143</PlatformToolset> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> |
|||
<ConfigurationType>Application</ConfigurationType> |
|||
<UseDebugLibraries>false</UseDebugLibraries> |
|||
<WholeProgramOptimization>true</WholeProgramOptimization> |
|||
<CharacterSet>Unicode</CharacterSet> |
|||
<PlatformToolset>v143</PlatformToolset> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> |
|||
<ConfigurationType>Application</ConfigurationType> |
|||
<UseDebugLibraries>true</UseDebugLibraries> |
|||
<CharacterSet>Unicode</CharacterSet> |
|||
<PlatformToolset>v143</PlatformToolset> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration"> |
|||
<ConfigurationType>Application</ConfigurationType> |
|||
<UseDebugLibraries>true</UseDebugLibraries> |
|||
<CharacterSet>Unicode</CharacterSet> |
|||
<PlatformToolset>v143</PlatformToolset> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> |
|||
<ConfigurationType>Application</ConfigurationType> |
|||
<UseDebugLibraries>false</UseDebugLibraries> |
|||
<WholeProgramOptimization>true</WholeProgramOptimization> |
|||
<CharacterSet>Unicode</CharacterSet> |
|||
<PlatformToolset>v143</PlatformToolset> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration"> |
|||
<ConfigurationType>Application</ConfigurationType> |
|||
<UseDebugLibraries>false</UseDebugLibraries> |
|||
<WholeProgramOptimization>true</WholeProgramOptimization> |
|||
<CharacterSet>Unicode</CharacterSet> |
|||
<PlatformToolset>v143</PlatformToolset> |
|||
</PropertyGroup> |
|||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
|||
<ImportGroup Label="ExtensionSettings"> |
|||
</ImportGroup> |
|||
<ImportGroup Label="Shared"> |
|||
</ImportGroup> |
|||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
|||
</ImportGroup> |
|||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
|||
</ImportGroup> |
|||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
|||
</ImportGroup> |
|||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets"> |
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
|||
</ImportGroup> |
|||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
|||
</ImportGroup> |
|||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets"> |
|||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
|||
</ImportGroup> |
|||
<PropertyGroup> |
|||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> |
|||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir> |
|||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir> |
|||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\</OutDir> |
|||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">$(SolutionDir)arm64\$(Configuration)\$(ProjectName)\</IntDir> |
|||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86\$(Configuration)\</OutDir> |
|||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)x86\$(Configuration)\$(ProjectName)\</IntDir> |
|||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86\$(Configuration)\</OutDir> |
|||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)x86\$(Configuration)\$(ProjectName)\</IntDir> |
|||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir> |
|||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir> |
|||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\</OutDir> |
|||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)x64\$(Configuration)\$(ProjectName)\</IntDir> |
|||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">false</LinkIncremental> |
|||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">false</LinkIncremental> |
|||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> |
|||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> |
|||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental> |
|||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
|||
<LinkIncremental>true</LinkIncremental> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
|||
<LinkIncremental>true</LinkIncremental> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'"> |
|||
<LinkIncremental>true</LinkIncremental> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
|||
<LinkIncremental>false</LinkIncremental> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
|||
<LinkIncremental>false</LinkIncremental> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'"> |
|||
<LinkIncremental>false</LinkIncremental> |
|||
</PropertyGroup> |
|||
<ItemDefinitionGroup Condition="'$(AppVersion)' != ''"> |
|||
<ClCompile> |
|||
<AdditionalOptions>/DAPP_VERSION=$(AppVersion) %(AdditionalOptions)</AdditionalOptions> |
|||
</ClCompile> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(AppFileVersion)' != ''"> |
|||
<ResourceCompile> |
|||
<AdditionalOptions>/DAPP_FILE_VERSION=$(AppFileVersion) %(AdditionalOptions)</AdditionalOptions> |
|||
</ResourceCompile> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(AppComments)' != ''"> |
|||
<ResourceCompile> |
|||
<AdditionalOptions>/DAPP_COMMENTS="$(AppComments)" %(AdditionalOptions)</AdditionalOptions> |
|||
</ResourceCompile> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
|||
<ClCompile> |
|||
<WarningLevel>Level3</WarningLevel> |
|||
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
|||
<ExceptionHandling>false</ExceptionHandling> |
|||
<CompileAs>CompileAsC</CompileAs> |
|||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
|||
<AdditionalIncludeDirectories> |
|||
</AdditionalIncludeDirectories> |
|||
</ClCompile> |
|||
<Link> |
|||
<SubSystem>Windows</SubSystem> |
|||
<GenerateDebugInformation>true</GenerateDebugInformation> |
|||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |
|||
</Link> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
|||
<ClCompile> |
|||
<WarningLevel>Level3</WarningLevel> |
|||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
|||
<ExceptionHandling>false</ExceptionHandling> |
|||
<CompileAs>CompileAsC</CompileAs> |
|||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
|||
<AdditionalIncludeDirectories> |
|||
</AdditionalIncludeDirectories> |
|||
</ClCompile> |
|||
<Link> |
|||
<SubSystem>Windows</SubSystem> |
|||
<GenerateDebugInformation>true</GenerateDebugInformation> |
|||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |
|||
</Link> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'"> |
|||
<ClCompile> |
|||
<WarningLevel>Level3</WarningLevel> |
|||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
|||
<ExceptionHandling>false</ExceptionHandling> |
|||
<CompileAs>CompileAsC</CompileAs> |
|||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> |
|||
<AdditionalIncludeDirectories> |
|||
</AdditionalIncludeDirectories> |
|||
</ClCompile> |
|||
<Link> |
|||
<SubSystem>Windows</SubSystem> |
|||
<GenerateDebugInformation>true</GenerateDebugInformation> |
|||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |
|||
</Link> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
|||
<ClCompile> |
|||
<WarningLevel>Level3</WarningLevel> |
|||
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
|||
<ExceptionHandling>false</ExceptionHandling> |
|||
<CompileAs>CompileAsC</CompileAs> |
|||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> |
|||
<AdditionalIncludeDirectories> |
|||
</AdditionalIncludeDirectories> |
|||
<Optimization>MinSpace</Optimization> |
|||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed> |
|||
</ClCompile> |
|||
<Link> |
|||
<SubSystem>Windows</SubSystem> |
|||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
|||
<OptimizeReferences>true</OptimizeReferences> |
|||
<GenerateDebugInformation>true</GenerateDebugInformation> |
|||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |
|||
</Link> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> |
|||
<ClCompile> |
|||
<WarningLevel>Level3</WarningLevel> |
|||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
|||
<ExceptionHandling>false</ExceptionHandling> |
|||
<CompileAs>CompileAsC</CompileAs> |
|||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> |
|||
<AdditionalIncludeDirectories> |
|||
</AdditionalIncludeDirectories> |
|||
<Optimization>MinSpace</Optimization> |
|||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed> |
|||
</ClCompile> |
|||
<Link> |
|||
<SubSystem>Windows</SubSystem> |
|||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
|||
<OptimizeReferences>true</OptimizeReferences> |
|||
<GenerateDebugInformation>true</GenerateDebugInformation> |
|||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |
|||
</Link> |
|||
</ItemDefinitionGroup> |
|||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'"> |
|||
<ClCompile> |
|||
<WarningLevel>Level3</WarningLevel> |
|||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
|||
<ExceptionHandling>false</ExceptionHandling> |
|||
<CompileAs>CompileAsC</CompileAs> |
|||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> |
|||
<AdditionalIncludeDirectories> |
|||
</AdditionalIncludeDirectories> |
|||
<Optimization>MinSpace</Optimization> |
|||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed> |
|||
</ClCompile> |
|||
<Link> |
|||
<SubSystem>Windows</SubSystem> |
|||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
|||
<OptimizeReferences>true</OptimizeReferences> |
|||
<GenerateDebugInformation>true</GenerateDebugInformation> |
|||
<UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |
|||
</Link> |
|||
</ItemDefinitionGroup> |
|||
<ItemGroup> |
|||
<ClCompile Include=".\setup.c" /> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<ResourceCompile Include="setup.rc" /> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<ClInclude Include="resource.h" /> |
|||
</ItemGroup> |
|||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
|||
<ImportGroup Label="ExtensionTargets"> |
|||
</ImportGroup> |
|||
</Project> |
@ -0,0 +1,27 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<ItemGroup> |
|||
<Filter Include="Source Files"> |
|||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> |
|||
<Extensions>cpp;c;cc;cxx;c++;def;odl;idl;hpj;bat;asm;asmx</Extensions> |
|||
</Filter> |
|||
<Filter Include="Resources"> |
|||
<UniqueIdentifier>{e9f75410-9e5d-4ea8-b75a-0c45bb23e331}</UniqueIdentifier> |
|||
</Filter> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<ClCompile Include=".\setup.c"> |
|||
<Filter>Source Files</Filter> |
|||
</ClCompile> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<ResourceCompile Include="setup.rc"> |
|||
<Filter>Resources</Filter> |
|||
</ResourceCompile> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<ClInclude Include="resource.h"> |
|||
<Filter>Source Files</Filter> |
|||
</ClInclude> |
|||
</ItemGroup> |
|||
</Project> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue