<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>disable</Nullable>
        <PublishAot>true</PublishAot>
        <InvariantGlobalization>true</InvariantGlobalization>
        <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
        <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
        <IsPackable>false</IsPackable>
        <Configurations>Debug;Test;Release</Configurations>
        <Platforms>x64</Platforms>
    </PropertyGroup>

    <PropertyGroup>
        <DefaultItemExcludes>$(DefaultItemExcludes);Libraries\**\*</DefaultItemExcludes>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
        <DefineConstants>TRACE;LOG_INFO;PROFILING</DefineConstants>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Test|x64' ">
        <DefineConstants>TRACE;LOG_ERROR;PROFILING</DefineConstants>
        <Optimize>true</Optimize>
    </PropertyGroup>
    
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
        <DefineConstants>TRACE;LOG_ERROR</DefineConstants>
        <Optimize>true</Optimize>
    </PropertyGroup>
    
    <ItemGroup>
		<Compile Include="Libraries\ECS\src\**\*.cs" />
		<Compile Include="Libraries\SDL2CS\src\SDL2.cs" />
        <Compile Include="Libraries\RefreshCS\RefreshCS.cs" />
        <Compile Include="Libraries\FAudio\csharp\FAudio.cs" />
        <Compile Include="Libraries\WellspringCS\WellspringCS.cs" />
        <Compile Include="Libraries\dav1dfile\csharp\dav1dfile.cs" />
        <Compile Include="Libraries\ImGui.NET\src\ImGui.NET\**\*.cs" />
    </ItemGroup>
    
</Project>