diff --git a/premake5.lua b/premake5.lua index d9b02cb36..662547539 100644 --- a/premake5.lua +++ b/premake5.lua @@ -7,6 +7,11 @@ 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 diff --git a/src/xenia/app/premake5.lua b/src/xenia/app/premake5.lua index 11a7a0100..5a1dbf59d 100644 --- a/src/xenia/app/premake5.lua +++ b/src/xenia/app/premake5.lua @@ -54,11 +54,13 @@ project("xenia-app") -- 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", - }) + 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") @@ -114,15 +116,13 @@ project("xenia-app") "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({ --- "/O1", --- }) + 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. diff --git a/src/xenia/base/premake5.lua b/src/xenia/base/premake5.lua index d53c34351..7edd282a8 100644 --- a/src/xenia/base/premake5.lua +++ b/src/xenia/base/premake5.lua @@ -17,4 +17,6 @@ project("xenia-base") "debug_visualizers.natvis", }) -include("testing") +if enableTests then + include("testing") +end \ No newline at end of file diff --git a/src/xenia/cpu/premake5.lua b/src/xenia/cpu/premake5.lua index 14a423126..6c0240c9d 100644 --- a/src/xenia/cpu/premake5.lua +++ b/src/xenia/cpu/premake5.lua @@ -21,9 +21,7 @@ project("xenia-cpu") local_platform_files("hir") local_platform_files("ppc") -include("testing") -include("ppc/testing") --- filter({"configurations:Release", "platforms:Windows"}) --- buildoptions({ --- "/O1", --- }) +if enableTests then + include("testing") + include("ppc/testing") +end diff --git a/src/xenia/gpu/d3d12/premake5.lua b/src/xenia/gpu/d3d12/premake5.lua index 34ca32947..c79ceec02 100644 --- a/src/xenia/gpu/d3d12/premake5.lua +++ b/src/xenia/gpu/d3d12/premake5.lua @@ -19,108 +19,110 @@ project("xenia-gpu-d3d12") "../shaders/bytecode/d3d12_5_1/*.h", }) -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") +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-cpu-backend-x64", + "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", }) - -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", + "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/vulkan/premake5.lua b/src/xenia/gpu/vulkan/premake5.lua index b27610286..bb37a61f1 100644 --- a/src/xenia/gpu/vulkan/premake5.lua +++ b/src/xenia/gpu/vulkan/premake5.lua @@ -23,132 +23,134 @@ project("xenia-gpu-vulkan") "../shaders/bytecode/vulkan_spirv/*.h", }) -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", - }) - files({ - "vulkan_trace_viewer_main.cc", - "../../ui/windowed_app_main_"..platform_suffix..".cc", - }) - - filter("architecture:x86_64") +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-cpu-backend-x64", + "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", + }) + files({ + "vulkan_trace_viewer_main.cc", + "../../ui/windowed_app_main_"..platform_suffix..".cc", }) - 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", + filter("architecture:x86_64") + links({ + "xenia-cpu-backend-x64", }) - 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", - }) - 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", + filter("platforms:Linux") + links({ + "X11", + "xcb", + "X11-xcb", }) - end + + 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", + }) + 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 \ No newline at end of file diff --git a/src/xenia/ui/d3d12/premake5.lua b/src/xenia/ui/d3d12/premake5.lua index 9e667bbe9..fdbdf73bf 100644 --- a/src/xenia/ui/d3d12/premake5.lua +++ b/src/xenia/ui/d3d12/premake5.lua @@ -10,33 +10,30 @@ project("xenia-ui-d3d12") "xenia-base", "xenia-ui", }) --- filter({"configurations:Release", "platforms:Windows"}) --- buildoptions({ --- "/O1", --- }) --- filter {} local_platform_files() files({ "../shaders/bytecode/d3d12_5_1/*.h", }) -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, - }) +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 index fde2ba8e2..5c55c8c88 100644 --- a/src/xenia/ui/premake5.lua +++ b/src/xenia/ui/premake5.lua @@ -14,10 +14,6 @@ project("xenia-ui") local_platform_files() removefiles({"*_demo.cc"}) removefiles({"windowed_app_main_*.cc"}) --- filter({"configurations:Release", "platforms:Windows"}) --- buildoptions({ --- "/O1", --- }) filter("platforms:Android-*") -- Exports JNI functions. wholelib("On") diff --git a/src/xenia/ui/vulkan/premake5.lua b/src/xenia/ui/vulkan/premake5.lua index 3c1bfb2a3..e272e1adb 100644 --- a/src/xenia/ui/vulkan/premake5.lua +++ b/src/xenia/ui/vulkan/premake5.lua @@ -10,11 +10,6 @@ project("xenia-ui-vulkan") "xenia-base", "xenia-ui", }) --- filter({"configurations:Release", "platforms:Windows"}) --- buildoptions({ --- "/O1", --- }) --- filter {} includedirs({ project_root.."/third_party/Vulkan-Headers/include", }) @@ -24,33 +19,35 @@ project("xenia-ui-vulkan") "../shaders/bytecode/vulkan_spirv/*.h", }) -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") +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({ - "X11", - "xcb", - "X11-xcb", + "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/premake5.lua b/src/xenia/vfs/premake5.lua index 214f18864..ee6709c65 100644 --- a/src/xenia/vfs/premake5.lua +++ b/src/xenia/vfs/premake5.lua @@ -7,35 +7,37 @@ project("xenia-vfs") kind("StaticLib") language("C++") links({ - "xenia-base", "zstd", "zarchive" + "xenia-base", + "zstd", + "zarchive" }) defines({ }) --- filter({"configurations:Release", "platforms:Windows"}) --- buildoptions({ --- "/O1", --- }) --- filter {} recursive_platform_files() removefiles({"vfs_dump.cc"}) -project("xenia-vfs-dump") - uuid("2EF270C7-41A8-4D0E-ACC5-59693A9CCE32") - kind("ConsoleApp") - language("C++") - links({ - "fmt", - "xenia-base", - "xenia-vfs", - }) - defines({}) +if enableMiscSubprojects then + project("xenia-vfs-dump") + uuid("2EF270C7-41A8-4D0E-ACC5-59693A9CCE32") + kind("ConsoleApp") + language("C++") + links({ + "fmt", + "xenia-base", + "xenia-vfs", + }) + defines({}) - files({ - "vfs_dump.cc", - project_root.."/src/xenia/base/console_app_main_"..platform_suffix..".cc", - }) - resincludedirs({ - project_root, - }) -include("testing") + 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