<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net7.0</TargetFramework>
    <RuntimeIdentifiers>win-x64;linux-x64</RuntimeIdentifiers>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <DefineConstants>TRACE</DefineConstants>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <DefineConstants>TRACE</DefineConstants>
  </PropertyGroup>
  <ItemGroup>
    <!-- Common definitions -->
    <Compile Include="Common\EEExtensions.fs" />
    <Compile Include="Common\Optics.fs" />
    <Compile Include="Common\ElectronAPI.fs" />
    <Compile Include="Common\HashMap.fs" />
    <Compile Include="Common\CommonTypes.fs" />
    <Compile Include="Common\DrawHelpers.fs" />
    <Compile Include="Common\Helpers.fs" />
    <Compile Include="Common\TimeHelpers.fs" />
    <Compile Include="Common\WidthInferer.fs" />

	  <!-- UART -->
    <Compile Include="UartFiles\BuildUartHelpers.fs" />

	  <!-- simulator -->
    <Compile Include="Simulator\SimulatorTypes.fs" />
    <Compile Include="Simulator\TruthTableTypes.fs" />
    <Compile Include="Simulator\NumberHelpers.fs" />
    <Compile Include="Simulator\SynchronousUtils.fs" />
    <Compile Include="Simulator\Extractor.fs" />
    <Compile Include="Simulator\CanvasStateAnalyser.fs" />
    <Compile Include="Simulator\SimulationGraphAnalyser.fs" />
    <Compile Include="Simulator\Fast\FastCreate.fs" />
    <Compile Include="Simulator\Fast\FastReduce.fs" />
    <Compile Include="Simulator\Fast\FastRun.fs" />
    <Compile Include="Simulator\Builder.fs" />
    <Compile Include="Simulator\Verilog.fs" />
    <Compile Include="Simulator\Runner.fs" />
    <Compile Include="Simulator\DependencyMerger.fs" />
    <Compile Include="Simulator\Simulator.fs" />

    <!-- Verilog Component -->
    <Compile Include="VerilogComponent\VerilogTypes.fs" />
    <Compile Include="VerilogComponent\VerilogAST.fs" />
    <Compile Include="VerilogComponent\NearleyBindings.fs" />
    <Compile Include="VerilogComponent\ErrorCheckHelpers.fs" />
    <Compile Include="VerilogComponent\ErrorCheckProcedural.fs" />
    <Compile Include="VerilogComponent\ErrorCheck.fs" />
    <Compile Include="VerilogComponent\SheetCreator.fs" /> 
    <Compile Include="VerilogComponent\CodeEditorHelpers.fs" />   

    <!-- JS and File interface -->
    <Compile Include="Interface\Version.fs" />
    <Compile Include="Interface\JSHelpers.fs" />
    <Compile Include="Interface\FilesIO.fs" />
    <Compile Include="Interface\WorkerInterface.fs" />
    <None Include="scss\main.scss" />

	<!-- Elmish Model -->
    <Compile Include="Model\DrawModelType.fs" />
    <Compile Include="Model\ModelType.fs" />
	  
	<!-- Draw Block -->
	<Compile Include="DrawBlock\BlockHelpers.fs" />
    <Compile Include="DrawBlock\SymbolHelpers.fs" />
    <Compile Include="DrawBlock\PopupHelpers.fs" />
    <Compile Include="DrawBlock\Symbol.fs" />
	<Compile Include="DrawBlock\SymbolView.fs" />
	<Compile Include="DrawBlock\SymbolPortHelpers.fs" />
    <Compile Include="DrawBlock\SymbolResizeHelpers.fs" />
	<Compile Include="DrawBlock\SymbolReplaceHelpers.fs" />
    <Compile Include="DrawBlock\SymbolUpdate.fs" />
    <Compile Include="DrawBlock\BusWire.fs" />
	<Compile Include="DrawBlock\BusWireUpdateHelpers.fs" />
	<Compile Include="DrawBlock\BusWireRoutingHelpers.fs" />
	<Compile Include="DrawBlock\BusWireRoute.fs" />
	<Compile Include="DrawBlock\BusWireSeparate.fs" />
    <Compile Include="DrawBlock\BusWireUpdate.fs" />
    <Compile Include="DrawBlock\RotateScale.fs" />
    <Compile Include="DrawBlock\Sheet.fs" />
    <Compile Include="DrawBlock\SheetSnap.fs" />
    <Compile Include="DrawBlock\SheetDisplay.fs" />
	<Compile Include="DrawBlock\SheetUpdateHelpers.fs" />
    <Compile Include="DrawBlock\SheetUpdate.fs" />
    <Compile Include="DrawBlock\SheetBeautifyHelpers.fs" />
    <Compile Include="DrawBlock\SheetBeautifyD1.fs" />
    <!-- UI -->
    <Compile Include="UI\ModelHelpers.fs" />
    <Compile Include="UI\Style.fs" />
    <Compile Include="UI\Notifications.fs" />
    <Compile Include="UI\UIPopups.fs" />
    <Compile Include="UI\MemoryEditorView.fs" />
    <Compile Include="UI\MenuHelpers.fs" />
    <Compile Include="UI\MiscMenuView.fs" />
    <Compile Include="UI\TopMenuView.fs" />
    <Compile Include="UI\CustomCompPorts.fs" />
    <Compile Include="UI\SimulationView.fs" />
    <Compile Include="UI\TruthTable\TruthTableReduce.fs" />
    <Compile Include="UI\TruthTable\TruthTableCreate.fs" />
    <Compile Include="UI\TruthTable\ConstraintReduceView.fs" />
    <Compile Include="UI\TruthTable\TruthTableView.fs" />
    <Compile Include="UI\TruthTable\TruthTableUpdate.fs" />
    <Compile Include="UI\BuildView.fs" />
    <Compile Include="UI\CatalogueView.fs" />
    <Compile Include="UI\SelectedComponentView.fs" />
    <Compile Include="UI\WaveSim/WaveSimHelpers.fs" />
    <Compile Include="UI\WaveSim/WaveSimStyle.fs" />
    <Compile Include="UI\WaveSim\WaveSimSelect.fs" />
    <Compile Include="UI\WaveSim/WaveSim.fs" />
    <Compile Include="UI\MainView.fs" />
    <Compile Include="UI\ContextMenus.fs" />
    <Compile Include="UI\UpdateHelpers.fs" />
    <Compile Include="UI\Update.fs" />

    <Compile Include="VerilogComponent\TestParser.fs" />

    <Compile Include="GenerateData.fs" />

    <Compile Include="TestDrawBlock.fs" />
    <Compile Include="TestWorker.fs" />
    <Compile Include="Playground.fs" />

    <Compile Include="Renderer.fs" />
  </ItemGroup>
  
  <!-- Dependencies -->
  <Import Project="..\..\.paket\Paket.Restore.targets" />
</Project>