-- -- Premake 5.x build configuration script -- Use this script to configure the project with Premake4. -- -- -- Define the project. Put the release configuration first so it will be the -- default when folks build using the makefile. That way they don't have to -- worry about the /scripts argument and all that. -- solution "Premake5" configurations { "Release", "Debug" } location ( _OPTIONS["to"] ) project "Premake5" targetname "premake5" language "C" kind "ConsoleApp" defines { "PREMAKE_NO_BUILTIN_SCRIPTS" } flags { "No64BitChecks", "ExtraWarnings", "StaticRuntime" } includedirs { "contrib/lua/src", "contrib/luashim" } files { "*.txt", "**.lua", "contrib/lua/src/*.c", "contrib/lua/src/*.h", "src/host/*.c" } excludes { "contrib/lua/src/lauxlib.c", "contrib/lua/src/lua.c", "contrib/lua/src/luac.c", "contrib/lua/src/print.c", "contrib/lua/**.lua", "contrib/lua/etc/*.c" } configuration "Debug" targetdir "bin/debug" defines "_DEBUG" flags { "Symbols" } configuration "Release" targetdir "bin/release" defines "NDEBUG" flags { "OptimizeSize" } configuration "vs*" defines { "_CRT_SECURE_NO_WARNINGS" } configuration "vs2005" defines {"_CRT_SECURE_NO_DEPRECATE" } configuration "windows" links { "ole32", "advapi32" } configuration "linux or bsd or hurd" defines { "LUA_USE_POSIX", "LUA_USE_DLOPEN" } links { "m" } linkoptions { "-rdynamic" } configuration "linux or hurd" links { "dl", "rt" } configuration "macosx" defines { "LUA_USE_MACOSX" } links { "CoreServices.framework" } configuration { "macosx", "gmake" } -- toolset "clang" (not until a 5.0 binary is available) buildoptions { "-mmacosx-version-min=10.4" } linkoptions { "-mmacosx-version-min=10.4" } configuration { "solaris" } links { "m", "socket", "nsl" } configuration "aix" defines { "LUA_USE_POSIX", "LUA_USE_DLOPEN" } links { "m" } -- -- A more thorough cleanup. -- if _ACTION == "clean" then os.rmdir("bin") os.rmdir("build") end -- -- Use the --to=path option to control where the project files get generated. I use -- this to create project files for each supported toolset, each in their own folder, -- in preparation for deployment. -- newoption { trigger = "to", value = "path", description = "Set the output location for the generated files" } -- -- This new embed action is slightly hardcoded for the 4.x executable, and is -- really only intended to get folks bootstrapped on to 5.x -- newaction { trigger = "embed", description = "Embed scripts in scripts.c; required before release builds", execute = function () _MAIN_SCRIPT_DIR = os.getcwd() _SCRIPT_DIR = path.join(_MAIN_SCRIPT_DIR, "scripts") dofile("scripts/embed.lua") end }