Build several projects that arent performance critical with /Os and /O1 under msvc windows
136 lines
3.0 KiB
Lua
136 lines
3.0 KiB
Lua
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")
|
|
links({
|
|
"xenia-gpu-vulkan-trace-viewer",
|
|
"xenia-hid-demo",
|
|
"xenia-ui-window-vulkan-demo",
|
|
})
|
|
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("IA32") -- 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({
|
|
"X11",
|
|
"xcb",
|
|
"X11-xcb",
|
|
"SDL2",
|
|
})
|
|
|
|
filter("platforms:Windows")
|
|
links({
|
|
"xenia-apu-xaudio2",
|
|
"xenia-gpu-d3d12",
|
|
"xenia-hid-winkey",
|
|
"xenia-hid-xinput",
|
|
"xenia-ui-d3d12",
|
|
})
|
|
|
|
filter({"platforms:Windows", SINGLE_LIBRARY_FILTER})
|
|
links({
|
|
"xenia-gpu-d3d12-trace-viewer",
|
|
"xenia-ui-window-d3d12-demo",
|
|
})
|
|
filter({"configurations:Release", "platforms:Windows"})
|
|
buildoptions({
|
|
"/Os",
|
|
"/O1"
|
|
})
|
|
|
|
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)
|
|
debugargs({
|
|
})
|
|
end
|