[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,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)