From 95a5c3ee250f80c3b9d139658649d9ffb6db3eec Mon Sep 17 00:00:00 2001 From: Triang3l Date: Wed, 18 Feb 2026 22:40:20 +0300 Subject: [PATCH 01/18] [GPU/WGF] Bind EDRAM to resolve dumping via ByteAddressBuffer Simplifies binding by eliminating the need to switch between 32-bit and 64-bit views, and makes it possible to bind the EDRAM via a root descriptor on Direct3D 12. --- .../gpu/d3d12/d3d12_render_target_cache.cc | 94 ++++--------------- .../gpu/d3d12/d3d12_render_target_cache.h | 2 +- 2 files changed, 21 insertions(+), 75 deletions(-) diff --git a/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc b/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc index 733b3739e..342d282cf 100644 --- a/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc +++ b/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc @@ -820,12 +820,6 @@ bool D3D12RenderTargetCache::Initialize() { dump_root_stencil_range.BaseShaderRegister = 1; dump_root_stencil_range.RegisterSpace = 0; dump_root_stencil_range.OffsetInDescriptorsFromTableStart = 0; - D3D12_DESCRIPTOR_RANGE dump_root_edram_range; - dump_root_edram_range.RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_UAV; - dump_root_edram_range.NumDescriptors = 1; - dump_root_edram_range.BaseShaderRegister = 0; - dump_root_edram_range.RegisterSpace = 0; - dump_root_edram_range.OffsetInDescriptorsFromTableStart = 0; D3D12_ROOT_PARAMETER dump_root_color_parameters[kDumpRootParameterColorCount]; D3D12_ROOT_PARAMETER @@ -878,11 +872,9 @@ bool D3D12RenderTargetCache::Initialize() { D3D12_ROOT_PARAMETER& dump_root_edram = i ? dump_root_depth_parameters[kDumpRootParameterDepthEdram] : dump_root_color_parameters[kDumpRootParameterColorEdram]; - dump_root_edram.ParameterType = - D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; - dump_root_edram.DescriptorTable.NumDescriptorRanges = 1; - dump_root_edram.DescriptorTable.pDescriptorRanges = - &dump_root_edram_range; + dump_root_edram.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; + dump_root_edram.Descriptor.ShaderRegister = 0; + dump_root_edram.Descriptor.RegisterSpace = 0; dump_root_edram.ShaderVisibility = D3D12_SHADER_VISIBILITY_ALL; } D3D12_ROOT_SIGNATURE_DESC dump_root_desc; @@ -5629,7 +5621,7 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline( // Bindings. // - Texture2D/Texture2DMS xe_edram_dump_source : t0 // - Optionally, Texture2D/Texture2DMS xe_edram_dump_stencil : t1 - // - RWBuffer xe_edram : u0 + // - RWByteAddressBuffer xe_edram : u0 // - Constant buffers uint32_t rdef_binding_count = 1 + key.is_depth + 1 + kDumpCbufferCount; // Names. @@ -5702,13 +5694,10 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline( dxbc::RdefInputBind& rdef_binding_edram = rdef_bindings[rdef_binding_index++]; rdef_binding_edram.name_ptr = rdef_xe_edram_name_ptr; - rdef_binding_edram.type = dxbc::RdefInputType::kUAVRWTyped; - rdef_binding_edram.return_type = dxbc::ResourceReturnType::kUInt; + rdef_binding_edram.type = dxbc::RdefInputType::kUAVRWByteAddress; + rdef_binding_edram.return_type = dxbc::ResourceReturnType::kMixed; rdef_binding_edram.dimension = dxbc::RdefDimension::kUAVBuffer; - rdef_binding_edram.sample_count = UINT32_MAX; rdef_binding_edram.bind_count = 1; - rdef_binding_edram.flags = - format_is_64bpp ? dxbc::kRdefInputFlags2Component : 0; // xe_edram_dump_offsets dxbc::RdefInputBind& rdef_binding_offsets = rdef_bindings[rdef_binding_index++]; @@ -5833,10 +5822,7 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline( dxbc::Src::T(dxbc::Src::Dcl, 1, 1, 1)); } // EDRAM buffer. - a.OpDclUnorderedAccessViewTyped( - dxbc::ResourceDimension::kBuffer, 0, - dxbc::ResourceReturnTypeX4Token(dxbc::ResourceReturnType::kUInt), - dxbc::Src::U(dxbc::Src::Dcl, 0, 0, 0)); + a.OpDclUnorderedAccessViewRaw(0, dxbc::Src::U(dxbc::Src::Dcl, 0, 0, 0)); a.OpDclInput(dxbc::Dest::VThreadID(0b0011)); // r0 - addressing before the load, then addressing and conversion scratch // r1 - addressing scratch before the load, then data @@ -5969,6 +5955,9 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline( a.OpIAdd(dxbc::Dest::R(0, 0b0100), dxbc::Src::R(0, dxbc::Src::kZZZZ), dxbc::Src::R(1, dxbc::Src::kXXXX)); } + // Convert the destination address from samples to bytes. + a.OpIShL(dxbc::Dest::R(0, 0b0100), dxbc::Src::R(0, dxbc::Src::kZZZZ), + dxbc::Src::LU(format_is_64bpp ? 3 : 2)); // Extract the source texture base tile index to r1.x. // r0.x = X sample position within the tile @@ -6252,9 +6241,8 @@ ID3D12PipelineState* D3D12RenderTargetCache::GetOrCreateDumpPipeline( } // Write the sample to the destination address stored in r0.z. - a.OpStoreUAVTyped( - dxbc::Dest::U(0, 0), dxbc::Src::R(0, dxbc::Src::kZZZZ), 1, - dxbc::Src::R(1, format_is_64bpp ? 0b0100 : dxbc::Src::kXXXX)); + a.OpStoreRaw(dxbc::Dest::U(0, 0, format_is_64bpp ? 0b0011 : 0b0001), + dxbc::Src::R(0, dxbc::Src::kZZZZ), dxbc::Src::R(1)); a.OpRet(); @@ -6397,29 +6385,8 @@ void D3D12RenderTargetCache::DumpRenderTargets(uint32_t dump_base, pipeline_key.is_depth = rt_key.is_depth; dump_invocations_.emplace_back(rectangle, pipeline_key); } - // 32bpp and 64bpp. - size_t edram_uav_indices[2] = {SIZE_MAX, SIZE_MAX}; - const ui::d3d12::D3D12Provider& provider = - command_processor_.GetD3D12Provider(); - if (!bindless_resources_used_) { - if (any_sources_32bpp_64bpp[0]) { - edram_uav_indices[0] = current_temporary_descriptors_cpu_.size(); - current_temporary_descriptors_cpu_.push_back( - provider.OffsetViewDescriptor( - edram_buffer_descriptor_heap_start_, - uint32_t(EdramBufferDescriptorIndex::kR32UintUAV))); - } - if (any_sources_32bpp_64bpp[1]) { - edram_uav_indices[1] = current_temporary_descriptors_cpu_.size(); - current_temporary_descriptors_cpu_.push_back( - provider.OffsetViewDescriptor( - edram_buffer_descriptor_heap_start_, - uint32_t(EdramBufferDescriptorIndex::kR32G32UintUAV))); - } - } // Copy source descriptors to a shader-visible heap. - ID3D12Device* device = provider.GetDevice(); uint32_t descriptor_count = uint32_t(current_temporary_descriptors_cpu_.size()); current_temporary_descriptors_gpu_.resize(descriptor_count); @@ -6427,6 +6394,7 @@ void D3D12RenderTargetCache::DumpRenderTargets(uint32_t dump_base, descriptor_count, current_temporary_descriptors_gpu_.data())) { return; } + ID3D12Device* device = command_processor_.GetD3D12Provider().GetDevice(); for (uint32_t i = 0; i < descriptor_count; ++i) { device->CopyDescriptorsSimple(1, current_temporary_descriptors_gpu_[i].first, @@ -6441,6 +6409,8 @@ void D3D12RenderTargetCache::DumpRenderTargets(uint32_t dump_base, DeferredCommandList& command_list = command_processor_.GetDeferredCommandList(); ID3D12RootSignature* last_root_signature = nullptr; + // `root_parameters_set` doesn't include the EDRAM buffer, which is never + // changed. uint32_t root_parameters_set = 0; uint32_t last_descriptor_index_source = UINT32_MAX; uint32_t last_descriptor_index_stencil = UINT32_MAX; @@ -6465,35 +6435,10 @@ void D3D12RenderTargetCache::DumpRenderTargets(uint32_t dump_base, last_root_signature = root_signature; command_list.D3DSetComputeRootSignature(root_signature); root_parameters_set = 0; - } - - DumpRootParameter root_parameter_edram = pipeline_key.is_depth - ? kDumpRootParameterDepthEdram - : kDumpRootParameterColorEdram; - uint32_t root_parameter_edram_bit = uint32_t(1) << root_parameter_edram; - bool format_is_64bpp = rt_key.Is64bpp(); - if (last_edram_uav_is_64bpp != format_is_64bpp) { - last_edram_uav_is_64bpp = format_is_64bpp; - root_parameters_set &= ~root_parameter_edram_bit; - } - if (!(root_parameters_set & root_parameter_edram_bit)) { - D3D12_GPU_DESCRIPTOR_HANDLE descriptor_handle_edram; - if (bindless_resources_used_) { - descriptor_handle_edram = command_processor_ - .GetEdramUintPow2BindlessUAVHandlePair( - 2 + uint32_t(last_edram_uav_is_64bpp)) - .second; - } else { - assert_true(edram_uav_indices[size_t(last_edram_uav_is_64bpp)] != - SIZE_MAX); - descriptor_handle_edram = - current_temporary_descriptors_gpu_[edram_uav_indices[size_t( - last_edram_uav_is_64bpp)]] - .second; - } - command_list.D3DSetComputeRootDescriptorTable(root_parameter_edram, - descriptor_handle_edram); - root_parameters_set |= root_parameter_edram_bit; + command_list.D3DSetComputeRootUnorderedAccessView( + pipeline_key.is_depth ? kDumpRootParameterDepthEdram + : kDumpRootParameterColorEdram, + edram_buffer_gpu_address_); } DumpRootParameter root_parameter_pitches = @@ -6554,6 +6499,7 @@ void D3D12RenderTargetCache::DumpRenderTargets(uint32_t dump_base, uint32_t(1) << kDumpRootParameterOffsets; DumpOffsets offsets; offsets.source_base_tiles = rt_key.base_tiles; + bool format_is_64bpp = rt_key.Is64bpp(); ResolveCopyDumpRectangle::Dispatch dispatches[ResolveCopyDumpRectangle::kMaxDispatches]; uint32_t dispatch_count = diff --git a/src/xenia/gpu/d3d12/d3d12_render_target_cache.h b/src/xenia/gpu/d3d12/d3d12_render_target_cache.h index db2ce8a26..c0bb7420a 100644 --- a/src/xenia/gpu/d3d12/d3d12_render_target_cache.h +++ b/src/xenia/gpu/d3d12/d3d12_render_target_cache.h @@ -611,7 +611,7 @@ class D3D12RenderTargetCache final : public RenderTargetCache { // May be different for different sources. kDumpRootParameterColorPitches = kDumpRootParameterSource + 1, - // Only changed between 32bpp and 64bpp. + // Not changed. kDumpRootParameterColorEdram, kDumpRootParameterColorCount, From 71c5702ee80ef5b0c37462064fad891c1b1b0b57 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Wed, 4 Mar 2026 15:28:01 +0900 Subject: [PATCH 02/18] [Build] Convert build system to raw cmake and remove premake layer --- .github/workflows/Linux_build.yml | 13 +- .github/workflows/Windows_build.yml | 10 +- .gitmodules | 12 - CMakeLists.txt | 231 +++++++ CMakePresets.json | 55 ++ cmake/XeniaHelpers.cmake | 160 +++++ premake5.lua | 384 ------------ src/xenia/CMakeLists.txt | 49 ++ src/xenia/app/CMakeLists.txt | 115 ++++ src/xenia/app/discord/CMakeLists.txt | 9 + src/xenia/app/discord/premake5.lua | 18 - src/xenia/app/premake5.lua | 133 ---- src/xenia/apu/CMakeLists.txt | 8 + src/xenia/apu/alsa/CMakeLists.txt | 7 + src/xenia/apu/alsa/premake5.lua | 18 - src/xenia/apu/nop/CMakeLists.txt | 4 + src/xenia/apu/nop/premake5.lua | 13 - src/xenia/apu/premake5.lua | 19 - src/xenia/apu/sdl/CMakeLists.txt | 4 + src/xenia/apu/sdl/premake5.lua | 16 - src/xenia/apu/xaudio2/CMakeLists.txt | 4 + src/xenia/apu/xaudio2/premake5.lua | 13 - src/xenia/base/CMakeLists.txt | 17 + src/xenia/base/premake5.lua | 22 - src/xenia/base/testing/CMakeLists.txt | 3 + src/xenia/base/testing/premake5.lua | 9 - src/xenia/cpu/CMakeLists.txt | 17 + src/xenia/cpu/backend/x64/CMakeLists.txt | 18 + src/xenia/cpu/backend/x64/premake5.lua | 30 - src/xenia/cpu/ppc/testing/CMakeLists.txt | 37 ++ src/xenia/cpu/ppc/testing/premake5.lua | 85 --- src/xenia/cpu/premake5.lua | 27 - src/xenia/cpu/testing/CMakeLists.txt | 7 + src/xenia/cpu/testing/premake5.lua | 28 - src/xenia/debug/ui/CMakeLists.txt | 4 + src/xenia/debug/ui/premake5.lua | 15 - src/xenia/gpu/CMakeLists.txt | 30 + src/xenia/gpu/d3d12/CMakeLists.txt | 44 ++ src/xenia/gpu/d3d12/premake5.lua | 128 ---- src/xenia/gpu/null/CMakeLists.txt | 7 + src/xenia/gpu/null/premake5.lua | 19 - src/xenia/gpu/premake5.lua | 60 -- src/xenia/gpu/vulkan/CMakeLists.txt | 71 +++ src/xenia/gpu/vulkan/premake5.lua | 159 ----- src/xenia/helper/sdl/CMakeLists.txt | 4 + src/xenia/helper/sdl/premake5.lua | 13 - src/xenia/hid/CMakeLists.txt | 11 + src/xenia/hid/nop/CMakeLists.txt | 4 + src/xenia/hid/nop/premake5.lua | 13 - src/xenia/hid/premake5.lua | 16 - src/xenia/hid/sdl/CMakeLists.txt | 4 + src/xenia/hid/sdl/premake5.lua | 16 - src/xenia/hid/skylander/CMakeLists.txt | 14 + src/xenia/hid/skylander/premake5.lua | 23 - src/xenia/hid/winkey/CMakeLists.txt | 4 + src/xenia/hid/winkey/premake5.lua | 14 - src/xenia/hid/xinput/CMakeLists.txt | 4 + src/xenia/hid/xinput/premake5.lua | 13 - src/xenia/kernel/CMakeLists.txt | 23 + src/xenia/kernel/premake5.lua | 40 -- src/xenia/patcher/CMakeLists.txt | 4 + src/xenia/patcher/premake5.lua | 12 - src/xenia/premake5.lua | 16 - src/xenia/ui/CMakeLists.txt | 18 + src/xenia/ui/d3d12/CMakeLists.txt | 21 + src/xenia/ui/d3d12/premake5.lua | 39 -- src/xenia/ui/premake5.lua | 36 -- src/xenia/ui/vulkan/CMakeLists.txt | 40 ++ src/xenia/ui/vulkan/premake5.lua | 54 -- src/xenia/vfs/CMakeLists.txt | 31 + src/xenia/vfs/premake5.lua | 42 -- src/xenia/vfs/testing/CMakeLists.txt | 3 + src/xenia/vfs/testing/premake5.lua | 8 - third_party/CMakeLists.txt | 654 ++++++++++++++++++++ third_party/SDL2-static.lua | 360 ----------- third_party/SDL2.lua | 36 -- third_party/aes_128.lua | 11 - third_party/capstone.lua | 36 -- third_party/cxxopts.lua | 14 - third_party/discord-rpc.lua | 36 -- third_party/dxbc.lua | 11 - third_party/ffmpeg-xenia/premake5.lua | 42 -- third_party/fmt.lua | 13 - third_party/glslang-spirv.lua | 20 - third_party/imgui.lua | 19 - third_party/libusb.lua | 47 -- third_party/mspack.lua | 19 - third_party/pugixml.lua | 8 - third_party/snappy.lua | 23 - third_party/tomlplusplus.lua | 13 - third_party/xxhash.lua | 11 - third_party/zarchive.lua | 21 - third_party/zlib-ng.lua | 63 -- third_party/zstd.lua | 11 - tools/build/bin/premake5.exe | Bin 1318400 -> 0 bytes tools/build/premake.py | 272 -------- tools/build/premake5.lua | 9 - tools/build/scripts/build_paths.lua | 16 - tools/build/scripts/force_compile_as_c.lua | 32 - tools/build/scripts/force_compile_as_cc.lua | 32 - tools/build/scripts/pkg_config.lua | 45 -- tools/build/scripts/platform_files.lua | 71 --- tools/build/scripts/single_library.lua | 20 - tools/build/scripts/test_suite.lua | 99 --- tools/build/scripts/util.lua | 50 -- xenia-build.py | 292 +++------ 106 files changed, 1829 insertions(+), 3249 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 CMakePresets.json create mode 100644 cmake/XeniaHelpers.cmake delete mode 100644 premake5.lua create mode 100644 src/xenia/CMakeLists.txt create mode 100644 src/xenia/app/CMakeLists.txt create mode 100644 src/xenia/app/discord/CMakeLists.txt delete mode 100644 src/xenia/app/discord/premake5.lua delete mode 100644 src/xenia/app/premake5.lua create mode 100644 src/xenia/apu/CMakeLists.txt create mode 100644 src/xenia/apu/alsa/CMakeLists.txt delete mode 100644 src/xenia/apu/alsa/premake5.lua create mode 100644 src/xenia/apu/nop/CMakeLists.txt delete mode 100644 src/xenia/apu/nop/premake5.lua delete mode 100644 src/xenia/apu/premake5.lua create mode 100644 src/xenia/apu/sdl/CMakeLists.txt delete mode 100644 src/xenia/apu/sdl/premake5.lua create mode 100644 src/xenia/apu/xaudio2/CMakeLists.txt delete mode 100644 src/xenia/apu/xaudio2/premake5.lua create mode 100644 src/xenia/base/CMakeLists.txt delete mode 100644 src/xenia/base/premake5.lua create mode 100644 src/xenia/base/testing/CMakeLists.txt delete mode 100644 src/xenia/base/testing/premake5.lua create mode 100644 src/xenia/cpu/CMakeLists.txt create mode 100644 src/xenia/cpu/backend/x64/CMakeLists.txt delete mode 100644 src/xenia/cpu/backend/x64/premake5.lua create mode 100644 src/xenia/cpu/ppc/testing/CMakeLists.txt delete mode 100644 src/xenia/cpu/ppc/testing/premake5.lua delete mode 100644 src/xenia/cpu/premake5.lua create mode 100644 src/xenia/cpu/testing/CMakeLists.txt delete mode 100644 src/xenia/cpu/testing/premake5.lua create mode 100644 src/xenia/debug/ui/CMakeLists.txt delete mode 100644 src/xenia/debug/ui/premake5.lua create mode 100644 src/xenia/gpu/CMakeLists.txt create mode 100644 src/xenia/gpu/d3d12/CMakeLists.txt delete mode 100644 src/xenia/gpu/d3d12/premake5.lua create mode 100644 src/xenia/gpu/null/CMakeLists.txt delete mode 100644 src/xenia/gpu/null/premake5.lua delete mode 100644 src/xenia/gpu/premake5.lua create mode 100644 src/xenia/gpu/vulkan/CMakeLists.txt delete mode 100644 src/xenia/gpu/vulkan/premake5.lua create mode 100644 src/xenia/helper/sdl/CMakeLists.txt delete mode 100644 src/xenia/helper/sdl/premake5.lua create mode 100644 src/xenia/hid/CMakeLists.txt create mode 100644 src/xenia/hid/nop/CMakeLists.txt delete mode 100644 src/xenia/hid/nop/premake5.lua delete mode 100644 src/xenia/hid/premake5.lua create mode 100644 src/xenia/hid/sdl/CMakeLists.txt delete mode 100644 src/xenia/hid/sdl/premake5.lua create mode 100644 src/xenia/hid/skylander/CMakeLists.txt delete mode 100644 src/xenia/hid/skylander/premake5.lua create mode 100644 src/xenia/hid/winkey/CMakeLists.txt delete mode 100644 src/xenia/hid/winkey/premake5.lua create mode 100644 src/xenia/hid/xinput/CMakeLists.txt delete mode 100644 src/xenia/hid/xinput/premake5.lua create mode 100644 src/xenia/kernel/CMakeLists.txt delete mode 100644 src/xenia/kernel/premake5.lua create mode 100644 src/xenia/patcher/CMakeLists.txt delete mode 100644 src/xenia/patcher/premake5.lua delete mode 100644 src/xenia/premake5.lua create mode 100644 src/xenia/ui/CMakeLists.txt create mode 100644 src/xenia/ui/d3d12/CMakeLists.txt delete mode 100644 src/xenia/ui/d3d12/premake5.lua delete mode 100644 src/xenia/ui/premake5.lua create mode 100644 src/xenia/ui/vulkan/CMakeLists.txt delete mode 100644 src/xenia/ui/vulkan/premake5.lua create mode 100644 src/xenia/vfs/CMakeLists.txt delete mode 100644 src/xenia/vfs/premake5.lua create mode 100644 src/xenia/vfs/testing/CMakeLists.txt delete mode 100644 src/xenia/vfs/testing/premake5.lua create mode 100644 third_party/CMakeLists.txt delete mode 100644 third_party/SDL2-static.lua delete mode 100644 third_party/SDL2.lua delete mode 100644 third_party/aes_128.lua delete mode 100644 third_party/capstone.lua delete mode 100644 third_party/cxxopts.lua delete mode 100644 third_party/discord-rpc.lua delete mode 100644 third_party/dxbc.lua delete mode 100644 third_party/ffmpeg-xenia/premake5.lua delete mode 100644 third_party/fmt.lua delete mode 100644 third_party/glslang-spirv.lua delete mode 100644 third_party/imgui.lua delete mode 100644 third_party/libusb.lua delete mode 100644 third_party/mspack.lua delete mode 100644 third_party/pugixml.lua delete mode 100644 third_party/snappy.lua delete mode 100644 third_party/tomlplusplus.lua delete mode 100644 third_party/xxhash.lua delete mode 100644 third_party/zarchive.lua delete mode 100644 third_party/zlib-ng.lua delete mode 100644 third_party/zstd.lua delete mode 100644 tools/build/bin/premake5.exe delete mode 100755 tools/build/premake.py delete mode 100644 tools/build/premake5.lua delete mode 100644 tools/build/scripts/build_paths.lua delete mode 100644 tools/build/scripts/force_compile_as_c.lua delete mode 100644 tools/build/scripts/force_compile_as_cc.lua delete mode 100644 tools/build/scripts/pkg_config.lua delete mode 100644 tools/build/scripts/platform_files.lua delete mode 100644 tools/build/scripts/single_library.lua delete mode 100644 tools/build/scripts/test_suite.lua delete mode 100644 tools/build/scripts/util.lua diff --git a/.github/workflows/Linux_build.yml b/.github/workflows/Linux_build.yml index 50e43fe82..86c64167a 100644 --- a/.github/workflows/Linux_build.yml +++ b/.github/workflows/Linux_build.yml @@ -77,11 +77,6 @@ jobs: - uses: actions/checkout@main with: fetch-depth: 0 - - uses: actions/cache@main - id: cache - with: - key: ${{ hashFiles('tools/build/bin/premake5.exe') }} - path: tools/build/bin/premake5 - name: Cache Vulkan SDK id: cache-vulkan-sdk-linux uses: actions/cache@v4 @@ -95,7 +90,7 @@ jobs: wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc sudo apt-add-repository "deb http://apt.llvm.org/${UBUNTU_BASE}/ llvm-toolchain-${UBUNTU_BASE}-${{ matrix.LLVM_VERSION }} main" sudo apt-get -y update - sudo apt-get -y install mesa-vulkan-drivers valgrind libc++-dev libc++abi-dev libgtk-3-dev libsdl2-dev libvulkan-dev libx11-xcb-dev clang-${{ matrix.LLVM_VERSION }} ninja-build spirv-tools + sudo apt-get -y install mesa-vulkan-drivers valgrind libc++-dev libc++abi-dev libgtk-3-dev libsdl2-dev libvulkan-dev libx11-xcb-dev clang-${{ matrix.LLVM_VERSION }} lld-${{ matrix.LLVM_VERSION }} ninja-build spirv-tools cmake # Install Vulkan SDK if [ '${{ steps.cache-vulkan-sdk-linux.outputs.cache-hit }}' != 'true' ]; then @@ -112,11 +107,7 @@ jobs: which spirv-opt && spirv-opt --version || echo "Warning: spirv-opt not found" which spirv-dis || echo "Warning: spirv-dis not found" - git submodule update --init --depth=1 -j$(getconf _NPROCESSORS_ONLN) $(grep -oP '(?<=path = )(?!third_party\/(DirectXShaderCompiler|premake-(androidndk|export-compile-commands))).+' .gitmodules) - if [ '${{ steps.cache.outputs.cache-hit }}' != 'true' ]; then - ./xenia-build.py premake - cp third_party/premake-core/bin/release/premake5 tools/build/bin - fi + git submodule update --init --depth=1 -j$(getconf _NPROCESSORS_ONLN) $(grep -oP '(?<=path = )(?!third_party\/DirectXShaderCompiler).+' .gitmodules) - name: Build env: CC: clang-${{ matrix.LLVM_VERSION }} diff --git a/.github/workflows/Windows_build.yml b/.github/workflows/Windows_build.yml index 8a2a91cbb..c64c50561 100644 --- a/.github/workflows/Windows_build.yml +++ b/.github/workflows/Windows_build.yml @@ -123,19 +123,19 @@ jobs: echo "Warning: fxc.exe not found in Windows SDK" } - git submodule update --init --depth=1 -j $env:NUMBER_OF_PROCESSORS (Select-String -CaseSensitive '(?<=path = )(?!third_party\/(premake-(androidndk|cmake|export-compile-commands))).+' .gitmodules).Matches.Value + git submodule update --init --depth=1 -j $env:NUMBER_OF_PROCESSORS (Select-String -CaseSensitive '(?<=path = ).+' .gitmodules).Matches.Value - name: Build - run: python xenia-build.py build --config=Release --target=src\xenia-app + run: python xenia-build.py build --config=Release --target=xenia-app - name: Prepare artifacts id: prepare_artifacts run: | - foreach ($file in 'build\bin\Windows\Release\xenia_canary.exe','build\bin\Windows\Release\xenia_canary.pdb') { + foreach ($file in 'build\bin\Windows\Release\xenia_canary.exe') { if ((get-item $file).Length -le 100000) { echo "::error::$file is too small." } } - robocopy . build\bin\Windows\Release LICENSE /r:0 /w:0 - robocopy build\bin\Windows\Release artifacts\xenia_canary xenia_canary.exe xenia_canary.pdb LICENSE /r:0 /w:0 + robocopy . build\bin\Windows\Release LICENSE /r:0 /w:0 + robocopy build\bin\Windows\Release artifacts\xenia_canary xenia_canary.exe LICENSE /r:0 /w:0 If ($LastExitCode -le 7) { echo "LastExitCode = $LastExitCode";$LastExitCode = 0 } - name: Upload xenia canary artifacts if: steps.prepare_artifacts.outcome == 'success' diff --git a/.gitmodules b/.gitmodules index f2de9aba9..0ee64ac52 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,16 +7,10 @@ [submodule "third_party/catch"] path = third_party/catch url = https://github.com/catchorg/Catch2.git -[submodule "third_party/premake-core"] - path = third_party/premake-core - url = https://github.com/premake/premake-core.git [submodule "third_party/snappy"] path = third_party/snappy url = https://github.com/google/snappy.git ignore = dirty -[submodule "third_party/premake-export-compile-commands"] - path = third_party/premake-export-compile-commands - url = https://github.com/xenia-project/premake-export-compile-commands.git [submodule "third_party/discord-rpc"] path = third_party/discord-rpc url = https://github.com/discordapp/discord-rpc.git @@ -50,9 +44,6 @@ [submodule "third_party/DirectXShaderCompiler"] path = third_party/DirectXShaderCompiler url = https://github.com/microsoft/DirectXShaderCompiler.git -[submodule "third_party/premake-cmake"] - path = third_party/premake-cmake - url = https://github.com/JoelLinn/premake-cmake.git [submodule "third_party/date"] path = third_party/date url = https://github.com/HowardHinnant/date.git @@ -63,9 +54,6 @@ path = third_party/FFmpeg url = https://github.com/has207/FFmpeg.git branch = xmaframes -[submodule "third_party/premake-androidndk"] - path = third_party/premake-androidndk - url = https://github.com/Triang3l/premake-androidndk.git [submodule "third_party/FidelityFX-CAS"] path = third_party/FidelityFX-CAS url = https://github.com/GPUOpen-Effects/FidelityFX-CAS.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..193f6d896 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,231 @@ +cmake_minimum_required(VERSION 3.20) +project(xenia LANGUAGES C CXX) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_C_STANDARD 17) +set(CMAKE_C_STANDARD_REQUIRED ON) + +# Options +option(XENIA_BUILD_TESTS "Build test suites" OFF) +option(XENIA_BUILD_MISC "Build misc subprojects (trace viewers, shader compiler, vfs-dump, demos)" OFF) + +# Multi-config generators (VS, Ninja Multi-Config) +get_property(_is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(_is_multi_config) + set(CMAKE_CONFIGURATION_TYPES "Checked;Debug;Release" CACHE STRING "" FORCE) +endif() + +# Custom Checked configuration (ASan + debug runtime) +set(CMAKE_C_FLAGS_CHECKED "${CMAKE_C_FLAGS_DEBUG}" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_CHECKED "${CMAKE_CXX_FLAGS_DEBUG}" CACHE STRING "" FORCE) +set(CMAKE_EXE_LINKER_FLAGS_CHECKED "${CMAKE_EXE_LINKER_FLAGS_DEBUG}" CACHE STRING "" FORCE) +set(CMAKE_SHARED_LINKER_FLAGS_CHECKED "${CMAKE_SHARED_LINKER_FLAGS_DEBUG}" CACHE STRING "" FORCE) +set(CMAKE_STATIC_LINKER_FLAGS_CHECKED "${CMAKE_STATIC_LINKER_FLAGS_DEBUG}" CACHE STRING "" FORCE) + +# Platform name for output paths +if(WIN32) + set(XE_PLATFORM_NAME "Windows") +else() + set(XE_PLATFORM_NAME "Linux") +endif() + +# Output directories +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/${XE_PLATFORM_NAME}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/${XE_PLATFORM_NAME}") +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/obj/${XE_PLATFORM_NAME}") + +# Create scratch/ if needed +file(MAKE_DIRECTORY "${PROJECT_SOURCE_DIR}/scratch") + +# Include helpers +include(cmake/XeniaHelpers.cmake) + +# Global include directories (these apply to all targets via directory scope) +include_directories( + ${PROJECT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_SOURCE_DIR}/third_party +) + +# Global defines +add_compile_definitions( + VULKAN_HPP_NO_TO_STRING + IMGUI_DISABLE_DEFAULT_FONT + IMGUI_USE_STB_SPRINTF + USE_CPP17 # Tabulate +) + +# Static library define +add_compile_definitions(_LIB) + +# ============================================================================== +# Platform-specific global settings +# ============================================================================== + +if(MSVC) + # Global MSVC settings + add_compile_options( + /utf-8 # Build correctly on systems with non-Latin codepages + /wd4201 # Nameless struct/unions are ok + /arch:AVX # AVX vector extensions + /MP # Multi-processor compilation + ) + add_compile_definitions( + _CRT_NONSTDC_NO_DEPRECATE + _CRT_SECURE_NO_WARNINGS + WIN32 + _WIN64=1 + _AMD64=1 + UNICODE + _UNICODE + IMGUI_DISABLE_OBSOLETE_FUNCTIONS + ) + add_link_options( + /ignore:4006 # Ignores complaints about empty obj files + /ignore:4221 + ) + # Global Windows system libraries + link_libraries( + ntdll wsock32 ws2_32 xinput comctl32 shcore shlwapi dxguid bcrypt + ) + # Windows manifest for executables is handled per-target + + # --- Per-configuration MSVC flags --- + # Checked + string(APPEND CMAKE_C_FLAGS_CHECKED " /RTCsu /fsanitize=address") + string(APPEND CMAKE_CXX_FLAGS_CHECKED " /RTCsu /fsanitize=address") + string(APPEND CMAKE_EXE_LINKER_FLAGS_CHECKED " /INCREMENTAL:NO") + add_compile_definitions($<$:DEBUG>) + + # Debug: use release runtime (/MD) for heap performance, matching premake + string(REPLACE "/MDd" "/MD" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}") + string(REPLACE "/MDd" "/MD" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") + add_compile_definitions($<$:DEBUG>) + add_compile_definitions($<$:_NO_DEBUG_HEAP=1>) + + # Checked or Debug: full symbols + string(APPEND CMAKE_C_FLAGS_CHECKED " /Zi") + string(APPEND CMAKE_CXX_FLAGS_CHECKED " /Zi") + # Debug already has /Zi by default + + # Release + add_compile_definitions($<$:NDEBUG>) + add_compile_definitions($<$:_NO_DEBUG_HEAP=1>) + add_compile_options($<$:/Gw>) + add_compile_options($<$:/GS->) # NoBufferSecurityCheck + # Replace /Ob2 with /Ob3 in CMake's default Release flags + string(REPLACE "/Ob2" "/Ob3" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") + string(REPLACE "/Ob2" "/Ob3" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") + # Link-time optimization (whole program optimization) + add_compile_options($<$:/GL>) + add_link_options($<$:/LTCG>) + set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG") + +else() + # GCC/Clang (Linux) + add_compile_options(-mavx) + + # Disable specific warnings for C++ + add_compile_options( + $<$:-Wno-switch> + $<$:-Wno-attributes> + ) + + # Clang-specific C++ warnings + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + add_compile_options( + $<$:-Wno-deprecated-register> + $<$:-Wno-deprecated-volatile> + $<$:-Wno-deprecated-enum-enum-conversion> + ) + + # Check Clang version for newer warnings + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 20) + add_compile_options( + $<$:-Wno-deprecated-literal-operator> + $<$:-Wno-nontrivial-memcall> + ) + endif() + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 21) + add_compile_options( + $<$:-Wno-character-conversion> + ) + endif() + elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # GCC-specific + add_compile_options( + $<$:-Wno-unused-result> + $<$:-Wno-volatile> + $<$:-Wno-template-id-cdtor> + $<$:-Wno-return-type> + $<$:-Wno-deprecated> + -fpermissive # HACK + ) + add_link_options(-fpermissive) + # GCC: do not use -Werror + endif() + + # C-specific warnings + add_compile_options( + $<$:-Wno-implicit-function-declaration> + ) + + # GTK3 via pkg-config + find_package(PkgConfig REQUIRED) + pkg_check_modules(GTK3 REQUIRED gtk+-x11-3.0) + include_directories(${GTK3_INCLUDE_DIRS}) + link_directories(${GTK3_LIBRARY_DIRS}) + add_compile_options(${GTK3_CFLAGS_OTHER}) + + # Global Linux libraries + link_libraries(stdc++fs dl lz4 pthread rt) + + # Link groups for executables (resolves circular deps) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--start-group") + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -Wl,--end-group") + + # --- Per-configuration Linux flags --- + # Checked + string(APPEND CMAKE_C_FLAGS_CHECKED " -fsanitize=address") + string(APPEND CMAKE_CXX_FLAGS_CHECKED " -fsanitize=address") + string(APPEND CMAKE_EXE_LINKER_FLAGS_CHECKED " -fsanitize=address") + add_compile_definitions( + $<$:DEBUG> + $<$:_GLIBCXX_DEBUG> + ) + + # Debug + add_compile_definitions( + $<$:DEBUG> + $<$:_NO_DEBUG_HEAP=1> + $<$:_GLIBCXX_DEBUG> + ) + + # Release + add_compile_definitions( + $<$:NDEBUG> + $<$:_NO_DEBUG_HEAP=1> + ) + add_compile_options($<$:-O3>) + # Link-time optimization (use lld to avoid system linker LTO plugin version mismatch) + add_compile_options($<$:-flto=thin>) + add_link_options($<$:-flto=thin>) + add_link_options($<$:-fuse-ld=lld>) + # No symbols in release on non-Windows + string(REPLACE "-g" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") + string(REPLACE "-g" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") +endif() + +# ============================================================================== +# Subdirectories +# ============================================================================== + +# Third-party libraries first (no -Werror applied to these) +add_subdirectory(third_party) + +# Xenia source modules (xe_target_defaults applies -Werror) +add_subdirectory(src/xenia) + +# Set default startup project for Visual Studio +set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT xenia-app) diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 000000000..090e39003 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,55 @@ +{ + "version": 3, + "cmakeMinimumRequired": { + "major": 3, + "minor": 20, + "patch": 0 + }, + "configurePresets": [ + { + "name": "default", + "displayName": "Ninja Multi-Config", + "generator": "Ninja Multi-Config", + "binaryDir": "${sourceDir}/build" + }, + { + "name": "vs", + "displayName": "Visual Studio 2022", + "generator": "Visual Studio 17 2022", + "architecture": "x64", + "binaryDir": "${sourceDir}/build" + } + ], + "buildPresets": [ + { + "name": "debug", + "configurePreset": "default", + "configuration": "Debug" + }, + { + "name": "release", + "configurePreset": "default", + "configuration": "Release" + }, + { + "name": "checked", + "configurePreset": "default", + "configuration": "Checked" + }, + { + "name": "vs-debug", + "configurePreset": "vs", + "configuration": "Debug" + }, + { + "name": "vs-release", + "configurePreset": "vs", + "configuration": "Release" + }, + { + "name": "vs-checked", + "configurePreset": "vs", + "configuration": "Checked" + } + ] +} diff --git a/cmake/XeniaHelpers.cmake b/cmake/XeniaHelpers.cmake new file mode 100644 index 000000000..4390ee68b --- /dev/null +++ b/cmake/XeniaHelpers.cmake @@ -0,0 +1,160 @@ +# XeniaHelpers.cmake - Helper functions for the Xenia build system. +# Replaces tools/build/scripts/*.lua + +include(CMakeParseArguments) + +# Platform suffix lists for file filtering +set(XE_PLATFORM_SUFFIXES + _win _linux _posix _gnulinux _x11 _gtk _android _mac +) + +# xe_platform_sources(target base_path [RECURSIVE]) +# +# Adds platform-filtered source files to a target. +# Globs *.h, *.cc, *.cpp, *.c, *.inc from base_path. +# Excludes all platform suffixes, then adds back the ones matching the current platform. +# Always excludes *_main.cc and *_test.cc. +function(xe_platform_sources target base_path) + set(options RECURSIVE) + cmake_parse_arguments(ARG "${options}" "" "" ${ARGN}) + + if(ARG_RECURSIVE) + set(glob_mode GLOB_RECURSE) + set(pattern "**") + else() + set(glob_mode GLOB) + set(pattern "*") + endif() + + # Glob all source files + file(${glob_mode} _all_sources "${base_path}/*.h" + "${base_path}/*.cc" + "${base_path}/*.cpp" + "${base_path}/*.c" + "${base_path}/*.inc" + ) + + # Build exclude patterns + set(_excluded) + foreach(src ${_all_sources}) + get_filename_component(_name_we ${src} NAME_WE) + # Exclude *_main.cc, *_test.cc, and *_demo.cc + if(_name_we MATCHES "_main$" OR _name_we MATCHES "_test$" OR _name_we MATCHES "_demo$") + list(APPEND _excluded ${src}) + continue() + endif() + # Exclude all platform suffixes + foreach(suffix ${XE_PLATFORM_SUFFIXES}) + if(_name_we MATCHES "${suffix}$") + list(APPEND _excluded ${src}) + break() + endif() + endforeach() + endforeach() + + # Remove excluded files + set(_sources ${_all_sources}) + if(_excluded) + list(REMOVE_ITEM _sources ${_excluded}) + endif() + + # Add back platform-specific files + if(WIN32) + file(${glob_mode} _plat_sources "${base_path}/*_win.h" + "${base_path}/*_win.cc" + ) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + file(${glob_mode} _plat_sources "${base_path}/*_posix.h" + "${base_path}/*_posix.cc" + "${base_path}/*_linux.h" + "${base_path}/*_linux.cc" + "${base_path}/*_gnulinux.h" + "${base_path}/*_gnulinux.cc" + "${base_path}/*_x11.h" + "${base_path}/*_x11.cc" + "${base_path}/*_gtk.h" + "${base_path}/*_gtk.cc" + ) + endif() + + list(APPEND _sources ${_plat_sources}) + target_sources(${target} PRIVATE ${_sources}) +endfunction() + +# xe_target_defaults(target) +# +# Applies xenia-specific compile settings to a target: +# - Fatal warnings (-Werror / /WX) +# - Common include directories +function(xe_target_defaults target) + target_include_directories(${target} PRIVATE + ${PROJECT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_SOURCE_DIR}/third_party + ) + if(MSVC) + target_compile_options(${target} PRIVATE /WX) + elseif(NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # GCC is too noisy for -Werror; only apply to Clang + target_compile_options(${target} PRIVATE -Werror) + endif() +endfunction() + +# xe_force_c(files...) +# +# Forces the given source files to compile as C. +function(xe_force_c) + set_source_files_properties(${ARGN} PROPERTIES LANGUAGE C) +endfunction() + +# xe_force_cxx(files...) +# +# Forces the given source files to compile as C++. +function(xe_force_cxx) + set_source_files_properties(${ARGN} PROPERTIES LANGUAGE CXX) +endfunction() + +# xe_test_suite(name base_path LINKS lib1 lib2 ...) +# +# Creates a Catch2 test executable from *_test.cc files in base_path. +function(xe_test_suite name base_path) + cmake_parse_arguments(ARG "" "" "LINKS" ${ARGN}) + + file(GLOB _test_sources CONFIGURE_DEPENDS "${base_path}/*_test.cc") + + if(NOT _test_sources) + return() + endif() + + add_executable(${name} + ${_test_sources} + ${PROJECT_SOURCE_DIR}/tools/build/src/test_suite_main.cc + ) + + # Add platform-specific console app main + if(WIN32) + target_sources(${name} PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_win.cc) + else() + target_sources(${name} PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_posix.cc) + endif() + + target_compile_definitions(${name} PRIVATE + "XE_TEST_SUITE_NAME=\"${name}\"" + ) + target_include_directories(${name} PRIVATE + ${PROJECT_SOURCE_DIR}/tools/build + ${PROJECT_SOURCE_DIR}/tools/build/src + ${PROJECT_SOURCE_DIR}/tools/build/third_party/catch/include + ) + if(ARG_LINKS) + target_link_libraries(${name} PRIVATE ${ARG_LINKS}) + endif() + xe_target_defaults(${name}) + + if(MSVC) + # Disable Edit and Continue - breaks Catch2 __LINE__ usage + target_compile_options(${name} PRIVATE /Zi) + endif() +endfunction() diff --git a/premake5.lua b/premake5.lua deleted file mode 100644 index 0062425fb..000000000 --- a/premake5.lua +++ /dev/null @@ -1,384 +0,0 @@ -include("tools/build") -if _ACTION == "export-compile-commands" then - require("third_party/premake-export-compile-commands/export-compile-commands") -end -if os.istarget("android") then - require("third_party/premake-androidndk/androidndk") -end -if _ACTION == "cmake" then - require("third_party/premake-cmake/cmake") -end - -location(build_root) -targetdir(build_bin) -objdir(build_obj) - --- Define variables for enabling specific submodules --- Todo: Add changing from xb command -enableTests = false -enableMiscSubprojects = false - --- Define an ARCH variable --- Only use this to enable architecture-specific functionality. -if os.istarget("linux") then - ARCH = os.outputof("uname -p") -else - ARCH = "unknown" -end - -includedirs({ - ".", - "src", - "third_party", -}) - -defines({ - "VULKAN_HPP_NO_TO_STRING", - "IMGUI_DISABLE_DEFAULT_FONT", - --"IMGUI_USE_WCHAR32", - "IMGUI_USE_STB_SPRINTF", - --"IMGUI_ENABLE_FREETYPE", - "USE_CPP17", -- Tabulate -}) - -cdialect("C17") -cppdialect("C++20") -symbols("On") -fatalwarnings("All") - --- TODO(DrChat): Find a way to disable this on other architectures. -if ARCH ~= "ppc64" then - filter("architecture:x86_64") - vectorextensions("AVX") - filter({}) -end - -filter("kind:StaticLib") - defines({ - "_LIB", - }) - -filter("configurations:Checked") - runtime("Debug") - sanitize("Address") - flags("NoIncrementalLink") - editandcontinue("Off") - staticruntime("Off") - optimize("Off") - removedefines({ - "IMGUI_USE_STB_SPRINTF", - }) - defines({ - "DEBUG", - }) - -filter({"configurations:Checked", "platforms:Windows"}) -- "toolset:msc" - buildoptions({ - "/RTCsu", -- Full Run-Time Checks. - }) - -filter({"configurations:Checked or Debug", "platforms:Linux"}) - defines({ - "_GLIBCXX_DEBUG", -- libstdc++ debug mode - }) - -filter({"configurations:Checked or Debug", "platforms:Windows"}) -- "toolset:msc" - symbols("Full") - -filter("configurations:Debug") - runtime("Release") - optimize("Off") - defines({ - "DEBUG", - "_NO_DEBUG_HEAP=1", - }) - -filter("configurations:Release") - runtime("Release") - defines({ - "NDEBUG", - "_NO_DEBUG_HEAP=1", - }) - optimize("Speed") - flags({ - "NoBufferSecurityCheck" - }) - inlining("Auto") - editandcontinue("Off") - -- Not using floatingpoint("Fast") - NaN checks are used in some places - -- (though rarely), overall preferable to avoid any functional differences - -- between debug and release builds, and to have calculations involved in GPU - -- (especially anything that may affect vertex position invariance) and CPU - -- (such as constant propagation) emulation as predictable as possible, - -- including handling of specials since games make assumptions about them. - -filter({"configurations:Release", "platforms:not Windows"}) - symbols("Off") - -filter({"configurations:Release", "platforms:Windows"}) -- "toolset:msc" - linktimeoptimization("On") - buildoptions({ - "/Gw", - "/Ob3", --- "/Qpar", -- TODO: Test this. - }) - -filter("platforms:Linux") - system("linux") - toolset("clang") - --buildoptions({ - -- "-mlzcnt", -- (don't) Assume lzcnt is supported. - --}) - pkg_config.all("gtk+-x11-3.0") - links({ - "stdc++fs", - "dl", - "lz4", - "pthread", - "rt", - }) - -filter({"platforms:Linux", "kind:*App"}) - linkgroups("On") - -filter({"language:C++", "toolset:clang or gcc"}) -- "platforms:Linux" - disablewarnings({ - "switch", - "attributes", - }) - -filter({"language:C++", "toolset:gcc"}) -- "platforms:Linux" - disablewarnings({ - "unused-result", - "volatile", - "template-id-cdtor", - "return-type", - "deprecated", - }) - -filter("toolset:gcc") -- "platforms:Linux" - removefatalwarnings("All") -- HACK - if ARCH == "ppc64" then - buildoptions({ - "-m32", - "-mpowerpc64" - }) - linkoptions({ - "-m32", - "-mpowerpc64" - }) - else - buildoptions({ - "-fpermissive", -- HACK - }) - linkoptions({ - "-fpermissive", -- HACK - }) - end - -filter({"language:C++", "toolset:clang"}) -- "platforms:Linux" - disablewarnings({ - "deprecated-register", - "deprecated-volatile", - "deprecated-enum-enum-conversion", - }) -CLANG_BIN = os.getenv("CC") or _OPTIONS["cc"] or "clang" -if os.istarget("linux") and string.contains(CLANG_BIN, "clang") then - CLANG_VER = tonumber(string.match(os.outputof(CLANG_BIN.." --version"), "version (%d%d)")) - if CLANG_VER >= 20 then - filter({"language:C++", "toolset:clang"}) -- "platforms:Linux" - disablewarnings({ - "deprecated-literal-operator", -- Needed only for tabulate - "nontrivial-memcall", - }) - end - if CLANG_VER >= 21 then - filter({"language:C++", "toolset:clang"}) -- "platforms:Linux" - disablewarnings({ - "character-conversion", -- Needed for utfcpp third-party library - }) - end -end - -filter({"language:C", "toolset:clang or gcc"}) -- "platforms:Linux" - disablewarnings({ - "implicit-function-declaration", - }) - -if os.istarget("android") then - filter("platforms:Android-*") - system("android") - systemversion("24") - cppstl("c++") - staticruntime("On") - -- Hidden visibility is needed to prevent dynamic relocations in FFmpeg - -- AArch64 Neon libavcodec assembly with PIC (accesses extern lookup tables - -- using `adrp` and `add`, without the Global Object Table, expecting that all - -- FFmpeg symbols that aren't a part of the FFmpeg API are hidden by FFmpeg's - -- original build system) by resolving those relocations at link time instead. - visibility("Hidden") - links({ - "android", - "dl", - "log", - }) -end - -filter("platforms:Windows") - system("windows") - toolset("msc") - buildoptions({ - "/utf-8", -- 'build correctly on systems with non-Latin codepages'. - -- Disable warnings - "/wd4201", -- Nameless struct/unions are ok. - }) - flags({ - "MultiProcessorCompile", -- Multiprocessor compilation. - "NoMinimalRebuild", -- Required for /MP above. - }) - - defines({ - "_CRT_NONSTDC_NO_DEPRECATE", - "_CRT_SECURE_NO_WARNINGS", - "WIN32", - "_WIN64=1", - "_AMD64=1", - "IMGUI_DISABLE_OBSOLETE_FUNCTIONS", - }) - linkoptions({ - "/ignore:4006", -- Ignores complaints about empty obj files. - "/ignore:4221", - }) - links({ - "ntdll", - "wsock32", - "ws2_32", - "xinput", - "comctl32", - "shcore", - "shlwapi", - "dxguid", - "bcrypt", - }) - --- Embed the manifest for things like dependencies and DPI awareness. -filter({"platforms:Windows", "kind:ConsoleApp or WindowedApp"}) - files({ - "src/xenia/base/app_win32.manifest" - }) - --- Create scratch/ path -if not os.isdir("scratch") then - os.mkdir("scratch") -end - -workspace("xenia") - uuid("931ef4b0-6170-4f7a-aaf2-0fece7632747") - startproject("xenia-app") - if os.istarget("android") then - platforms({"Android-ARM64", "Android-x86_64"}) - filter("platforms:Android-ARM64") - architecture("ARM64") - filter("platforms:Android-x86_64") - architecture("x86_64") - filter({}) - else - architecture("x86_64") - if os.istarget("linux") then - platforms({"Linux"}) - elseif os.istarget("macosx") then - platforms({"Mac"}) - xcodebuildsettings({ - ["ARCHS"] = "x86_64" - }) - elseif os.istarget("windows") then - platforms({"Windows"}) - -- 10.0.15063.0: ID3D12GraphicsCommandList1::SetSamplePositions. - -- 10.0.19041.0: D3D12_HEAP_FLAG_CREATE_NOT_ZEROED. - -- 10.0.22000.0: DWMWA_WINDOW_CORNER_PREFERENCE. - systemversion("latest") - filter({}) - end - end - configurations({"Checked", "Debug", "Release"}) - - include("third_party/aes_128.lua") - include("third_party/capstone.lua") - include("third_party/dxbc.lua") - include("third_party/discord-rpc.lua") - include("third_party/cxxopts.lua") - include("third_party/tomlplusplus.lua") - include("third_party/ffmpeg-xenia/premake5.lua") - include("third_party/fmt.lua") - include("third_party/glslang-spirv.lua") - include("third_party/imgui.lua") - include("third_party/mspack.lua") - include("third_party/snappy.lua") - include("third_party/xxhash.lua") - include("third_party/zarchive.lua") - include("third_party/zstd.lua") - include("third_party/zlib-ng.lua") - include("third_party/pugixml.lua") - - if os.istarget("windows") then - include("third_party/libusb.lua") - end - - if not os.istarget("android") then - -- SDL2 requires sdl2-config, and as of November 2020 isn't high-quality on - -- Android yet, most importantly in game controllers - the keycode and axis - -- enums are being ruined during conversion to SDL2 enums resulting in only - -- one controller (Nvidia Shield) being supported, digital triggers are also - -- not supported; lifecycle management (especially surface loss) is also - -- complicated. - include("third_party/SDL2.lua") - end - - -- Disable treating warnings as fatal errors for all third party projects, as - -- well as other things relevant only to Xenia itself. - for _, prj in ipairs(premake.api.scope.current.solution.projects) do - project(prj.name) - removefiles({ - "src/xenia/base/app_win32.manifest" - }) - removefatalwarnings("All") - end - - include("src/xenia") - include("src/xenia/app") - include("src/xenia/app/discord") - include("src/xenia/apu") - include("src/xenia/apu/nop") - include("src/xenia/base") - include("src/xenia/cpu") - include("src/xenia/cpu/backend/x64") - include("src/xenia/debug/ui") - include("src/xenia/gpu") - include("src/xenia/gpu/null") - include("src/xenia/gpu/vulkan") - include("src/xenia/hid") - include("src/xenia/hid/nop") - include("src/xenia/hid/skylander") - include("src/xenia/kernel") - include("src/xenia/patcher") - include("src/xenia/ui") - include("src/xenia/ui/vulkan") - include("src/xenia/vfs") - - if not os.istarget("android") then - include("src/xenia/apu/sdl") - include("src/xenia/helper/sdl") - include("src/xenia/hid/sdl") - end - - if os.istarget("linux") then - include("src/xenia/apu/alsa") - end - - if os.istarget("windows") then - include("src/xenia/apu/xaudio2") - include("src/xenia/gpu/d3d12") - include("src/xenia/hid/winkey") - include("src/xenia/hid/xinput") - include("src/xenia/ui/d3d12") - end diff --git a/src/xenia/CMakeLists.txt b/src/xenia/CMakeLists.txt new file mode 100644 index 000000000..ad6c41a2f --- /dev/null +++ b/src/xenia/CMakeLists.txt @@ -0,0 +1,49 @@ +# src/xenia/CMakeLists.txt - Master file for all xenia modules. + +# xenia-core (this directory's own sources) +add_library(xenia-core STATIC) +file(GLOB _core_sources "${CMAKE_CURRENT_SOURCE_DIR}/*.h" + "${CMAKE_CURRENT_SOURCE_DIR}/*.cc" +) +target_sources(xenia-core PRIVATE ${_core_sources}) +target_link_libraries(xenia-core PUBLIC fmt xenia-base) +xe_target_defaults(xenia-core) + +# All subdirectories +add_subdirectory(base) +add_subdirectory(cpu) +add_subdirectory(cpu/backend/x64) +add_subdirectory(apu) +add_subdirectory(apu/nop) +add_subdirectory(gpu) +add_subdirectory(gpu/null) +add_subdirectory(gpu/vulkan) +add_subdirectory(hid) +add_subdirectory(hid/nop) +add_subdirectory(hid/skylander) +add_subdirectory(kernel) +add_subdirectory(patcher) +add_subdirectory(ui) +add_subdirectory(ui/vulkan) +add_subdirectory(vfs) +add_subdirectory(debug/ui) +add_subdirectory(app/discord) +add_subdirectory(app) + +# SDL-based modules (not Android) +add_subdirectory(apu/sdl) +add_subdirectory(helper/sdl) +add_subdirectory(hid/sdl) + +# Platform-conditional modules +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + add_subdirectory(apu/alsa) +endif() + +if(WIN32) + add_subdirectory(apu/xaudio2) + add_subdirectory(gpu/d3d12) + add_subdirectory(hid/winkey) + add_subdirectory(hid/xinput) + add_subdirectory(ui/d3d12) +endif() diff --git a/src/xenia/app/CMakeLists.txt b/src/xenia/app/CMakeLists.txt new file mode 100644 index 000000000..291a2a113 --- /dev/null +++ b/src/xenia/app/CMakeLists.txt @@ -0,0 +1,115 @@ +# src/xenia/app/CMakeLists.txt - Main xenia_canary executable. + +if(WIN32) + add_executable(xenia-app WIN32) +else() + add_executable(xenia-app) +endif() + +set_target_properties(xenia-app PROPERTIES OUTPUT_NAME "xenia_canary") + +# Main source +target_sources(xenia-app PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/xenia_main.cc +) + +# Other app sources (emulator_window, profile_dialogs, etc.) +xe_platform_sources(xenia-app ${CMAKE_CURRENT_SOURCE_DIR}) + +# Platform-specific entry points +if(WIN32) + target_sources(xenia-app PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/main_init_win.cc + ${PROJECT_SOURCE_DIR}/src/xenia/ui/windowed_app_main_win.cc + ${CMAKE_CURRENT_SOURCE_DIR}/main_resources.rc + ${PROJECT_SOURCE_DIR}/src/xenia/base/app_win32.manifest + ) + # main_init_win.cc needs SSE2 only (not AVX) + set_source_files_properties( + ${PROJECT_SOURCE_DIR}/src/xenia/base/main_init_win.cc + PROPERTIES COMPILE_OPTIONS "/arch:SSE2" + ) +else() + target_sources(xenia-app PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/main_init_posix.cc + ${PROJECT_SOURCE_DIR}/src/xenia/ui/windowed_app_main_posix.cc + ) + if(NOT MSVC) + set_source_files_properties( + ${PROJECT_SOURCE_DIR}/src/xenia/base/main_init_posix.cc + PROPERTIES COMPILE_OPTIONS "-msse2;-mno-avx" + ) + endif() +endif() + +target_compile_definitions(xenia-app PRIVATE + XBYAK_NO_OP_NAMES + XBYAK_ENABLE_OMITTED_OPERAND +) + +# Core libraries (all platforms) +target_link_libraries(xenia-app PRIVATE + xenia-apu + xenia-apu-nop + xenia-base + xenia-core + xenia-cpu + xenia-gpu + xenia-gpu-null + xenia-gpu-vulkan + xenia-hid + xenia-hid-nop + xenia-kernel + xenia-patcher + xenia-ui + xenia-ui-vulkan + xenia-vfs + # Third-party + aes_128 + capstone + fmt + dxbc + discord-rpc + glslang-spirv + imgui + libavcodec + libavutil + mspack + snappy + xxhash +) + +# Non-Android specific (always true for Windows/Linux) +target_link_libraries(xenia-app PRIVATE + xenia-app-discord + xenia-apu-sdl + xenia-debug-ui + xenia-helper-sdl + xenia-hid-sdl +) + +# x64 backend +if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") + target_link_libraries(xenia-app PRIVATE xenia-cpu-backend-x64) +endif() + +# Platform-specific libraries +if(WIN32) + target_link_libraries(xenia-app PRIVATE + xenia-apu-xaudio2 + xenia-gpu-d3d12 + xenia-hid-winkey + xenia-hid-xinput + xenia-ui-d3d12 + ) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_link_libraries(xenia-app PRIVATE + xenia-apu-alsa + X11 + xcb + X11-xcb + SDL2 + ) +endif() + +xe_target_defaults(xenia-app) diff --git a/src/xenia/app/discord/CMakeLists.txt b/src/xenia/app/discord/CMakeLists.txt new file mode 100644 index 000000000..5f7adb86b --- /dev/null +++ b/src/xenia/app/discord/CMakeLists.txt @@ -0,0 +1,9 @@ +add_library(xenia-app-discord STATIC + ${CMAKE_CURRENT_SOURCE_DIR}/discord_presence.cc + ${CMAKE_CURRENT_SOURCE_DIR}/discord_presence.h +) +target_include_directories(xenia-app-discord PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/discord-rpc/src +) +target_link_libraries(xenia-app-discord PUBLIC discord-rpc) +xe_target_defaults(xenia-app-discord) diff --git a/src/xenia/app/discord/premake5.lua b/src/xenia/app/discord/premake5.lua deleted file mode 100644 index 13e82b5f0..000000000 --- a/src/xenia/app/discord/premake5.lua +++ /dev/null @@ -1,18 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-app-discord") - uuid("d14c0885-22d2-40de-ab28-7b234ef2b949") - kind("StaticLib") - language("C++") - links({ - "discord-rpc" - }) - includedirs({ - project_root.."/third_party/discord-rpc/src" - }) - files({ - "discord_presence.cc", - "discord_presence.h" - }) diff --git a/src/xenia/app/premake5.lua b/src/xenia/app/premake5.lua deleted file mode 100644 index 2b75a4dd9..000000000 --- a/src/xenia/app/premake5.lua +++ /dev/null @@ -1,133 +0,0 @@ -project_root = "../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-app") - uuid("d7e98620-d007-4ad8-9dbd-b47c8853a17f") - language("C++") - links({ - "xenia-apu", - "xenia-apu-nop", - "xenia-base", - "xenia-core", - "xenia-cpu", - "xenia-gpu", - "xenia-gpu-null", - "xenia-gpu-vulkan", - "xenia-hid", - "xenia-hid-nop", - "xenia-kernel", - "xenia-patcher", - "xenia-ui", - "xenia-ui-vulkan", - "xenia-vfs", - }) - links({ - "aes_128", - "capstone", - "fmt", - "dxbc", - "discord-rpc", - "glslang-spirv", - "imgui", - "libavcodec", - "libavutil", - "mspack", - "snappy", - "xxhash", - }) - defines({ - "XBYAK_NO_OP_NAMES", - "XBYAK_ENABLE_OMITTED_OPERAND", - }) - local_platform_files() - files({ - "../base/main_init_"..platform_suffix..".cc", - "../ui/windowed_app_main_"..platform_suffix..".cc", - }) - - resincludedirs({ - project_root, - }) - - filter(SINGLE_LIBRARY_FILTER) - -- Unified library containing all apps as StaticLibs, not just the main - -- emulator windowed app. - kind("SharedLib") - if enableMiscSubprojects then - links({ - "xenia-gpu-vulkan-trace-viewer", - "xenia-hid-demo", - "xenia-ui-window-vulkan-demo", - }) - end - filter(NOT_SINGLE_LIBRARY_FILTER) - kind("WindowedApp") - - -- `targetname` is broken if building from Gradle, works only for toggling the - -- `lib` prefix, as Gradle uses LOCAL_MODULE_FILENAME, not a derivative of - -- LOCAL_MODULE, to specify the targets to build when executing ndk-build. - filter("platforms:not Android-*") - targetname("xenia_canary") - - filter("architecture:x86_64") - links({ - "xenia-cpu-backend-x64", - }) - - -- TODO(Triang3l): The emulator itself on Android. - filter("platforms:not Android-*") - files({ - "xenia_main.cc", - }) - - filter("platforms:Windows") - files({ - "main_resources.rc", - }) - - filter({"architecture:x86_64", "files:../base/main_init_"..platform_suffix..".cc"}) - vectorextensions("SSE2") -- Disable AVX for main_init_win.cc so our AVX check doesn't use AVX instructions. - - filter("platforms:not Android-*") - links({ - "xenia-app-discord", - "xenia-apu-sdl", - -- TODO(Triang3l): CPU debugger on Android. - "xenia-debug-ui", - "xenia-helper-sdl", - "xenia-hid-sdl", - }) - - filter("platforms:Linux") - links({ - "xenia-apu-alsa", - "X11", - "xcb", - "X11-xcb", - "SDL2", - }) - - filter("platforms:Windows") - links({ - "xenia-apu-xaudio2", - "xenia-gpu-d3d12", - "xenia-hid-winkey", - "xenia-hid-xinput", - "xenia-ui-d3d12", - }) - - if enableMiscSubprojects then - filter({"platforms:Windows", SINGLE_LIBRARY_FILTER}) - links({ - "xenia-gpu-d3d12-trace-viewer", - "xenia-ui-window-d3d12-demo", - }) - end - - filter("platforms:Windows") - -- Only create the .user file if it doesn't already exist. - local user_file = project_root.."/build/xenia-app.vcxproj.user" - if not os.isfile(user_file) then - debugdir(project_root) - end diff --git a/src/xenia/apu/CMakeLists.txt b/src/xenia/apu/CMakeLists.txt new file mode 100644 index 000000000..77eda88b9 --- /dev/null +++ b/src/xenia/apu/CMakeLists.txt @@ -0,0 +1,8 @@ +add_library(xenia-apu STATIC) +xe_platform_sources(xenia-apu ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(xenia-apu PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/FFmpeg + ${PROJECT_SOURCE_DIR}/third_party/ffmpeg-xenia +) +target_link_libraries(xenia-apu PUBLIC libavcodec libavutil libavformat xenia-base) +xe_target_defaults(xenia-apu) diff --git a/src/xenia/apu/alsa/CMakeLists.txt b/src/xenia/apu/alsa/CMakeLists.txt new file mode 100644 index 000000000..ee4662ed8 --- /dev/null +++ b/src/xenia/apu/alsa/CMakeLists.txt @@ -0,0 +1,7 @@ +add_library(xenia-apu-alsa STATIC) +xe_platform_sources(xenia-apu-alsa ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(xenia-apu-alsa PUBLIC xenia-apu xenia-base) +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_link_libraries(xenia-apu-alsa PRIVATE asound pthread) +endif() +xe_target_defaults(xenia-apu-alsa) diff --git a/src/xenia/apu/alsa/premake5.lua b/src/xenia/apu/alsa/premake5.lua deleted file mode 100644 index cad0cdc61..000000000 --- a/src/xenia/apu/alsa/premake5.lua +++ /dev/null @@ -1,18 +0,0 @@ -group("src") -project("xenia-apu-alsa") - uuid("8c2e1340-f847-4f9a-8b2e-5d8c1b7a8f9e") - kind("StaticLib") - language("C++") - links({ - "xenia-apu", - "xenia-base", - }) - defines({ - }) - local_platform_files() - - filter("platforms:Linux") - links({ - "asound", - "pthread", - }) diff --git a/src/xenia/apu/nop/CMakeLists.txt b/src/xenia/apu/nop/CMakeLists.txt new file mode 100644 index 000000000..febc15c28 --- /dev/null +++ b/src/xenia/apu/nop/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(xenia-apu-nop STATIC) +xe_platform_sources(xenia-apu-nop ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(xenia-apu-nop PUBLIC xenia-base xenia-apu) +xe_target_defaults(xenia-apu-nop) diff --git a/src/xenia/apu/nop/premake5.lua b/src/xenia/apu/nop/premake5.lua deleted file mode 100644 index 2b5435229..000000000 --- a/src/xenia/apu/nop/premake5.lua +++ /dev/null @@ -1,13 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-apu-nop") - uuid("f37dbf3a-d200-4cc0-83f0-f801b1bdd862") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "xenia-apu", - }) - local_platform_files() diff --git a/src/xenia/apu/premake5.lua b/src/xenia/apu/premake5.lua deleted file mode 100644 index 0768b19be..000000000 --- a/src/xenia/apu/premake5.lua +++ /dev/null @@ -1,19 +0,0 @@ -project_root = "../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-apu") - uuid("f4df01f0-50e4-4c67-8f54-61660696cc79") - kind("StaticLib") - language("C++") - links({ - "libavcodec", - "libavutil", - "libavformat", - "xenia-base", - }) - includedirs({ - project_root.."/third_party/FFmpeg", - project_root.."/third_party/ffmpeg-xenia", - }) - local_platform_files() diff --git a/src/xenia/apu/sdl/CMakeLists.txt b/src/xenia/apu/sdl/CMakeLists.txt new file mode 100644 index 000000000..3052fde6c --- /dev/null +++ b/src/xenia/apu/sdl/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(xenia-apu-sdl STATIC) +xe_platform_sources(xenia-apu-sdl ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(xenia-apu-sdl PUBLIC xenia-apu xenia-base xenia-helper-sdl SDL2) +xe_target_defaults(xenia-apu-sdl) diff --git a/src/xenia/apu/sdl/premake5.lua b/src/xenia/apu/sdl/premake5.lua deleted file mode 100644 index 77bf00131..000000000 --- a/src/xenia/apu/sdl/premake5.lua +++ /dev/null @@ -1,16 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-apu-sdl") - uuid("153b4e8b-813a-40e6-9366-4b51abc73c45") - kind("StaticLib") - language("C++") - links({ - "xenia-apu", - "xenia-base", - "xenia-helper-sdl", - "SDL2", - }) - local_platform_files() - sdl2_include() diff --git a/src/xenia/apu/xaudio2/CMakeLists.txt b/src/xenia/apu/xaudio2/CMakeLists.txt new file mode 100644 index 000000000..c598ccc5a --- /dev/null +++ b/src/xenia/apu/xaudio2/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(xenia-apu-xaudio2 STATIC) +xe_platform_sources(xenia-apu-xaudio2 ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(xenia-apu-xaudio2 PUBLIC xenia-base xenia-apu) +xe_target_defaults(xenia-apu-xaudio2) diff --git a/src/xenia/apu/xaudio2/premake5.lua b/src/xenia/apu/xaudio2/premake5.lua deleted file mode 100644 index 8444d05b1..000000000 --- a/src/xenia/apu/xaudio2/premake5.lua +++ /dev/null @@ -1,13 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-apu-xaudio2") - uuid("7a54a497-24d9-4c0e-a013-8507a04231f9") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "xenia-apu", - }) - local_platform_files() diff --git a/src/xenia/base/CMakeLists.txt b/src/xenia/base/CMakeLists.txt new file mode 100644 index 000000000..0443d112b --- /dev/null +++ b/src/xenia/base/CMakeLists.txt @@ -0,0 +1,17 @@ +add_library(xenia-base STATIC) +xe_platform_sources(xenia-base ${CMAKE_CURRENT_SOURCE_DIR}) +# Exclude console_app_main and main_init files +file(GLOB _base_exclude "${CMAKE_CURRENT_SOURCE_DIR}/console_app_main_*.cc" + "${CMAKE_CURRENT_SOURCE_DIR}/main_init_*.cc" +) +get_target_property(_base_srcs xenia-base SOURCES) +if(_base_exclude AND _base_srcs) + list(REMOVE_ITEM _base_srcs ${_base_exclude}) + set_target_properties(xenia-base PROPERTIES SOURCES "${_base_srcs}") +endif() +target_link_libraries(xenia-base PUBLIC fmt) +xe_target_defaults(xenia-base) + +if(XENIA_BUILD_TESTS) + add_subdirectory(testing) +endif() diff --git a/src/xenia/base/premake5.lua b/src/xenia/base/premake5.lua deleted file mode 100644 index a4ed45935..000000000 --- a/src/xenia/base/premake5.lua +++ /dev/null @@ -1,22 +0,0 @@ -project_root = "../../.." -include(project_root.."/tools/build") - -project("xenia-base") - uuid("aeadaf22-2b20-4941-b05f-a802d5679c11") - kind("StaticLib") - language("C++") - links({ - "fmt", - }) - local_platform_files() - removefiles({ - "console_app_main_*.cc", - "main_init_*.cc", - }) - files({ - "debug_visualizers.natvis", - }) - -if enableTests then - include("testing") -end diff --git a/src/xenia/base/testing/CMakeLists.txt b/src/xenia/base/testing/CMakeLists.txt new file mode 100644 index 000000000..674b6d148 --- /dev/null +++ b/src/xenia/base/testing/CMakeLists.txt @@ -0,0 +1,3 @@ +xe_test_suite(xenia-base-tests ${CMAKE_CURRENT_SOURCE_DIR} + LINKS fmt xenia-base +) diff --git a/src/xenia/base/testing/premake5.lua b/src/xenia/base/testing/premake5.lua deleted file mode 100644 index 74d39aa65..000000000 --- a/src/xenia/base/testing/premake5.lua +++ /dev/null @@ -1,9 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -test_suite("xenia-base-tests", project_root, ".", { - links = { - "fmt", - "xenia-base", - }, -}) diff --git a/src/xenia/cpu/CMakeLists.txt b/src/xenia/cpu/CMakeLists.txt new file mode 100644 index 000000000..6637bdad9 --- /dev/null +++ b/src/xenia/cpu/CMakeLists.txt @@ -0,0 +1,17 @@ +add_library(xenia-cpu STATIC) +xe_platform_sources(xenia-cpu ${CMAKE_CURRENT_SOURCE_DIR}) +xe_platform_sources(xenia-cpu ${CMAKE_CURRENT_SOURCE_DIR}/backend) +xe_platform_sources(xenia-cpu ${CMAKE_CURRENT_SOURCE_DIR}/compiler) +xe_platform_sources(xenia-cpu ${CMAKE_CURRENT_SOURCE_DIR}/compiler/passes) +xe_platform_sources(xenia-cpu ${CMAKE_CURRENT_SOURCE_DIR}/hir) +xe_platform_sources(xenia-cpu ${CMAKE_CURRENT_SOURCE_DIR}/ppc) +target_include_directories(xenia-cpu PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/llvm/include +) +target_link_libraries(xenia-cpu PUBLIC xenia-base mspack) +xe_target_defaults(xenia-cpu) + +if(XENIA_BUILD_TESTS) + add_subdirectory(testing) + add_subdirectory(ppc/testing) +endif() diff --git a/src/xenia/cpu/backend/x64/CMakeLists.txt b/src/xenia/cpu/backend/x64/CMakeLists.txt new file mode 100644 index 000000000..b7ec45902 --- /dev/null +++ b/src/xenia/cpu/backend/x64/CMakeLists.txt @@ -0,0 +1,18 @@ +add_library(xenia-cpu-backend-x64 STATIC) +xe_platform_sources(xenia-cpu-backend-x64 ${CMAKE_CURRENT_SOURCE_DIR}) +target_compile_definitions(xenia-cpu-backend-x64 PRIVATE + CAPSTONE_X86_ATT_DISABLE + CAPSTONE_HAS_X86 + CAPSTONE_USE_SYS_DYN_MEM + XBYAK_NO_OP_NAMES + XBYAK_ENABLE_OMITTED_OPERAND +) +# Optional VTune support +if(EXISTS "${PROJECT_SOURCE_DIR}/third_party/vtune") + target_compile_definitions(xenia-cpu-backend-x64 PRIVATE ENABLE_VTUNE=1) +endif() +target_include_directories(xenia-cpu-backend-x64 PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/capstone/include +) +target_link_libraries(xenia-cpu-backend-x64 PUBLIC capstone fmt xenia-base xenia-cpu) +xe_target_defaults(xenia-cpu-backend-x64) diff --git a/src/xenia/cpu/backend/x64/premake5.lua b/src/xenia/cpu/backend/x64/premake5.lua deleted file mode 100644 index ac9c7f80d..000000000 --- a/src/xenia/cpu/backend/x64/premake5.lua +++ /dev/null @@ -1,30 +0,0 @@ -project_root = "../../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-cpu-backend-x64") - uuid("7d8d5dce-4696-4197-952a-09506f725afe") - kind("StaticLib") - language("C++") - links({ - "capstone", - "fmt", - "xenia-base", - "xenia-cpu", - }) - defines({ - "CAPSTONE_X86_ATT_DISABLE", - "CAPSTONE_HAS_X86", - "CAPSTONE_USE_SYS_DYN_MEM", - "XBYAK_NO_OP_NAMES", - "XBYAK_ENABLE_OMITTED_OPERAND", - }) - -- Enable VTune, if it's installed. - if os.isdir(project_root.."/third_party/vtune") then - defines { "ENABLE_VTUNE=1" } - end - - includedirs({ - project_root.."/third_party/capstone/include", - }) - local_platform_files() diff --git a/src/xenia/cpu/ppc/testing/CMakeLists.txt b/src/xenia/cpu/ppc/testing/CMakeLists.txt new file mode 100644 index 000000000..97a726f0f --- /dev/null +++ b/src/xenia/cpu/ppc/testing/CMakeLists.txt @@ -0,0 +1,37 @@ +if(NOT XENIA_BUILD_TESTS) + return() +endif() + +add_executable(xenia-cpu-ppc-tests + ${CMAKE_CURRENT_SOURCE_DIR}/ppc_testing_main.cc +) + +# Add platform-specific console app main +if(WIN32) + target_sources(xenia-cpu-ppc-tests PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_win.cc) +else() + target_sources(xenia-cpu-ppc-tests PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_posix.cc) +endif() + +# Add .s files but exclude from build (they're test data) +file(GLOB _ppc_asm "${CMAKE_CURRENT_SOURCE_DIR}/*.s") +target_sources(xenia-cpu-ppc-tests PRIVATE ${_ppc_asm}) +set_source_files_properties(${_ppc_asm} PROPERTIES HEADER_FILE_ONLY TRUE) + +target_link_libraries(xenia-cpu-ppc-tests PRIVATE + xenia-apu xenia-apu-nop + xenia-base xenia-core xenia-cpu + xenia-gpu xenia-gpu-null + xenia-hid xenia-hid-nop + xenia-kernel xenia-patcher xenia-ui xenia-vfs + capstone fmt imgui mspack +) + +# x64 backend +if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") + target_link_libraries(xenia-cpu-ppc-tests PRIVATE xenia-cpu-backend-x64) +endif() + +xe_target_defaults(xenia-cpu-ppc-tests) diff --git a/src/xenia/cpu/ppc/testing/premake5.lua b/src/xenia/cpu/ppc/testing/premake5.lua deleted file mode 100644 index 6db094847..000000000 --- a/src/xenia/cpu/ppc/testing/premake5.lua +++ /dev/null @@ -1,85 +0,0 @@ -project_root = "../../../../.." -include(project_root.."/tools/build") - -group("tests") -project("xenia-cpu-ppc-tests") - uuid("2a57d5ac-4024-4c49-9cd3-aa3a603c2ef8") - kind("ConsoleApp") - language("C++") - links({ - "xenia-apu", - "xenia-apu-nop", - "xenia-base", - "xenia-core", - "xenia-cpu", - "xenia-gpu", - "xenia-gpu-null", - "xenia-hid", - "xenia-hid-nop", - "xenia-kernel", - "xenia-patcher", - "xenia-ui", - "xenia-vfs", - }) - links({ - "capstone", - "fmt", - "imgui", - "mspack", - }) - files({ - "ppc_testing_main.cc", - "../../../base/console_app_main_"..platform_suffix..".cc", - }) - files({ - "*.s", - }) - filter("files:*.s") - flags({ - "ExcludeFromBuild", - }) - filter("architecture:x86_64") - links({ - "xenia-cpu-backend-x64", - }) - filter("platforms:Windows") - debugdir(project_root) - debugargs({ - "2>&1", - "1>scratch/stdout-testing.txt", - }) - - filter({}) - -if ARCH == "ppc64" or ARCH == "powerpc64" then - -project("xenia-cpu-ppc-nativetests") - uuid("E381E8EE-65CD-4D5E-9223-D9C03B2CE78C") - kind("ConsoleApp") - language("C++") - links({ - "fmt", - "xenia-base", - }) - files({ - "ppc_testing_native_main.cc", - "../../../base/console_app_main_"..platform_suffix..".cc", - }) - files({ - "instr_*.s", - "seq_*.s", - }) - filter("files:instr_*.s", "files:seq_*.s") - flags({ - "ExcludeFromBuild", - }) - filter({}) - buildoptions({ - "-Wa,-mregnames", -- Tell GAS to accept register names. - }) - - files({ - "ppc_testing_native_thunks.s", - }) - -end diff --git a/src/xenia/cpu/premake5.lua b/src/xenia/cpu/premake5.lua deleted file mode 100644 index 6c0240c9d..000000000 --- a/src/xenia/cpu/premake5.lua +++ /dev/null @@ -1,27 +0,0 @@ -project_root = "../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-cpu") - uuid("0109c91e-5a04-41ab-9168-0d5187d11298") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "mspack", - }) - - includedirs({ - project_root.."/third_party/llvm/include", - }) - local_platform_files() - local_platform_files("backend") - local_platform_files("compiler") - local_platform_files("compiler/passes") - local_platform_files("hir") - local_platform_files("ppc") - -if enableTests then - include("testing") - include("ppc/testing") -end diff --git a/src/xenia/cpu/testing/CMakeLists.txt b/src/xenia/cpu/testing/CMakeLists.txt new file mode 100644 index 000000000..d6ebd280e --- /dev/null +++ b/src/xenia/cpu/testing/CMakeLists.txt @@ -0,0 +1,7 @@ +xe_test_suite(xenia-cpu-tests ${CMAKE_CURRENT_SOURCE_DIR} + LINKS + capstone fmt imgui + xenia-base xenia-core xenia-cpu xenia-gpu + xenia-hid-skylander xenia-kernel xenia-ui xenia-patcher + $<$:xenia-cpu-backend-x64> +) diff --git a/src/xenia/cpu/testing/premake5.lua b/src/xenia/cpu/testing/premake5.lua deleted file mode 100644 index 23c0c6fb9..000000000 --- a/src/xenia/cpu/testing/premake5.lua +++ /dev/null @@ -1,28 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -test_suite("xenia-cpu-tests", project_root, ".", { - links = { - "capstone", - "fmt", - "imgui", - "xenia-base", - "xenia-core", - "xenia-cpu", - "xenia-gpu", - "xenia-hid-skylander", - - -- TODO(benvanik): cut these dependencies? - "xenia-kernel", - "xenia-ui", -- needed by xenia-base - "xenia-patcher", - }, - filtered_links = { - { - filter = 'architecture:x86_64', - links = { - "xenia-cpu-backend-x64", - }, - } - }, -}) diff --git a/src/xenia/debug/ui/CMakeLists.txt b/src/xenia/debug/ui/CMakeLists.txt new file mode 100644 index 000000000..8038cae65 --- /dev/null +++ b/src/xenia/debug/ui/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(xenia-debug-ui STATIC) +xe_platform_sources(xenia-debug-ui ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(xenia-debug-ui PUBLIC imgui xenia-base xenia-cpu xenia-ui) +xe_target_defaults(xenia-debug-ui) diff --git a/src/xenia/debug/ui/premake5.lua b/src/xenia/debug/ui/premake5.lua deleted file mode 100644 index 19d48cc2f..000000000 --- a/src/xenia/debug/ui/premake5.lua +++ /dev/null @@ -1,15 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-debug-ui") - uuid("9193a274-f4c2-4746-bd85-93fcfc5c3e38") - kind("StaticLib") - language("C++") - links({ - "imgui", - "xenia-base", - "xenia-cpu", - "xenia-ui", - }) - local_platform_files() diff --git a/src/xenia/gpu/CMakeLists.txt b/src/xenia/gpu/CMakeLists.txt new file mode 100644 index 000000000..65dba58e0 --- /dev/null +++ b/src/xenia/gpu/CMakeLists.txt @@ -0,0 +1,30 @@ +add_library(xenia-gpu STATIC) +xe_platform_sources(xenia-gpu ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(xenia-gpu PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/Vulkan-Headers/include + ${PROJECT_SOURCE_DIR}/third_party/glslang +) +target_link_libraries(xenia-gpu PUBLIC dxbc fmt glslang-spirv snappy xxhash xenia-base xenia-ui) +xe_target_defaults(xenia-gpu) + +if(XENIA_BUILD_MISC) + # Shader compiler tool + add_executable(xenia-gpu-shader-compiler + ${CMAKE_CURRENT_SOURCE_DIR}/shader_compiler_main.cc + ) + if(WIN32) + target_sources(xenia-gpu-shader-compiler PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_win.cc) + else() + target_sources(xenia-gpu-shader-compiler PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_posix.cc) + endif() + target_include_directories(xenia-gpu-shader-compiler PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/Vulkan-Headers/include + ${PROJECT_SOURCE_DIR}/third_party/glslang + ) + target_link_libraries(xenia-gpu-shader-compiler PRIVATE + dxbc fmt glslang-spirv snappy xenia-base xenia-gpu xenia-ui xenia-ui-vulkan + ) + xe_target_defaults(xenia-gpu-shader-compiler) +endif() diff --git a/src/xenia/gpu/d3d12/CMakeLists.txt b/src/xenia/gpu/d3d12/CMakeLists.txt new file mode 100644 index 000000000..cbe9fdfba --- /dev/null +++ b/src/xenia/gpu/d3d12/CMakeLists.txt @@ -0,0 +1,44 @@ +add_library(xenia-gpu-d3d12 STATIC) +xe_platform_sources(xenia-gpu-d3d12 ${CMAKE_CURRENT_SOURCE_DIR}) +# Include shader bytecode headers +file(GLOB _d3d12_shader_headers "${CMAKE_CURRENT_SOURCE_DIR}/../shaders/bytecode/d3d12_5_1/*.h" +) +target_sources(xenia-gpu-d3d12 PRIVATE ${_d3d12_shader_headers}) +target_link_libraries(xenia-gpu-d3d12 PUBLIC + fmt xxhash xenia-base xenia-gpu xenia-ui xenia-ui-d3d12 +) +xe_target_defaults(xenia-gpu-d3d12) + +if(XENIA_BUILD_MISC) + # D3D12 trace viewer + add_executable(xenia-gpu-d3d12-trace-viewer WIN32 + ${CMAKE_CURRENT_SOURCE_DIR}/d3d12_trace_viewer_main.cc + ${PROJECT_SOURCE_DIR}/src/xenia/ui/windowed_app_main_win.cc + ) + target_link_libraries(xenia-gpu-d3d12-trace-viewer PRIVATE + xenia-apu xenia-apu-nop xenia-base xenia-core xenia-cpu + xenia-gpu xenia-gpu-d3d12 xenia-hid xenia-hid-nop xenia-hid-skylander + xenia-kernel xenia-patcher xenia-ui xenia-ui-d3d12 xenia-vfs + aes_128 capstone dxbc fmt imgui libavcodec libavutil mspack snappy xxhash + ) + if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") + target_link_libraries(xenia-gpu-d3d12-trace-viewer PRIVATE xenia-cpu-backend-x64) + endif() + xe_target_defaults(xenia-gpu-d3d12-trace-viewer) + + # D3D12 trace dump + add_executable(xenia-gpu-d3d12-trace-dump + ${CMAKE_CURRENT_SOURCE_DIR}/d3d12_trace_dump_main.cc + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_win.cc + ) + target_link_libraries(xenia-gpu-d3d12-trace-dump PRIVATE + xenia-apu xenia-apu-nop xenia-base xenia-core xenia-cpu + xenia-gpu xenia-gpu-d3d12 xenia-hid xenia-hid-nop xenia-hid-skylander + xenia-kernel xenia-patcher xenia-ui xenia-ui-d3d12 xenia-vfs + aes_128 capstone dxbc fmt imgui libavcodec libavutil mspack snappy xxhash + ) + if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") + target_link_libraries(xenia-gpu-d3d12-trace-dump PRIVATE xenia-cpu-backend-x64) + endif() + xe_target_defaults(xenia-gpu-d3d12-trace-dump) +endif() diff --git a/src/xenia/gpu/d3d12/premake5.lua b/src/xenia/gpu/d3d12/premake5.lua deleted file mode 100644 index c79ceec02..000000000 --- a/src/xenia/gpu/d3d12/premake5.lua +++ /dev/null @@ -1,128 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-gpu-d3d12") - uuid("c057eae4-e7bb-4113-9a69-1fe07b735c49") - kind("StaticLib") - language("C++") - links({ - "fmt", - "xenia-base", - "xenia-gpu", - "xenia-ui", - "xenia-ui-d3d12", - "xxhash", - }) - local_platform_files() - files({ - "../shaders/bytecode/d3d12_5_1/*.h", - }) - -if enableMiscSubprojects then - group("src") - project("xenia-gpu-d3d12-trace-viewer") - uuid("7b5b9fcb-7bf1-43ff-a774-d4c41c8706be") - single_library_windowed_app_kind() - language("C++") - links({ - "xenia-apu", - "xenia-apu-nop", - "xenia-base", - "xenia-core", - "xenia-cpu", - "xenia-gpu", - "xenia-gpu-d3d12", - "xenia-hid", - "xenia-hid-nop", - "xenia-hid-skylander", - "xenia-kernel", - "xenia-patcher", - "xenia-ui", - "xenia-ui-d3d12", - "xenia-vfs", - }) - links({ - "aes_128", - "capstone", - "dxbc", - "fmt", - "imgui", - "libavcodec", - "libavutil", - "mspack", - "snappy", - "xxhash", - }) - files({ - "d3d12_trace_viewer_main.cc", - "../../ui/windowed_app_main_"..platform_suffix..".cc", - }) - -- Only create the .user file if it doesn't already exist. - local user_file = project_root.."/build/xenia-gpu-d3d12-trace-viewer.vcxproj.user" - if not os.isfile(user_file) then - debugdir(project_root) - debugargs({ - "2>&1", - "1>scratch/stdout-trace-viewer.txt", - }) - end - - filter("architecture:x86_64") - links({ - "xenia-cpu-backend-x64", - }) - - group("src") - project("xenia-gpu-d3d12-trace-dump") - uuid("686b859c-0046-44c4-a02c-41fc3fb75698") - kind("ConsoleApp") - language("C++") - links({ - "xenia-apu", - "xenia-apu-nop", - "xenia-base", - "xenia-core", - "xenia-cpu", - "xenia-gpu", - "xenia-gpu-d3d12", - "xenia-hid", - "xenia-hid-nop", - "xenia-hid-skylander", - "xenia-kernel", - "xenia-ui", - "xenia-ui-d3d12", - "xenia-vfs", - "xenia-patcher", - }) - links({ - "aes_128", - "capstone", - "dxbc", - "fmt", - "imgui", - "libavcodec", - "libavutil", - "mspack", - "snappy", - "xxhash", - }) - files({ - "d3d12_trace_dump_main.cc", - "../../base/console_app_main_"..platform_suffix..".cc", - }) - -- Only create the .user file if it doesn't already exist. - local user_file = project_root.."/build/xenia-gpu-d3d12-trace-dump.vcxproj.user" - if not os.isfile(user_file) then - debugdir(project_root) - debugargs({ - "2>&1", - "1>scratch/stdout-trace-dump.txt", - }) - end - - filter("architecture:x86_64") - links({ - "xenia-cpu-backend-x64", - }) -end \ No newline at end of file diff --git a/src/xenia/gpu/null/CMakeLists.txt b/src/xenia/gpu/null/CMakeLists.txt new file mode 100644 index 000000000..d295b4ce9 --- /dev/null +++ b/src/xenia/gpu/null/CMakeLists.txt @@ -0,0 +1,7 @@ +add_library(xenia-gpu-null STATIC) +xe_platform_sources(xenia-gpu-null ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(xenia-gpu-null PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/Vulkan-Headers/include +) +target_link_libraries(xenia-gpu-null PUBLIC xenia-base xenia-gpu xenia-ui xenia-ui-vulkan xxhash) +xe_target_defaults(xenia-gpu-null) diff --git a/src/xenia/gpu/null/premake5.lua b/src/xenia/gpu/null/premake5.lua deleted file mode 100644 index 3f920eab0..000000000 --- a/src/xenia/gpu/null/premake5.lua +++ /dev/null @@ -1,19 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-gpu-null") - uuid("42FCA0B3-4C20-4532-95E9-07D297013BE4") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "xenia-gpu", - "xenia-ui", - "xenia-ui-vulkan", - "xxhash", - }) - includedirs({ - project_root.."/third_party/Vulkan-Headers/include", - }) - local_platform_files() diff --git a/src/xenia/gpu/premake5.lua b/src/xenia/gpu/premake5.lua deleted file mode 100644 index ecf070220..000000000 --- a/src/xenia/gpu/premake5.lua +++ /dev/null @@ -1,60 +0,0 @@ -project_root = "../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-gpu") - uuid("0e8d3370-e4b1-4b05-a2e8-39ebbcdf9b17") - kind("StaticLib") - language("C++") - links({ - "dxbc", - "fmt", - "glslang-spirv", - "snappy", - "xenia-base", - "xenia-ui", - "xxhash", - }) - includedirs({ - project_root.."/third_party/Vulkan-Headers/include", - project_root.."/third_party/glslang", -- For glslang SPIRV headers - }) - local_platform_files() - -if enableMiscSubprojects then - group("src") - project("xenia-gpu-shader-compiler") - uuid("ad76d3e4-4c62-439b-a0f6-f83fcf0e83c5") - kind("ConsoleApp") - language("C++") - links({ - "dxbc", - "fmt", - "glslang-spirv", - "snappy", - "xenia-base", - "xenia-gpu", - "xenia-ui", - "xenia-ui-vulkan", - }) - includedirs({ - project_root.."/third_party/Vulkan-Headers/include", - project_root.."/third_party/glslang", -- For glslang SPIRV headers - }) - files({ - "shader_compiler_main.cc", - "../base/console_app_main_"..platform_suffix..".cc", - }) - - filter("platforms:Windows") - -- Only create the .user file if it doesn't already exist. - local user_file = project_root.."/build/xenia-gpu-shader-compiler.vcxproj.user" - if not os.isfile(user_file) then - debugdir(project_root) - debugargs({ - "2>&1", - "1>scratch/stdout-shader-compiler.txt", - }) - end - filter({}) -end diff --git a/src/xenia/gpu/vulkan/CMakeLists.txt b/src/xenia/gpu/vulkan/CMakeLists.txt new file mode 100644 index 000000000..22c8b57f6 --- /dev/null +++ b/src/xenia/gpu/vulkan/CMakeLists.txt @@ -0,0 +1,71 @@ +add_library(xenia-gpu-vulkan STATIC) +xe_platform_sources(xenia-gpu-vulkan ${CMAKE_CURRENT_SOURCE_DIR}) +# Include shader bytecode headers +file(GLOB _vk_shader_headers "${CMAKE_CURRENT_SOURCE_DIR}/../shaders/bytecode/vulkan_spirv/*.h" +) +target_sources(xenia-gpu-vulkan PRIVATE ${_vk_shader_headers}) +target_include_directories(xenia-gpu-vulkan PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/Vulkan-Headers/include + ${PROJECT_SOURCE_DIR}/third_party/glslang +) +target_link_libraries(xenia-gpu-vulkan PUBLIC + fmt glslang-spirv xxhash xenia-base xenia-gpu xenia-ui xenia-ui-vulkan +) +xe_target_defaults(xenia-gpu-vulkan) + +if(XENIA_BUILD_MISC) + # Vulkan trace viewer + add_executable(xenia-gpu-vulkan-trace-viewer + ${CMAKE_CURRENT_SOURCE_DIR}/vulkan_trace_viewer_main.cc + ) + if(WIN32) + target_sources(xenia-gpu-vulkan-trace-viewer PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/ui/windowed_app_main_win.cc) + else() + target_sources(xenia-gpu-vulkan-trace-viewer PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/ui/windowed_app_main_posix.cc) + endif() + target_include_directories(xenia-gpu-vulkan-trace-viewer PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/Vulkan-Headers/include + ${PROJECT_SOURCE_DIR}/third_party/glslang + ) + target_link_libraries(xenia-gpu-vulkan-trace-viewer PRIVATE + xenia-apu xenia-apu-nop xenia-base xenia-core xenia-cpu + xenia-gpu xenia-gpu-vulkan xenia-hid xenia-hid-nop xenia-hid-skylander + xenia-kernel xenia-patcher xenia-ui xenia-ui-vulkan xenia-vfs + aes_128 capstone fmt glslang-spirv imgui libavcodec libavutil mspack snappy xxhash + ) + if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") + target_link_libraries(xenia-gpu-vulkan-trace-viewer PRIVATE xenia-cpu-backend-x64) + endif() + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_link_libraries(xenia-gpu-vulkan-trace-viewer PRIVATE X11 xcb X11-xcb) + endif() + xe_target_defaults(xenia-gpu-vulkan-trace-viewer) + + # Vulkan trace dump + add_executable(xenia-gpu-vulkan-trace-dump + ${CMAKE_CURRENT_SOURCE_DIR}/vulkan_trace_dump_main.cc + ) + if(WIN32) + target_sources(xenia-gpu-vulkan-trace-dump PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_win.cc) + else() + target_sources(xenia-gpu-vulkan-trace-dump PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_posix.cc) + endif() + target_include_directories(xenia-gpu-vulkan-trace-dump PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/Vulkan-Headers/include + ${PROJECT_SOURCE_DIR}/third_party/glslang + ) + target_link_libraries(xenia-gpu-vulkan-trace-dump PRIVATE + xenia-apu xenia-apu-nop xenia-base xenia-core xenia-cpu + xenia-gpu xenia-gpu-vulkan xenia-hid xenia-hid-nop xenia-hid-skylander + xenia-kernel xenia-patcher xenia-ui xenia-ui-vulkan xenia-vfs + aes_128 capstone fmt glslang-spirv imgui libavcodec libavutil mspack snappy xxhash + ) + if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") + target_link_libraries(xenia-gpu-vulkan-trace-dump PRIVATE xenia-cpu-backend-x64) + endif() + xe_target_defaults(xenia-gpu-vulkan-trace-dump) +endif() diff --git a/src/xenia/gpu/vulkan/premake5.lua b/src/xenia/gpu/vulkan/premake5.lua deleted file mode 100644 index 5e4a4dcbb..000000000 --- a/src/xenia/gpu/vulkan/premake5.lua +++ /dev/null @@ -1,159 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-gpu-vulkan") - uuid("717590b4-f579-4162-8f23-0624e87d6cca") - kind("StaticLib") - language("C++") - links({ - "fmt", - "glslang-spirv", - "xenia-base", - "xenia-gpu", - "xenia-ui", - "xenia-ui-vulkan", - "xxhash", - }) - includedirs({ - project_root.."/third_party/Vulkan-Headers/include", - project_root.."/third_party/glslang", -- For glslang SPIRV headers - }) - local_platform_files() - files({ - "../shaders/bytecode/vulkan_spirv/*.h", - }) - -if enableMiscSubprojects then - group("src") - project("xenia-gpu-vulkan-trace-viewer") - uuid("86a1dddc-a26a-4885-8c55-cf745225d93e") - single_library_windowed_app_kind() - language("C++") - links({ - "xenia-apu", - "xenia-apu-nop", - "xenia-base", - "xenia-core", - "xenia-cpu", - "xenia-gpu", - "xenia-gpu-vulkan", - "xenia-hid", - "xenia-hid-nop", - "xenia-hid-skylander", - "xenia-kernel", - "xenia-patcher", - "xenia-ui", - "xenia-ui-vulkan", - "xenia-vfs", - }) - links({ - "aes_128", - "capstone", - "fmt", - "glslang-spirv", - "imgui", - "libavcodec", - "libavutil", - "mspack", - "snappy", - "xxhash", - }) - includedirs({ - project_root.."/third_party/Vulkan-Headers/include", - project_root.."/third_party/glslang", -- For glslang SPIRV headers - }) - files({ - "vulkan_trace_viewer_main.cc", - "../../ui/windowed_app_main_"..platform_suffix..".cc", - }) - - filter("architecture:x86_64") - links({ - "xenia-cpu-backend-x64", - }) - - filter("platforms:Linux") - links({ - "X11", - "xcb", - "X11-xcb", - }) - - filter("platforms:Windows") - -- Only create the .user file if it doesn't already exist. - local user_file = project_root.."/build/xenia-gpu-vulkan-trace-viewer.vcxproj.user" - if not os.isfile(user_file) then - debugdir(project_root) - debugargs({ - "2>&1", - "1>scratch/stdout-trace-viewer.txt", - }) - end - - group("src") - project("xenia-gpu-vulkan-trace-dump") - uuid("0dd0dd1c-b321-494d-ab9a-6c062f0c65cc") - kind("ConsoleApp") - language("C++") - links({ - "xenia-apu", - "xenia-apu-nop", - "xenia-base", - "xenia-core", - "xenia-cpu", - "xenia-gpu", - "xenia-gpu-vulkan", - "xenia-hid", - "xenia-hid-nop", - "xenia-hid-skylander", - "xenia-kernel", - "xenia-ui", - "xenia-ui-vulkan", - "xenia-vfs", - "xenia-patcher", - }) - links({ - "aes_128", - "capstone", - "fmt", - "glslang-spirv", - "imgui", - "libavcodec", - "libavutil", - "mspack", - "snappy", - "xxhash", - }) - includedirs({ - project_root.."/third_party/Vulkan-Headers/include", - project_root.."/third_party/glslang", -- For glslang SPIRV headers - }) - files({ - "vulkan_trace_dump_main.cc", - "../../base/console_app_main_"..platform_suffix..".cc", - }) - - filter("architecture:x86_64") - links({ - "xenia-cpu-backend-x64", - }) - - filter("platforms:Linux") - links({ - "X11", - "xcb", - "X11-xcb", - }) - - filter("platforms:Windows") - -- Only create the .user file if it doesn't already exist. - local user_file = project_root.."/build/xenia-gpu-vulkan-trace-dump.vcxproj.user" - if not os.isfile(user_file) then - debugdir(project_root) - debugargs({ - "2>&1", - "1>scratch/stdout-trace-dump.txt", - }) - end -end diff --git a/src/xenia/helper/sdl/CMakeLists.txt b/src/xenia/helper/sdl/CMakeLists.txt new file mode 100644 index 000000000..e072735c9 --- /dev/null +++ b/src/xenia/helper/sdl/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(xenia-helper-sdl STATIC) +xe_platform_sources(xenia-helper-sdl ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(xenia-helper-sdl PUBLIC SDL2) +xe_target_defaults(xenia-helper-sdl) diff --git a/src/xenia/helper/sdl/premake5.lua b/src/xenia/helper/sdl/premake5.lua deleted file mode 100644 index 26058f713..000000000 --- a/src/xenia/helper/sdl/premake5.lua +++ /dev/null @@ -1,13 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-helper-sdl") - uuid("84b00ad3-fba3-4561-96c9-1f9993b14c9c") - kind("StaticLib") - language("C++") - links({ - "SDL2", - }) - local_platform_files() - sdl2_include() diff --git a/src/xenia/hid/CMakeLists.txt b/src/xenia/hid/CMakeLists.txt new file mode 100644 index 000000000..8bbb1ee56 --- /dev/null +++ b/src/xenia/hid/CMakeLists.txt @@ -0,0 +1,11 @@ +add_library(xenia-hid STATIC) +xe_platform_sources(xenia-hid ${CMAKE_CURRENT_SOURCE_DIR}) +# Exclude demo files +file(GLOB _hid_demo "${CMAKE_CURRENT_SOURCE_DIR}/*_demo.cc") +get_target_property(_hid_srcs xenia-hid SOURCES) +if(_hid_demo AND _hid_srcs) + list(REMOVE_ITEM _hid_srcs ${_hid_demo}) + set_target_properties(xenia-hid PROPERTIES SOURCES "${_hid_srcs}") +endif() +target_link_libraries(xenia-hid PUBLIC xenia-base xenia-hid-skylander) +xe_target_defaults(xenia-hid) diff --git a/src/xenia/hid/nop/CMakeLists.txt b/src/xenia/hid/nop/CMakeLists.txt new file mode 100644 index 000000000..dd8985665 --- /dev/null +++ b/src/xenia/hid/nop/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(xenia-hid-nop STATIC) +xe_platform_sources(xenia-hid-nop ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(xenia-hid-nop PUBLIC xenia-base xenia-hid) +xe_target_defaults(xenia-hid-nop) diff --git a/src/xenia/hid/nop/premake5.lua b/src/xenia/hid/nop/premake5.lua deleted file mode 100644 index 4b83e2573..000000000 --- a/src/xenia/hid/nop/premake5.lua +++ /dev/null @@ -1,13 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-hid-nop") - uuid("887b6f26-b0c1-43c1-a013-a37e7b9634fd") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "xenia-hid", - }) - local_platform_files() diff --git a/src/xenia/hid/premake5.lua b/src/xenia/hid/premake5.lua deleted file mode 100644 index dabe3402a..000000000 --- a/src/xenia/hid/premake5.lua +++ /dev/null @@ -1,16 +0,0 @@ -project_root = "../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-hid") - uuid("88a4ef38-c550-430f-8c22-8ded4e4ef601") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "xenia-hid-skylander", - }) - local_platform_files() - removefiles({ - "*_demo.cc", - }) diff --git a/src/xenia/hid/sdl/CMakeLists.txt b/src/xenia/hid/sdl/CMakeLists.txt new file mode 100644 index 000000000..7e639d821 --- /dev/null +++ b/src/xenia/hid/sdl/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(xenia-hid-sdl STATIC) +xe_platform_sources(xenia-hid-sdl ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(xenia-hid-sdl PUBLIC xenia-base xenia-hid xenia-ui SDL2) +xe_target_defaults(xenia-hid-sdl) diff --git a/src/xenia/hid/sdl/premake5.lua b/src/xenia/hid/sdl/premake5.lua deleted file mode 100644 index 15bcf4fca..000000000 --- a/src/xenia/hid/sdl/premake5.lua +++ /dev/null @@ -1,16 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-hid-sdl") - uuid("44f5b9a1-00f8-4825-acf1-5c93f26eba9b") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "xenia-hid", - "xenia-ui", - "SDL2", - }) - local_platform_files() - sdl2_include() diff --git a/src/xenia/hid/skylander/CMakeLists.txt b/src/xenia/hid/skylander/CMakeLists.txt new file mode 100644 index 000000000..8ae07a842 --- /dev/null +++ b/src/xenia/hid/skylander/CMakeLists.txt @@ -0,0 +1,14 @@ +add_library(xenia-hid-skylander STATIC + ${CMAKE_CURRENT_SOURCE_DIR}/skylander_portal.h + ${CMAKE_CURRENT_SOURCE_DIR}/skylander_portal.cc + ${CMAKE_CURRENT_SOURCE_DIR}/skylander_emulated.h + ${CMAKE_CURRENT_SOURCE_DIR}/skylander_emulated.cc +) +if(WIN32) + target_sources(xenia-hid-skylander PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/skylander_hardware.h + ${CMAKE_CURRENT_SOURCE_DIR}/skylander_hardware.cc + ) + target_link_libraries(xenia-hid-skylander PUBLIC libusb) +endif() +xe_target_defaults(xenia-hid-skylander) diff --git a/src/xenia/hid/skylander/premake5.lua b/src/xenia/hid/skylander/premake5.lua deleted file mode 100644 index a55c4c7c3..000000000 --- a/src/xenia/hid/skylander/premake5.lua +++ /dev/null @@ -1,23 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-hid-skylander") - uuid("ddc114da-a279-4868-8b20-53108599bd78") - kind("StaticLib") - language("C++") - files({ - "skylander_portal.h", - "skylander_portal.cc", - "skylander_emulated.h", - "skylander_emulated.cc" - }) - - filter({"platforms:Windows"}) - links({ - "libusb", - }) - files({ - "skylander_hardware.h", - "skylander_hardware.cc" - }) diff --git a/src/xenia/hid/winkey/CMakeLists.txt b/src/xenia/hid/winkey/CMakeLists.txt new file mode 100644 index 000000000..d48a1d7c7 --- /dev/null +++ b/src/xenia/hid/winkey/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(xenia-hid-winkey STATIC) +xe_platform_sources(xenia-hid-winkey ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(xenia-hid-winkey PUBLIC xenia-base xenia-hid xenia-ui) +xe_target_defaults(xenia-hid-winkey) diff --git a/src/xenia/hid/winkey/premake5.lua b/src/xenia/hid/winkey/premake5.lua deleted file mode 100644 index 819bc8f97..000000000 --- a/src/xenia/hid/winkey/premake5.lua +++ /dev/null @@ -1,14 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-hid-winkey") - uuid("fd16e19a-6219-4ab7-b95a-7c78523c50c3") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "xenia-hid", - "xenia-ui", - }) - local_platform_files() diff --git a/src/xenia/hid/xinput/CMakeLists.txt b/src/xenia/hid/xinput/CMakeLists.txt new file mode 100644 index 000000000..3386b8985 --- /dev/null +++ b/src/xenia/hid/xinput/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(xenia-hid-xinput STATIC) +xe_platform_sources(xenia-hid-xinput ${CMAKE_CURRENT_SOURCE_DIR}) +target_link_libraries(xenia-hid-xinput PUBLIC xenia-base xenia-hid) +xe_target_defaults(xenia-hid-xinput) diff --git a/src/xenia/hid/xinput/premake5.lua b/src/xenia/hid/xinput/premake5.lua deleted file mode 100644 index d50332af9..000000000 --- a/src/xenia/hid/xinput/premake5.lua +++ /dev/null @@ -1,13 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-hid-xinput") - uuid("3d49e251-07a7-40ae-9bc6-aae984c85568") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "xenia-hid", - }) - local_platform_files() diff --git a/src/xenia/kernel/CMakeLists.txt b/src/xenia/kernel/CMakeLists.txt new file mode 100644 index 000000000..766ec05e1 --- /dev/null +++ b/src/xenia/kernel/CMakeLists.txt @@ -0,0 +1,23 @@ +add_library(xenia-kernel STATIC) +xe_platform_sources(xenia-kernel ${CMAKE_CURRENT_SOURCE_DIR} RECURSIVE) +target_compile_definitions(xenia-kernel PRIVATE + X86_FEATURES + X86_HAVE_XSAVE_INTRIN + X86_SSSE3 + X86_SSE42 + WITH_GZFILEOP +) +if(WIN32) + target_compile_definitions(xenia-kernel PRIVATE + X86_SSE2 + X86_AVX2 + X86_AVX512 + X86_AVX512VNNI + X86_PCLMULQDQ_CRC + X86_VPCLMULQDQ_CRC + ) +endif() +target_link_libraries(xenia-kernel PUBLIC + aes_128 fmt zlib-ng pugixml xenia-apu xenia-base xenia-cpu xenia-hid xenia-vfs +) +xe_target_defaults(xenia-kernel) diff --git a/src/xenia/kernel/premake5.lua b/src/xenia/kernel/premake5.lua deleted file mode 100644 index f478c9f22..000000000 --- a/src/xenia/kernel/premake5.lua +++ /dev/null @@ -1,40 +0,0 @@ -project_root = "../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-kernel") - uuid("ae185c4a-1c4f-4503-9892-328e549e871a") - kind("StaticLib") - language("C++") - links({ - "aes_128", - "fmt", - "zlib-ng", - "pugixml", - "xenia-apu", - "xenia-base", - "xenia-cpu", - "xenia-hid", - "xenia-vfs", - }) - defines({ - "X86_FEATURES", - "X86_HAVE_XSAVE_INTRIN", - "X86_SSSE3", - "X86_SSE42", - "WITH_GZFILEOP", - }) - if os.istarget("windows") then - defines({ - "X86_SSE2", - "X86_AVX2", - "X86_AVX512", - "X86_AVX512VNNI", - "X86_PCLMULQDQ_CRC", - "X86_VPCLMULQDQ_CRC", - }) - end - recursive_platform_files() - files({ - "debug_visualizers.natvis", - }) diff --git a/src/xenia/patcher/CMakeLists.txt b/src/xenia/patcher/CMakeLists.txt new file mode 100644 index 000000000..078a6624a --- /dev/null +++ b/src/xenia/patcher/CMakeLists.txt @@ -0,0 +1,4 @@ +add_library(xenia-patcher STATIC) +xe_platform_sources(xenia-patcher ${CMAKE_CURRENT_SOURCE_DIR} RECURSIVE) +target_link_libraries(xenia-patcher PUBLIC xenia-base) +xe_target_defaults(xenia-patcher) diff --git a/src/xenia/patcher/premake5.lua b/src/xenia/patcher/premake5.lua deleted file mode 100644 index c41265f0b..000000000 --- a/src/xenia/patcher/premake5.lua +++ /dev/null @@ -1,12 +0,0 @@ -project_root = "../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-patcher") - uuid("e1c75f76-9e7b-48f6-b17e-dbd20f7a1592") - kind("StaticLib") - language("C++") - links({ - "xenia-base" - }) - recursive_platform_files() diff --git a/src/xenia/premake5.lua b/src/xenia/premake5.lua deleted file mode 100644 index 98846361e..000000000 --- a/src/xenia/premake5.lua +++ /dev/null @@ -1,16 +0,0 @@ -project_root = "../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-core") - uuid("970f7892-f19a-4bf5-8795-478c51757bec") - kind("StaticLib") - language("C++") - links({ - "fmt", - "xenia-base", - }) - files({ - "*.h", - "*.cc", - }) diff --git a/src/xenia/ui/CMakeLists.txt b/src/xenia/ui/CMakeLists.txt new file mode 100644 index 000000000..fc0d69f85 --- /dev/null +++ b/src/xenia/ui/CMakeLists.txt @@ -0,0 +1,18 @@ +add_library(xenia-ui STATIC) +xe_platform_sources(xenia-ui ${CMAKE_CURRENT_SOURCE_DIR}) +# Exclude demo and windowed_app_main files +file(GLOB _ui_exclude "${CMAKE_CURRENT_SOURCE_DIR}/*_demo.cc" + "${CMAKE_CURRENT_SOURCE_DIR}/windowed_app_main_*.cc" +) +get_target_property(_ui_srcs xenia-ui SOURCES) +if(_ui_exclude AND _ui_srcs) + list(REMOVE_ITEM _ui_srcs ${_ui_exclude}) + set_target_properties(xenia-ui PROPERTIES SOURCES "${_ui_srcs}") +endif() +target_link_libraries(xenia-ui PUBLIC xenia-base) +if(WIN32) + target_link_libraries(xenia-ui PRIVATE dwmapi dxgi winmm) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_link_libraries(xenia-ui PRIVATE xcb X11 X11-xcb fontconfig ${GTK3_LIBRARIES}) +endif() +xe_target_defaults(xenia-ui) diff --git a/src/xenia/ui/d3d12/CMakeLists.txt b/src/xenia/ui/d3d12/CMakeLists.txt new file mode 100644 index 000000000..d214c403a --- /dev/null +++ b/src/xenia/ui/d3d12/CMakeLists.txt @@ -0,0 +1,21 @@ +add_library(xenia-ui-d3d12 STATIC) +xe_platform_sources(xenia-ui-d3d12 ${CMAKE_CURRENT_SOURCE_DIR}) +# Include shader bytecode headers +file(GLOB _d3d12_ui_shader_headers "${CMAKE_CURRENT_SOURCE_DIR}/../shaders/bytecode/d3d12_5_1/*.h" +) +target_sources(xenia-ui-d3d12 PRIVATE ${_d3d12_ui_shader_headers}) +target_link_libraries(xenia-ui-d3d12 PUBLIC xenia-base xenia-ui) +xe_target_defaults(xenia-ui-d3d12) + +if(XENIA_BUILD_MISC) + # D3D12 window demo + add_executable(xenia-ui-window-d3d12-demo WIN32 + ${CMAKE_CURRENT_SOURCE_DIR}/../window_demo.cc + ${CMAKE_CURRENT_SOURCE_DIR}/d3d12_window_demo.cc + ${PROJECT_SOURCE_DIR}/src/xenia/ui/windowed_app_main_win.cc + ) + target_link_libraries(xenia-ui-window-d3d12-demo PRIVATE + fmt imgui xenia-base xenia-ui xenia-ui-d3d12 + ) + xe_target_defaults(xenia-ui-window-d3d12-demo) +endif() diff --git a/src/xenia/ui/d3d12/premake5.lua b/src/xenia/ui/d3d12/premake5.lua deleted file mode 100644 index fdbdf73bf..000000000 --- a/src/xenia/ui/d3d12/premake5.lua +++ /dev/null @@ -1,39 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-ui-d3d12") - uuid("f93dc1a8-600f-43e7-b0fc-ae3eefbe836b") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "xenia-ui", - }) - local_platform_files() - files({ - "../shaders/bytecode/d3d12_5_1/*.h", - }) - -if enableMiscSubprojects then - group("demos") - project("xenia-ui-window-d3d12-demo") - uuid("3b9686a7-0f04-4e17-8b00-aeb78ae1107c") - single_library_windowed_app_kind() - language("C++") - links({ - "fmt", - "imgui", - "xenia-base", - "xenia-ui", - "xenia-ui-d3d12", - }) - files({ - "../window_demo.cc", - "d3d12_window_demo.cc", - project_root.."/src/xenia/ui/windowed_app_main_"..platform_suffix..".cc", - }) - resincludedirs({ - project_root, - }) -end \ No newline at end of file diff --git a/src/xenia/ui/premake5.lua b/src/xenia/ui/premake5.lua deleted file mode 100644 index 6380b65cc..000000000 --- a/src/xenia/ui/premake5.lua +++ /dev/null @@ -1,36 +0,0 @@ -project_root = "../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-ui") - uuid("d0407c25-b0ea-40dc-846c-82c46fbd9fa2") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - }) - local_platform_files() - removefiles({ - "*_demo.cc", - "windowed_app_main_*.cc", - }) - if os.istarget("android") then - filter("platforms:Android-*") - -- Exports JNI functions. - wholelib("On") - end - - filter("platforms:Windows") - links({ - "dwmapi", - "dxgi", - "winmm", - }) - - filter("platforms:Linux") - links({ - "xcb", - "X11", - "X11-xcb", - "fontconfig" - }) diff --git a/src/xenia/ui/vulkan/CMakeLists.txt b/src/xenia/ui/vulkan/CMakeLists.txt new file mode 100644 index 000000000..b6af414bb --- /dev/null +++ b/src/xenia/ui/vulkan/CMakeLists.txt @@ -0,0 +1,40 @@ +add_library(xenia-ui-vulkan STATIC) +xe_platform_sources(xenia-ui-vulkan ${CMAKE_CURRENT_SOURCE_DIR}) +xe_platform_sources(xenia-ui-vulkan ${CMAKE_CURRENT_SOURCE_DIR}/functions) +# Include shader bytecode headers +file(GLOB _vk_ui_shader_headers "${CMAKE_CURRENT_SOURCE_DIR}/../shaders/bytecode/vulkan_spirv/*.h" +) +target_sources(xenia-ui-vulkan PRIVATE ${_vk_ui_shader_headers}) +target_include_directories(xenia-ui-vulkan PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/Vulkan-Headers/include + ${PROJECT_SOURCE_DIR}/third_party/glslang +) +target_link_libraries(xenia-ui-vulkan PUBLIC xenia-base xenia-ui) +xe_target_defaults(xenia-ui-vulkan) + +if(XENIA_BUILD_MISC) + # Vulkan window demo + add_executable(xenia-ui-window-vulkan-demo) + if(WIN32) + set_target_properties(xenia-ui-window-vulkan-demo PROPERTIES WIN32_EXECUTABLE TRUE) + target_sources(xenia-ui-window-vulkan-demo PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/ui/windowed_app_main_win.cc) + else() + target_sources(xenia-ui-window-vulkan-demo PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/ui/windowed_app_main_posix.cc) + endif() + target_sources(xenia-ui-window-vulkan-demo PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/../window_demo.cc + ${CMAKE_CURRENT_SOURCE_DIR}/vulkan_window_demo.cc + ) + target_include_directories(xenia-ui-window-vulkan-demo PRIVATE + ${PROJECT_SOURCE_DIR}/third_party/Vulkan-Headers/include + ) + target_link_libraries(xenia-ui-window-vulkan-demo PRIVATE + fmt imgui xenia-base xenia-ui xenia-ui-vulkan + ) + if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_link_libraries(xenia-ui-window-vulkan-demo PRIVATE X11 xcb X11-xcb) + endif() + xe_target_defaults(xenia-ui-window-vulkan-demo) +endif() diff --git a/src/xenia/ui/vulkan/premake5.lua b/src/xenia/ui/vulkan/premake5.lua deleted file mode 100644 index 9c528e3fa..000000000 --- a/src/xenia/ui/vulkan/premake5.lua +++ /dev/null @@ -1,54 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-ui-vulkan") - uuid("4933d81e-1c2c-4d5d-b104-3c0eb9dc2f00") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "xenia-ui", - }) - includedirs({ - project_root.."/third_party/Vulkan-Headers/include", - project_root.."/third_party/glslang", -- For glslang SPIRV headers - }) - local_platform_files() - local_platform_files("functions") - files({ - "../shaders/bytecode/vulkan_spirv/*.h", - }) - -if enableMiscSubprojects then - group("demos") - project("xenia-ui-window-vulkan-demo") - uuid("97598f13-3177-454c-8e58-c59e2b6ede27") - single_library_windowed_app_kind() - language("C++") - links({ - "fmt", - "imgui", - "xenia-base", - "xenia-ui", - "xenia-ui-vulkan", - }) - includedirs({ - project_root.."/third_party/Vulkan-Headers/include", - }) - files({ - "../window_demo.cc", - "vulkan_window_demo.cc", - project_root.."/src/xenia/ui/windowed_app_main_"..platform_suffix..".cc", - }) - resincludedirs({ - project_root, - }) - - filter("platforms:Linux") - links({ - "X11", - "xcb", - "X11-xcb", - }) -end \ No newline at end of file diff --git a/src/xenia/vfs/CMakeLists.txt b/src/xenia/vfs/CMakeLists.txt new file mode 100644 index 000000000..6fb0ee6fb --- /dev/null +++ b/src/xenia/vfs/CMakeLists.txt @@ -0,0 +1,31 @@ +add_library(xenia-vfs STATIC) +xe_platform_sources(xenia-vfs ${CMAKE_CURRENT_SOURCE_DIR} RECURSIVE) +# Exclude vfs_dump.cc +file(GLOB _vfs_dump "${CMAKE_CURRENT_SOURCE_DIR}/vfs_dump.cc") +get_target_property(_vfs_srcs xenia-vfs SOURCES) +if(_vfs_dump AND _vfs_srcs) + list(REMOVE_ITEM _vfs_srcs ${_vfs_dump}) + set_target_properties(xenia-vfs PROPERTIES SOURCES "${_vfs_srcs}") +endif() +target_link_libraries(xenia-vfs PUBLIC xenia-base zstd zarchive) +xe_target_defaults(xenia-vfs) + +if(XENIA_BUILD_MISC) + # VFS dump tool + add_executable(xenia-vfs-dump + ${CMAKE_CURRENT_SOURCE_DIR}/vfs_dump.cc + ) + if(WIN32) + target_sources(xenia-vfs-dump PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_win.cc) + else() + target_sources(xenia-vfs-dump PRIVATE + ${PROJECT_SOURCE_DIR}/src/xenia/base/console_app_main_posix.cc) + endif() + target_link_libraries(xenia-vfs-dump PRIVATE fmt xenia-base xenia-vfs) + xe_target_defaults(xenia-vfs-dump) +endif() + +if(XENIA_BUILD_TESTS) + add_subdirectory(testing) +endif() diff --git a/src/xenia/vfs/premake5.lua b/src/xenia/vfs/premake5.lua deleted file mode 100644 index f857da693..000000000 --- a/src/xenia/vfs/premake5.lua +++ /dev/null @@ -1,42 +0,0 @@ -project_root = "../../.." -include(project_root.."/tools/build") - -group("src") -project("xenia-vfs") - uuid("395c8abd-4dc9-46ed-af7a-c2b9b68a3a98") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - "zstd", - "zarchive" - }) - - recursive_platform_files() - removefiles({ - "vfs_dump.cc", - }) - -if enableMiscSubprojects then - project("xenia-vfs-dump") - uuid("2EF270C7-41A8-4D0E-ACC5-59693A9CCE32") - kind("ConsoleApp") - language("C++") - links({ - "fmt", - "xenia-base", - "xenia-vfs", - }) - - files({ - "vfs_dump.cc", - project_root.."/src/xenia/base/console_app_main_"..platform_suffix..".cc", - }) - resincludedirs({ - project_root, - }) -end - -if enableTests then - include("testing") -end diff --git a/src/xenia/vfs/testing/CMakeLists.txt b/src/xenia/vfs/testing/CMakeLists.txt new file mode 100644 index 000000000..31ac711f3 --- /dev/null +++ b/src/xenia/vfs/testing/CMakeLists.txt @@ -0,0 +1,3 @@ +xe_test_suite(xenia-vfs-tests ${CMAKE_CURRENT_SOURCE_DIR} + LINKS xenia-vfs +) diff --git a/src/xenia/vfs/testing/premake5.lua b/src/xenia/vfs/testing/premake5.lua deleted file mode 100644 index d9cd89626..000000000 --- a/src/xenia/vfs/testing/premake5.lua +++ /dev/null @@ -1,8 +0,0 @@ -project_root = "../../../.." -include(project_root.."/tools/build") - -test_suite("xenia-vfs-tests", project_root, ".", { - links = { - "xenia-vfs", - }, -}) diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt new file mode 100644 index 000000000..2b24479ae --- /dev/null +++ b/third_party/CMakeLists.txt @@ -0,0 +1,654 @@ +# third_party/CMakeLists.txt - All third-party library targets. + +# Suppress warnings for all third-party code. +if(MSVC) + add_compile_options(/W0) +else() + add_compile_options(-w) +endif() + +# ============================================================================== +# aes_128 +# ============================================================================== +add_library(aes_128 STATIC + aes_128/unroll/aes.c +) +target_include_directories(aes_128 PUBLIC aes_128) + +# ============================================================================== +# capstone +# ============================================================================== +add_library(capstone STATIC + capstone/cs.c + capstone/MCInst.c + capstone/MCInstrDesc.c + capstone/MCRegisterInfo.c + capstone/SStream.c + capstone/utils.c + capstone/Mapping.c +) +# Glob X86 arch files +file(GLOB _capstone_x86_c "capstone/arch/X86/*.c") +file(GLOB _capstone_x86_h "capstone/arch/X86/*.h") +file(GLOB _capstone_x86_inc "capstone/arch/X86/*.inc") +# Remove excluded files +list(FILTER _capstone_x86_c EXCLUDE REGEX "X86ATTInstPrinter\\.c$") +list(FILTER _capstone_x86_inc EXCLUDE REGEX "reduce\\.inc$") +target_sources(capstone PRIVATE ${_capstone_x86_c} ${_capstone_x86_h} ${_capstone_x86_inc}) +target_compile_definitions(capstone PRIVATE + CAPSTONE_X86_ATT_DISABLE + CAPSTONE_HAS_X86 + CAPSTONE_USE_SYS_DYN_MEM +) +target_include_directories(capstone PUBLIC capstone/include PRIVATE capstone) +# Force all capstone sources to compile as C +file(GLOB_RECURSE _capstone_all_c "capstone/*.c") +set_source_files_properties(${_capstone_all_c} PROPERTIES LANGUAGE C) + +# ============================================================================== +# cxxopts (header-only) +# ============================================================================== +add_library(cxxopts INTERFACE) +target_include_directories(cxxopts INTERFACE cxxopts/include) + +# ============================================================================== +# tomlplusplus (header-only) +# ============================================================================== +add_library(tomlplusplus INTERFACE) +target_include_directories(tomlplusplus INTERFACE tomlplusplus/include) + +# ============================================================================== +# dxbc +# ============================================================================== +add_library(dxbc STATIC + dxbc/DXBCChecksum.cpp +) +target_include_directories(dxbc PUBLIC dxbc) + +# ============================================================================== +# discord-rpc +# ============================================================================== +add_library(discord-rpc STATIC + discord-rpc/src/connection.h + discord-rpc/src/discord_rpc.cpp + discord-rpc/src/msg_queue.h + discord-rpc/src/rpc_connection.cpp + discord-rpc/src/rpc_connection.h + discord-rpc/src/serialization.cpp + discord-rpc/src/serialization.h +) +target_compile_definitions(discord-rpc PRIVATE RAPIDJSON_SSE42) +target_include_directories(discord-rpc PUBLIC discord-rpc/include PRIVATE rapidjson/include) +if(WIN32) + target_sources(discord-rpc PRIVATE + discord-rpc/src/connection_win.cpp + discord-rpc/src/discord_register_win.cpp + ) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_sources(discord-rpc PRIVATE + discord-rpc/src/connection_unix.cpp + discord-rpc/src/discord_register_linux.cpp + ) +endif() + +# ============================================================================== +# fmt +# ============================================================================== +add_library(fmt STATIC + fmt/src/format.cc + fmt/src/os.cc +) +target_include_directories(fmt PUBLIC fmt/include) + +# ============================================================================== +# glslang-spirv +# ============================================================================== +file(GLOB _glslang_spirv_cpp "glslang/SPIRV/*.cpp") +file(GLOB _glslang_spirv_h "glslang/SPIRV/*.h") +file(GLOB _glslang_spirv_hpp "glslang/SPIRV/*.hpp11") +list(FILTER _glslang_spirv_cpp EXCLUDE REGEX "GlslangToSpv\\.cpp$") +add_library(glslang-spirv STATIC + ${_glslang_spirv_cpp} + ${_glslang_spirv_h} + ${_glslang_spirv_hpp} + glslang/glslang/Include/visibility.h +) +target_include_directories(glslang-spirv PUBLIC glslang) + +# ============================================================================== +# imgui +# ============================================================================== +add_library(imgui STATIC + imgui/imgui.cpp + imgui/imgui_demo.cpp + imgui/imgui_draw.cpp + imgui/imgui_tables.cpp + imgui/imgui_widgets.cpp +) +target_include_directories(imgui PUBLIC imgui PRIVATE stb) + +# ============================================================================== +# mspack +# ============================================================================== +add_library(mspack STATIC + mspack/logging.cc + mspack/lzxd.c + mspack/system.c +) +target_compile_definitions(mspack PRIVATE HAVE_CONFIG_H) +target_include_directories(mspack PUBLIC mspack) +target_link_libraries(mspack PUBLIC xenia-base) + +# ============================================================================== +# pugixml +# ============================================================================== +add_library(pugixml STATIC + pugixml/src/pugixml.cpp +) +target_include_directories(pugixml PUBLIC pugixml/src) + +# ============================================================================== +# snappy +# ============================================================================== +# Generate snappy-stubs-public.h if missing +if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/snappy/snappy-stubs-public.h") + execute_process( + COMMAND ${CMAKE_COMMAND} + -DSNAPPY_BUILD_TESTS=OFF + -DSNAPPY_BUILD_BENCHMARKS=OFF + -DSNAPPY_REQUIRE_AVX=ON + ${CMAKE_CURRENT_SOURCE_DIR}/snappy + -B${CMAKE_CURRENT_SOURCE_DIR}/snappy + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) +endif() +add_library(snappy STATIC + snappy/snappy-internal.h + snappy/snappy-sinksource.cc + snappy/snappy-sinksource.h + snappy/snappy-stubs-internal.cc + snappy/snappy-stubs-internal.h + snappy/snappy-stubs-public.h + snappy/snappy.cc + snappy/snappy.h +) +target_include_directories(snappy PUBLIC snappy) + +# ============================================================================== +# xxhash +# ============================================================================== +add_library(xxhash STATIC + xxhash/xxhash.c +) +target_include_directories(xxhash PUBLIC xxhash) + +# ============================================================================== +# zstd +# ============================================================================== +file(GLOB_RECURSE _zstd_common "zstd/lib/common/*.c" "zstd/lib/common/*.h") +file(GLOB_RECURSE _zstd_compress "zstd/lib/compress/*.c" "zstd/lib/compress/*.h") +file(GLOB_RECURSE _zstd_decompress "zstd/lib/decompress/*.c" "zstd/lib/decompress/*.h") +add_library(zstd STATIC + zstd/lib/zstd.h + ${_zstd_common} + ${_zstd_compress} + ${_zstd_decompress} +) +target_include_directories(zstd PUBLIC zstd/lib PRIVATE zstd/lib/common) +target_compile_definitions(zstd PRIVATE + XXH_NAMESPACE=ZSTD_ + ZSTD_LEGACY_SUPPORT=0 +) +if(NOT MSVC) + target_compile_definitions(zstd PRIVATE ZSTD_DISABLE_ASM) +endif() + +# ============================================================================== +# zarchive +# ============================================================================== +add_library(zarchive STATIC + zarchive/include/zarchive/zarchivecommon.h + zarchive/include/zarchive/zarchivereader.h + zarchive/include/zarchive/zarchivewriter.h + zarchive/src/zarchivereader.cpp + zarchive/src/zarchivewriter.cpp + zarchive/src/sha_256.c + zarchive/src/sha_256.h +) +target_include_directories(zarchive PUBLIC zarchive/include PRIVATE zstd/lib) +target_link_libraries(zarchive PUBLIC zstd) + +# ============================================================================== +# zlib-ng +# ============================================================================== +# Generate headers if missing +set(_zlibng_needs_configure FALSE) +foreach(_hdr zlib-ng.h zconf-ng.h zlib_name_mangling-ng.h gzread.c) + if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/zlib-ng/${_hdr}") + set(_zlibng_needs_configure TRUE) + break() + endif() +endforeach() +if(_zlibng_needs_configure) + execute_process( + COMMAND ${CMAKE_COMMAND} + -DZLIB_ENABLE_TESTS=OFF + -DWITH_GTEST=OFF + ${CMAKE_CURRENT_SOURCE_DIR}/zlib-ng + -B${CMAKE_CURRENT_SOURCE_DIR}/zlib-ng + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) +endif() +file(GLOB _zlibng_c "zlib-ng/*.c") +file(GLOB _zlibng_x86 "zlib-ng/arch/x86/*.c") +file(GLOB _zlibng_generic "zlib-ng/arch/generic/*.c") +add_library(zlib-ng STATIC + ${_zlibng_c} + ${_zlibng_x86} + ${_zlibng_generic} +) +target_compile_definitions(zlib-ng PRIVATE + X86_FEATURES + X86_HAVE_XSAVE_INTRIN + X86_SSSE3 + X86_SSE42 + WITH_GZFILEOP +) +if(WIN32) + target_compile_definitions(zlib-ng PRIVATE + X86_SSE2 + X86_AVX2 + X86_AVX512 + X86_AVX512VNNI + X86_PCLMULQDQ_CRC + X86_VPCLMULQDQ_CRC + ) +else() + # Remove AVX2/AVX512 files on non-Windows + set(_zlibng_exclude_patterns + "adler32_avx2" "adler32_avx512" "adler32_avx512_vnni" + "chunkset_avx2" "compare256_avx2" + "crc32_pclmulqdq" "crc32_vpclmulqdq" + "slide_hash_avx2" + ) + foreach(_pat ${_zlibng_exclude_patterns}) + list(FILTER _zlibng_x86 EXCLUDE REGEX "${_pat}") + endforeach() + # Re-set sources without excluded files + get_target_property(_zlibng_srcs zlib-ng SOURCES) + set_target_properties(zlib-ng PROPERTIES SOURCES "") + target_sources(zlib-ng PRIVATE ${_zlibng_c} ${_zlibng_x86} ${_zlibng_generic}) +endif() +target_include_directories(zlib-ng PUBLIC zlib-ng) + +# ============================================================================== +# libusb (Windows only) +# ============================================================================== +if(WIN32) + add_library(libusb STATIC + libusb/libusb/core.c + libusb/libusb/descriptor.c + libusb/libusb/hotplug.c + libusb/libusb/io.c + libusb/libusb/strerror.c + libusb/libusb/sync.c + libusb/libusb/os/events_windows.c + libusb/libusb/os/events_windows.h + libusb/libusb/os/threads_windows.c + libusb/libusb/os/threads_windows.h + libusb/libusb/os/windows_common.c + libusb/libusb/os/windows_common.h + libusb/libusb/os/windows_usbdk.c + libusb/libusb/os/windows_usbdk.h + libusb/libusb/os/windows_winusb.c + libusb/libusb/os/windows_winusb.h + ) + target_include_directories(libusb PUBLIC libusb/libusb PRIVATE libusb/msvc) +endif() + +# ============================================================================== +# SDL2 +# ============================================================================== +if(WIN32) + # Build SDL2 from source on Windows + file(GLOB _sdl2_sources + "SDL2/src/*.c" + "SDL2/src/atomic/*.c" + "SDL2/src/audio/*.c" + "SDL2/src/audio/directsound/*.c" + "SDL2/src/audio/disk/*.c" + "SDL2/src/audio/dummy/*.c" + "SDL2/src/audio/wasapi/*.c" + "SDL2/src/audio/winmm/*.c" + "SDL2/src/core/windows/*.c" + "SDL2/src/cpuinfo/*.c" + "SDL2/src/dynapi/*.c" + "SDL2/src/events/*.c" + "SDL2/src/file/*.c" + "SDL2/src/filesystem/windows/*.c" + "SDL2/src/haptic/*.c" + "SDL2/src/haptic/dummy/*.c" + "SDL2/src/haptic/windows/*.c" + "SDL2/src/hidapi/*.c" + "SDL2/src/joystick/*.c" + "SDL2/src/joystick/dummy/*.c" + "SDL2/src/joystick/hidapi/*.c" + "SDL2/src/joystick/virtual/*.c" + "SDL2/src/joystick/windows/*.c" + "SDL2/src/libm/*.c" + "SDL2/src/loadso/windows/*.c" + "SDL2/src/locale/*.c" + "SDL2/src/locale/windows/*.c" + "SDL2/src/misc/*.c" + "SDL2/src/misc/windows/*.c" + "SDL2/src/power/*.c" + "SDL2/src/power/windows/*.c" + "SDL2/src/render/*.c" + "SDL2/src/render/direct3d/*.c" + "SDL2/src/render/direct3d11/*.c" + "SDL2/src/render/direct3d12/*.c" + "SDL2/src/render/opengl/*.c" + "SDL2/src/render/opengles2/*.c" + "SDL2/src/render/software/*.c" + "SDL2/src/sensor/*.c" + "SDL2/src/sensor/dummy/*.c" + "SDL2/src/sensor/windows/*.c" + "SDL2/src/stdlib/*.c" + "SDL2/src/thread/*.c" + "SDL2/src/thread/generic/SDL_syscond.c" + "SDL2/src/thread/windows/*.c" + "SDL2/src/timer/*.c" + "SDL2/src/timer/windows/*.c" + "SDL2/src/video/*.c" + "SDL2/src/video/dummy/*.c" + "SDL2/src/video/windows/*.c" + "SDL2/src/video/yuv2rgb/*.c" + ) + add_library(SDL2 STATIC ${_sdl2_sources}) + target_compile_definitions(SDL2 PRIVATE + HAVE_LIBC + SDL_LEAN_AND_MEAN + SDL_RENDER_DISABLED + ) + target_include_directories(SDL2 PUBLIC SDL2/include) + target_link_libraries(SDL2 PRIVATE setupapi winmm imm32 version) +else() + # Use system SDL2 on Linux + add_library(SDL2 INTERFACE) + find_package(PkgConfig REQUIRED) + pkg_check_modules(SDL2_PKG REQUIRED sdl2) + target_include_directories(SDL2 INTERFACE ${SDL2_PKG_INCLUDE_DIRS}) + target_link_libraries(SDL2 INTERFACE ${SDL2_PKG_LDFLAGS}) + target_compile_options(SDL2 INTERFACE ${SDL2_PKG_CFLAGS_OTHER}) +endif() + +# ============================================================================== +# FFmpeg (source in FFmpeg submodule, config overlay in ffmpeg-xenia) +# ============================================================================== + +# Common function to apply shared FFmpeg settings to a target. +function(ffmpeg_common target) + target_compile_definitions(${target} PRIVATE + HAVE_AV_CONFIG_H + _USE_MATH_DEFINES + ) + target_include_directories(${target} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/ffmpeg-xenia + ${CMAKE_CURRENT_SOURCE_DIR}/FFmpeg + ) + + if(WIN32) + target_include_directories(${target} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/FFmpeg/compat/atomics/win32 + ) + target_link_libraries(${target} PRIVATE bcrypt) + # Size optimization on Debug/Checked (dead code elimination is mandatory) + target_compile_options(${target} PRIVATE + $<$:/Os> + $<$:/Os> + ) + else() + target_include_directories(${target} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/FFmpeg/compat/atomics/gcc + ) + endif() + + # Suppress all warnings for FFmpeg code + if(MSVC) + target_compile_options(${target} PRIVATE /w) + else() + target_compile_options(${target} PRIVATE -w) + endif() + + # All FFmpeg source is C + set_target_properties(${target} PROPERTIES LINKER_LANGUAGE C) +endfunction() + +# --- libavutil --- +add_library(libavutil STATIC + FFmpeg/libavutil/adler32.c + FFmpeg/libavutil/aes.c + FFmpeg/libavutil/aes_ctr.c + FFmpeg/libavutil/audio_fifo.c + FFmpeg/libavutil/avstring.c + FFmpeg/libavutil/avsscanf.c + FFmpeg/libavutil/base64.c + FFmpeg/libavutil/blowfish.c + FFmpeg/libavutil/bprint.c + FFmpeg/libavutil/buffer.c + FFmpeg/libavutil/cast5.c + FFmpeg/libavutil/camellia.c + FFmpeg/libavutil/channel_layout.c + FFmpeg/libavutil/csp.c + FFmpeg/libavutil/cpu.c + FFmpeg/libavutil/crc.c + FFmpeg/libavutil/des.c + FFmpeg/libavutil/dict.c + FFmpeg/libavutil/display.c + FFmpeg/libavutil/dovi_meta.c + FFmpeg/libavutil/downmix_info.c + FFmpeg/libavutil/encryption_info.c + FFmpeg/libavutil/error.c + FFmpeg/libavutil/eval.c + FFmpeg/libavutil/fifo.c + FFmpeg/libavutil/file.c + FFmpeg/libavutil/file_open.c + FFmpeg/libavutil/float_dsp.c + FFmpeg/libavutil/fixed_dsp.c + FFmpeg/libavutil/frame.c + FFmpeg/libavutil/hash.c + FFmpeg/libavutil/hdr_dynamic_metadata.c + FFmpeg/libavutil/hmac.c + FFmpeg/libavutil/hwcontext.c + FFmpeg/libavutil/imgutils.c + FFmpeg/libavutil/integer.c + FFmpeg/libavutil/intmath.c + FFmpeg/libavutil/lfg.c + FFmpeg/libavutil/lls.c + FFmpeg/libavutil/log.c + FFmpeg/libavutil/log2_tab.c + FFmpeg/libavutil/mathematics.c + FFmpeg/libavutil/mastering_display_metadata.c + FFmpeg/libavutil/md5.c + FFmpeg/libavutil/mem.c + FFmpeg/libavutil/murmur3.c + FFmpeg/libavutil/opt.c + FFmpeg/libavutil/parseutils.c + FFmpeg/libavutil/pixdesc.c + FFmpeg/libavutil/pixelutils.c + FFmpeg/libavutil/random_seed.c + FFmpeg/libavutil/rational.c + FFmpeg/libavutil/reverse.c + FFmpeg/libavutil/rc4.c + FFmpeg/libavutil/ripemd.c + FFmpeg/libavutil/samplefmt.c + FFmpeg/libavutil/sha.c + FFmpeg/libavutil/sha512.c + FFmpeg/libavutil/slicethread.c + FFmpeg/libavutil/spherical.c + FFmpeg/libavutil/stereo3d.c + FFmpeg/libavutil/threadmessage.c + FFmpeg/libavutil/time.c + FFmpeg/libavutil/timecode.c + FFmpeg/libavutil/tree.c + FFmpeg/libavutil/twofish.c + FFmpeg/libavutil/utils.c + FFmpeg/libavutil/xga_font_data.c + FFmpeg/libavutil/xtea.c + FFmpeg/libavutil/tea.c + FFmpeg/libavutil/tx.c + FFmpeg/libavutil/tx_float.c + FFmpeg/libavutil/tx_double.c + FFmpeg/libavutil/tx_int32.c + FFmpeg/libavutil/video_enc_params.c + FFmpeg/libavutil/film_grain_params.c + FFmpeg/libavutil/side_data.c + FFmpeg/libavutil/refstruct.c + FFmpeg/libavutil/container_fifo.c + FFmpeg/libavutil/float_scalarproduct.c + FFmpeg/libavutil/timecode_internal.c + FFmpeg/libavutil/iamf.c + FFmpeg/libavutil/timestamp.c +) +# x86 platform files +if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64") + target_sources(libavutil PRIVATE + FFmpeg/libavutil/x86/cpu.c + FFmpeg/libavutil/x86/fixed_dsp_init.c + FFmpeg/libavutil/x86/float_dsp_init.c + FFmpeg/libavutil/x86/imgutils_init.c + FFmpeg/libavutil/x86/lls_init.c + FFmpeg/libavutil/x86/tx_float_init.c + ) +endif() +ffmpeg_common(libavutil) + +# --- libavcodec --- +add_library(libavcodec STATIC + FFmpeg/libavcodec/ac3_parser.c + FFmpeg/libavcodec/adts_parser.c + FFmpeg/libavcodec/allcodecs.c + FFmpeg/libavcodec/avcodec.c + FFmpeg/libavcodec/avdct.c + FFmpeg/libavcodec/packet.c + FFmpeg/libavcodec/bitstream.c + FFmpeg/libavcodec/bitstream_filters.c + FFmpeg/libavcodec/bsf.c + FFmpeg/libavcodec/codec_desc.c + FFmpeg/libavcodec/codec_par.c + FFmpeg/libavcodec/d3d11va.c + FFmpeg/libavcodec/decode.c + FFmpeg/libavcodec/dirac.c + FFmpeg/libavcodec/dv_profile.c + FFmpeg/libavcodec/encode.c + FFmpeg/libavcodec/imgconvert.c + FFmpeg/libavcodec/jni.c + FFmpeg/libavcodec/mathtables.c + FFmpeg/libavcodec/mediacodec.c + FFmpeg/libavcodec/mpeg12framerate.c + FFmpeg/libavcodec/options.c + FFmpeg/libavcodec/parser.c + FFmpeg/libavcodec/parsers.c + FFmpeg/libavcodec/profiles.c + FFmpeg/libavcodec/qsv_api.c + FFmpeg/libavcodec/raw.c + FFmpeg/libavcodec/utils.c + FFmpeg/libavcodec/vorbis_parser.c + FFmpeg/libavcodec/xiph.c + FFmpeg/libavcodec/dct32_fixed.c + FFmpeg/libavcodec/dct32_float.c + FFmpeg/libavcodec/faandct.c + FFmpeg/libavcodec/faanidct.c + FFmpeg/libavcodec/fdctdsp.c + FFmpeg/libavcodec/jfdctfst.c + FFmpeg/libavcodec/jfdctint.c + FFmpeg/libavcodec/idctdsp.c + FFmpeg/libavcodec/simple_idct.c + FFmpeg/libavcodec/jrevdct.c + FFmpeg/libavcodec/mpegaudio.c + FFmpeg/libavcodec/mpegaudiodec_common.c + FFmpeg/libavcodec/mpegaudiodsp.c + FFmpeg/libavcodec/mpegaudiodsp_data.c + FFmpeg/libavcodec/mpegaudiodsp_fixed.c + FFmpeg/libavcodec/mpegaudiodsp_float.c + FFmpeg/libavcodec/mpegaudiodecheader.c + FFmpeg/libavcodec/mpegaudiodata.c + FFmpeg/libavcodec/sinewin.c + FFmpeg/libavcodec/wma_freqs.c + FFmpeg/libavcodec/mpegaudiodec_fixed.c + FFmpeg/libavcodec/mpegaudiodec_float.c + FFmpeg/libavcodec/wmaprodec.c + FFmpeg/libavcodec/wma.c + FFmpeg/libavcodec/wma_common.c + FFmpeg/libavcodec/wmadec.c + FFmpeg/libavcodec/aactab.c + FFmpeg/libavcodec/mpegaudio_parser.c + FFmpeg/libavcodec/pthread.c + FFmpeg/libavcodec/pthread_slice.c + FFmpeg/libavcodec/pthread_frame.c + FFmpeg/libavcodec/get_buffer.c + FFmpeg/libavcodec/vlc.c + FFmpeg/libavcodec/threadprogress.c + FFmpeg/libavcodec/bsf/null.c + FFmpeg/libavcodec/exif.c + FFmpeg/libavcodec/mpegaudiotabs.c + FFmpeg/libavcodec/tiff_common.c +) +if(WIN32) + target_sources(libavcodec PRIVATE FFmpeg/libavcodec/file_open.c) +endif() +# x86 platform files +if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64") + target_sources(libavcodec PRIVATE + FFmpeg/libavcodec/x86/constants.c + FFmpeg/libavcodec/x86/fdctdsp_init.c + FFmpeg/libavcodec/x86/idctdsp_init.c + FFmpeg/libavcodec/x86/mpegaudiodsp.c + FFmpeg/libavcodec/x86/fdct.c + ) +endif() +target_include_directories(libavcodec PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/FFmpeg/libavcodec +) +target_link_libraries(libavcodec PRIVATE libavutil) +ffmpeg_common(libavcodec) + +# --- libavformat --- +add_library(libavformat STATIC + FFmpeg/libavformat/allformats.c + FFmpeg/libavformat/avio.c + FFmpeg/libavformat/aviobuf.c + FFmpeg/libavformat/dump.c + FFmpeg/libavformat/format.c + FFmpeg/libavformat/id3v1.c + FFmpeg/libavformat/id3v2.c + FFmpeg/libavformat/metadata.c + FFmpeg/libavformat/mux.c + FFmpeg/libavformat/options.c + FFmpeg/libavformat/os_support.c + FFmpeg/libavformat/protocols.c + FFmpeg/libavformat/riff.c + FFmpeg/libavformat/sdp.c + FFmpeg/libavformat/url.c + FFmpeg/libavformat/utils.c + FFmpeg/libavformat/riffdec.c + FFmpeg/libavformat/asfdec_f.c + FFmpeg/libavformat/asf.c + FFmpeg/libavformat/asfcrypt.c + FFmpeg/libavformat/avlanguage.c + FFmpeg/libavformat/mp3dec.c + FFmpeg/libavformat/replaygain.c + FFmpeg/libavformat/file.c + FFmpeg/libavformat/demux.c + FFmpeg/libavformat/avformat.c + FFmpeg/libavformat/seek.c + FFmpeg/libavformat/demux_utils.c + FFmpeg/libavformat/urldecode.c + FFmpeg/libavformat/asf_tags.c + FFmpeg/libavformat/to_upper4.c +) +if(WIN32) + target_sources(libavformat PRIVATE FFmpeg/libavformat/file_open.c) +endif() +target_link_libraries(libavformat PRIVATE libavutil libavcodec) +ffmpeg_common(libavformat) diff --git a/third_party/SDL2-static.lua b/third_party/SDL2-static.lua deleted file mode 100644 index 2598b90a9..000000000 --- a/third_party/SDL2-static.lua +++ /dev/null @@ -1,360 +0,0 @@ --- This project resembles the build configuration on Windows only. -group("third_party") -project("SDL2") - uuid("65878768-95A1-4E7B-8DFB-B23A09E0DE7C") - kind("StaticLib") - language("C") - - defines({ - "HAVE_LIBC", - "SDL_LEAN_AND_MEAN", - "SDL_RENDER_DISABLED", - }) - links({ - "setupapi.lib", - "winmm.lib", - "imm32.lib", - "version.lib", - }) - includedirs({ - "SDL2/include", - }) - files({ - -- 1:1 from SDL2/VisualC/SDL/SDL.vcxproj file - "SDL2/src/audio/directsound/SDL_directsound.h", - "SDL2/src/audio/disk/SDL_diskaudio.h", - "SDL2/src/audio/dummy/SDL_dummyaudio.h", - "SDL2/src/audio/SDL_audio_c.h", - "SDL2/src/audio/SDL_audiodev_c.h", - "SDL2/src/audio/SDL_sysaudio.h", - "SDL2/src/audio/SDL_wave.h", - "SDL2/src/audio/wasapi/SDL_wasapi.h", - "SDL2/src/audio/winmm/SDL_winmm.h", - "SDL2/src/core/windows/SDL_directx.h", - "SDL2/src/core/windows/SDL_hid.h", - "SDL2/src/core/windows/SDL_immdevice.h", - "SDL2/src/core/windows/SDL_windows.h", - "SDL2/src/core/windows/SDL_xinput.h", - "SDL2/src/dynapi/SDL_dynapi.h", - "SDL2/src/dynapi/SDL_dynapi_overrides.h", - "SDL2/src/dynapi/SDL_dynapi_procs.h", - "SDL2/src/events/blank_cursor.h", - "SDL2/src/events/default_cursor.h", - "SDL2/src/events/scancodes_windows.h", - "SDL2/src/events/SDL_clipboardevents_c.h", - "SDL2/src/events/SDL_displayevents_c.h", - "SDL2/src/events/SDL_dropevents_c.h", - "SDL2/src/events/SDL_events_c.h", - "SDL2/src/events/SDL_gesture_c.h", - "SDL2/src/events/SDL_keyboard_c.h", - "SDL2/src/events/SDL_mouse_c.h", - "SDL2/src/events/SDL_touch_c.h", - "SDL2/src/events/SDL_windowevents_c.h", - "SDL2/src/haptic/SDL_haptic_c.h", - "SDL2/src/haptic/SDL_syshaptic.h", - "SDL2/src/haptic/windows/SDL_dinputhaptic_c.h", - "SDL2/src/haptic/windows/SDL_windowshaptic_c.h", - "SDL2/src/haptic/windows/SDL_xinputhaptic_c.h", - "SDL2/src/hidapi/hidapi/hidapi.h", - "SDL2/src/hidapi/SDL_hidapi_c.h", - "SDL2/src/joystick/controller_type.h", - "SDL2/src/joystick/hidapi/SDL_hidapijoystick_c.h", - "SDL2/src/joystick/hidapi/SDL_hidapi_rumble.h", - "SDL2/src/joystick/SDL_gamecontrollerdb.h", - "SDL2/src/joystick/SDL_joystick_c.h", - "SDL2/src/joystick/SDL_steam_virtual_gamepad.h", - "SDL2/src/joystick/SDL_sysjoystick.h", - "SDL2/src/joystick/usb_ids.h", - "SDL2/src/joystick/virtual/SDL_virtualjoystick_c.h", - "SDL2/src/joystick/windows/SDL_dinputjoystick_c.h", - "SDL2/src/joystick/windows/SDL_rawinputjoystick_c.h", - "SDL2/src/joystick/windows/SDL_windowsjoystick_c.h", - "SDL2/src/joystick/windows/SDL_xinputjoystick_c.h", - "SDL2/src/libm/math_libm.h", - "SDL2/src/libm/math_private.h", - "SDL2/src/locale/SDL_syslocale.h", - "SDL2/src/misc/SDL_sysurl.h", - "SDL2/src/power/SDL_syspower.h", - "SDL2/src/render/direct3d11/SDL_shaders_d3d11.h", - "SDL2/src/render/direct3d12/SDL_shaders_d3d12.h", - "SDL2/src/render/direct3d/SDL_shaders_d3d.h", - "SDL2/src/render/opengles2/SDL_gles2funcs.h", - "SDL2/src/render/opengles2/SDL_shaders_gles2.h", - "SDL2/src/render/opengl/SDL_glfuncs.h", - "SDL2/src/render/opengl/SDL_shaders_gl.h", - "SDL2/src/render/SDL_d3dmath.h", - "SDL2/src/render/SDL_sysrender.h", - "SDL2/src/render/SDL_yuv_sw_c.h", - "SDL2/src/render/software/SDL_blendfillrect.h", - "SDL2/src/render/software/SDL_blendline.h", - "SDL2/src/render/software/SDL_blendpoint.h", - "SDL2/src/render/software/SDL_draw.h", - "SDL2/src/render/software/SDL_drawline.h", - "SDL2/src/render/software/SDL_drawpoint.h", - "SDL2/src/render/software/SDL_render_sw_c.h", - "SDL2/src/render/software/SDL_rotate.h", - "SDL2/src/render/software/SDL_triangle.h", - "SDL2/src/SDL_assert_c.h", - "SDL2/src/SDL_dataqueue.h", - "SDL2/src/SDL_error_c.h", - "SDL2/src/SDL_guid.c", - "SDL2/src/SDL_hints_c.h", - "SDL2/src/SDL_internal.h", - "SDL2/src/SDL_list.h", - "SDL2/src/SDL_log_c.h", - "SDL2/src/sensor/dummy/SDL_dummysensor.h", - "SDL2/src/sensor/SDL_sensor_c.h", - "SDL2/src/sensor/SDL_syssensor.h", - "SDL2/src/sensor/windows/SDL_windowssensor.h", - "SDL2/src/thread/SDL_systhread.h", - "SDL2/src/thread/SDL_thread_c.h", - "SDL2/src/thread/generic/SDL_syscond_c.h", - "SDL2/src/thread/windows/SDL_sysmutex_c.h", - "SDL2/src/thread/windows/SDL_systhread_c.h", - "SDL2/src/timer/SDL_timer_c.h", - "SDL2/src/video/dummy/SDL_nullevents_c.h", - "SDL2/src/video/dummy/SDL_nullframebuffer_c.h", - "SDL2/src/video/dummy/SDL_nullvideo.h", - "SDL2/src/video/khronos/vulkan/vk_icd.h", - "SDL2/src/video/khronos/vulkan/vk_layer.h", - "SDL2/src/video/khronos/vulkan/vk_platform.h", - "SDL2/src/video/khronos/vulkan/vk_sdk_platform.h", - "SDL2/src/video/khronos/vulkan/vulkan.h", - "SDL2/src/video/khronos/vulkan/vulkan_android.h", - "SDL2/src/video/khronos/vulkan/vulkan_beta.h", - "SDL2/src/video/khronos/vulkan/vulkan_core.h", - "SDL2/src/video/khronos/vulkan/vulkan_directfb.h", - "SDL2/src/video/khronos/vulkan/vulkan_fuchsia.h", - "SDL2/src/video/khronos/vulkan/vulkan_ggp.h", - "SDL2/src/video/khronos/vulkan/vulkan_ios.h", - "SDL2/src/video/khronos/vulkan/vulkan_macos.h", - "SDL2/src/video/khronos/vulkan/vulkan_metal.h", - "SDL2/src/video/khronos/vulkan/vulkan_vi.h", - "SDL2/src/video/khronos/vulkan/vulkan_wayland.h", - "SDL2/src/video/khronos/vulkan/vulkan_win32.h", - "SDL2/src/video/khronos/vulkan/vulkan_xcb.h", - "SDL2/src/video/khronos/vulkan/vulkan_xlib.h", - "SDL2/src/video/khronos/vulkan/vulkan_xlib_xrandr.h", - "SDL2/src/video/SDL_blit.h", - "SDL2/src/video/SDL_blit_auto.h", - "SDL2/src/video/SDL_blit_copy.h", - "SDL2/src/video/SDL_blit_slow.h", - "SDL2/src/video/SDL_egl_c.h", - "SDL2/src/video/SDL_pixels_c.h", - "SDL2/src/video/SDL_rect_c.h", - "SDL2/src/video/SDL_RLEaccel_c.h", - "SDL2/src/video/SDL_shape_internals.h", - "SDL2/src/video/SDL_sysvideo.h", - "SDL2/src/video/SDL_vulkan_internal.h", - "SDL2/src/video/SDL_yuv_c.h", - "SDL2/src/video/windows/SDL_msctf.h", - "SDL2/src/video/windows/SDL_vkeys.h", - "SDL2/src/video/windows/SDL_windowsclipboard.h", - "SDL2/src/video/windows/SDL_windowsevents.h", - "SDL2/src/video/windows/SDL_windowsframebuffer.h", - "SDL2/src/video/windows/SDL_windowskeyboard.h", - "SDL2/src/video/windows/SDL_windowsmessagebox.h", - "SDL2/src/video/windows/SDL_windowsmodes.h", - "SDL2/src/video/windows/SDL_windowsmouse.h", - "SDL2/src/video/windows/SDL_windowsopengl.h", - "SDL2/src/video/windows/SDL_windowsopengles.h", - "SDL2/src/video/windows/SDL_windowsshape.h", - "SDL2/src/video/windows/SDL_windowsvideo.h", - "SDL2/src/video/windows/SDL_windowsvulkan.h", - "SDL2/src/video/windows/SDL_windowswindow.h", - "SDL2/src/video/windows/wmmsg.h", - "SDL2/src/video/yuv2rgb/yuv_rgb.h", - "SDL2/src/video/yuv2rgb/yuv_rgb_common.h", - "SDL2/src/video/yuv2rgb/yuv_rgb_internal.h", - "SDL2/src/video/yuv2rgb/yuv_rgb_lsx.h", - "SDL2/src/video/yuv2rgb/yuv_rgb_lsx_func.h", - "SDL2/src/video/yuv2rgb/yuv_rgb_sse.h", - "SDL2/src/video/yuv2rgb/yuv_rgb_sse_func.h", - "SDL2/src/video/yuv2rgb/yuv_rgb_std.h", - "SDL2/src/video/yuv2rgb/yuv_rgb_std_func.h", - - "SDL2/src/atomic/SDL_atomic.c", - "SDL2/src/atomic/SDL_spinlock.c", - "SDL2/src/audio/directsound/SDL_directsound.c", - "SDL2/src/audio/disk/SDL_diskaudio.c", - "SDL2/src/audio/dummy/SDL_dummyaudio.c", - "SDL2/src/audio/SDL_audio.c", - "SDL2/src/audio/SDL_audiocvt.c", - "SDL2/src/audio/SDL_audiodev.c", - "SDL2/src/audio/SDL_audiotypecvt.c", - "SDL2/src/audio/SDL_mixer.c", - "SDL2/src/audio/SDL_wave.c", - "SDL2/src/audio/winmm/SDL_winmm.c", - "SDL2/src/audio/wasapi/SDL_wasapi.c", - "SDL2/src/audio/wasapi/SDL_wasapi_win32.c", - "SDL2/src/core/windows/SDL_hid.c", - "SDL2/src/core/windows/SDL_immdevice.c", - "SDL2/src/core/windows/SDL_windows.c", - "SDL2/src/core/windows/SDL_xinput.c", - "SDL2/src/cpuinfo/SDL_cpuinfo.c", - "SDL2/src/dynapi/SDL_dynapi.c", - "SDL2/src/events/SDL_clipboardevents.c", - "SDL2/src/events/SDL_displayevents.c", - "SDL2/src/events/SDL_dropevents.c", - "SDL2/src/events/SDL_events.c", - "SDL2/src/events/SDL_gesture.c", - "SDL2/src/events/SDL_keyboard.c", - "SDL2/src/events/SDL_mouse.c", - "SDL2/src/events/SDL_quit.c", - "SDL2/src/events/SDL_touch.c", - "SDL2/src/events/SDL_windowevents.c", - "SDL2/src/file/SDL_rwops.c", - "SDL2/src/filesystem/windows/SDL_sysfilesystem.c", - "SDL2/src/haptic/dummy/SDL_syshaptic.c", - "SDL2/src/haptic/SDL_haptic.c", - "SDL2/src/haptic/windows/SDL_dinputhaptic.c", - "SDL2/src/haptic/windows/SDL_windowshaptic.c", - "SDL2/src/haptic/windows/SDL_xinputhaptic.c", - "SDL2/src/hidapi/SDL_hidapi.c", - "SDL2/src/joystick/controller_type.c", - "SDL2/src/joystick/dummy/SDL_sysjoystick.c", - "SDL2/src/joystick/hidapi/SDL_hidapijoystick.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_combined.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_gamecube.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_luna.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_ps3.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_ps4.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_ps5.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_rumble.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_shield.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_stadia.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_steam.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_steamdeck.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_switch.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_wii.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_xbox360.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_xbox360w.c", - "SDL2/src/joystick/hidapi/SDL_hidapi_xboxone.c", - "SDL2/src/joystick/SDL_gamecontroller.c", - "SDL2/src/joystick/SDL_joystick.c", - "SDL2/src/joystick/SDL_steam_virtual_gamepad.c", - "SDL2/src/joystick/virtual/SDL_virtualjoystick.c", - "SDL2/src/joystick/windows/SDL_dinputjoystick.c", - "SDL2/src/joystick/windows/SDL_rawinputjoystick.c", - "SDL2/src/joystick/windows/SDL_windowsjoystick.c", - "SDL2/src/joystick/windows/SDL_windows_gaming_input.c", - "SDL2/src/joystick/windows/SDL_xinputjoystick.c", - "SDL2/src/libm/e_atan2.c", - "SDL2/src/libm/e_exp.c", - "SDL2/src/libm/e_fmod.c", - "SDL2/src/libm/e_log.c", - "SDL2/src/libm/e_log10.c", - "SDL2/src/libm/e_pow.c", - "SDL2/src/libm/e_rem_pio2.c", - "SDL2/src/libm/e_sqrt.c", - "SDL2/src/libm/k_cos.c", - "SDL2/src/libm/k_rem_pio2.c", - "SDL2/src/libm/k_sin.c", - "SDL2/src/libm/k_tan.c", - "SDL2/src/libm/s_atan.c", - "SDL2/src/libm/s_copysign.c", - "SDL2/src/libm/s_cos.c", - "SDL2/src/libm/s_fabs.c", - "SDL2/src/libm/s_floor.c", - "SDL2/src/libm/s_scalbn.c", - "SDL2/src/libm/s_sin.c", - "SDL2/src/libm/s_tan.c", - "SDL2/src/loadso/windows/SDL_sysloadso.c", - "SDL2/src/locale/SDL_locale.c", - "SDL2/src/locale/windows/SDL_syslocale.c", - "SDL2/src/misc/SDL_url.c", - "SDL2/src/misc/windows/SDL_sysurl.c", - "SDL2/src/power/SDL_power.c", - "SDL2/src/power/windows/SDL_syspower.c", - "SDL2/src/render/direct3d11/SDL_shaders_d3d11.c", - "SDL2/src/render/direct3d12/SDL_render_d3d12.c", - "SDL2/src/render/direct3d12/SDL_shaders_d3d12.c", - "SDL2/src/render/direct3d/SDL_render_d3d.c", - "SDL2/src/render/direct3d11/SDL_render_d3d11.c", - "SDL2/src/render/direct3d/SDL_shaders_d3d.c", - "SDL2/src/render/opengl/SDL_render_gl.c", - "SDL2/src/render/opengl/SDL_shaders_gl.c", - "SDL2/src/render/opengles2/SDL_render_gles2.c", - "SDL2/src/render/opengles2/SDL_shaders_gles2.c", - "SDL2/src/render/SDL_d3dmath.c", - "SDL2/src/render/SDL_render.c", - "SDL2/src/render/SDL_yuv_sw.c", - "SDL2/src/render/software/SDL_blendfillrect.c", - "SDL2/src/render/software/SDL_blendline.c", - "SDL2/src/render/software/SDL_blendpoint.c", - "SDL2/src/render/software/SDL_drawline.c", - "SDL2/src/render/software/SDL_drawpoint.c", - "SDL2/src/render/software/SDL_render_sw.c", - "SDL2/src/render/software/SDL_rotate.c", - "SDL2/src/render/software/SDL_triangle.c", - "SDL2/src/SDL.c", - "SDL2/src/SDL_assert.c", - "SDL2/src/SDL_dataqueue.c", - "SDL2/src/SDL_list.c", - "SDL2/src/SDL_error.c", - "SDL2/src/SDL_hints.c", - "SDL2/src/SDL_log.c", - "SDL2/src/SDL_utils.c", - "SDL2/src/sensor/dummy/SDL_dummysensor.c", - "SDL2/src/sensor/SDL_sensor.c", - "SDL2/src/sensor/windows/SDL_windowssensor.c", - "SDL2/src/stdlib/SDL_crc16.c", - "SDL2/src/stdlib/SDL_crc32.c", - "SDL2/src/stdlib/SDL_getenv.c", - "SDL2/src/stdlib/SDL_iconv.c", - "SDL2/src/stdlib/SDL_malloc.c", - "SDL2/src/stdlib/SDL_mslibc.c", - "SDL2/src/stdlib/SDL_qsort.c", - "SDL2/src/stdlib/SDL_stdlib.c", - "SDL2/src/stdlib/SDL_string.c", - "SDL2/src/stdlib/SDL_strtokr.c", - "SDL2/src/thread/generic/SDL_syscond.c", - "SDL2/src/thread/SDL_thread.c", - "SDL2/src/thread/windows/SDL_syscond_cv.c", - "SDL2/src/thread/windows/SDL_sysmutex.c", - "SDL2/src/thread/windows/SDL_syssem.c", - "SDL2/src/thread/windows/SDL_systhread.c", - "SDL2/src/thread/windows/SDL_systls.c", - "SDL2/src/timer/SDL_timer.c", - "SDL2/src/timer/windows/SDL_systimer.c", - "SDL2/src/video/dummy/SDL_nullevents.c", - "SDL2/src/video/dummy/SDL_nullframebuffer.c", - "SDL2/src/video/dummy/SDL_nullvideo.c", - "SDL2/src/video/SDL_blit.c", - "SDL2/src/video/SDL_blit_0.c", - "SDL2/src/video/SDL_blit_1.c", - "SDL2/src/video/SDL_blit_A.c", - "SDL2/src/video/SDL_blit_auto.c", - "SDL2/src/video/SDL_blit_copy.c", - "SDL2/src/video/SDL_blit_N.c", - "SDL2/src/video/SDL_blit_slow.c", - "SDL2/src/video/SDL_bmp.c", - "SDL2/src/video/SDL_clipboard.c", - "SDL2/src/video/SDL_egl.c", - "SDL2/src/video/SDL_fillrect.c", - "SDL2/src/video/SDL_pixels.c", - "SDL2/src/video/SDL_rect.c", - "SDL2/src/video/SDL_RLEaccel.c", - "SDL2/src/video/SDL_shape.c", - "SDL2/src/video/SDL_stretch.c", - "SDL2/src/video/SDL_surface.c", - "SDL2/src/video/SDL_video.c", - "SDL2/src/video/SDL_vulkan_utils.c", - "SDL2/src/video/SDL_yuv.c", - "SDL2/src/video/windows/SDL_windowsclipboard.c", - "SDL2/src/video/windows/SDL_windowsevents.c", - "SDL2/src/video/windows/SDL_windowsframebuffer.c", - "SDL2/src/video/windows/SDL_windowskeyboard.c", - "SDL2/src/video/windows/SDL_windowsmessagebox.c", - "SDL2/src/video/windows/SDL_windowsmodes.c", - "SDL2/src/video/windows/SDL_windowsmouse.c", - "SDL2/src/video/windows/SDL_windowsopengl.c", - "SDL2/src/video/windows/SDL_windowsopengles.c", - "SDL2/src/video/windows/SDL_windowsshape.c", - "SDL2/src/video/windows/SDL_windowsvideo.c", - "SDL2/src/video/windows/SDL_windowsvulkan.c", - "SDL2/src/video/windows/SDL_windowswindow.c", - "SDL2/src/video/yuv2rgb/yuv_rgb_lsx.c", - "SDL2/src/video/yuv2rgb/yuv_rgb_sse.c", - "SDL2/src/video/yuv2rgb/yuv_rgb_std.c", - }) diff --git a/third_party/SDL2.lua b/third_party/SDL2.lua deleted file mode 100644 index 972aa1aa7..000000000 --- a/third_party/SDL2.lua +++ /dev/null @@ -1,36 +0,0 @@ --- --- On Linux we build against the system version (libsdl2-dev for building), --- since SDL2 is our robust API there like DirectX is on Windows. --- - -local sdl2_sys_includedirs = {} -local third_party_path = os.getcwd() - -if os.istarget("windows") then - -- build ourselves - include("SDL2-static.lua") -else - -- use system libraries - local result, code, what = os.outputof("sdl2-config --cflags") - if result then - for inc in string.gmatch(result, "-I([%S]+)") do - table.insert(sdl2_sys_includedirs, inc) - end - else - error("Failed to run 'sdl2-config'. Are libsdl2 development files installed?") - end -end - - --- --- Call this function in project scope to include the SDL2 headers. --- -function sdl2_include() - filter("platforms:Windows") - includedirs({ - path.getrelative(".", third_party_path) .. "/SDL2/include", - }) - filter("platforms:Linux or platforms:Mac") - includedirs(sdl2_sys_includedirs) - filter({}) -end diff --git a/third_party/aes_128.lua b/third_party/aes_128.lua deleted file mode 100644 index d53f66eaa..000000000 --- a/third_party/aes_128.lua +++ /dev/null @@ -1,11 +0,0 @@ -group("third_party") -project("aes_128") - uuid("b50458bf-dd83-4c1a-8cad-61f5fbbfd720") - kind("StaticLib") - language("C") - includedirs({ - "aes_128", - }) - files({ - "aes_128/unroll/aes.c", - }) diff --git a/third_party/capstone.lua b/third_party/capstone.lua deleted file mode 100644 index ee8aea191..000000000 --- a/third_party/capstone.lua +++ /dev/null @@ -1,36 +0,0 @@ -group("third_party") -project("capstone") - uuid("b3a89f7e-bb02-4945-ae75-219caed6afa2") - kind("StaticLib") - language("C") - defines({ - "CAPSTONE_X86_ATT_DISABLE", - "CAPSTONE_HAS_X86", - "CAPSTONE_USE_SYS_DYN_MEM", - }) - - includedirs({ - "capstone", - "capstone/include", - }) - files({ - "capstone/cs.c", - "capstone/MCInst.c", - "capstone/MCInstrDesc.c", - "capstone/MCRegisterInfo.c", - "capstone/SStream.c", - "capstone/utils.c", - "capstone/Mapping.c", - - "capstone/arch/X86/*.c", - "capstone/arch/X86/*.h", - "capstone/arch/X86/*.inc", - }) - force_compile_as_c({ - "capstone/**.c", - "capstone/arch/X86/**.c", - }) - removefiles({ - "capstone/arch/X86/X86ATTInstPrinter.c", - "capstone/arch/X86/*reduce.inc", - }) diff --git a/third_party/cxxopts.lua b/third_party/cxxopts.lua deleted file mode 100644 index a54899457..000000000 --- a/third_party/cxxopts.lua +++ /dev/null @@ -1,14 +0,0 @@ -group("third_party") -project("cxxopts") - uuid("8b68cbe8-2da4-4f28-be14-9352eafa3168") - if os.istarget("android") then - -- ndk-build only supports StaticLib and SharedLib. - kind("StaticLib") - else - kind("Utility") - end - language("C++") - files({ - "cxxopts/include/cxxopts.hpp", - }) - warnings("Off") diff --git a/third_party/discord-rpc.lua b/third_party/discord-rpc.lua deleted file mode 100644 index 52776718b..000000000 --- a/third_party/discord-rpc.lua +++ /dev/null @@ -1,36 +0,0 @@ -group("third_party") -project("discord-rpc") - uuid("012f6131-efc0-4abd-852d-a33640732d4c") - kind("StaticLib") - language("C++") - defines({ - "RAPIDJSON_SSE42", - -- "RAPIDJSON_NEON", - }) - includedirs({ - "discord-rpc/include", - "rapidjson/include" - }) - files({ - "discord-rpc/src/connection.h", - "discord-rpc/src/discord_rpc.cpp", - "discord-rpc/src/msg_queue.h", - "discord-rpc/src/rpc_connection.cpp", - "discord-rpc/src/rpc_connection.h", - "discord-rpc/src/serialization.cpp", - "discord-rpc/src/serialization.h" - }) - filter("platforms:Linux") - files({ - "discord-rpc/src/connection_unix.cpp", - "discord-rpc/src/discord_register_linux.cpp" - }) - filter("platforms:Mac") - files({ - "discord-rpc/src/discord_register_osx.m" - }) - filter("platforms:Windows") - files({ - "discord-rpc/src/connection_win.cpp", - "discord-rpc/src/discord_register_win.cpp" - }) diff --git a/third_party/dxbc.lua b/third_party/dxbc.lua deleted file mode 100644 index 83f48eb1a..000000000 --- a/third_party/dxbc.lua +++ /dev/null @@ -1,11 +0,0 @@ -group("third_party") -project("dxbc") - uuid("c96688ca-51ca-406e-aeef-068734a67abe") - kind("StaticLib") - language("C++") - includedirs({ - "dxbc", - }) - files({ - "dxbc/DXBCChecksum.cpp", - }) diff --git a/third_party/ffmpeg-xenia/premake5.lua b/third_party/ffmpeg-xenia/premake5.lua deleted file mode 100644 index dd5c773bb..000000000 --- a/third_party/ffmpeg-xenia/premake5.lua +++ /dev/null @@ -1,42 +0,0 @@ -group("third_party") - --- --- Call this function in subproject scope to set the needed include --- dirs and defines. --- -function ffmpeg_common() - defines({ - "HAVE_AV_CONFIG_H", - "_USE_MATH_DEFINES", -- For M_PI/etc - }) - - -- Paths are relative to the calling script (sub-library premake files), - -- which are one level deeper (e.g. libavcodec/premake5.lua). - includedirs({ - "..", -- ffmpeg-xenia/ (config.h, avconfig.h, ffversion.h) - "../../FFmpeg", -- FFmpeg source headers - }) - filter({"platforms:Windows", "configurations:Debug or configurations:Checked"}) - optimize("Size") -- dead code elimination is mandatory - removebuildoptions({ - "/RTCsu", -- '/O1' and '/RTCs' command-line options are incompatible - }) - filter({"platforms:Windows", "configurations:Release"}) - linktimeoptimization("Off") - filter("platforms:Windows") - includedirs({ - "../../FFmpeg/compat/atomics/win32", - }) - links({ - "bcrypt", - }) - filter("platforms:Linux") - includedirs({ - "../../FFmpeg/compat/atomics/gcc", - }) - filter({}) -end - -include("libavcodec/premake5.lua") -include("libavformat/premake5.lua") -include("libavutil/premake5.lua") diff --git a/third_party/fmt.lua b/third_party/fmt.lua deleted file mode 100644 index 1be2a91bf..000000000 --- a/third_party/fmt.lua +++ /dev/null @@ -1,13 +0,0 @@ -group("third_party") -project("fmt") - uuid("b9ff4b2c-b438-42a9-971e-e0c19a711a13") - kind("StaticLib") - language("C++") - - includedirs({ - "fmt/include", - }) - files({ - "fmt/src/format.cc", - "fmt/src/os.cc" - }) diff --git a/third_party/glslang-spirv.lua b/third_party/glslang-spirv.lua deleted file mode 100644 index 80811444b..000000000 --- a/third_party/glslang-spirv.lua +++ /dev/null @@ -1,20 +0,0 @@ -group("third_party") -project("glslang-spirv") - uuid("1cc8f45e-91e2-4daf-a55e-666bf8b5e6b2") - kind("StaticLib") - language("C++") - - includedirs({ - "glslang", - }) - - files({ - "glslang/SPIRV/*.cpp", - "glslang/SPIRV/*.h", - "glslang/SPIRV/*.hpp11", - "glslang/glslang/Include/visibility.h", - }) - - removefiles({ - "glslang/SPIRV/GlslangToSpv.cpp", - }) diff --git a/third_party/imgui.lua b/third_party/imgui.lua deleted file mode 100644 index 410f93579..000000000 --- a/third_party/imgui.lua +++ /dev/null @@ -1,19 +0,0 @@ -group("third_party") -project("imgui") - uuid("ed9271c4-b0a1-42ef-8403-067b11bf49d0") - kind("StaticLib") - language("C++") - includedirs({ - "imgui", - --"imgui/misc/freetype", - --"freetype/include", - "stb", - }) - files({ - "imgui/imgui.cpp", - "imgui/imgui_demo.cpp", - "imgui/imgui_draw.cpp", - "imgui/imgui_tables.cpp", - "imgui/imgui_widgets.cpp", - --"imgui/misc/freetype/imgui_freetype.cpp", - }) diff --git a/third_party/libusb.lua b/third_party/libusb.lua deleted file mode 100644 index d053b8cb6..000000000 --- a/third_party/libusb.lua +++ /dev/null @@ -1,47 +0,0 @@ -group("third_party") -project("libusb") - uuid("5f8b5485-fde5-4a42-8a13-8545fcf6d25b") - kind("StaticLib") - language("C") - includedirs({ - "libusb/libusb", - }) - - files({ - "libusb/libusb/core.c", - "libusb/libusb/descriptor.c", - "libusb/libusb/hotplug.c", - "libusb/libusb/io.c", - "libusb/libusb/strerror.c", - "libusb/libusb/sync.c", - }) - - filter({"platforms:Windows"}) - includedirs({ - "libusb/msvc", - }) - files({ - "libusb/libusb/os/events_windows.c", - "libusb/libusb/os/events_windows.h", - "libusb/libusb/os/threads_windows.c", - "libusb/libusb/os/threads_windows.h", - "libusb/libusb/os/windows_common.c", - "libusb/libusb/os/windows_common.h", - "libusb/libusb/os/windows_usbdk.c", - "libusb/libusb/os/windows_usbdk.h", - "libusb/libusb/os/windows_winusb.c", - "libusb/libusb/os/windows_winusb.h" - }) - - filter({"platforms:Linux"}) - files({ - "libusb/libusb/config.h", - "libusb/libusb/os/events_posix.c", - "libusb/libusb/os/events_posix.h", - "libusb/libusb/os/threads_posix.c", - "libusb/libusb/os/threads_posix.h", - "libusb/libusb/os/linux_netlink.c", - "libusb/libusb/os/linux_udev.c", - "libusb/libusb/os/linux_usbfs.c", - "libusb/libusb/os/linux_usbfs.h" - }) diff --git a/third_party/mspack.lua b/third_party/mspack.lua deleted file mode 100644 index 862ad71d0..000000000 --- a/third_party/mspack.lua +++ /dev/null @@ -1,19 +0,0 @@ -group("third_party") -project("mspack") - uuid("0881692A-75A1-4E7B-87D8-BB9108CEDEA4") - kind("StaticLib") - language("C++") - links({ - "xenia-base", - }) - defines({ - "HAVE_CONFIG_H", - }) - includedirs({ - "mspack", - }) - files({ - "mspack/logging.cc", - "mspack/lzxd.c", - "mspack/system.c", - }) diff --git a/third_party/pugixml.lua b/third_party/pugixml.lua deleted file mode 100644 index 4b7f97a1b..000000000 --- a/third_party/pugixml.lua +++ /dev/null @@ -1,8 +0,0 @@ -group("third_party") -project("pugixml") - uuid("d1089e5e-46ae-48c9-bee6-d38c674c8f61") - kind("StaticLib") - language("C++") - files({ - "pugixml/src/pugixml.cpp", - }) diff --git a/third_party/snappy.lua b/third_party/snappy.lua deleted file mode 100644 index 2d338362b..000000000 --- a/third_party/snappy.lua +++ /dev/null @@ -1,23 +0,0 @@ -group("third_party") -project("snappy") - uuid("bb143d61-3fd4-44c2-8b7e-04cc538ba2c7") - kind("StaticLib") - language("C++") - - files({ - "snappy/snappy-internal.h", - "snappy/snappy-sinksource.cc", - "snappy/snappy-sinksource.h", - "snappy/snappy-stubs-internal.cc", - "snappy/snappy-stubs-internal.h", - "snappy/snappy-stubs-public.h", - "snappy/snappy.cc", - "snappy/snappy.h", - }) - - local snappy_dir = path.getabsolute("snappy") - if not os.isfile(path.join(snappy_dir, "snappy-stubs-public.h")) then - prebuildcommands({ - "cmake -DSNAPPY_BUILD_TESTS=OFF -DSNAPPY_BUILD_BENCHMARKS=OFF -DSNAPPY_REQUIRE_AVX=ON "..snappy_dir.." -B"..snappy_dir - }) - end diff --git a/third_party/tomlplusplus.lua b/third_party/tomlplusplus.lua deleted file mode 100644 index 25860b01c..000000000 --- a/third_party/tomlplusplus.lua +++ /dev/null @@ -1,13 +0,0 @@ -group("third_party") -project("tomlplusplus") - uuid("1e86cc51-3f8b-476d-9249-3b200424846b") - if os.istarget("android") then - -- ndk-build only supports StaticLib and SharedLib. - kind("StaticLib") - else - kind("Utility") - end - language("C++") - files({ - "tomlplusplus/include/toml++/toml.hpp" - }) diff --git a/third_party/xxhash.lua b/third_party/xxhash.lua deleted file mode 100644 index a6bb1f873..000000000 --- a/third_party/xxhash.lua +++ /dev/null @@ -1,11 +0,0 @@ -group("third_party") -project("xxhash") - uuid("40d4ce21-5448-4399-9f98-589b7e1c23b1") - kind("StaticLib") - language("C") - includedirs({ - "xxhash", - }) - files({ - "xxhash/xxhash.c", - }) diff --git a/third_party/zarchive.lua b/third_party/zarchive.lua deleted file mode 100644 index 7856bd81f..000000000 --- a/third_party/zarchive.lua +++ /dev/null @@ -1,21 +0,0 @@ -group("third_party") -project("zarchive") - uuid("d32f03aa-f0c9-11ed-a05b-0242ac120003") - kind("StaticLib") - language("C++") - links({ - "zstd", - }) - includedirs({ - "zarchive/include", - "zstd/lib", - }) - files({ - "zarchive/include/zarchive/zarchivecommon.h", - "zarchive/include/zarchive/zarchivereader.h", - "zarchive/include/zarchive/zarchivewriter.h", - "zarchive/src/zarchivereader.cpp", - "zarchive/src/zarchivewriter.cpp", - "zarchive/src/sha_256.c", - "zarchive/src/sha_256.h", - }) diff --git a/third_party/zlib-ng.lua b/third_party/zlib-ng.lua deleted file mode 100644 index 9884307c2..000000000 --- a/third_party/zlib-ng.lua +++ /dev/null @@ -1,63 +0,0 @@ -group("third_party") -project("zlib-ng") - uuid("13d4073d-f1c9-47e3-a057-79b133596fc2") - kind("StaticLib") - language("C") - - defines({ - "X86_FEATURES", - "X86_HAVE_XSAVE_INTRIN", - "X86_SSSE3", - "X86_SSE42", - "WITH_GZFILEOP", - }) - if os.istarget("windows") then - defines({ - "X86_SSE2", - "X86_AVX2", - "X86_AVX512", - "X86_AVX512VNNI", - "X86_PCLMULQDQ_CRC", - "X86_VPCLMULQDQ_CRC", - }) - end - - files({ - "zlib-ng/*.c", - "zlib-ng/arch/x86/*.c", - "zlib-ng/arch/generic/*.c", - }) - if not os.istarget("windows") then - removefiles({ - "zlib-ng/arch/x86/adler32_avx2.c", - "zlib-ng/arch/x86/adler32_avx512.c", - "zlib-ng/arch/x86/adler32_avx512_vnni.c", - "zlib-ng/arch/x86/chunkset_avx2.c", - "zlib-ng/arch/x86/compare256_avx2.c", - "zlib-ng/arch/x86/crc32_pclmulqdq.c", - "zlib-ng/arch/x86/crc32_vpclmulqdq.c", - "zlib-ng/arch/x86/slide_hash_avx2.c", - }) - end - - includedirs({ - "zlib-ng", - }) - - local zlibng_dir = path.getabsolute("zlib-ng") - local zlibng_h_src_files = { - path.join(zlibng_build_dir, "zlib-ng.h"), - path.join(zlibng_build_dir, "zconf-ng.h"), - path.join(zlibng_build_dir, "zlib_name_mangling-ng.h"), - path.join(zlibng_build_dir, "gzread.c"), - } - for i = 1,#zlibng_h_src_files,1 - do - if not os.isfile(path.join(zlibng_dir, zlibng_h_src_files[i])) then - zlibng_build = true - break - end - end - if zlibng_build then - os.execute("cmake -DZLIB_ENABLE_TESTS=OFF -DWITH_GTEST=OFF "..zlibng_dir.." -B"..zlibng_dir) - end diff --git a/third_party/zstd.lua b/third_party/zstd.lua deleted file mode 100644 index 8761de8af..000000000 --- a/third_party/zstd.lua +++ /dev/null @@ -1,11 +0,0 @@ -include("third_party/zstd/contrib/premake/zstd.lua") - -group("third_party") -project("zstd") - uuid("df336aac-f0c8-11ed-a05b-0242ac120003") - -- https://gitlab.kitware.com/cmake/cmake/-/issues/25744 - filter({"toolset:not msc"}) - defines({ - "ZSTD_DISABLE_ASM", - }) - project_zstd("zstd/lib/") diff --git a/tools/build/bin/premake5.exe b/tools/build/bin/premake5.exe deleted file mode 100644 index 52ae09d3b71f7785a10aef11b01761a3a2ff682a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1318400 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

`%%nXhGD-JnyhPF{wG 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

8g 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

`7EDs4=kzNz#j18}XKz#-iaFZRh8NO8y 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 z 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�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

    R#F7YW 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⁣U+6vIUm_-VZ@h;@vDrl25 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

    RK+a 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 z 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 0: - version = int(vswhere[0].get("catalog", {}).get("productLineVersion", 2022)) - install_path = vswhere[0].get("installationPath", None) - - vsdevcmd_path = os.path.join(install_path, "Common7", "Tools", "VsDevCmd.bat") - if os.access(vsdevcmd_path, os.X_OK): - env_tool_args = [vsdevcmd_path, "-arch=amd64", "-host_arch=amd64", "&&", "set"] - else: - vcvars_path = os.path.join(install_path, "VC", "Auxiliary", "Build", "vcvarsall.bat") - env_tool_args = [vcvars_path, "x64", "&&", "set"] - - if not version: - return None - - import_subprocess_environment(env_tool_args) - os.environ["VSVERSION"] = f"{version}" - return version - - -def import_subprocess_environment(args): - popen = subprocess.Popen( - args, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True) - variables, _ = popen.communicate() - envvars_to_save = ( - "devenvdir", - "include", - "lib", - "libpath", - "path", - "pathext", - "systemroot", - "temp", - "tmp", - "vcinstalldir", - "windowssdkdir", - ) - for line in variables.splitlines(): - for envvar in envvars_to_save: - if f"{envvar}=" in line.lower(): - var, setting = line.split("=", 1) - if envvar == "path": - setting = f"{os.path.dirname(sys.executable)}{os.pathsep}{setting}" - os.environ[var.upper()] = setting - break - -if __name__ == "__main__": - main() diff --git a/tools/build/premake5.lua b/tools/build/premake5.lua deleted file mode 100644 index 6f99284e4..000000000 --- a/tools/build/premake5.lua +++ /dev/null @@ -1,9 +0,0 @@ -require("vstudio") - -include("scripts/build_paths.lua") -include("scripts/force_compile_as_c.lua") -include("scripts/force_compile_as_cc.lua") -include("scripts/pkg_config.lua") -include("scripts/platform_files.lua") -include("scripts/single_library.lua") -include("scripts/test_suite.lua") diff --git a/tools/build/scripts/build_paths.lua b/tools/build/scripts/build_paths.lua deleted file mode 100644 index 5daa73a3f..000000000 --- a/tools/build/scripts/build_paths.lua +++ /dev/null @@ -1,16 +0,0 @@ -build_root = "build" -build_bin = build_root .. "/bin/%{cfg.platform}/%{cfg.buildcfg}" -build_gen = build_root .. "/gen/%{cfg.platform}/%{cfg.buildcfg}" -build_obj = build_root .. "/obj/%{cfg.platform}/%{cfg.buildcfg}" - -build_tools = "tools/build" -build_scripts = build_tools .. "/scripts" -build_tools_src = build_tools .. "/src" - -if os.istarget("android") then - platform_suffix = "android" -elseif os.istarget("windows") then - platform_suffix = "win" -else - platform_suffix = "posix" -end diff --git a/tools/build/scripts/force_compile_as_c.lua b/tools/build/scripts/force_compile_as_c.lua deleted file mode 100644 index 30de988e9..000000000 --- a/tools/build/scripts/force_compile_as_c.lua +++ /dev/null @@ -1,32 +0,0 @@ -if premake.override then - local forced_c_files = {} - - -- Forces all of the given .c and .cc files to be compiled as if they were C. - function force_compile_as_c(files) - for _, val in ipairs(files) do - for _, fname in ipairs(os.matchfiles(val)) do - table.insert(forced_c_files, path.getabsolute(fname)) - end - end - end - - -- for gmake - premake.override(path, "iscfile", function(base, fname) - if table.contains(forced_c_files, fname) then - return true - else - return base(fname) - end - end) - -- for msvc - premake.override(premake.vstudio.vc2010, "additionalCompileOptions", function(base, cfg, condition) - if cfg.abspath and table.contains(forced_c_files, cfg.abspath) then - if condition == nil or condition == '' then - _p(3,'CompileAsC') - else - _p(3,'CompileAsC', condition) - end - end - return base(cfg, condition) - end) -end diff --git a/tools/build/scripts/force_compile_as_cc.lua b/tools/build/scripts/force_compile_as_cc.lua deleted file mode 100644 index c7a15cef0..000000000 --- a/tools/build/scripts/force_compile_as_cc.lua +++ /dev/null @@ -1,32 +0,0 @@ -if premake.override then - local forced_cc_files = {} - - -- Forces all of the given .c files to be compiled as if they were C++. - function force_compile_as_cc(files) - for _, val in ipairs(files) do - for _, fname in ipairs(os.matchfiles(val)) do - table.insert(forced_cc_files, path.getabsolute(fname)) - end - end - end - - -- for gmake - premake.override(path, "iscfile", function(base, fname) - if table.contains(forced_cc_files, fname) then - return false - else - return base(fname) - end - end) - -- for msvc - premake.override(premake.vstudio.vc2010, "additionalCompileOptions", function(base, cfg, condition) - if cfg.abspath and table.contains(forced_cc_files, cfg.abspath) then - if condition == nil or condition == '' then - _p(3,'CompileAsCpp') - else - _p(3,'CompileAsCpp', condition) - end - end - return base(cfg, condition) - end) -end diff --git a/tools/build/scripts/pkg_config.lua b/tools/build/scripts/pkg_config.lua deleted file mode 100644 index bc83ae1c0..000000000 --- a/tools/build/scripts/pkg_config.lua +++ /dev/null @@ -1,45 +0,0 @@ --- Helper methods to use the system pkg-config utility - -pkg_config = {} - -local function pkg_config_call(lib, what) - local result, code = os.outputof("pkg-config --"..what.." "..lib) - if result then - return result - else - error("Failed to run 'pkg-config' for library '"..lib.."'. Are the development files installed?") - end -end - -function pkg_config.cflags(lib) - if not os.istarget("linux") then - return - end - buildoptions({ - pkg_config_call(lib, "cflags"), - }) -end - -function pkg_config.lflags(lib) - if not os.istarget("linux") then - return - end - linkoptions({ - pkg_config_call(lib, "libs-only-L"), - pkg_config_call(lib, "libs-only-other"), - }) - -- We can't just drop the stdout of the `--libs` command in - -- linkoptions because library order matters - local output = pkg_config_call(lib, "libs-only-l") - for k, flag in next, string.explode(output, " ") do - -- remove "-l" - if flag ~= "" then - links(string.sub(flag, 3)) - end - end -end - -function pkg_config.all(lib) - pkg_config.cflags(lib) - pkg_config.lflags(lib) -end diff --git a/tools/build/scripts/platform_files.lua b/tools/build/scripts/platform_files.lua deleted file mode 100644 index 1e243731e..000000000 --- a/tools/build/scripts/platform_files.lua +++ /dev/null @@ -1,71 +0,0 @@ -include("build_paths.lua") -include("util.lua") - -local function match_platform_files(base_path, base_match) - files({ - base_path.."/"..base_match..".h", - base_path.."/"..base_match..".c", - base_path.."/"..base_match..".cc", - base_path.."/"..base_match..".cpp", - base_path.."/"..base_match..".inc", - }) - removefiles({ - base_path.."/".."**_main.cc", - base_path.."/".."**_test.cc", - base_path.."/".."**_posix.h", - base_path.."/".."**_posix.cc", - base_path.."/".."**_linux.h", - base_path.."/".."**_linux.cc", - base_path.."/".."**_gnulinux.h", - base_path.."/".."**_gnulinux.cc", - base_path.."/".."**_x11.h", - base_path.."/".."**_x11.cc", - base_path.."/".."**_gtk.h", - base_path.."/".."**_gtk.cc", - base_path.."/".."**_android.h", - base_path.."/".."**_android.cc", - base_path.."/".."**_mac.h", - base_path.."/".."**_mac.cc", - base_path.."/".."**_win.h", - base_path.."/".."**_win.cc", - }) - filter("platforms:Windows") - files({ - base_path.."/"..base_match.."_win.h", - base_path.."/"..base_match.."_win.cc", - }) - filter("platforms:Linux or Android-*") - files({ - base_path.."/"..base_match.."_posix.h", - base_path.."/"..base_match.."_posix.cc", - base_path.."/"..base_match.."_linux.h", - base_path.."/"..base_match.."_linux.cc", - }) - filter("platforms:Linux") - files({ - base_path.."/"..base_match.."_gnulinux.h", - base_path.."/"..base_match.."_gnulinux.cc", - base_path.."/"..base_match.."_x11.h", - base_path.."/"..base_match.."_x11.cc", - base_path.."/"..base_match.."_gtk.h", - base_path.."/"..base_match.."_gtk.cc", - }) - filter("platforms:Android-*") - files({ - base_path.."/"..base_match.."_android.h", - base_path.."/"..base_match.."_android.cc", - }) - filter({}) -end - --- Adds all .h and .cc files in the current path that match the current platform --- suffix (_win, etc). -function local_platform_files(base_path) - match_platform_files(base_path or ".", "*") -end - --- Adds all .h and .cc files in the current path and all subpaths that match --- the current platform suffix (_win, etc). -function recursive_platform_files(base_path) - match_platform_files(base_path or ".", "**") -end diff --git a/tools/build/scripts/single_library.lua b/tools/build/scripts/single_library.lua deleted file mode 100644 index 50f60f2cf..000000000 --- a/tools/build/scripts/single_library.lua +++ /dev/null @@ -1,20 +0,0 @@ -SINGLE_LIBRARY_PLATFORM_PATTERNS = { - "Android-*", -}; - -SINGLE_LIBRARY_FILTER = - "platforms:" .. table.concat(SINGLE_LIBRARY_PLATFORM_PATTERNS, " or "); -NOT_SINGLE_LIBRARY_FILTER = table.translate( - SINGLE_LIBRARY_PLATFORM_PATTERNS, - function(pattern) - return "platforms:not " .. pattern; - end); - -function single_library_windowed_app_kind() - filter(SINGLE_LIBRARY_FILTER); - kind("StaticLib"); - wholelib("On"); - filter(NOT_SINGLE_LIBRARY_FILTER); - kind("WindowedApp"); - filter({}); -end diff --git a/tools/build/scripts/test_suite.lua b/tools/build/scripts/test_suite.lua deleted file mode 100644 index 2ef600995..000000000 --- a/tools/build/scripts/test_suite.lua +++ /dev/null @@ -1,99 +0,0 @@ -include("build_paths.lua") -include("util.lua") - -newoption({ - trigger = "test-suite-mode", - description = "Whether to merge all tests in a test_suite into a single project", - value = "MODE", - allowed = { - { "individual", "One binary per test." }, - { "combined", "One binary per test suite (default)." }, - }, -}) - -local function combined_test_suite(test_suite_name, project_root, base_path, config) - group("tests") - project(test_suite_name) - kind("ConsoleApp") - language("C++") - includedirs(merge_arrays(config["includedirs"], { - project_root.."/"..build_tools, - project_root.."/"..build_tools_src, - project_root.."/"..build_tools.."/third_party/catch/include", - })) - libdirs(merge_arrays(config["libdirs"], { - project_root.."/"..build_bin, - })) - links(config["links"]) - if config.filtered_links ~= nil then - for _, filtered_links in ipairs(config.filtered_links) do - filter(filtered_links.filter) - links(filtered_links.links) - end - filter({}) - end - defines({ - "XE_TEST_SUITE_NAME=\""..test_suite_name.."\"", - }) - files({ - project_root.."/"..build_tools_src.."/test_suite_main.cc", - project_root.."/src/xenia/base/console_app_main_"..platform_suffix..".cc", - base_path.."/**_test.cc", - }) - filter("toolset:msc") - -- Edit and Continue in MSVC can cause the __LINE__ macro to produce - -- invalid values, which breaks the usability of Catch2 output on - -- failed tests. - editAndContinue("Off") -end - -local function split_test_suite(test_suite_name, project_root, base_path, config) - local test_paths = os.matchfiles(base_path.."/**_test.cc") - for _, file_path in pairs(test_paths) do - local test_name = file_path:match("(.*).cc") - group("tests/"..test_suite_name) - project(test_suite_name.."-"..test_name) - kind("ConsoleApp") - language("C++") - includedirs(merge_arrays(config["includedirs"], { - project_root.."/"..build_tools, - project_root.."/"..build_tools_src, - project_root.."/"..build_tools.."/third_party/catch/include", - })) - libdirs(merge_arrays(config["libdirs"], { - project_root.."/"..build_bin, - })) - links(config["links"]) - if config.filtered_links ~= nil then - for _, filtered_links in ipairs(config.filtered_links) do - filter(filtered_links.filter) - links(filtered_links.links) - end - filter({}) - end - files({ - project_root.."/"..build_tools_src.."/test_suite_main.cc", - file_path, - }) - filter("toolset:msc") - -- Edit and Continue in MSVC can cause the __LINE__ macro to produce - -- invalid values, which breaks the usability of Catch2 output on - -- failed tests. - editAndContinue("Off") - end -end - --- Defines a test suite binary. --- Can either be a single binary with all tests or one binary per test based on --- the --test-suite-mode= option. -function test_suite( - test_suite_name, -- Project or group name for the entire suite. - project_root, -- Project root path (with build_tools/ under it). - base_path, -- Base source path to search for _test.cc files. - config) -- Include/lib directories and links for binaries. - if _OPTIONS["test-suite-mode"] == "individual" then - split_test_suite(test_suite_name, project_root, base_path, config) - else - combined_test_suite(test_suite_name, project_root, base_path, config) - end -end diff --git a/tools/build/scripts/util.lua b/tools/build/scripts/util.lua deleted file mode 100644 index c220d46de..000000000 --- a/tools/build/scripts/util.lua +++ /dev/null @@ -1,50 +0,0 @@ --- Prints a table and all of its contents. -function print_r(t) - local print_r_cache={} - local function sub_print_r(t, indent) - if (print_r_cache[tostring(t)]) then - print(indent.."*"..tostring(t)) - else - print_r_cache[tostring(t)]=true - if (type(t)=="table") then - for pos,val in pairs(t) do - if (type(val)=="table") then - print(indent.."["..pos.."] => "..tostring(t).." {") - sub_print_r(val,indent..string.rep(" ",string.len(pos)+8)) - print(indent..string.rep(" ",string.len(pos)+6).."}") - elseif (type(val)=="string") then - print(indent.."["..pos..'] => "'..val..'"') - else - print(indent.."["..pos.."] => "..tostring(val)) - end - end - else - print(indent..tostring(t)) - end - end - end - if (type(t)=="table") then - print(tostring(t).." {") - sub_print_r(t," ") - print("}") - else - sub_print_r(t," ") - end - print() -end - --- Merges two tables and returns the resulting table. -function merge_tables(t1, t2) - local result = {} - for k,v in pairs(t1 or {}) do result[k] = v end - for k,v in pairs(t2 or {}) do result[k] = v end - return result -end - --- Merges to arrays and returns the resulting array. -function merge_arrays(t1, t2) - local result = {} - for k,v in pairs(t1 or {}) do result[#result + 1] = v end - for k,v in pairs(t2 or {}) do result[#result + 1] = v end - return result -end diff --git a/xenia-build.py b/xenia-build.py index a98c39e14..18388b4cf 100755 --- a/xenia-build.py +++ b/xenia-build.py @@ -413,7 +413,7 @@ def generate_version_h(): commit_short = ":(" # header - contents_new = f"""// Autogenerated by `xb premake`. + contents_new = f"""// Autogenerated by xenia-build.py. #ifndef GENERATED_VERSION_H_ #define GENERATED_VERSION_H_ #define XE_BUILD_BRANCH "{branch_name}" @@ -626,58 +626,31 @@ def get_clang_format_binary(): sys.exit(1) -def get_premake_target_os(target_os_override=None): - """Gets the target --os to pass to premake, either for the current platform - or for the user-specified cross-compilation target. +def run_cmake_configure(build_type="Release", cc=None): + """Runs cmake configure on the project. Args: - target_os_override: override specified by the user for cross-compilation, - or None to target the host platform. + build_type: Build configuration (Debug, Release, Checked). + cc: C compiler to use (e.g. 'clang', 'gcc'). Returns: - Target --os to pass to premake. If a return value of this function valid - for the current configuration is passed to it again, the same value will - be returned. - """ - if sys.platform == "darwin": - target_os = "macosx" - elif sys.platform == "win32": - target_os = "windows" - elif host_linux_platform_is_android: - target_os = "android" - else: - target_os = "linux" - if target_os_override and target_os_override != target_os: - if target_os_override == "android": - target_os = target_os_override - else: - print_error( - "cross-compilation is only supported for Android target") - sys.exit(1) - return target_os - - -def run_premake(target_os, action, cc=None): - """Runs premake on the main project with the given format. - - Args: - target_os: target --os to pass to premake. - action: action to perform. + Return code from cmake. """ args = [ - sys.executable, - os.path.join("tools", "build", "premake.py"), - "--file=premake5.lua", - f"--os={target_os}", - "--test-suite-mode=combined", - "--verbose", - action, + "cmake", + "-S", ".", + "-B", "build", + "-G", "Ninja Multi-Config", ] - if not cc: - cc = get_cc(cc=cc) - - if cc: - args.insert(4, f"--cc={cc}") + if sys.platform != "win32": + if not cc: + cc = get_cc(cc=cc) + c_compiler = cc or os.environ.get("CC", "clang") + cxx_compiler = (cc + "++") if cc else os.environ.get("CXX", "clang++") + args += [ + f"-DCMAKE_C_COMPILER={c_compiler}", + f"-DCMAKE_CXX_COMPILER={cxx_compiler}", + ] ret = subprocess.call(args) @@ -687,29 +660,6 @@ def run_premake(target_os, action, cc=None): return ret -def run_platform_premake(target_os_override=None, cc=None, devenv=None): - """Runs all gyp configurations. - """ - target_os = get_premake_target_os(target_os_override) - if not devenv: - if target_os == "macosx": - devenv = "xcode4" - elif target_os == "windows": - vs_version = os.getenv("VSVERSION", VSVERSION_MINIMUM) - # VS 2026 preview reports as vs18, map to vs2022 for premake - # as it doesn't yet have a vs2026 target - if vs_version == "18": - vs_version = "2022" - devenv = f"vs{vs_version}" - elif target_os == "android": - devenv = "androidndk" - else: - devenv = "cmake" - if not cc: - cc = get_cc(cc=cc) - return run_premake(target_os=target_os, action=devenv, cc=cc) - - def get_build_bin_path(args): """Returns the path of the bin/ path with build results based on the configuration specified in the parsed arguments. @@ -720,13 +670,10 @@ def get_build_bin_path(args): Returns: A full path for the bin folder. """ - if sys.platform == "darwin": - platform = "macosx" - elif sys.platform == "win32": - platform = "windows" - else: - platform = "linux" - return os.path.join(self_path, "build", "bin", platform.capitalize(), args["config"].capitalize()) + config = args["config"].title() + platform = "Windows" if sys.platform == "win32" else "Linux" + # Multi-config: build/bin// + return os.path.join(self_path, "build", "bin", platform, config) def create_clion_workspace(): @@ -743,7 +690,7 @@ def create_clion_workspace(): with open(os.path.join(".idea", "misc.xml"), "w") as f: f.write(""" - + @@ -845,9 +792,6 @@ class SetupCommand(Command): name="setup", help_short="Setup the build environment.", *args, **kwargs) - self.parser.add_argument( - "--target_os", default=None, - help="Target OS passed to premake, for cross-compilation") def execute(self, args, pass_args, cwd): print("Setting up the build environment...\n") @@ -859,8 +803,8 @@ class SetupCommand(Command): else: print_warning("Git not available or not a repository. Dependencies may be missing.") - print("\n- running premake...") - ret = run_platform_premake(target_os_override=args["target_os"]) + print("\n- running cmake configure...") + ret = run_cmake_configure() print_status(ResultStatus.SUCCESS if not ret else ResultStatus.FAILURE) return ret @@ -878,9 +822,6 @@ class PullCommand(Command): self.parser.add_argument( "--merge", action="store_true", help=f"Merges on {default_branch} instead of rebasing.") - self.parser.add_argument( - "--target_os", default=None, - help="Target OS passed to premake, for cross-compilation") def execute(self, args, pass_args, cwd): print("Pulling...\n") @@ -910,36 +851,29 @@ class PullCommand(Command): git_submodule_update() print("") - print("- running premake...") - if run_platform_premake(target_os_override=args["target_os"]) == 0: + print("- running cmake configure...") + if run_cmake_configure() == 0: print_status(ResultStatus.SUCCESS) return 0 class PremakeCommand(Command): - """'premake' command. + """'premake' command (now runs cmake configure). """ def __init__(self, subparsers, *args, **kwargs): super(PremakeCommand, self).__init__( subparsers, name="premake", - help_short="Runs premake to update all projects.", + help_short="Runs cmake configure to update all projects.", *args, **kwargs) self.parser.add_argument( - "--cc", choices=["clang", "gcc", "msc"], default=None, help="Compiler toolchain passed to premake") - self.parser.add_argument( - "--devenv", default=None, help="Development environment") - self.parser.add_argument( - "--target_os", default=None, - help="Target OS passed to premake, for cross-compilation") + "--cc", choices=["clang", "gcc", "msc"], default=None, help="Compiler toolchain") def execute(self, args, pass_args, cwd): - # Update premake. If no binary found, it will be built from source. - print("Running premake...\n") - ret = run_platform_premake(target_os_override=args["target_os"], - cc=args["cc"], devenv=args["devenv"]) + print("Running cmake configure...\n") + ret = run_cmake_configure(cc=args["cc"]) print_status(ResultStatus.SUCCESS if not ret else ResultStatus.FAILURE) return ret @@ -954,7 +888,7 @@ class BaseBuildCommand(Command): subparsers, *args, **kwargs) self.parser.add_argument( - "--cc", choices=["clang", "gcc", "msc"], default=None, help="Compiler toolchain passed to premake") + "--cc", choices=["clang", "gcc", "msc"], default=None, help="Compiler toolchain") self.parser.add_argument( "--config", choices=["checked", "debug", "release"], default="debug", type=str.lower, help="Chooses the build configuration.") @@ -966,69 +900,32 @@ class BaseBuildCommand(Command): help="Forces a full rebuild.") self.parser.add_argument( "--no_premake", action="store_true", - help="Skips running premake before building.") + help="Skips running cmake configure before building.") def execute(self, args, pass_args, cwd): + config = args["config"].title() + if not args["no_premake"]: - print("- running premake...") - run_platform_premake(cc=args["cc"]) + print("- running cmake configure...") + run_cmake_configure(build_type=config, cc=args["cc"]) print("") print("- building (%s):%s..." % ( "all" if not len(args["target"]) else ", ".join(args["target"]), args["config"])) - if sys.platform == "win32": - if not vs_version: - print_error("Visual Studio is not installed.") - result = 1 - else: - targets = None - if args["target"]: - targets = "/t:" + ";".join( - target + (":Rebuild" if args["force"] else "") - for target in args["target"]) - else: - targets = "/t:Rebuild" if args["force"] else None - - result = subprocess.call([ - "msbuild", - "build/xenia.sln", - "/nologo", - "/m", - "/v:m", - f"/p:Configuration={args['config']}", - ] + ([targets] if targets else []) + pass_args) - elif sys.platform == "darwin": - schemes = args["target"] or ["xenia-app"] - nested_args = [["-scheme", scheme] for scheme in schemes] - scheme_args = [arg for pair in nested_args for arg in pair] - result = subprocess.call([ - "xcodebuild", - "-workspace", - "build/xenia.xcworkspace", - "-configuration", - args["config"] - ] + scheme_args + pass_args, env=dict(os.environ)) - else: - result = subprocess.call([ - "cmake", - "-Sbuild", - f"-Bbuild/build_{args['config']}", - f"-DCMAKE_BUILD_TYPE={args['config'].title()}", - f"-DCMAKE_C_COMPILER={os.environ.get('CC', 'clang')}", - f"-DCMAKE_CXX_COMPILER={os.environ.get('CXX', 'clang++')}", - "-GNinja" - ] + pass_args, env=dict(os.environ)) - print("") - if result != 0: - print_error("cmake failed with one or more errors.") - return result - result = subprocess.call([ - "ninja", - f"-Cbuild/build_{args['config']}", - ] + pass_args, env=dict(os.environ)) - if result != 0: - print_error("ninja failed with one or more errors.") + build_args = [ + "cmake", + "--build", "build", + "--config", config, + ] + if args["target"]: + for target in args["target"]: + build_args += ["--target", target] + if args["force"]: + build_args += ["--clean-first"] + result = subprocess.call(build_args + pass_args) + if result != 0: + print_error("Build failed with one or more errors.") return result @@ -1653,14 +1550,13 @@ class CleanCommand(Command): name="clean", help_short="Removes intermediate files and build outputs.", *args, **kwargs) - self.parser.add_argument( - "--target_os", default=None, - help="Target OS passed to premake, for cross-compilation") def execute(self, args, pass_args, cwd): - print("Cleaning build artifacts...\n" - "- premake clean...") - run_premake(get_premake_target_os(args["target_os"]), "clean") + print("Cleaning build artifacts...") + # Clean all build directories + if os.path.isdir("build"): + print("- cleaning build...") + subprocess.call(["cmake", "--build", "build", "--target", "clean"]) # Also clean generated files clean_generated_files() @@ -1698,9 +1594,6 @@ class NukeCommand(Command): name="nuke", help_short="Removes all build/ output.", *args, **kwargs) - self.parser.add_argument( - "--target_os", default=None, - help="Target OS passed to premake, for cross-compilation") def execute(self, args, pass_args, cwd): print("Cleaning build artifacts...\n" @@ -1719,8 +1612,8 @@ class NukeCommand(Command): default_branch, ]) - print("\n- running premake...") - run_platform_premake(target_os_override=args["target_os"]) + print("\n- running cmake configure...") + run_cmake_configure() print_status(ResultStatus.SUCCESS) return 0 @@ -1963,15 +1856,11 @@ class TidyCommand(Command): self.parser.add_argument( "--fix", action="store_true", help="Applies suggested fixes, where possible.") - self.parser.add_argument( - "--target_os", default=None, - help="Target OS passed to premake, for cross-compilation") def execute(self, args, pass_args, cwd): - # Run premake to generate our compile_commands.json file for clang to use. - # TODO(benvanik): only do linux? whatever clang-tidy is ok with. - run_premake(get_premake_target_os(args["target_os"]), - "export-compile-commands") + # Run cmake configure to generate compile_commands.json for clang-tidy. + # Use Ninja generator which produces compile_commands.json by default. + run_cmake_configure() if sys.platform == "darwin": platform_name = "darwin" @@ -2030,9 +1919,6 @@ class StubCommand(Command): self.parser.add_argument( "--class", default=None, help="Generate a class pair (.cc/.h) at the provided location in the source tree") - self.parser.add_argument( - "--target_os", default=None, - help="Target OS passed to premake, for cross-compilation") def execute(self, args, pass_args, cwd): root = os.path.dirname(os.path.realpath(__file__)) @@ -2064,7 +1950,8 @@ class StubCommand(Command): print_error("Please specify a file/class to generate") return 1 - run_platform_premake(target_os_override=args["target_os"]) + # Reconfigure to pick up the new source file. + run_cmake_configure() return 0 class DevenvCommand(Command): @@ -2079,23 +1966,15 @@ class DevenvCommand(Command): *args, **kwargs) def execute(self, args, pass_args, cwd): - devenv = None - show_reload_prompt = False if sys.platform == "win32": if not vs_version: print_error("Visual Studio is not installed."); return 1 print("Launching Visual Studio...") - elif sys.platform == "darwin": - print("Launching Xcode...") - devenv = "xcode4" elif has_bin("clion") or has_bin("clion.sh"): print("Launching CLion...") - show_reload_prompt = create_clion_workspace() - devenv = "cmake" else: - print("Launching CodeLite...") - devenv = "codelite" + print("IDE not detected. CMakeLists.txt is in the project root.") print("\n- generating shaders...") shader_result = build_shaders() @@ -2103,37 +1982,30 @@ class DevenvCommand(Command): print_error("Shader generation failed") return shader_result - print("\n- running premake...") - run_platform_premake(devenv=devenv) + print("\n- running cmake configure...") + run_cmake_configure() print("\n- launching devenv...") - if show_reload_prompt: - print_box("Please run \"File ⇒ ↺ Reload CMake Project\" from inside the IDE!") if sys.platform == "win32": - shell_call([ - "devenv", - "build\\xenia.sln", - ]) - elif sys.platform == "darwin": - shell_call([ - "xed", - "build/xenia.xcworkspace", + # Generate a VS .sln for IDE use (normal builds still use Ninja) + vs_build_dir = os.path.join("build", "vs") + subprocess.call([ + "cmake", + "-S", ".", + "-B", vs_build_dir, + "-G", "Visual Studio 17 2022", + "-A", "x64", ]) + sln_path = os.path.join(vs_build_dir, "xenia.sln") + print(f"Opening {sln_path} in Visual Studio...") + shell_call(["devenv", sln_path]) elif has_bin("clion"): - shell_call([ - "clion", - ".", - ]) + shell_call(["clion", "."]) elif has_bin("clion.sh"): - shell_call([ - "clion.sh", - ".", - ]) + shell_call(["clion.sh", "."]) else: - shell_call([ - "codelite", - "build/xenia.workspace", - ]) + print("No supported IDE found. Open the project root in your IDE.") + print("CMakeLists.txt and CMakePresets.json are in the project root.") print("") return 0 From 2de05ef1c10115152663aec0732bb9d5fe4509ff Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:57:55 +0100 Subject: [PATCH 03/18] [3PP] Removed reference to premake modules --- third_party/premake-androidndk | 1 - third_party/premake-cmake | 1 - third_party/premake-core | 1 - third_party/premake-export-compile-commands | 1 - 4 files changed, 4 deletions(-) delete mode 160000 third_party/premake-androidndk delete mode 160000 third_party/premake-cmake delete mode 160000 third_party/premake-core delete mode 160000 third_party/premake-export-compile-commands diff --git a/third_party/premake-androidndk b/third_party/premake-androidndk deleted file mode 160000 index 35a695541..000000000 --- a/third_party/premake-androidndk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 35a6955410a34840c9d091f071c46cd3e5280fb7 diff --git a/third_party/premake-cmake b/third_party/premake-cmake deleted file mode 160000 index 91c646f63..000000000 --- a/third_party/premake-cmake +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 91c646f638a6fbff20f0ea90769df8dcf62bc5e4 diff --git a/third_party/premake-core b/third_party/premake-core deleted file mode 160000 index ba2c383c0..000000000 --- a/third_party/premake-core +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ba2c383c0456aa75d1b93faf62f4aec2691f23b2 diff --git a/third_party/premake-export-compile-commands b/third_party/premake-export-compile-commands deleted file mode 160000 index 59e3e55df..000000000 --- a/third_party/premake-export-compile-commands +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 59e3e55df8dd87eea70556f50d172a17f1c4b6d0 From a09292c98fe018296b62ded482992b5c5bfc9bc8 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Wed, 4 Mar 2026 20:54:41 +0900 Subject: [PATCH 04/18] [Build] Fix VS to send Debug build output to the same place as Ninja --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 193f6d896..39cba4aac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,10 +30,10 @@ else() set(XE_PLATFORM_NAME "Linux") endif() -# Output directories -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/${XE_PLATFORM_NAME}") -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/${XE_PLATFORM_NAME}") -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/obj/${XE_PLATFORM_NAME}") +# Output directories (use PROJECT_SOURCE_DIR so VS and Ninja share the same paths) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/build/bin/${XE_PLATFORM_NAME}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/build/bin/${XE_PLATFORM_NAME}") +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/build/obj/${XE_PLATFORM_NAME}") # Create scratch/ if needed file(MAKE_DIRECTORY "${PROJECT_SOURCE_DIR}/scratch") From 4bd93883ac07cb6871cbe690858cb8cf8f3d5ade Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:36:47 +0900 Subject: [PATCH 05/18] [Build] Convert buildshaders to custom build rules --- CMakeLists.txt | 3 + cmake/XeniaHelpers.cmake | 90 +++++++++++ src/xenia/gpu/d3d12/CMakeLists.txt | 5 +- src/xenia/gpu/vulkan/CMakeLists.txt | 5 +- src/xenia/ui/d3d12/CMakeLists.txt | 5 +- src/xenia/ui/vulkan/CMakeLists.txt | 5 +- tools/build/compile_shader_dxbc.py | 121 ++++++++++++++ tools/build/compile_shader_spirv.py | 171 ++++++++++++++++++++ xenia-build.py | 234 +++------------------------- 9 files changed, 411 insertions(+), 228 deletions(-) create mode 100644 tools/build/compile_shader_dxbc.py create mode 100644 tools/build/compile_shader_spirv.py diff --git a/CMakeLists.txt b/CMakeLists.txt index 39cba4aac..1073fa38f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,6 +38,9 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/build/obj/${XE_PLATFOR # Create scratch/ if needed file(MAKE_DIRECTORY "${PROJECT_SOURCE_DIR}/scratch") +# Python for shader compilation scripts +find_package(Python3 REQUIRED COMPONENTS Interpreter) + # Include helpers include(cmake/XeniaHelpers.cmake) diff --git a/cmake/XeniaHelpers.cmake b/cmake/XeniaHelpers.cmake index 4390ee68b..ec16de618 100644 --- a/cmake/XeniaHelpers.cmake +++ b/cmake/XeniaHelpers.cmake @@ -100,6 +100,96 @@ function(xe_target_defaults target) endif() endfunction() +# xe_shader_rules_spirv(target shader_dir) +# +# Ensures SPIR-V shaders are compiled before the target builds. +# Uses a stamp file; rebuilds when any shader source changes. +function(xe_shader_rules_spirv target shader_dir) + get_filename_component(shader_dir "${shader_dir}" ABSOLUTE) + file(GLOB _sources + "${shader_dir}/*.xesl" "${shader_dir}/*.glsl" + "${shader_dir}/*.xesli" "${shader_dir}/*.glsli") + set(_stamp "${CMAKE_CURRENT_BINARY_DIR}/${target}_spirv.stamp") + set(_script "${PROJECT_SOURCE_DIR}/tools/build/compile_shader_spirv.py") + set(_valid_stages vs hs ds gs ps cs) + set(_commands) + set(_bytecode_dir "${shader_dir}/bytecode/vulkan_spirv") + list(APPEND _commands COMMAND ${CMAKE_COMMAND} -E make_directory "${_bytecode_dir}") + foreach(src ${_sources}) + get_filename_component(_name ${src} NAME) + string(REGEX REPLACE "\\.[^.]+$" "" _basename "${_name}") + string(REPLACE "." "_" _id "${_basename}") + string(LENGTH "${_id}" _len) + if(_len LESS 3) + continue() + endif() + math(EXPR _s "${_len} - 2") + string(SUBSTRING "${_id}" ${_s} 2 _stage) + if(NOT _stage IN_LIST _valid_stages) + continue() + endif() + list(APPEND _commands COMMAND ${Python3_EXECUTABLE} "${_script}" "${src}" "${_bytecode_dir}/${_id}.h") + endforeach() + add_custom_command( + OUTPUT "${_stamp}" + ${_commands} + COMMAND ${CMAKE_COMMAND} -E touch "${_stamp}" + DEPENDS ${_sources} "${_script}" + COMMENT "Compiling SPIR-V shaders for ${target}..." + VERBATIM + ) + add_custom_target(${target}-spirv-shaders DEPENDS "${_stamp}") + add_dependencies(${target} ${target}-spirv-shaders) + # Add sources for IDE visibility but prevent VS from compiling them itself + set_source_files_properties(${_sources} PROPERTIES HEADER_FILE_ONLY TRUE) + target_sources(${target} PRIVATE ${_sources}) +endfunction() + +# xe_shader_rules_dxbc(target shader_dir) +# +# Ensures DXBC shaders are compiled before the target builds. +# Uses a stamp file; rebuilds when any shader source changes. +function(xe_shader_rules_dxbc target shader_dir) + get_filename_component(shader_dir "${shader_dir}" ABSOLUTE) + file(GLOB _sources + "${shader_dir}/*.xesl" "${shader_dir}/*.hlsl" + "${shader_dir}/*.xesli" "${shader_dir}/*.hlsli") + set(_stamp "${CMAKE_CURRENT_BINARY_DIR}/${target}_dxbc.stamp") + set(_script "${PROJECT_SOURCE_DIR}/tools/build/compile_shader_dxbc.py") + set(_valid_stages vs hs ds gs ps cs) + set(_commands) + set(_bytecode_dir "${shader_dir}/bytecode/d3d12_5_1") + list(APPEND _commands COMMAND ${CMAKE_COMMAND} -E make_directory "${_bytecode_dir}") + foreach(src ${_sources}) + get_filename_component(_name ${src} NAME) + string(REGEX REPLACE "\\.[^.]+$" "" _basename "${_name}") + string(REPLACE "." "_" _id "${_basename}") + string(LENGTH "${_id}" _len) + if(_len LESS 3) + continue() + endif() + math(EXPR _s "${_len} - 2") + string(SUBSTRING "${_id}" ${_s} 2 _stage) + if(NOT _stage IN_LIST _valid_stages) + continue() + endif() + list(APPEND _commands COMMAND ${Python3_EXECUTABLE} "${_script}" "${src}" "${_bytecode_dir}/${_id}.h") + endforeach() + add_custom_command( + OUTPUT "${_stamp}" + ${_commands} + COMMAND ${CMAKE_COMMAND} -E touch "${_stamp}" + DEPENDS ${_sources} "${_script}" + COMMENT "Compiling DXBC shaders for ${target}..." + VERBATIM + ) + add_custom_target(${target}-dxbc-shaders DEPENDS "${_stamp}") + add_dependencies(${target} ${target}-dxbc-shaders) + # Add sources for IDE visibility but prevent VS from compiling them itself + set_source_files_properties(${_sources} PROPERTIES HEADER_FILE_ONLY TRUE) + target_sources(${target} PRIVATE ${_sources}) +endfunction() + # xe_force_c(files...) # # Forces the given source files to compile as C. diff --git a/src/xenia/gpu/d3d12/CMakeLists.txt b/src/xenia/gpu/d3d12/CMakeLists.txt index cbe9fdfba..47630aebf 100644 --- a/src/xenia/gpu/d3d12/CMakeLists.txt +++ b/src/xenia/gpu/d3d12/CMakeLists.txt @@ -1,9 +1,6 @@ add_library(xenia-gpu-d3d12 STATIC) xe_platform_sources(xenia-gpu-d3d12 ${CMAKE_CURRENT_SOURCE_DIR}) -# Include shader bytecode headers -file(GLOB _d3d12_shader_headers "${CMAKE_CURRENT_SOURCE_DIR}/../shaders/bytecode/d3d12_5_1/*.h" -) -target_sources(xenia-gpu-d3d12 PRIVATE ${_d3d12_shader_headers}) +xe_shader_rules_dxbc(xenia-gpu-d3d12 ${CMAKE_CURRENT_SOURCE_DIR}/../shaders) target_link_libraries(xenia-gpu-d3d12 PUBLIC fmt xxhash xenia-base xenia-gpu xenia-ui xenia-ui-d3d12 ) diff --git a/src/xenia/gpu/vulkan/CMakeLists.txt b/src/xenia/gpu/vulkan/CMakeLists.txt index 22c8b57f6..e2876d3b7 100644 --- a/src/xenia/gpu/vulkan/CMakeLists.txt +++ b/src/xenia/gpu/vulkan/CMakeLists.txt @@ -1,9 +1,6 @@ add_library(xenia-gpu-vulkan STATIC) xe_platform_sources(xenia-gpu-vulkan ${CMAKE_CURRENT_SOURCE_DIR}) -# Include shader bytecode headers -file(GLOB _vk_shader_headers "${CMAKE_CURRENT_SOURCE_DIR}/../shaders/bytecode/vulkan_spirv/*.h" -) -target_sources(xenia-gpu-vulkan PRIVATE ${_vk_shader_headers}) +xe_shader_rules_spirv(xenia-gpu-vulkan ${CMAKE_CURRENT_SOURCE_DIR}/../shaders) target_include_directories(xenia-gpu-vulkan PRIVATE ${PROJECT_SOURCE_DIR}/third_party/Vulkan-Headers/include ${PROJECT_SOURCE_DIR}/third_party/glslang diff --git a/src/xenia/ui/d3d12/CMakeLists.txt b/src/xenia/ui/d3d12/CMakeLists.txt index d214c403a..74f478562 100644 --- a/src/xenia/ui/d3d12/CMakeLists.txt +++ b/src/xenia/ui/d3d12/CMakeLists.txt @@ -1,9 +1,6 @@ add_library(xenia-ui-d3d12 STATIC) xe_platform_sources(xenia-ui-d3d12 ${CMAKE_CURRENT_SOURCE_DIR}) -# Include shader bytecode headers -file(GLOB _d3d12_ui_shader_headers "${CMAKE_CURRENT_SOURCE_DIR}/../shaders/bytecode/d3d12_5_1/*.h" -) -target_sources(xenia-ui-d3d12 PRIVATE ${_d3d12_ui_shader_headers}) +xe_shader_rules_dxbc(xenia-ui-d3d12 ${CMAKE_CURRENT_SOURCE_DIR}/../shaders) target_link_libraries(xenia-ui-d3d12 PUBLIC xenia-base xenia-ui) xe_target_defaults(xenia-ui-d3d12) diff --git a/src/xenia/ui/vulkan/CMakeLists.txt b/src/xenia/ui/vulkan/CMakeLists.txt index b6af414bb..8836d4d45 100644 --- a/src/xenia/ui/vulkan/CMakeLists.txt +++ b/src/xenia/ui/vulkan/CMakeLists.txt @@ -1,10 +1,7 @@ add_library(xenia-ui-vulkan STATIC) xe_platform_sources(xenia-ui-vulkan ${CMAKE_CURRENT_SOURCE_DIR}) xe_platform_sources(xenia-ui-vulkan ${CMAKE_CURRENT_SOURCE_DIR}/functions) -# Include shader bytecode headers -file(GLOB _vk_ui_shader_headers "${CMAKE_CURRENT_SOURCE_DIR}/../shaders/bytecode/vulkan_spirv/*.h" -) -target_sources(xenia-ui-vulkan PRIVATE ${_vk_ui_shader_headers}) +xe_shader_rules_spirv(xenia-ui-vulkan ${CMAKE_CURRENT_SOURCE_DIR}/../shaders) target_include_directories(xenia-ui-vulkan PRIVATE ${PROJECT_SOURCE_DIR}/third_party/Vulkan-Headers/include ${PROJECT_SOURCE_DIR}/third_party/glslang diff --git a/tools/build/compile_shader_dxbc.py b/tools/build/compile_shader_dxbc.py new file mode 100644 index 000000000..d191a2125 --- /dev/null +++ b/tools/build/compile_shader_dxbc.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 + +"""Compiles a single shader to DXBC and generates a C header via FXC. + +Usage: compile_shader_dxbc.py + +FXC directly produces the .h file — no post-processing needed. +""" + +import os +import subprocess +import sys +from glob import glob + + +DXBC_STAGES = ["vs", "hs", "ds", "gs", "ps", "cs"] + + +def find_fxc(): + """Find FXC via FXC_PATH env or Windows SDK search.""" + fxc = os.environ.get("FXC_PATH") + if fxc: + return fxc + + # Search Windows Kits. + program_files_x86 = os.environ.get("ProgramFiles(x86)", "") + candidates = glob(os.path.join( + program_files_x86, "Windows Kits", "10", "bin", "*", "x64", "fxc.exe")) + if candidates: + return candidates[-1] # Highest version is last + + return None + + +def parse_stage(filename): + """Extract the 2-char shader stage from filename like 'foo.cs.xesl'.""" + basename = os.path.splitext(filename)[0] # 'foo.cs' + identifier = basename.replace(".", "_") # 'foo_cs' + stage_key = identifier[-2:] + if stage_key not in DXBC_STAGES: + return None + return stage_key + + +def main(): + if len(sys.argv) != 3: + print(f"Usage: {sys.argv[0]} ", file=sys.stderr) + return 1 + + input_path = sys.argv[1] + output_path = sys.argv[2] + + src_name = os.path.basename(input_path) + src_dir = os.path.dirname(input_path) + + stage = parse_stage(src_name) + if stage is None: + print(f"ERROR: cannot determine shader stage from: {src_name}", file=sys.stderr) + return 1 + + identifier = os.path.splitext(src_name)[0].replace(".", "_") + + fxc = find_fxc() + if not fxc: + print("ERROR: could not find fxc! Set FXC_PATH environment variable " + "or install Windows SDK.", file=sys.stderr) + return 1 + + # Create output directory if needed. + os.makedirs(os.path.dirname(output_path), exist_ok=True) + + is_dxc = "dxc" in os.path.basename(fxc).lower() + + # Start with base command — use wine on non-Windows platforms. + if sys.platform != "win32": + compiler_args = ["wine", fxc] + else: + compiler_args = [fxc] + + if is_dxc: + # DXC only supports SM 6.0+. + compiler_args.extend([ + "-T", f"{stage}_6_0", + "-HV", "2017", + "-D", "SHADING_LANGUAGE_HLSL_XE=1", + "-I", src_dir, + "-Fh", output_path, + "-Vn", identifier, + "-nologo", + input_path, + ]) + else: + # FXC uses traditional syntax. + compiler_args.extend([ + "/D", "SHADING_LANGUAGE_HLSL_XE=1", + "/I", src_dir, + "/Fh", output_path, + "/T", f"{stage}_5_1", + "/Vn", identifier, + "/O3", + "/Qstrip_reflect", + "/Qstrip_debug", + "/Qstrip_priv", + "/Gfp", + "/nologo", + input_path, + ]) + + result = subprocess.run(compiler_args, stdout=subprocess.DEVNULL, + stderr=subprocess.PIPE) + if result.returncode != 0: + print(f"ERROR: failed to compile DXBC shader: {src_name}", file=sys.stderr) + if result.stderr: + sys.stderr.buffer.write(result.stderr) + return 1 + + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tools/build/compile_shader_spirv.py b/tools/build/compile_shader_spirv.py new file mode 100644 index 000000000..2f7eb262c --- /dev/null +++ b/tools/build/compile_shader_spirv.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python3 + +"""Compiles a single shader to SPIR-V and generates a C header. + +Usage: compile_shader_spirv.py + +Pipeline: + 1. glslangValidator -> unoptimized .spv + 2. spirv-opt -> optimized .spv + 3. spirv-dis -> disassembly .txt + 4. Generate .h with disassembly comment + uint32_t array +""" + +import os +import struct +import subprocess +import sys + + +SPIRV_STAGES = { + "vs": "vert", "hs": "tesc", "ds": "tese", + "gs": "geom", "ps": "frag", "cs": "comp", +} + +XESL_WRAPPER = ( + "#version 460\n" + "#extension GL_EXT_control_flow_attributes : require\n" + "#extension GL_EXT_samplerless_texture_functions : require\n" + "#extension GL_GOOGLE_include_directive : require\n" + "#include \"%s\"\n" +) + + +def find_vulkan_tools(): + """Find Vulkan SDK tools via VULKAN_SDK env or PATH.""" + vulkan_sdk = os.environ.get("VULKAN_SDK") + if vulkan_sdk: + bin_dir = os.path.join(vulkan_sdk, "bin") + if os.path.isdir(bin_dir): + return ( + os.path.join(bin_dir, "glslangValidator"), + os.path.join(bin_dir, "spirv-opt"), + os.path.join(bin_dir, "spirv-dis"), + ) + + # Fall back to PATH + return ("glslangValidator", "spirv-opt", "spirv-dis") + + +def parse_stage(filename): + """Extract the 2-char shader stage from filename like 'foo.cs.xesl'.""" + basename = os.path.splitext(filename)[0] # 'foo.cs' + identifier = basename.replace(".", "_") # 'foo_cs' + stage_key = identifier[-2:] + if stage_key not in SPIRV_STAGES: + return None, None + return stage_key, SPIRV_STAGES[stage_key] + + +def main(): + if len(sys.argv) != 3: + print(f"Usage: {sys.argv[0]} ", file=sys.stderr) + return 1 + + input_path = sys.argv[1] + output_path = sys.argv[2] + + src_name = os.path.basename(input_path) + src_dir = os.path.dirname(input_path) + src_is_xesl = src_name.endswith(".xesl") + + stage_key, spirv_stage = parse_stage(src_name) + if spirv_stage is None: + print(f"ERROR: cannot determine shader stage from: {src_name}", file=sys.stderr) + return 1 + + # Compute identifier (matches what Lua does: basename with dots -> underscores) + identifier = os.path.splitext(src_name)[0].replace(".", "_") + + glslang, spirv_opt, spirv_dis = find_vulkan_tools() + + # Create output directory if needed. + os.makedirs(os.path.dirname(output_path), exist_ok=True) + + # Temp file paths next to output. + base = os.path.splitext(output_path)[0] + glslang_spv = base + ".glslang.spv" + opt_spv = base + ".spv" + dis_txt = base + ".txt" + + try: + # Step 1: glslangValidator + glslang_args = [ + glslang, + "--stdin" if src_is_xesl else input_path, + "-DSHADING_LANGUAGE_GLSL_XE=1", + "-S", spirv_stage, + "-o", glslang_spv, + "-V", + ] + if src_is_xesl: + glslang_args.append(f"-I{src_dir}") + + stdin_data = (XESL_WRAPPER % src_name) if src_is_xesl else None + result = subprocess.run(glslang_args, input=stdin_data, text=True, + stdout=subprocess.DEVNULL, stderr=subprocess.PIPE) + if result.returncode != 0: + print(f"ERROR: glslangValidator failed for {src_name}", file=sys.stderr) + if result.stderr: + sys.stderr.write(result.stderr) + return 1 + + # Step 2: spirv-opt + result = subprocess.run([ + spirv_opt, "-O", "-O", "--canonicalize-ids", + glslang_spv, "-o", opt_spv, + ], stdout=subprocess.DEVNULL, stderr=subprocess.PIPE) + if result.returncode != 0: + print(f"ERROR: spirv-opt failed for {src_name}", file=sys.stderr) + if result.stderr: + sys.stderr.write(result.stderr) + return 1 + + # Step 3: spirv-dis + result = subprocess.run([spirv_dis, "-o", dis_txt, opt_spv], + stdout=subprocess.DEVNULL, stderr=subprocess.PIPE) + if result.returncode != 0: + print(f"ERROR: spirv-dis failed for {src_name}", file=sys.stderr) + if result.stderr: + sys.stderr.write(result.stderr) + return 1 + + # Step 4: Generate header + with open(output_path, "w") as out: + out.write("// Generated with `xb buildshaders`.\n#if 0\n") + with open(dis_txt, "r") as dis_file: + dis_data = dis_file.read() + if dis_data: + out.write(dis_data) + if dis_data[-1] != "\n": + out.write("\n") + out.write("#endif\n\nconst uint32_t %s[] = {" % identifier) + with open(opt_spv, "rb") as spv_file: + index = 0 + while True: + word = spv_file.read(4) + if len(word) == 0: + break + if len(word) != 4: + print("ERROR: SPIR-V binary is misaligned", file=sys.stderr) + return 1 + if index % 6 == 0: + out.write("\n ") + else: + out.write(" ") + index += 1 + value = struct.unpack(" d3d12_5_1") - dxbc_dir_path = os.path.join(os.path.dirname(src_path), - "bytecode/d3d12_5_1") - os.makedirs(dxbc_dir_path, exist_ok=True) - dxbc_file_path_base = os.path.join(dxbc_dir_path, dxbc_identifier) - # Not enabling treating warnings as errors (/WX) because it - # overrides #pragma warning, and the FXAA shader triggers a - # bug in FXC causing an uninitialized variable warning if - # early exit from a function is done. - # FXC writes errors and warnings to stderr, not stdout, but - # stdout receives generic status messages that only add - # clutter in this case. - # Check if using DXC or FXC based on executable name - is_dxc = "dxc" in fxc.lower() - - # Start with base command - use wine on non-Windows platforms - if sys.platform != "win32": - compiler_args = ["wine", fxc] - else: - compiler_args = [fxc] - src_dir = os.path.dirname(src_path) - if is_dxc: - # DXC only supports SM 6.0+, cannot compile SM 5.1 - print("WARNING: DXC doesn't support SM 5.1, using SM 6.0") - compiler_args.extend([ - "-T", f"{dxbc_stage}_6_0", - "-HV", "2017", - "-D", "SHADING_LANGUAGE_HLSL_XE=1", - "-I", src_dir, - "-Fh", f"{dxbc_file_path_base}.h", - "-Vn", dxbc_identifier, - "-nologo", - src_path, - ]) - else: - # FXC uses traditional syntax. - # Do NOT use /all_resources_bound — it alters the generated - # DXBC bytecode (changes dcl_globalFlags, register allocation - # and instruction scheduling) which causes rendering artifacts - # such as blue lightning/flash glitches at scaled resolutions. - compiler_args.extend([ - "/D", "SHADING_LANGUAGE_HLSL_XE=1", - "/I", src_dir, - "/Fh", f"{dxbc_file_path_base}.h", - "/T", f"{dxbc_stage}_5_1", - "/Vn", dxbc_identifier, - "/O3", - "/Qstrip_reflect", - "/Qstrip_debug", - "/Qstrip_priv", - "/Gfp", - "/nologo", - src_path, - ]) - if subprocess.call(compiler_args, stdout=subprocess.DEVNULL) != 0: - print(f"ERROR: failed to compile DXBC shader: {src_path}") - return 1 + output = os.path.join(src_dir, "bytecode", "d3d12_5_1", f"{identifier}.h") + print(f"- {src_path} > d3d12_5_1") + result = subprocess.call([sys.executable, compile_dxbc, src_path, output]) + if result != 0: + return result # Vulkan SPIR-V. if all_targets or "spirv" in targets: print("Building Vulkan SPIR-V shaders...") - - # Get the SPIR-V tool paths. - vulkan_sdk_path = os.environ.get("VULKAN_SDK") - if not vulkan_sdk_path: - print("ERROR: VULKAN_SDK environment variable is not set") - if sys.platform == "win32": - print("Please install Vulkan SDK from:") - print("https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-sdk.exe") - else: - print("Please install Vulkan SDK and set VULKAN_SDK environment variable") - return 1 - if not os.path.exists(vulkan_sdk_path): - print(f"ERROR: could not find the Vulkan SDK at {vulkan_sdk_path}") - return 1 - vulkan_bin_path = os.path.join(vulkan_sdk_path, "bin") - if not os.path.exists(vulkan_bin_path): - print("ERROR: could not find the Vulkan SDK binaries") - return 1 - glslang = os.path.join(vulkan_bin_path, "glslangValidator") - if not has_bin(glslang): - print("ERROR: could not find glslangValidator") - return 1 - spirv_opt = os.path.join(vulkan_bin_path, "spirv-opt") - if not has_bin(spirv_opt): - print("ERROR: could not find spirv-opt") - return 1 - spirv_dis = os.path.join(vulkan_bin_path, "spirv-dis") - if not has_bin(spirv_dis): - print("ERROR: could not find spirv-dis") - return 1 - - # Build SPIR-V. - spirv_stages = { - "vs": "vert", "hs": "tesc", "ds": "tese", - "gs": "geom", "ps": "frag", "cs": "comp", - } - spirv_xesl_wrapper = ( - "#version 460\n" - "#extension GL_EXT_control_flow_attributes : require\n" - "#extension GL_EXT_samplerless_texture_functions : require\n" - "#extension GL_GOOGLE_include_directive : require\n" - "#include \"%s\"\n" - ) for src_path in src_paths: src_name = os.path.basename(src_path) - src_is_xesl = src_name.endswith(".xesl") - if ((not src_is_xesl and not src_name.endswith(".glsl")) or + if ((not src_name.endswith(".glsl") and + not src_name.endswith(".xesl")) or len(src_name) <= 8 or src_name[-8] != "."): continue - spirv_identifier = src_name[:-5].replace(".", "_") - spirv_stage = spirv_stages.get(spirv_identifier[-2:], None) - if spirv_stage is None: + identifier = src_name[:-5].replace(".", "_") + if identifier[-2:] not in valid_stages: continue - print(f"- {src_path} > vulkan_spirv") src_dir = os.path.dirname(src_path) - spirv_dir_path = os.path.join(src_dir, "bytecode/vulkan_spirv") - os.makedirs(spirv_dir_path, exist_ok=True) - spirv_file_path_base = os.path.join(spirv_dir_path, spirv_identifier) - spirv_glslang_file_path = f"{spirv_file_path_base}.glslang.spv" - - glslang_arguments = [glslang, - "--stdin" if src_is_xesl else src_path, - "-DSHADING_LANGUAGE_GLSL_XE=1", - "-S", spirv_stage, - "-o", spirv_glslang_file_path, - "-V"] - if src_is_xesl: - glslang_arguments.append(f"-I{src_dir}") - if subprocess.run( - glslang_arguments, - input=(spirv_xesl_wrapper % src_name) if src_is_xesl else None, - text=True).returncode != 0: - print("ERROR: failed to build a SPIR-V shader") - return 1 - - spirv_file_path = f"{spirv_file_path_base}.spv" - if subprocess.call([spirv_opt, "-O", "-O", "--canonicalize-ids", - spirv_glslang_file_path, "-o", spirv_file_path]) != 0: - print("ERROR: failed to optimize a SPIR-V shader") - return 1 - os.remove(spirv_glslang_file_path) - - spirv_dis_file_path = f"{spirv_file_path_base}.txt" - if subprocess.call([spirv_dis, "-o", spirv_dis_file_path, - spirv_file_path]) != 0: - print("ERROR: failed to disassemble a SPIR-V shader") - return 1 - - # Generate the header from the disassembly and the binary. - with open(f"{spirv_file_path_base}.h", "w") as out_file: - out_file.write("// Generated with `xb buildshaders`.\n#if 0\n") - with open(spirv_dis_file_path, "r") as spirv_dis_file: - spirv_dis_data = spirv_dis_file.read() - if len(spirv_dis_data) > 0: - out_file.write(spirv_dis_data) - if spirv_dis_data[-1] != "\n": - out_file.write("\n") - out_file.write("#endif\n\nconst uint32_t %s[] = {" % spirv_identifier) - with open(spirv_file_path, "rb") as spirv_file: - index = 0 - c = spirv_file.read(4) - while len(c) != 0: - if len(c) != 4: - print("ERROR: a SPIR-V shader is misaligned") - return 1 - if index % 6 == 0: - out_file.write("\n ") - else: - out_file.write(" ") - index += 1 - out_file.write("0x%08X," % int.from_bytes(c, sys.byteorder)) - c = spirv_file.read(4) - out_file.write("\n};\n") - os.remove(spirv_dis_file_path) - os.remove(spirv_file_path) + output = os.path.join(src_dir, "bytecode", "vulkan_spirv", f"{identifier}.h") + print(f"- {src_path} > vulkan_spirv") + result = subprocess.call([sys.executable, compile_spirv, src_path, output]) + if result != 0: + return result return 0 @@ -1976,12 +1792,6 @@ class DevenvCommand(Command): else: print("IDE not detected. CMakeLists.txt is in the project root.") - print("\n- generating shaders...") - shader_result = build_shaders() - if shader_result != 0: - print_error("Shader generation failed") - return shader_result - print("\n- running cmake configure...") run_cmake_configure() From a1710699cd4140c7f7d2e8de35e0305579162cc5 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Wed, 4 Mar 2026 20:50:30 +0900 Subject: [PATCH 06/18] [UI] Fix use-after-free in NoProfileDialog when closing --- src/xenia/app/profile_dialogs.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/xenia/app/profile_dialogs.cc b/src/xenia/app/profile_dialogs.cc index fbd3dd864..206e8e454 100644 --- a/src/xenia/app/profile_dialogs.cc +++ b/src/xenia/app/profile_dialogs.cc @@ -45,7 +45,7 @@ void NoProfileDialog::OnDraw(ImGuiIO& io) { ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_HorizontalScrollbar)) { ImGui::End(); - delete this; + Close(); return; } @@ -82,7 +82,7 @@ void NoProfileDialog::OnDraw(ImGuiIO& io) { if (ImGui::Button("Close") || !dialog_open) { emulator_window_->SetHotkeysState(true); ImGui::End(); - delete this; + Close(); return; } ImGui::End(); From e576f3d9249e1ffb6bbfad1b0c7ce6438e4a9b97 Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Wed, 4 Mar 2026 20:12:09 +0100 Subject: [PATCH 07/18] [Cmake] Added directory split in Visual studio (and probably other IDEs) Back as it was: - src - third_party There is CmakePredefinedTargets, but it cannot be hidden There is also an issue with tests as they aren't visible --- CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1073fa38f..3eb4cb9f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -223,12 +223,17 @@ endif() # ============================================================================== # Subdirectories # ============================================================================== +set_property(GLOBAL PROPERTY USE_FOLDERS ON) # Third-party libraries first (no -Werror applied to these) +set(CMAKE_FOLDER "third_party") add_subdirectory(third_party) # Xenia source modules (xe_target_defaults applies -Werror) +set(CMAKE_FOLDER "src") add_subdirectory(src/xenia) +set(CMAKE_FOLDER "") + # Set default startup project for Visual Studio set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT xenia-app) From 545b8bb8e94fcec34ab53165b1a49189bee60c06 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Thu, 5 Mar 2026 09:41:56 +0900 Subject: [PATCH 08/18] [Docs] Add spirv-tools related installation info for linux --- docs/building.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/building.md b/docs/building.md index f2873a816..bc874847e 100644 --- a/docs/building.md +++ b/docs/building.md @@ -113,6 +113,31 @@ sudo apt-get install build-essential mesa-vulkan-drivers valgrind libc++-dev lib In addition, you will need up to date Vulkan libraries and drivers for your hardware, which most distributions have in their standard repositories nowadays. +**Vulkan SDK (for shader compilation)** + +The build uses `spirv-opt` and `glslangValidator` for shader compilation. Check +if your system version is recent enough: + +```sh +spirv-opt --version +``` + +If the version is older than 2026.1, the system `spirv-tools` package will not +support all required options (e.g. `--canonicalize-ids`). In that case, install +the [Vulkan SDK from LunarG](https://vulkan.lunarg.com/sdk/home) and set +`VULKAN_SDK` so the build picks up the correct tools: + +```sh +wget -qO vulkan-sdk.tar.xz https://sdk.lunarg.com/sdk/download/latest/linux/vulkan-sdk.tar.xz +mkdir -p ~/vulkan-sdk +tar -xf vulkan-sdk.tar.xz -C ~/vulkan-sdk +rm vulkan-sdk.tar.xz +export VULKAN_SDK=$HOME/vulkan-sdk/$(ls ~/vulkan-sdk)/x86_64 +export PATH="$VULKAN_SDK/bin:$PATH" +``` + +Add the `export` lines to your shell profile to persist them across sessions. + ## Running To make life easier you can set the program startup arguments in your IDE to something like `--log_file=stdout /path/to/Default.xex` to log to console rather than a file and start up the emulator right away. From 16d2cc05c5dde6fac4ee3ed11c78cdcc93c75210 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Thu, 5 Mar 2026 15:11:22 +0900 Subject: [PATCH 09/18] [GPU] Use UNorm not signed EDRAM encoding in k_16_16 resolve packing. The original commit (2eea146b) correctly added kXenosFormat_16_16_EDRAM case labels and fixed the unpack clamp from -1.0 to -32.0, but incorrectly changed the resolve pack functions from UNorm to signed EDRAM encoding. The resolve destination is a regular texture sampled as UNorm [0,1], not EDRAM. Using EDRAM packing double-encodes the [-32,32] scaling, crushing all values by ~64x and caused visual issues particularly in UE3 titles. The bytecode submitted with the change was actually correct, but the source had additional incorrect pieces that only manifested when shaders were rebuilt. --- src/xenia/gpu/shaders/pixel_formats.xesli | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/xenia/gpu/shaders/pixel_formats.xesli b/src/xenia/gpu/shaders/pixel_formats.xesli index 691e2c5c1..3f6350848 100644 --- a/src/xenia/gpu/shaders/pixel_formats.xesli +++ b/src/xenia/gpu/shaders/pixel_formats.xesli @@ -243,10 +243,10 @@ uint4_xe XePack32bpp4Pixels(float4_xe pixel_0, float4_xe pixel_1, break; case kXenosFormat_16_16_EDRAM: case kXenosFormat_16_16: - packed.x = XePackR16G16Edram(pixel_0.rg); - packed.y = XePackR16G16Edram(pixel_1.rg); - packed.z = XePackR16G16Edram(pixel_2.rg); - packed.w = XePackR16G16Edram(pixel_3.rg); + packed.x = XePackR16G16UNorm(pixel_0.rg); + packed.y = XePackR16G16UNorm(pixel_1.rg); + packed.z = XePackR16G16UNorm(pixel_2.rg); + packed.w = XePackR16G16UNorm(pixel_3.rg); break; case kXenosFormat_16_16_FLOAT: packed.x = pack_half_2x16_xe(float2_xe(pixel_0.r, pixel_0.g)); @@ -272,10 +272,10 @@ void XePack64bpp4Pixels(float4_xe pixel_0, float4_xe pixel_1, switch (format) { case kXenosFormat_16_16_16_16_EDRAM: case kXenosFormat_16_16_16_16: - packed_01.xy = XePackR16G16B16A16Edram(pixel_0); - packed_01.zw = XePackR16G16B16A16Edram(pixel_1); - packed_23.xy = XePackR16G16B16A16Edram(pixel_2); - packed_23.zw = XePackR16G16B16A16Edram(pixel_3); + packed_01.xy = XePackR16G16B16A16UNorm(pixel_0); + packed_01.zw = XePackR16G16B16A16UNorm(pixel_1); + packed_23.xy = XePackR16G16B16A16UNorm(pixel_2); + packed_23.zw = XePackR16G16B16A16UNorm(pixel_3); break; case kXenosFormat_16_16_16_16_FLOAT: packed_01.x = pack_half_2x16_xe(float2_xe(pixel_0.r, pixel_0.g)); From 086decfa6e6db4b38f46028c5e658a91c2c8c87c Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Thu, 5 Mar 2026 16:18:23 +0900 Subject: [PATCH 10/18] [Build] Enable test discovery in VS Test Explorer --- CMakeLists.txt | 5 +++++ cmake/XeniaHelpers.cmake | 2 ++ src/xenia/cpu/ppc/testing/CMakeLists.txt | 1 + src/xenia/cpu/testing/CMakeLists.txt | 2 +- xenia-build.py | 1 + 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3eb4cb9f9..1f0e96c08 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,11 @@ set(CMAKE_C_STANDARD_REQUIRED ON) option(XENIA_BUILD_TESTS "Build test suites" OFF) option(XENIA_BUILD_MISC "Build misc subprojects (trace viewers, shader compiler, vfs-dump, demos)" OFF) +if(XENIA_BUILD_TESTS) + enable_testing() + include(${PROJECT_SOURCE_DIR}/third_party/catch/contrib/Catch.cmake) +endif() + # Multi-config generators (VS, Ninja Multi-Config) get_property(_is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) if(_is_multi_config) diff --git a/cmake/XeniaHelpers.cmake b/cmake/XeniaHelpers.cmake index ec16de618..9530da125 100644 --- a/cmake/XeniaHelpers.cmake +++ b/cmake/XeniaHelpers.cmake @@ -247,4 +247,6 @@ function(xe_test_suite name base_path) # Disable Edit and Continue - breaks Catch2 __LINE__ usage target_compile_options(${name} PRIVATE /Zi) endif() + + catch_discover_tests(${name}) endfunction() diff --git a/src/xenia/cpu/ppc/testing/CMakeLists.txt b/src/xenia/cpu/ppc/testing/CMakeLists.txt index 97a726f0f..0630acca8 100644 --- a/src/xenia/cpu/ppc/testing/CMakeLists.txt +++ b/src/xenia/cpu/ppc/testing/CMakeLists.txt @@ -35,3 +35,4 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64") endif() xe_target_defaults(xenia-cpu-ppc-tests) +add_test(NAME xenia-cpu-ppc-tests COMMAND xenia-cpu-ppc-tests) diff --git a/src/xenia/cpu/testing/CMakeLists.txt b/src/xenia/cpu/testing/CMakeLists.txt index d6ebd280e..82ee15bab 100644 --- a/src/xenia/cpu/testing/CMakeLists.txt +++ b/src/xenia/cpu/testing/CMakeLists.txt @@ -3,5 +3,5 @@ xe_test_suite(xenia-cpu-tests ${CMAKE_CURRENT_SOURCE_DIR} capstone fmt imgui xenia-base xenia-core xenia-cpu xenia-gpu xenia-hid-skylander xenia-kernel xenia-ui xenia-patcher - $<$:xenia-cpu-backend-x64> + $<$,$>:xenia-cpu-backend-x64> ) diff --git a/xenia-build.py b/xenia-build.py index 1f69444c9..5afb0c1bc 100755 --- a/xenia-build.py +++ b/xenia-build.py @@ -1805,6 +1805,7 @@ class DevenvCommand(Command): "-B", vs_build_dir, "-G", "Visual Studio 17 2022", "-A", "x64", + "-DXENIA_BUILD_TESTS=ON", ]) sln_path = os.path.join(vs_build_dir, "xenia.sln") print(f"Opening {sln_path} in Visual Studio...") From 2912da02fe8525a81862efb040602b9052826518 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Tue, 20 Jan 2026 14:51:56 +0900 Subject: [PATCH 11/18] [D3D12] Fix gamma_unorm16 render target transfer shaders MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gamma stored as R16G16B16A16_UNORM is 64bpp in host memory but represents a single 32bpp pixel, unlike true 64bpp formats which pack two 32bpp pixels together. Separate dest_is_gamma_unorm16 from dest_is_64bpp to avoid incorrect coordinate transforms. Add output paths for gamma_unorm16 destinations: - gamma→gamma: direct passthrough (already linear in R16G16B16A16) - k_8_8_8_8→gamma: convert gamma-encoded source to linear - Cross-format packed EDRAM: midpoint encoding to survive UNORM16 quantization round-trip through PreSaturatedLinearToPWLGamma Fixes red bleeding in Halo Reach, image halving in Just Cause 2, Portal not rendering, and black rock/plant textures in Halo Reach. --- .../gpu/d3d12/d3d12_render_target_cache.cc | 90 ++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc b/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc index 74616f810..3cc4c4bbe 100644 --- a/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc +++ b/src/xenia/gpu/d3d12/d3d12_render_target_cache.cc @@ -2064,6 +2064,12 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { xenos::DepthRenderTargetFormat(key.dest_resource_format); bool dest_is_64bpp = dest_is_color && xenos::IsColorRenderTargetFormat64bpp(dest_color_format); + // Whether dest is gamma stored as R16G16B16A16_UNORM (64bpp host storage but + // 32bpp coordinate addressing). + bool dest_is_gamma_unorm16 = + dest_is_color && + dest_color_format == xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA && + gamma_render_target_as_unorm16_; xenos::ColorRenderTargetFormat source_color_format = xenos::ColorRenderTargetFormat(key.source_resource_format); @@ -3315,7 +3321,7 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { a.OpMov(dxbc::Dest::OStencilRef(), dxbc::Src::R(1, dxbc::Src::kXXXX)); } - if (dest_is_64bpp) { + if (dest_is_64bpp || dest_is_gamma_unorm16) { // Handle construction of 64bpp color, either from two 32-bit samples in r0 // and r1, or from one 64bpp sample in r1. Using r2.xy as temporary when // needed. @@ -3327,6 +3333,10 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { case xenos::ColorRenderTargetFormat::k_8_8_8_8_GAMMA: { // 8_8_8_8_GAMMA is represented by linear stored in // R16G16B16A16_UNORM. + if (dest_is_gamma_unorm16) { + a.OpMov(dxbc::Dest::O(0), dxbc::Src::R(1)); + break; + } for (uint32_t i = 0; i < 2; ++i) { for (uint32_t j = 0; j < 3; ++j) { DxbcShaderTranslator::PreSaturatedLinearToPWLGamma(a, i, j, i, j, @@ -3336,6 +3346,15 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { } [[fallthrough]]; case xenos::ColorRenderTargetFormat::k_8_8_8_8: { + if (dest_is_gamma_unorm16) { + // Convert gamma-encoded source to linear for gamma_unorm16 dest. + for (uint32_t j = 0; j < 3; ++j) { + DxbcShaderTranslator::PWLGammaToLinear(a, 1, j, 1, j, true, 2, 0, + 2, 1); + } + a.OpMov(dxbc::Dest::O(0), dxbc::Src::R(1)); + break; + } color_packed_in_r0x_and_r1x = true; for (uint32_t i = 0; i < 2; ++i) { a.OpMAd(dxbc::Dest::R(i), dxbc::Src::R(i), dxbc::Src::LF(255.0f), @@ -3468,6 +3487,75 @@ D3D12RenderTargetCache::GetOrCreateTransferPipelines(TransferShaderKey key) { if (dest_color_format == xenos::ColorRenderTargetFormat::k_32_32_FLOAT) { a.OpMov(dxbc::Dest::O(0, 0b0001), dxbc::Src::R(0, dxbc::Src::kXXXX)); a.OpMov(dxbc::Dest::O(0, 0b0010), dxbc::Src::R(1, dxbc::Src::kXXXX)); + } else if (dest_is_gamma_unorm16) { + // For gamma_unorm16, only r1.x has a valid packed 32-bit EDRAM + // dword (one pixel, since gamma_unorm16 is 32bpp Xenos / 64bpp + // host). Reinterpret as k_8_8_8_8_GAMMA (4 gamma-encoded bytes) + // and convert to linear float for R16G16B16A16_UNORM output. + // + // Use midpoint encoding to survive the UNORM16 quantization + // round-trip through PreSaturatedLinearToPWLGamma (which uses + // trunc()). Storing the exact PWLGammaToLinear result puts values + // at the lower boundary of the valid range, where UNORM16 + // quantization can push them below threshold causing +/-1 byte + // errors that corrupt cross-format EDRAM reinterpretation. + // + // For gamma byte B, the midpoint linear value is: + // Piece 0 (B < 64): F = (B + 0.5) / 1023.0 + // Piece 1 (64<=B<96): F = (B - 31.5) / 511.5 + // Piece 2 (96<=B<192): F = (B - 63.5) / 255.75 + // Piece 3 (B >= 192): F = (B - 127.5) / 127.875 + // Using MAd form: F = B * recip + offset. + + // Extract 4 bytes: r1.xyzw = [R, G, B, A] as uint. + a.OpUBFE(dxbc::Dest::R(1), dxbc::Src::LU(8, 8, 8, 8), + dxbc::Src::LU(0, 8, 16, 24), + dxbc::Src::R(1, dxbc::Src::kXXXX)); + + // Alpha: o0.w = float(A) / 255.0 (no gamma conversion). + a.OpUToF(dxbc::Dest::R(0, 0b1000), dxbc::Src::R(1, dxbc::Src::kWWWW)); + a.OpMul(dxbc::Dest::O(0, 0b1000), dxbc::Src::R(0, dxbc::Src::kWWWW), + dxbc::Src::LF(1.0f / 255.0f)); + + // RGB: per-channel midpoint encoding using r0.xy as (recip, + // offset) and r2.x as comparison temp. + for (uint32_t j = 0; j < 3; ++j) { + // Default to piece 0. + a.OpMov(dxbc::Dest::R(0, 0b0001), dxbc::Src::LF(1.0f / 1023.0f)); + a.OpMov(dxbc::Dest::R(0, 0b0010), dxbc::Src::LF(0.5f / 1023.0f)); + // Piece 1: byte >= 64. + a.OpUGE(dxbc::Dest::R(2, 0b0001), dxbc::Src::R(1).Select(j), + dxbc::Src::LU(64)); + a.OpMovC(dxbc::Dest::R(0, 0b0001), dxbc::Src::R(2, dxbc::Src::kXXXX), + dxbc::Src::LF(1.0f / 511.5f), + dxbc::Src::R(0, dxbc::Src::kXXXX)); + a.OpMovC(dxbc::Dest::R(0, 0b0010), dxbc::Src::R(2, dxbc::Src::kXXXX), + dxbc::Src::LF(-31.5f / 511.5f), + dxbc::Src::R(0, dxbc::Src::kYYYY)); + // Piece 2: byte >= 96. + a.OpUGE(dxbc::Dest::R(2, 0b0001), dxbc::Src::R(1).Select(j), + dxbc::Src::LU(96)); + a.OpMovC(dxbc::Dest::R(0, 0b0001), dxbc::Src::R(2, dxbc::Src::kXXXX), + dxbc::Src::LF(1.0f / 255.75f), + dxbc::Src::R(0, dxbc::Src::kXXXX)); + a.OpMovC(dxbc::Dest::R(0, 0b0010), dxbc::Src::R(2, dxbc::Src::kXXXX), + dxbc::Src::LF(-63.5f / 255.75f), + dxbc::Src::R(0, dxbc::Src::kYYYY)); + // Piece 3: byte >= 192. + a.OpUGE(dxbc::Dest::R(2, 0b0001), dxbc::Src::R(1).Select(j), + dxbc::Src::LU(192)); + a.OpMovC(dxbc::Dest::R(0, 0b0001), dxbc::Src::R(2, dxbc::Src::kXXXX), + dxbc::Src::LF(1.0f / 127.875f), + dxbc::Src::R(0, dxbc::Src::kXXXX)); + a.OpMovC(dxbc::Dest::R(0, 0b0010), dxbc::Src::R(2, dxbc::Src::kXXXX), + dxbc::Src::LF(-127.5f / 127.875f), + dxbc::Src::R(0, dxbc::Src::kYYYY)); + // F = float(byte) * recip + offset. + a.OpUToF(dxbc::Dest::R(2, 0b0001), dxbc::Src::R(1).Select(j)); + a.OpMAd(dxbc::Dest::O(0, 1 << j), dxbc::Src::R(2, dxbc::Src::kXXXX), + dxbc::Src::R(0, dxbc::Src::kXXXX), + dxbc::Src::R(0, dxbc::Src::kYYYY)); + } } else { for (uint32_t i = 0; i < 2; ++i) { a.OpUBFE(dxbc::Dest::O(0, 0b11 << (i * 2)), dxbc::Src::LU(16), From 6446150a5e54550098ecc87afe3cc205b2cee416 Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Fri, 6 Mar 2026 19:59:26 +0100 Subject: [PATCH 12/18] [Cmake] Moved tests to separate folders --- src/xenia/base/CMakeLists.txt | 1 + src/xenia/cpu/CMakeLists.txt | 1 + src/xenia/vfs/CMakeLists.txt | 1 + 3 files changed, 3 insertions(+) diff --git a/src/xenia/base/CMakeLists.txt b/src/xenia/base/CMakeLists.txt index 0443d112b..1f7a88d01 100644 --- a/src/xenia/base/CMakeLists.txt +++ b/src/xenia/base/CMakeLists.txt @@ -13,5 +13,6 @@ target_link_libraries(xenia-base PUBLIC fmt) xe_target_defaults(xenia-base) if(XENIA_BUILD_TESTS) + set(CMAKE_FOLDER "tests") add_subdirectory(testing) endif() diff --git a/src/xenia/cpu/CMakeLists.txt b/src/xenia/cpu/CMakeLists.txt index 6637bdad9..1f33012ae 100644 --- a/src/xenia/cpu/CMakeLists.txt +++ b/src/xenia/cpu/CMakeLists.txt @@ -12,6 +12,7 @@ target_link_libraries(xenia-cpu PUBLIC xenia-base mspack) xe_target_defaults(xenia-cpu) if(XENIA_BUILD_TESTS) + set(CMAKE_FOLDER "tests") add_subdirectory(testing) add_subdirectory(ppc/testing) endif() diff --git a/src/xenia/vfs/CMakeLists.txt b/src/xenia/vfs/CMakeLists.txt index 6fb0ee6fb..039453ddb 100644 --- a/src/xenia/vfs/CMakeLists.txt +++ b/src/xenia/vfs/CMakeLists.txt @@ -27,5 +27,6 @@ if(XENIA_BUILD_MISC) endif() if(XENIA_BUILD_TESTS) + set(CMAKE_FOLDER "tests") add_subdirectory(testing) endif() From 4b0007bfe53f8ce4aaac1002daa66b69e0d59fae Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Fri, 6 Mar 2026 20:48:25 +0100 Subject: [PATCH 13/18] [XMP] Fixed error caused by incorrect audio allocation for FFMPEG --- src/xenia/apu/audio_media_player.cc | 37 ++++++++++++++++++----------- src/xenia/apu/audio_media_player.h | 2 +- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/xenia/apu/audio_media_player.cc b/src/xenia/apu/audio_media_player.cc index 0a7f75b0a..f8451c03f 100644 --- a/src/xenia/apu/audio_media_player.cc +++ b/src/xenia/apu/audio_media_player.cc @@ -33,11 +33,11 @@ DEFINE_int32(xmp_default_volume, 70, namespace xe { namespace apu { -int32_t InitializeAndOpenAvCodec(std::vector* song_data, +int32_t InitializeAndOpenAvCodec(std::span song_data, AVFormatContext*& format_context, AVCodecContext*& av_context) { AVIOContext* io_ctx = - avio_alloc_context(song_data->data(), (int)song_data->size(), 0, nullptr, + avio_alloc_context(song_data.data(), (int)song_data.size(), 0, nullptr, nullptr, nullptr, nullptr); format_context = avformat_alloc_context(); @@ -220,9 +220,8 @@ X_STATUS AudioMediaPlayer::Play(uint32_t playlist_handle, uint32_t song_handle, } void AudioMediaPlayer::Play() { - std::vector* song_buffer = new std::vector(); - - if (!LoadSongToMemory(song_buffer)) { + std::span song_buffer = LoadSongToMemory(); + if (song_buffer.empty()) { return; } @@ -396,9 +395,9 @@ X_STATUS AudioMediaPlayer::Previous() { return X_STATUS_SUCCESS; } -bool AudioMediaPlayer::LoadSongToMemory(std::vector* buffer) { +std::span AudioMediaPlayer::LoadSongToMemory() { if (!active_song_) { - return false; + return {}; } // Find file based on provided path? @@ -410,16 +409,26 @@ bool AudioMediaPlayer::LoadSongToMemory(std::vector* buffer) { &vfs_file, &file_action); if (result) { - return false; + return {}; } - buffer->resize(vfs_file->entry()->size()); - size_t bytes_read = 0; - result = vfs_file->ReadSync( - std::span(buffer->data(), vfs_file->entry()->size()), 0, - &bytes_read); + std::span buffer = { + static_cast(av_malloc(vfs_file->entry()->size())), + vfs_file->entry()->size()}; - return !result; + if (buffer.empty()) { + return {}; + } + + size_t bytes_read = 0; + result = vfs_file->ReadSync(buffer, 0, &bytes_read); + if (result != X_ERROR_SUCCESS) { + // Read failed. We need to manually release resources from av_malloc. + av_freep(buffer.data()); + return {}; + } + + return buffer; } void AudioMediaPlayer::AddPlaylist(uint32_t handle, diff --git a/src/xenia/apu/audio_media_player.h b/src/xenia/apu/audio_media_player.h index 6d0745dd5..293b7f85a 100644 --- a/src/xenia/apu/audio_media_player.h +++ b/src/xenia/apu/audio_media_player.h @@ -99,7 +99,7 @@ class AudioMediaPlayer { void Play(); void WorkerThreadMain(); - bool LoadSongToMemory(std::vector* buffer); + std::span LoadSongToMemory(); XmpApp::State state_ = XmpApp::State::kIdle; XmpApp::PlaybackClient playback_client_ = XmpApp::PlaybackClient::kSystem; From e8263d367240e4a3c2b7656866faa4570635bb39 Mon Sep 17 00:00:00 2001 From: AllanCat <0937388@gmail.com> Date: Sat, 7 Mar 2026 01:05:45 +0800 Subject: [PATCH 14/18] [XboxKrnl/Audio] Corrected XMASetLoopData's pointer type. Fixed an issue where bgm was not looping for games that uses looping feature. --- src/xenia/kernel/xboxkrnl/xboxkrnl_audio_xma.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_audio_xma.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_audio_xma.cc index b529ffc41..e5aa6c854 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_audio_xma.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_audio_xma.cc @@ -191,7 +191,7 @@ DECLARE_XBOXKRNL_EXPORT2(XMAInitializeContext, kAudio, kImplemented, kHighFrequency); dword_result_t XMASetLoopData_entry(lpvoid_t context_ptr, - pointer_t loop_data) { + pointer_t loop_data) { XMA_CONTEXT_DATA context(context_ptr); context.loop_start = loop_data->loop_start; From 10cecae4c223150ed9cab9bd2b9325f37502d883 Mon Sep 17 00:00:00 2001 From: AllanCat <0937388@gmail.com> Date: Sat, 7 Mar 2026 01:11:38 +0800 Subject: [PATCH 15/18] [XMA] Fixed min output space gating to match Consume() write granularity The decoder gate required a full frame of free blocks (4 mono / 8 stereo + padding) before allowing a decode pass, but Consume() only writes subframe_decode_count blocks per call. Games like TGM Ace with subframe_decode_count=2 on a small ring buffer could never meet the old threshold, causing a permanent decoder stall. --- src/xenia/apu/xma_context_new.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/xenia/apu/xma_context_new.cc b/src/xenia/apu/xma_context_new.cc index 1ef7a3192..a085211db 100644 --- a/src/xenia/apu/xma_context_new.cc +++ b/src/xenia/apu/xma_context_new.cc @@ -142,9 +142,17 @@ bool XmaContextNew::Work() { return true; } + // Minimum free blocks needed before attempting a decode. + // Use the number of subframes Consume() will actually write per iteration + // (= subframe_decode_count, clamped to 1) plus any headroom requested by + // output_buffer_padding. Using a full-frame worth of space (the old + // formula) was far too restrictive: games like TGM Ace use + // subframe_decode_count=2 on a small ring buffer and never had 8 free + // blocks available, causing the decoder to permanently stall. + const uint32_t effective_sdc = + std::max(static_cast(1), data.subframe_decode_count); const int32_t minimum_subframe_decode_count = - ((kBytesPerFrameChannel / kOutputBytesPerBlock) << data.is_stereo) + - data.output_buffer_padding; + static_cast(effective_sdc) + data.output_buffer_padding; // We don't have enough space to even make one pass // Waiting for decoder to return more space. From a26bbaa674c929ede6eb5e7bf53295e7027387c8 Mon Sep 17 00:00:00 2001 From: "Herman S." <429230+has207@users.noreply.github.com> Date: Sat, 7 Mar 2026 20:08:00 +0900 Subject: [PATCH 16/18] [3PP] Update FFmpeg version to include latest updates --- third_party/FFmpeg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/third_party/FFmpeg b/third_party/FFmpeg index d1963569c..d980192e1 160000 --- a/third_party/FFmpeg +++ b/third_party/FFmpeg @@ -1 +1 @@ -Subproject commit d1963569c9ed55ca826f353071cfe1c7dfc9234f +Subproject commit d980192e175e6ff95bcd287af77e16fcb6597974 From 6bb5453110eb0f120e01f3437585c52514b2bcc4 Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Sat, 7 Mar 2026 20:02:04 +0100 Subject: [PATCH 17/18] [Build] Removed hardcoded generator for VS2022 Thanks tam098782 --- xenia-build.py | 1 - 1 file changed, 1 deletion(-) diff --git a/xenia-build.py b/xenia-build.py index 5afb0c1bc..f9b230ef6 100755 --- a/xenia-build.py +++ b/xenia-build.py @@ -1803,7 +1803,6 @@ class DevenvCommand(Command): "cmake", "-S", ".", "-B", vs_build_dir, - "-G", "Visual Studio 17 2022", "-A", "x64", "-DXENIA_BUILD_TESTS=ON", ]) From 9e5fc57f665cbfd9e5437d63c7f11fe36f212878 Mon Sep 17 00:00:00 2001 From: Gliniak <153369+Gliniak@users.noreply.github.com> Date: Sat, 7 Mar 2026 20:26:45 +0100 Subject: [PATCH 18/18] [Cmake] Added directory tree to VS solution. This recreates structure from premake almost 1:1 --- cmake/XeniaHelpers.cmake | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/cmake/XeniaHelpers.cmake b/cmake/XeniaHelpers.cmake index 9530da125..2c141e64e 100644 --- a/cmake/XeniaHelpers.cmake +++ b/cmake/XeniaHelpers.cmake @@ -94,6 +94,27 @@ function(xe_target_defaults target) ) if(MSVC) target_compile_options(${target} PRIVATE /WX) + # Recreate directory structure in Visual Studio filters + get_target_property(_srcs ${target} SOURCES) + if(_srcs) + set(_local_srcs) + set(_external_srcs) + foreach(_s IN LISTS _srcs) + get_filename_component(_abs "${_s}" ABSOLUTE) + string(FIND "${_abs}" "${CMAKE_CURRENT_SOURCE_DIR}" _pos) + if(_pos EQUAL 0) + list(APPEND _local_srcs "${_s}") + else() + list(APPEND _external_srcs "${_s}") + endif() + endforeach() + if(_local_srcs) + source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${_local_srcs}) + endif() + if(_external_srcs) + source_group(TREE ${PROJECT_SOURCE_DIR} PREFIX "External" FILES ${_external_srcs}) + endif() + endif() elseif(NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # GCC is too noisy for -Werror; only apply to Clang target_compile_options(${target} PRIVATE -Werror) @@ -242,6 +263,7 @@ function(xe_test_suite name base_path) target_link_libraries(${name} PRIVATE ${ARG_LINKS}) endif() xe_target_defaults(${name}) + set_target_properties(${name} PROPERTIES FOLDER "tests") if(MSVC) # Disable Edit and Continue - breaks Catch2 __LINE__ usage

!Z85J@VlNm?xJD> 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