diff options
| author | Ben Vanik <ben.vanik@gmail.com> | 2015-07-18 16:00:01 -0700 |
|---|---|---|
| committer | Ben Vanik <ben.vanik@gmail.com> | 2015-07-18 16:00:01 -0700 |
| commit | e0eb85bbbc75922bedd1c4c38b3b9a447744ea31 (patch) | |
| tree | 82440b70545884fe0a35746beca29d0863acbc6f /premake5.lua | |
| parent | 6c5d230f675948f02c58d6342deaf673153f6b7f (diff) | |
Switching to premake. Probably with disasterous consequences.
Diffstat (limited to 'premake5.lua')
| -rw-r--r-- | premake5.lua | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/premake5.lua b/premake5.lua new file mode 100644 index 000000000..52670306d --- /dev/null +++ b/premake5.lua @@ -0,0 +1,158 @@ +include("build_tools") + +location(build_root) +targetdir(build_bin) +objdir(build_obj) + +includedirs({ + ".", + "src", + "third_party", + "build_tools/third_party/gflags/src", +}) + +defines({ + "_UNICODE", + "UNICODE", + "MICROPROFILE_MAX_THREADS=128", +}) + +vectorextensions("AVX") +flags({ + --"ExtraWarnings", -- Sets the compiler's maximum warning level. + "FatalWarnings", -- Treat warnings as errors. + "Unicode", +}) + +filter("kind:StaticLib") + defines({ + "_LIB", + }) + +filter("configurations:Checked") + runtime("Debug") + defines({ + "DEBUG", + }) + flags({"Symbols"}) + runtime("Debug") + buildoptions({ + "/RTCsu", -- Full Run-Time Checks. + }) + +filter("configurations:Debug") + runtime("Debug") + defines({ + "DEBUG", + "_NO_DEBUG_HEAP=1", + }) + flags({"Symbols"}) + runtime("Release") + linkoptions({"/NODEFAULTLIB:MSVCRTD"}) + +filter("configurations:Release") + runtime("Release") + defines({ + "NDEBUG", + "_NO_DEBUG_HEAP=1", + }) + optimize("On") + flags({ + "LinkTimeOptimization", + }) + runtime("Release") + linkoptions({"/NODEFAULTLIB:MSVCRTD"}) + +filter("platforms:Windows") + system("windows") + toolset("msc") + -- Ignores complaints about empty obj files: + linkoptions({"/ignore:4006", "/ignore:4221"}) + -- Enable multiprocessor compiles (requires Minimal Rebuild to be disabled). + buildoptions({"/MP"}) + flags({ + "NoMinimalRebuild", + }) + defines({ + "_CRT_NONSTDC_NO_DEPRECATE", + "_CRT_SECURE_NO_WARNINGS", + "WIN32", + "_WIN64=1", + "_AMD64=1", + }) + links({ + "ntdll", + "wsock32", + "ws2_32", + "xinput", + "xaudio2", + "glu32", + "opengl32", + "comctl32", + "shlwapi", + }) + +-- Create scratch/ path and dummy flags file if needed. +if not os.isdir("scratch") then + os.mkdir("scratch") + local flags_file = io.open("scratch1/flags.txt", "w") + flags_file:write("# Put flags, one on each line.\n") + flags_file:write("# Launch executables with --flags_file=scratch/flags.txt\n") + flags_file:write("\n") + flags_file:write("--cpu=x64\n") + flags_file:write("#--enable_haswell_instructions=false\n") + flags_file:write("\n") + flags_file:write("--debug\n") + flags_file:write("#--protect_zero=false\n") + flags_file:write("\n") + flags_file:write("#--mute\n") + flags_file:write("\n") + flags_file:write("--fast_stdout\n") + flags_file:write("#--flush_stdout=false\n") + flags_file:write("\n") + flags_file:write("#--vsync=false\n") + flags_file:write("#--gl_debug\n") + flags_file:write("#--gl_debug_output\n") + flags_file:write("#--gl_debug_output_synchronous\n") + flags_file:write("#--trace_gpu_prefix=scratch/gpu/gpu_trace_\n") + flags_file:write("#--trace_gpu_stream\n") + flags_file:write("#--disable_framebuffer_readback\n") + flags_file:write("\n") + flags_file:close() +end + +solution("xenia") + uuid("931ef4b0-6170-4f7a-aaf2-0fece7632747") + startproject("xenia-app") + configurations({"Checked", "Debug", "Release"}) + platforms({"Windows"}) + architecture("x86_64") + + include("src/xenia") + include("src/xenia/app") + include("src/xenia/apu") + include("src/xenia/apu/nop") + include("src/xenia/apu/xaudio2") + include("src/xenia/base") + include("src/xenia/cpu") + include("src/xenia/cpu/backend/x64") + include("src/xenia/debug") + include("src/xenia/debug/ui") + include("src/xenia/gpu") + include("src/xenia/gpu/gl4") + include("src/xenia/hid") + include("src/xenia/hid/nop") + include("src/xenia/hid/winkey") + include("src/xenia/hid/xinput") + include("src/xenia/kernel") + include("src/xenia/ui") + include("src/xenia/ui/gl") + include("src/xenia/vfs") + + include("third_party/beaengine.lua") + include("third_party/capstone.lua") + include("third_party/elemental-forms") + include("third_party/glew.lua") + include("third_party/imgui.lua") + include("third_party/xxhash.lua") + include("build_tools/third_party/gflags.lua") |
