# 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 ) if(XE_TARGET_X86_64) # 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" ) endif() 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 AND XE_TARGET_X86_64) 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-hid xenia-hid-nop xenia-kernel xenia-patcher xenia-ui xenia-vfs # Third-party aes_128 capstone fmt dxbc discord-rpc imgui libavcodec libavutil mspack snappy xxhash ) # Vulkan/SPIR-V backends (not macOS) if(NOT APPLE) target_link_libraries(xenia-app PRIVATE xenia-gpu-vulkan xenia-ui-vulkan glslang-spirv ) endif() # 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 ) # Architecture-specific backend if(XE_TARGET_X86_64) target_link_libraries(xenia-app PRIVATE xenia-cpu-backend-x64) elseif(XE_TARGET_AARCH64) target_link_libraries(xenia-app PRIVATE xenia-cpu-backend-a64) 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)