Add support for Windows ARM64

This commit is contained in:
Daniel Paoliello 2024-06-03 10:07:45 -07:00 committed by David Lönnhager
parent 92eab6f160
commit dd48537ad7
No known key found for this signature in database
GPG Key ID: AEE9DECFD582E984
25 changed files with 592 additions and 42 deletions

View File

@ -3,3 +3,6 @@ rustflags = ["-Ctarget-feature=+crt-static"]
[target.i686-pc-windows-msvc]
rustflags = ["-Ctarget-feature=+crt-static"]
[target.aarch64-pc-windows-msvc]
rustflags = ["-Ctarget-feature=+crt-static"]

1
.gitignore vendored
View File

@ -21,6 +21,7 @@
/dist-assets/openvpn.exe
/dist-assets/aarch64-apple-darwin/
/dist-assets/x86_64-apple-darwin/
/dist-assets/aarch64-pc-windows-msvc/
/windows/version.h
/windows/**/bin/
/windows/**/*.user

View File

@ -110,6 +110,21 @@ The host has to have the following installed:
[Git for Windows]: https://git-scm.com/download/win
### Experimental: Cross-compiling for ARM64
By default, the app will build for the host platform. It is also possible to cross-compile the app
for ARM64 on x64. This requires:
- The ARM64 MSVC tools added to Visual Studio.
- `clang` (either directly from llvm.org or as part of Visual Studio) on the `PATH`.
- The `AArch64` target added to Rust:
```bash
rustup target add aarch64-pc-windows-msvc
```
## macOS
The host has to have the following installed:
@ -146,6 +161,17 @@ variable to `aarch64-unknown-linux-gnu`:
TARGETS="aarch64-unknown-linux-gnu" ./build.sh
```
### Experimental: Windows
ARM64 Windows is not yet fully working or supported.
To cross-compile for ARM64 rather than the current architecture, set the `TARGETS` environment
variable to `aarch64-pc-windows-msvc`:
```bash
TARGETS="aarch64-pc-windows-msvc" ./build.sh
```
## Notes on building on ARM64 Linux hosts
Due to inability to build the management interface proto files on ARM64 (see

View File

@ -26,6 +26,9 @@ Line wrap the file at 100 chars. Th
- Add DAITA (Defence against AI-guided Traffic Analysis) setting for Linux and macOS.
- Add `--json` flag to `mullvad status` CLI.
#### Windows
- Add experimental support for Windows ARM64.
### Changed
- Ignore obfuscation protocol constraints when the obfuscation mode is set to auto.

1
Cargo.lock generated
View File

@ -3988,6 +3988,7 @@ dependencies = [
"tonic",
"tonic-build",
"tower",
"winapi",
"windows-sys 0.52.0",
"winres",
]

View File

@ -68,6 +68,7 @@ function get_solution_output_path {
case $build_target in
"x86") echo "$solution_root/bin/Win32-$build_mode";;
"x64") echo "$solution_root/bin/x64-$build_mode";;
"ARM64") echo "$solution_root/bin/ARM64-$build_mode";;
*)
echo "Unknown build target: $build_target"
exit 1

View File

@ -285,21 +285,43 @@ function build {
sign_win "$destination"
fi
done
if [[ "$current_target" == "aarch64-pc-windows-msvc" ]]; then
# TODO: We still ship x64 OpenVPN with ARM64, so we need an x64 talpid-openvpn-plugin
# to include in the package.
log_info "Workaround: building x64 talpid-openvpn-plugin"
cargo build --target x86_64-pc-windows-msvc "${CARGO_ARGS[@]}" -p talpid-openvpn-plugin --lib
cp "$CARGO_TARGET_DIR/x86_64-pc-windows-msvc/$RUST_BUILD_MODE/talpid_openvpn_plugin.dll" "dist-assets/aarch64-pc-windows-msvc/talpid_openvpn_plugin.dll"
if [[ "$SIGN" == "true" ]]; then
sign_win "dist-assets/talpid_openvpn_plugin.dll"
fi
fi
}
if [[ "$(uname -s)" == "MINGW"* ]]; then
log_header "Building C++ code in $CPP_BUILD_MODE mode"
CPP_BUILD_MODES=$CPP_BUILD_MODE IS_RELEASE=$IS_RELEASE ./build-windows-modules.sh
for t in "${TARGETS[@]:-"x86_64-pc-windows-msvc"}"; do
case $t in
x86_64-pc-windows-msvc) CPP_BUILD_TARGET=x64;;
aarch64-pc-windows-msvc) CPP_BUILD_TARGET=ARM64;;
*)
log_error "Unknown Windows target: $t"
exit 1
;;
esac
if [[ "$SIGN" == "true" ]]; then
CPP_BINARIES=(
"windows/winfw/bin/x64-$CPP_BUILD_MODE/winfw.dll"
"windows/driverlogic/bin/x64-$CPP_BUILD_MODE/driverlogic.exe"
# The nsis plugin is always built in 32 bit release mode
windows/nsis-plugins/bin/Win32-Release/*.dll
)
sign_win "${CPP_BINARIES[@]}"
fi
log_header "Building C++ code in $CPP_BUILD_MODE mode for $CPP_BUILD_TARGET"
CPP_BUILD_MODES=$CPP_BUILD_MODE CPP_BUILD_TARGETS=$CPP_BUILD_TARGET IS_RELEASE=$IS_RELEASE ./build-windows-modules.sh
if [[ "$SIGN" == "true" ]]; then
CPP_BINARIES=(
"windows/winfw/bin/$CPP_BUILD_TARGET-$CPP_BUILD_MODE/winfw.dll"
"windows/driverlogic/bin/$CPP_BUILD_TARGET-$CPP_BUILD_MODE/driverlogic.exe"
# The nsis plugin is always built in 32 bit release mode
windows/nsis-plugins/bin/Win32-Release/*.dll
)
sign_win "${CPP_BINARIES[@]}"
fi
done
fi
for t in "${TARGETS[@]:-""}"; do

View File

@ -204,6 +204,9 @@ function build_ref {
case "$(uname -s)" in
MINGW*|MSYS_NT*)
echo "Building ARM64 installers"
target=aarch64-pc-windows-msvc artifact_dir=$artifact_dir build "${build_args[@]}" || return 1
echo "Packaging all PDB files..."
find ./windows/ \
./target/release/mullvad-daemon.pdb \
@ -222,7 +225,7 @@ function build_ref {
# Pipes all matching names and their new name to mv
pushd "$artifact_dir"
for original_file in MullvadVPN-*-dev-*{.deb,.rpm,.exe,.pkg}; do
new_file=$(echo "$original_file" | sed -nE "s/^(MullvadVPN-.*-dev-.*)(_amd64\.deb|_x86_64\.rpm|_arm64\.deb|_aarch64\.rpm|\.exe|\.pkg)$/\1$version_suffix\2/p")
new_file=$(echo "$original_file" | sed -nE "s/^(MullvadVPN-.*-dev-.*)(_amd64\.deb|_x86_64\.rpm|_arm64\.deb|_aarch64\.rpm|_x64\.exe|_arm64\.exe|\.pkg)$/\1$version_suffix\2/p")
mv "$original_file" "$new_file"
done
popd

@ -1 +1 @@
Subproject commit b0c37cecd9b671d2480a7dc9636da93d76e2b14c
Subproject commit 049d5d3bc0c86c29c20f2073460186a83c1d7094

View File

@ -86,7 +86,7 @@
!macro ExtractDriverlogic
SetOutPath "$PLUGINSDIR"
File "${BUILD_RESOURCES_DIR}\..\windows\driverlogic\bin\x64-$%CPP_BUILD_MODE%\driverlogic.exe"
File "${BUILD_RESOURCES_DIR}\..\windows\driverlogic\bin\$%CPP_BUILD_TARGET%-$%CPP_BUILD_MODE%\driverlogic.exe"
!macroend
@ -100,8 +100,8 @@
!macro ExtractWireGuard
SetOutPath "$PLUGINSDIR"
File "${BUILD_RESOURCES_DIR}\binaries\x86_64-pc-windows-msvc\wintun\wintun.dll"
File "${BUILD_RESOURCES_DIR}\binaries\x86_64-pc-windows-msvc\wireguard-nt\mullvad-wireguard.dll"
File "${BUILD_RESOURCES_DIR}\binaries\$%TARGET_TRIPLE%\wintun\wintun.dll"
File "${BUILD_RESOURCES_DIR}\binaries\$%TARGET_TRIPLE%\wireguard-nt\mullvad-wireguard.dll"
!macroend
@ -115,8 +115,8 @@
!macro ExtractMullvadSetup
SetOutPath "$PLUGINSDIR"
File "${BUILD_RESOURCES_DIR}\mullvad-setup.exe"
File "${BUILD_RESOURCES_DIR}\..\windows\winfw\bin\x64-$%CPP_BUILD_MODE%\winfw.dll"
File "${BUILD_RESOURCES_DIR}\$%SETUP_SUBDIR%\mullvad-setup.exe"
File "${BUILD_RESOURCES_DIR}\..\windows\winfw\bin\$%CPP_BUILD_TARGET%-$%CPP_BUILD_MODE%\winfw.dll"
!macroend

View File

@ -132,26 +132,30 @@ const config = {
target: [
{
target: 'nsis',
arch: ['x64'],
arch: getWindowsTargetArch(),
},
],
artifactName: 'MullvadVPN-${version}.${ext}',
artifactName: 'MullvadVPN-${version}_${arch}.${ext}',
publisherName: 'Mullvad VPN AB',
extraResources: [
{ from: distAssets('mullvad.exe'), to: '.' },
{ from: distAssets('mullvad-problem-report.exe'), to: '.' },
{ from: distAssets('mullvad-daemon.exe'), to: '.' },
{ from: distAssets('talpid_openvpn_plugin.dll'), to: '.' },
{ from: distAssets(path.join(getWindowsDistSubdir(), 'mullvad.exe')), to: '.' },
{ from: distAssets(path.join(getWindowsDistSubdir(), 'mullvad-problem-report.exe')), to: '.' },
{ from: distAssets(path.join(getWindowsDistSubdir(), 'mullvad-daemon.exe')), to: '.' },
{ from: distAssets(path.join(getWindowsDistSubdir(), 'talpid_openvpn_plugin.dll')), to: '.' },
{
from: root(path.join('windows', 'winfw', 'bin', 'x64-${env.CPP_BUILD_MODE}', 'winfw.dll')),
from: root(path.join('windows', 'winfw', 'bin', getWindowsTargetArch() + '-${env.CPP_BUILD_MODE}', 'winfw.dll')),
to: '.',
},
// TODO: OpenVPN does not have an ARM64 build yet.
{ from: distAssets('binaries/x86_64-pc-windows-msvc/openvpn.exe'), to: '.' },
{ from: distAssets('binaries/x86_64-pc-windows-msvc/apisocks5.exe'), to: '.' },
{ from: distAssets('binaries/x86_64-pc-windows-msvc/wintun/wintun.dll'), to: '.' },
{ from: distAssets('binaries/x86_64-pc-windows-msvc/split-tunnel/mullvad-split-tunnel.sys'), to: '.' },
{ from: distAssets(path.join('binaries', getWindowsTargetSubdir(), 'apisocks5.exe')), to: '.' },
{ from: distAssets(path.join('binaries', getWindowsTargetSubdir(), 'wintun/wintun.dll')), to: '.' },
{
from: distAssets('binaries/x86_64-pc-windows-msvc/wireguard-nt/mullvad-wireguard.dll'),
from: distAssets(path.join('binaries', getWindowsTargetSubdir(), 'split-tunnel/mullvad-split-tunnel.sys')),
to: '.'
},
{
from: distAssets(path.join('binaries', getWindowsTargetSubdir(), 'wireguard-nt/mullvad-wireguard.dll')),
to: '.',
},
{ from: distAssets('maybenot_machines'), to: '.' },
@ -250,6 +254,19 @@ function packWin() {
asarUnpack: ['build/assets/images/menubar-icons/win32/lock-*.ico'],
beforeBuild: (options) => {
process.env.CPP_BUILD_MODE = release ? 'Release' : 'Debug';
process.env.CPP_BUILD_TARGET = options.arch;
switch (options.arch) {
case 'x64':
process.env.TARGET_TRIPLE = 'x86_64-pc-windows-msvc';
process.env.SETUP_SUBDIR = '.';
break;
case 'arm64':
process.env.TARGET_TRIPLE = 'aarch64-pc-windows-msvc';
process.env.SETUP_SUBDIR = 'aarch64-pc-windows-msvc';
break;
default:
throw new Error(`Invalid or unknown target (only one may be specified)`);
}
return true;
},
afterAllArtifactBuild: (buildResult) => {
@ -392,8 +409,38 @@ function root(relativePath) {
return path.join(path.resolve(__dirname, '../../'), relativePath);
}
function getWindowsDistSubdir() {
if (targets === 'aarch64-pc-windows-msvc') {
return targets;
} else {
return '';
}
}
function getWindowsTargetArch() {
if (targets && process.platform === 'win32') {
if (targets === 'aarch64-pc-windows-msvc') {
return 'arm64';
}
throw new Error(`Invalid or unknown target (only one may be specified)`);
}
// Use host architecture (we assume this is x64 since building on Arm64 isn't supported).
return 'x64';
}
function getWindowsTargetSubdir() {
if (targets && process.platform === 'win32') {
if (targets === 'aarch64-pc-windows-msvc') {
return targets;
}
throw new Error(`Invalid or unknown target (only one may be specified)`);
}
// Use host architecture (we assume this is x64 since building on Arm64 isn't supported).
return 'x86_64-pc-windows-msvc';
}
function getLinuxTargetArch() {
if (targets) {
if (targets && process.platform === 'linux') {
if (targets === 'aarch64-unknown-linux-gnu') {
return 'arm64';
}
@ -404,7 +451,7 @@ function getLinuxTargetArch() {
}
function getLinuxTargetSubdir() {
if (targets) {
if (targets && process.platform === 'linux') {
if (targets === 'aarch64-unknown-linux-gnu') {
return targets;
}

View File

@ -10,10 +10,7 @@ use std::{
};
use talpid_types::ErrorExt;
use talpid_windows::process::{ModuleEntry, ProcessSnapshot};
use winapi::{
um::winnt::{CONTEXT_CONTROL, CONTEXT_INTEGER, CONTEXT_SEGMENTS},
vc::excpt::EXCEPTION_EXECUTE_HANDLER,
};
use winapi::vc::excpt::EXCEPTION_EXECUTE_HANDLER;
use windows_sys::Win32::{
Foundation::{BOOL, HANDLE},
System::{
@ -219,7 +216,61 @@ unsafe extern "system" fn logging_exception_filter(info: *const EXCEPTION_POINTE
EXCEPTION_EXECUTE_HANDLER
}
#[cfg(target_arch = "aarch64")]
fn get_context_info(context: &CONTEXT) -> String {
use winapi::um::winnt::{CONTEXT_CONTROL, CONTEXT_FLOATING_POINT, CONTEXT_INTEGER};
let mut context_str = "Context:\n".to_string();
if context.ContextFlags & CONTEXT_CONTROL != 0 {
writeln!(
&mut context_str,
"\n\tFp: {:#x?}\n \
\tLr: {:#x?}\n \
\tSp: {:#x?}\n \
\tPc: {:#x?}\n \
\tCpsr: {:#x?}",
unsafe { context.Anonymous.Anonymous.Fp },
unsafe { context.Anonymous.Anonymous.Lr },
context.Sp,
context.Pc,
context.Cpsr
)
.unwrap();
}
if context.ContextFlags & CONTEXT_INTEGER != 0 {
context_str.push('\n');
for x in 0..=28 {
writeln!(&mut context_str, "\tX{}: {:#x?}", x, unsafe {
context.Anonymous.X[x]
})
.unwrap();
}
}
if context.ContextFlags & CONTEXT_FLOATING_POINT != 0 {
writeln!(
&mut context_str,
"\n\tFpcr: {:#x?}\n \
\tFpsr: {:#x?}",
context.Fpcr, context.Fpsr
)
.unwrap();
for q in 0..=31 {
writeln!(&mut context_str, "\tQ{}: {:#x?}", q, unsafe {
context.V[q].B
})
.unwrap();
}
}
context_str
}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
fn get_context_info(context: &CONTEXT) -> String {
use winapi::um::winnt::{CONTEXT_CONTROL, CONTEXT_INTEGER, CONTEXT_SEGMENTS};
let mut context_str = "Context:\n".to_string();
if context.ContextFlags & CONTEXT_CONTROL != 0 {

View File

@ -8,13 +8,17 @@ mod win {
manifest_dir().join(build_dir).join(target_platform_dir())
}
fn target_platform_dir() -> PathBuf {
let target = env::var("TARGET").expect("TARGET env var not set");
pub fn target() -> String {
env::var("TARGET").expect("TARGET env var not set")
}
fn target_platform_dir() -> PathBuf {
let target = target();
let target_dir = match target.as_str() {
"i686-pc-windows-msvc" => format!("Win32-{}", get_build_mode()),
"x86_64-pc-windows-msvc" => format!("x64-{}", get_build_mode()),
_ => panic!("uncrecognized target: {}", target),
"aarch64-pc-windows-msvc" => format!("ARM64-{}", get_build_mode()),
_ => panic!("unrecognized target: {}", target),
};
target_dir.into()
}
@ -52,7 +56,7 @@ fn main() {
const WINFW_DIR_VAR: &str = "WINFW_LIB_DIR";
declare_library(WINFW_DIR_VAR, WINFW_BUILD_DIR, "winfw");
let lib_dir = manifest_dir().join("../build/lib/x86_64-pc-windows-msvc");
let lib_dir = manifest_dir().join("../build/lib").join(target());
println!("cargo::rustc-link-search={}", &lib_dir.display());
}

View File

@ -41,9 +41,17 @@ features = [
"Win32_System_SystemServices",
]
[target.'cfg(windows)'.dependencies]
# parity-tokio-ipc has an implicit dependency on winapi's winerror feature.
winapi = { version = "0.3", features = ["winerror"] }
[package.metadata.winres]
ProductName = "Mullvad VPN"
CompanyName = "Mullvad VPN AB"
LegalCopyright = "(c) 2024 Mullvad VPN AB"
InternalName = "talpid-openvpn-plugin"
OriginalFilename = "talpid_openvpn_plugin.dll"
# TODO: Remove this once ARM64 Windows no longer requires x64 talpid_openvpn_plugin
[features]
api-override = []

View File

@ -110,7 +110,7 @@ function get_app_filename {
echo "MullvadVPN-${version}_x86_64.rpm"
;;
windows*)
echo "MullvadVPN-${version}.exe"
echo "MullvadVPN-${version}_x64.exe"
;;
macos*)
echo "MullvadVPN-${version}.pkg"

View File

@ -12,16 +12,26 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcommon", "..\windows-lib
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7E04821E-A6EE-4481-8204-6D127E6A8E5E}.Debug|ARM64.ActiveCfg = Debug|ARM64
{7E04821E-A6EE-4481-8204-6D127E6A8E5E}.Debug|ARM64.Build.0 = Debug|ARM64
{7E04821E-A6EE-4481-8204-6D127E6A8E5E}.Debug|x64.ActiveCfg = Debug|x64
{7E04821E-A6EE-4481-8204-6D127E6A8E5E}.Debug|x64.Build.0 = Debug|x64
{7E04821E-A6EE-4481-8204-6D127E6A8E5E}.Release|ARM64.ActiveCfg = Release|ARM64
{7E04821E-A6EE-4481-8204-6D127E6A8E5E}.Release|ARM64.Build.0 = Release|ARM64
{7E04821E-A6EE-4481-8204-6D127E6A8E5E}.Release|x64.ActiveCfg = Release|x64
{7E04821E-A6EE-4481-8204-6D127E6A8E5E}.Release|x64.Build.0 = Release|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|ARM64.Build.0 = Debug|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.ActiveCfg = Debug|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.Build.0 = Debug|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|ARM64.ActiveCfg = Release|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|ARM64.Build.0 = Release|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.ActiveCfg = Release|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.Build.0 = Release|x64
EndGlobalSection

View File

@ -1,10 +1,18 @@
<?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|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
@ -24,6 +32,12 @@
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@ -31,6 +45,13 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@ -39,20 +60,36 @@
<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 Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Create</PrecompiledHeader>
@ -72,6 +109,25 @@
<AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>Create</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)../../dist-assets/binaries/x86_64-pc-windows-msvc/;$(ProjectDir)../windows-libraries/src/;$(ProjectDir)../</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>newdev.lib;setupapi.lib;libcommon.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>Create</PrecompiledHeader>
@ -95,6 +151,29 @@
<AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PrecompiledHeader>Create</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp20</LanguageStandard>
<AdditionalIncludeDirectories>$(ProjectDir)../../dist-assets/binaries/x86_64-pc-windows-msvc/;$(ProjectDir)../windows-libraries/src/;$(ProjectDir)../</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>newdev.lib;setupapi.lib;libcommon.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\devenum.cpp" />
<ClCompile Include="src\device.cpp" />

View File

@ -11,28 +11,38 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcommon", "..\windows-lib
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
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|ARM64.ActiveCfg = Debug|ARM64
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|ARM64.Build.0 = Debug|ARM64
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x64.ActiveCfg = Debug|x64
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x64.Build.0 = Debug|x64
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x64.Deploy.0 = Debug|x64
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x86.ActiveCfg = Debug|Win32
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x86.Build.0 = Debug|Win32
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x86.Deploy.0 = Debug|Win32
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|ARM64.ActiveCfg = Release|ARM64
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|ARM64.Build.0 = Release|ARM64
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x64.ActiveCfg = Release|x64
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x64.Build.0 = Release|x64
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x64.Deploy.0 = Release|x64
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x86.ActiveCfg = Release|Win32
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x86.Build.0 = Release|Win32
{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x86.Deploy.0 = Release|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|ARM64.Build.0 = Debug|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.ActiveCfg = Debug|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.Build.0 = Debug|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x86.ActiveCfg = Debug|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x86.Build.0 = Debug|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|ARM64.ActiveCfg = Release|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|ARM64.Build.0 = Release|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.ActiveCfg = Release|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.Build.0 = Release|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x86.ActiveCfg = Release|Win32

View File

@ -1,10 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="16.0" 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>
@ -46,6 +54,12 @@
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@ -53,6 +67,13 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@ -67,15 +88,26 @@
<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 Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
@ -91,6 +123,11 @@
<OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
@ -110,6 +147,25 @@
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)../;$(ProjectDir)../../../windows-libraries/src/</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
@ -175,6 +231,29 @@
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<AdditionalIncludeDirectories>$(ProjectDir)../;$(ProjectDir)../../../windows-libraries/src/</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
<AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="logging\logsink.h" />
<ClInclude Include="logging\logsinkadapter.h" />
@ -191,7 +270,9 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

@ -1 +1 @@
Subproject commit 3ea5ca1163a005dd9dbe51167e9a1176574cc348
Subproject commit 64ad7063efa93f35101cc258002be0a9906ddd3a

@ -1 +1 @@
Subproject commit f5114c49bd9845533f193b57d55f27a5fbb47ef0
Subproject commit 2a95aa81a2f06f90de79243b99de6395213d0979

View File

@ -25,40 +25,58 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winfw", "src\winfw\winfw.vc
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
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Debug|ARM64.ActiveCfg = Debug|ARM64
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Debug|ARM64.Build.0 = Debug|ARM64
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Debug|x64.ActiveCfg = Debug|x64
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Debug|x64.Build.0 = Debug|x64
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Debug|x86.ActiveCfg = Debug|Win32
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Debug|x86.Build.0 = Debug|Win32
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Release|ARM64.ActiveCfg = Release|ARM64
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Release|ARM64.Build.0 = Release|ARM64
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Release|x64.ActiveCfg = Release|x64
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Release|x64.Build.0 = Release|x64
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Release|x86.ActiveCfg = Release|Win32
{242A58CA-8E54-4170-A8C5-6F91CC4F7DB2}.Release|x86.Build.0 = Release|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|ARM64.Build.0 = Debug|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.ActiveCfg = Debug|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.Build.0 = Debug|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x86.ActiveCfg = Debug|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x86.Build.0 = Debug|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|ARM64.ActiveCfg = Release|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|ARM64.Build.0 = Release|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.ActiveCfg = Release|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.Build.0 = Release|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x86.ActiveCfg = Release|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x86.Build.0 = Release|Win32
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|ARM64.ActiveCfg = Debug|ARM64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|ARM64.Build.0 = Debug|ARM64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|x64.ActiveCfg = Debug|x64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|x64.Build.0 = Debug|x64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|x86.ActiveCfg = Debug|Win32
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|x86.Build.0 = Debug|Win32
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|ARM64.ActiveCfg = Release|ARM64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|ARM64.Build.0 = Release|ARM64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|x64.ActiveCfg = Release|x64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|x64.Build.0 = Release|x64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|x86.ActiveCfg = Release|Win32
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|x86.Build.0 = Release|Win32
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|ARM64.ActiveCfg = Debug|ARM64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|ARM64.Build.0 = Debug|ARM64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|x64.ActiveCfg = Debug|x64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|x64.Build.0 = Debug|x64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|x86.ActiveCfg = Debug|Win32
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|x86.Build.0 = Debug|Win32
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|ARM64.ActiveCfg = Release|ARM64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|ARM64.Build.0 = Release|ARM64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|x64.ActiveCfg = Release|x64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|x64.Build.0 = Release|x64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|x86.ActiveCfg = Release|Win32

View File

@ -1,10 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="16.0" 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>
@ -45,6 +53,12 @@
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@ -52,6 +66,13 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@ -66,9 +87,15 @@
<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 Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
@ -80,6 +107,11 @@
<IntDir>$(SolutionDir)\bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>$(SolutionDir)\bin\$(Platform)-$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<LinkIncremental>true</LinkIncremental>
<IntDir>$(SolutionDir)\bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>$(SolutionDir)\bin\$(Platform)-$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)\bin\$(Platform)-$(Configuration)\</OutDir>
@ -90,6 +122,11 @@
<IntDir>$(SolutionDir)\bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>$(SolutionDir)\bin\$(Platform)-$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<LinkIncremental>false</LinkIncremental>
<IntDir>$(SolutionDir)\bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
<OutDir>$(SolutionDir)\bin\$(Platform)-$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
@ -126,6 +163,24 @@
<AdditionalDependencies>winfw.lib;libcommon.lib;libwfp.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)..\..\;$(ProjectDir)..\..\..\..\libwfp\src\;$(ProjectDir)..\..\..\..\windows-libraries\src\;$(ProjectDir)..\..\..\..\libshared\src\</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)/bin/$(Platform)-$(Configuration)</AdditionalLibraryDirectories>
<AdditionalDependencies>winfw.lib;libcommon.lib;libwfp.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
@ -170,6 +225,28 @@
<AdditionalDependencies>winfw.lib;libcommon.lib;libwfp.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir)..\;$(ProjectDir)..\..\;$(ProjectDir)..\..\..\..\libwfp\src\;$(ProjectDir)..\..\..\..\windows-libraries\src\;$(ProjectDir)..\..\..\..\libshared\src\</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)/bin/$(Platform)-$(Configuration)</AdditionalLibraryDirectories>
<AdditionalDependencies>winfw.lib;libcommon.lib;libwfp.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="commands\icommand.h" />
<ClInclude Include="commands\list\events.h" />
@ -219,7 +296,9 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="subcommanddispatcher.cpp" />
<ClCompile Include="util.cpp" />

View File

@ -1,10 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="16.0" 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>
@ -47,7 +55,9 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="fwcontext.cpp" />
<ClCompile Include="winfw.cpp" />
@ -119,6 +129,12 @@
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@ -126,6 +142,13 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
@ -140,9 +163,15 @@
<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 Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
@ -154,6 +183,11 @@
<OutDir>$(SolutionDir)\bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)\bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)\bin\$(Platform)-$(Configuration)\</OutDir>
@ -164,6 +198,11 @@
<OutDir>$(SolutionDir)\bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)\bin\$(Platform)-$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
@ -210,6 +249,29 @@
<Command>cargo run -q --bin mullvad-version version.h &gt; $(ProjectDir)..\..\..\version.h</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;WINFW_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<LanguageStandard>stdcpp20</LanguageStandard>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\libshared\src\;$(ProjectDir)..\;$(ProjectDir)..\..\..\windows-libraries\src\;$(ProjectDir)..\..\..\libwfp\src\</AdditionalIncludeDirectories>
<ObjectFileName>$(IntDir)%(RelativeDir)/</ObjectFileName>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>libwfp.lib;libcommon.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)/bin/$(Platform)-$(Configuration)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>winfw.def</ModuleDefinitionFile>
</Link>
<PreBuildEvent>
<Command>cargo run -q --bin mullvad-version version.h &gt; $(ProjectDir)..\..\..\version.h</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
@ -264,6 +326,33 @@
<Command>cargo run -q --bin mullvad-version version.h &gt; $(ProjectDir)..\..\..\version.h</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;WINFW_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<LanguageStandard>stdcpp20</LanguageStandard>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\libshared\src\;$(ProjectDir)..\;$(ProjectDir)..\..\..\windows-libraries\src\;$(ProjectDir)..\..\..\libwfp\src\</AdditionalIncludeDirectories>
<ObjectFileName>$(IntDir)%(RelativeDir)/</ObjectFileName>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>libwfp.lib;libcommon.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)/bin/$(Platform)-$(Configuration)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>winfw.def</ModuleDefinitionFile>
</Link>
<PreBuildEvent>
<Command>cargo run -q --bin mullvad-version version.h &gt; $(ProjectDir)..\..\..\version.h</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -18,32 +18,46 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libwfp", "..\libwfp\src\lib
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
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|ARM64.ActiveCfg = Debug|ARM64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|ARM64.Build.0 = Debug|ARM64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|x64.ActiveCfg = Debug|x64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|x64.Build.0 = Debug|x64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|x86.ActiveCfg = Debug|Win32
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Debug|x86.Build.0 = Debug|Win32
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|ARM64.ActiveCfg = Release|ARM64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|ARM64.Build.0 = Release|ARM64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|x64.ActiveCfg = Release|x64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|x64.Build.0 = Release|x64
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|x86.ActiveCfg = Release|Win32
{801E7DEB-2BD0-4E60-9E4B-74A5CA12ADCB}.Release|x86.Build.0 = Release|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|ARM64.Build.0 = Debug|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.ActiveCfg = Debug|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.Build.0 = Debug|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x86.ActiveCfg = Debug|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x86.Build.0 = Debug|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|ARM64.ActiveCfg = Release|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|ARM64.Build.0 = Release|ARM64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.ActiveCfg = Release|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.Build.0 = Release|x64
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x86.ActiveCfg = Release|Win32
{B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x86.Build.0 = Release|Win32
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|ARM64.ActiveCfg = Debug|ARM64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|ARM64.Build.0 = Debug|ARM64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|x64.ActiveCfg = Debug|x64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|x64.Build.0 = Debug|x64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|x86.ActiveCfg = Debug|Win32
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Debug|x86.Build.0 = Debug|Win32
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|ARM64.ActiveCfg = Release|ARM64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|ARM64.Build.0 = Release|ARM64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|x64.ActiveCfg = Release|x64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|x64.Build.0 = Release|x64
{2164E6D9-6023-4932-A08F-7A5C15E2CA0B}.Release|x86.ActiveCfg = Release|Win32