tinymux/mux/modules/sqlslave/sqlslave.vcxproj
Stephen Dennis a70362ef63 build: remove the 11 UTF-8 BOMs, and stop editors re-adding them (#1499)
Every BOM in the tree, and an .editorconfig so Visual Studio does not put
them back.

All eleven carry no information: none of the files contains a single
non-ASCII byte, so the BOM was the only non-ASCII content in each.
Visual Studio wrote them when it generated or last touched those project
files.  Ten are .vcxproj.filters; two are the sqlproxy and sqlslave
.vcxproj, which is why the /utf-8 commit had to restore them mid-change.

The concern that makes this worth more than tidying: Visual Studio adds a
signature when it needs to represent a non-ASCII character in a file that
had none.  These files are pure ASCII, so removing the BOM should stick --
VS preserves the encoding it finds.  But #1499 step 2 converts source
prose from \xE2\x80\x99 escapes to characters, which is precisely the
condition that starts making VS write signatures, and on .cpp rather than
on project files.

.editorconfig is the lever for that.  charset = utf-8 means UTF-8 WITHOUT
a BOM (utf-8-bom is the spelling for with), and Visual Studio honours it,
as do VS Code, CLion and Sublime.  It is deliberately the only key set:
indentation, line endings and trailing whitespace are left to existing
practice and CLAUDE.md, so the file cannot reformat anything by surprise.

Git cannot do this job, which is worth recording because it is the
obvious place to look.  core.autocrlf is line endings only, and
.gitattributes' working-tree-encoding converts encodings rather than
stripping a signature -- pointing it at UTF-16 would ADD one.  Stripping
a BOM through git needs a custom clean filter that every clone has to
configure locally; an .editorconfig needs no setup and acts where the BOM
is actually introduced.

A BOM is harmless to MSVC and tolerated by gcc and clang, so this is not
a correctness fix for compiled sources.  It matters for files that are
executed rather than compiled -- a shell script or a .mux corpus file
with a BOM simply does not work -- and for keeping diffs free of churn
that depends on who last opened a file in an IDE.

Verified: full rebuild of all eleven projects clean, including the two
whose .vcxproj lost its BOM; smoke 316 dispatched, 1487 succeeded, 17
failed (the known build-configuration failures here); format, netaddr and
alarm harnesses pass; zero BOMs left in any tracked file.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 21:20:02 -06:00

135 lines
No EOL
6.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<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">
<ProjectGuid>{87FF7E1D-10EF-4B5D-8710-F8EFC963FE1D}</ProjectGuid>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" 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>
<_ProjectFileVersion>12.0.30501.0</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>..\..\bin_release\</OutDir>
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<IncludePath>C:\tinymux\mux\include;$(IncludePath)</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>..\..\bin_debug\</OutDir>
<IntDir>$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
<IncludePath>C:\tinymux\mux\include;$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>X64</TargetEnvironment>
<TypeLibraryName>.\bin_release/sqlslave.tlb</TypeLibraryName>
<HeaderFileName />
</Midl>
<ClCompile>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<Optimization>Full</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<IntrinsicFunctions>true</IntrinsicFunctions>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<PreprocessorDefinitions>WIN32;NDEBUG;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader />
<CallingConvention>FastCall</CallingConvention>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<ModuleDefinitionFile />
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>true</RandomizedBaseAddress>
<DataExecutionPrevention />
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>X64</TargetEnvironment>
<TypeLibraryName>.\bin_debug/sqlslave.tlb</TypeLibraryName>
<HeaderFileName />
</Midl>
<ClCompile>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>WIN32;_DEBUG;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader />
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
<ModuleDefinitionFile />
<SubSystem>Windows</SubSystem>
<DataExecutionPrevention />
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="sqlslave.cpp">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;_DEBUG;UNICODE</PreprocessorDefinitions>
<BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks>
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Full</Optimization>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;NDEBUG;UNICODE</PreprocessorDefinitions>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\config.h" />
<ClInclude Include="..\..\include\libmux.h" />
<ClInclude Include="..\..\include\modules.h" />
<ClInclude Include="..\..\include\sql.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\libmux.vcxproj">
<Project>{fea073c1-4f18-42a1-ac39-1a2ec0a65e92}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>