[Build] Convert build system to raw cmake and remove premake layer

This commit is contained in:
Herman S.
2026-03-04 15:28:01 +09:00
parent f1bfb9416d
commit 71c5702ee8
106 changed files with 1829 additions and 3249 deletions

View File

@@ -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()

View File

@@ -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()

View File

@@ -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

View File

@@ -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)

View File

@@ -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()

View File

@@ -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

View File

@@ -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()

View File

@@ -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