Files
foo_input_joc/foo_input_joc.vcxproj
T
TheM14 188cb9ebfb
build / windows (push) Has been cancelled
build / release (push) Has been cancelled
Fix JOC detection inside mp4/mkv containers
2026-09-25 20:10:08 +08:00

160 lines
7.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!--
foo_input_joc: foobar2000 input component (E-AC-3 JOC / Dolby Atmos).
Built with the official SDK's own project files, referenced below. The
configuration name matters: the SDK ships Release (dynamic CRT) and
Release-Static (static CRT, /MT); this component uses Release-Static so no
runtime redistributable is required.
FOOBAR2000_TARGET_VERSION lives in the SDK's foobar2000-versions.h; tools/setup_sdk.ps1
sets it to 80 (foobar2000 1.5/1.6) so the same sources load on 1.6 and on 2.x.
-->
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Release-Static|Win32">
<Configuration>Release-Static</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-Static|x64">
<Configuration>Release-Static</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{8F3A2C1E-6D4B-4F27-9E51-3C7B0A5D9E42}</ProjectGuid>
<RootNamespace>foo_input_joc</RootNamespace>
<ProjectName>foo_input_joc</ProjectName>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)'=='Release-Static'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<UseOfMfc>false</UseOfMfc>
<UseOfAtl>false</UseOfAtl>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings" />
<ImportGroup 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>
<OutDir>$(ProjectDir)build\$(Platform)\</OutDir>
<IntDir>$(ProjectDir)build\obj\$(Platform)\</IntDir>
<TargetName>foo_input_joc</TargetName>
</PropertyGroup>
<!--
/fp:precise is required, not cosmetic: the rendered output has to stay
bit-identical to the reference renderer (see the project README).
-->
<ItemDefinitionGroup>
<ClCompile>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<LanguageStandard>stdcpp20</LanguageStandard>
<FloatingPointModel>Precise</FloatingPointModel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<ConformanceMode>true</ConformanceMode>
<!-- Sources are UTF-8; without this MSVC reads them in the system codepage
and mis-parses every non-ASCII string literal. -->
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<!--
JOC_STATIC: the rendering core is linked as a static library (see the
ProjectReference to kernel\joc_kernel.vcxproj), so kernel\include\
joc_core.h has to expand JOC_API to nothing. Without it the header
declares __declspec(dllimport) and the linker asks for __imp_joc_*
symbols that no import library provides.
-->
<PreprocessorDefinitions>NDEBUG;_WINDLL;WIN32_LEAN_AND_MEAN;NOMINMAX;_CRT_SECURE_NO_WARNINGS;JOC_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ForcedIncludeFiles>$(ProjectDir)src\joc_pch.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
<AdditionalIncludeDirectories>$(ProjectDir)src;$(ProjectDir)SDK\foobar2000;$(ProjectDir)SDK;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4100;4127;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<AdditionalDependencies>$(ProjectDir)SDK\foobar2000\shared\shared-$(Platform).lib;uxtheme.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<TargetMachine Condition="'$(Platform)'=='Win32'">MachineX86</TargetMachine>
<TargetMachine Condition="'$(Platform)'=='x64'">MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="src\container_scan.cpp" />
<ClCompile Include="src\eac3_scan.cpp" />
<ClCompile Include="src\input_joc.cpp" />
<ClCompile Include="src\joc_decode.cpp" />
<ClCompile Include="src\log.cpp" />
<ClCompile Include="src\main.cpp" />
<ClCompile Include="src\prefs.cpp" />
<ClCompile Include="src\settings.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\container_scan.h" />
<ClInclude Include="src\eac3_scan.h" />
<ClInclude Include="src\joc_decode.h" />
<ClInclude Include="src\joc_pch.h" />
<ClInclude Include="src\log.h" />
<ClInclude Include="src\prefs.h" />
<ClInclude Include="src\resource.h" />
<ClInclude Include="src\settings.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="src\prefs.rc" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="SDK\foobar2000\SDK\foobar2000_SDK.vcxproj">
<Project>{E8091321-D79D-4575-86EF-064EA1A4A20D}</Project>
<Name>foobar2000_SDK</Name>
</ProjectReference>
<ProjectReference Include="SDK\foobar2000\foobar2000_component_client\foobar2000_component_client.vcxproj">
<Project>{71AD2674-065B-48F5-B8B0-E1F9D3892081}</Project>
<Name>foobar2000_component_client</Name>
</ProjectReference>
<ProjectReference Include="SDK\pfc\pfc.vcxproj">
<Project>{EBFFFB4E-261D-44D3-B89C-957B31A0BF9C}</Project>
<Name>pfc</Name>
</ProjectReference>
<!--
The rendering core, built as a static library from the kernel copy in
kernel\ (see kernel\joc_kernel.vcxproj). Its configurations are named
exactly like this project's, so one reference serves both of them: MSBuild
passes this project's Configuration/Platform straight through. Linking is
the default (LinkLibraryDependencies), and the kernel is compiled with
JOC_STATIC so its public headers declare nothing imported or exported.
-->
<ProjectReference Include="kernel\joc_kernel.vcxproj">
<Project>{7B4E1D92-5C3A-4E0B-9F6D-2A8C41E7B530}</Project>
<Name>joc_kernel</Name>
</ProjectReference>
<!--
foobar2000_sdk_helpers and libPPUI are deliberately not referenced: both
compile the SDK's ATL/WTL dialog framework, and WTL is an external download
that the SDK does not ship. The decoder and the M0 probe use no dialog, so
nothing here needs them. Whatever the preferences page uses is decided
when that page is written.
-->
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>