summaryrefslogtreecommitdiffstats
path: root/premake5.lua
diff options
context:
space:
mode:
Diffstat (limited to 'premake5.lua')
-rw-r--r--premake5.lua184
1 files changed, 97 insertions, 87 deletions
diff --git a/premake5.lua b/premake5.lua
index f2a58880..ec499c58 100644
--- a/premake5.lua
+++ b/premake5.lua
@@ -1,8 +1,85 @@
Librw = os.getenv("LIBRW") or "librw"
workspace "re3"
- configurations { "Debug", "Release", "ReleaseFH", "DebugRW", "ReleaseRW", "ReleaseGLFW" }
+ language "C++"
+ configurations { "Debug", "Release" }
location "build"
+ symbols "Full"
+ staticruntime "off"
+ filter { "system:windows" }
+ platforms {
+ "win-x86-RW33_d3d8-mss",
+ "win-x86-librw_d3d9-mss",
+ "win-x86-librw_gl3_glfw-mss",
+ }
+
+ filter "configurations:Debug"
+ defines { "DEBUG" }
+
+ filter "configurations:Release"
+ defines { "NDEBUG" }
+ optimize "On"
+
+ filter { "platforms:win*" }
+ system "windows"
+
+ filter { "platforms:*x86*" }
+ architecture "x86"
+
+ filter { "platforms:*librw_d3d9*" }
+ defines { "RW_D3D9" }
+
+ filter "platforms:*librw_gl3_glfw*"
+ defines { "RW_GL3" }
+ defines { "GLEW_STATIC" }
+ includedirs { "glfw-3.3.2.bin.WIN32/include" }
+ includedirs { "glew-2.1.0/include" }
+ filter {}
+
+ pbcommands = {
+ "setlocal EnableDelayedExpansion",
+ "set file=$(TargetPath)",
+ "FOR %%i IN (\"%file%\") DO (",
+ "set filename=%%~ni",
+ "set fileextension=%%~xi",
+ "set target=!path!!filename!!fileextension!",
+ "copy /y \"!file!\" \"!target!\"",
+ ")" }
+
+ function setpaths (gamepath, exepath, scriptspath)
+ scriptspath = scriptspath or ""
+ if (gamepath) then
+ cmdcopy = { "set \"path=" .. gamepath .. scriptspath .. "\"" }
+ table.insert(cmdcopy, pbcommands)
+ postbuildcommands (cmdcopy)
+ debugdir (gamepath)
+ if (exepath) then
+ debugcommand (gamepath .. exepath)
+ dir, file = exepath:match'(.*/)(.*)'
+ debugdir (gamepath .. (dir or ""))
+ end
+ end
+ --targetdir ("bin/%{prj.name}/" .. scriptspath)
+ end
+
+project "librw"
+ kind "StaticLib"
+ targetname "rw"
+ targetdir "lib/%{cfg.platform}/%{cfg.buildcfg}"
+ files { path.join(Librw, "src/*.*") }
+ files { path.join(Librw, "src/*/*.*") }
+ filter "platforms:*RW33*"
+ flags { "ExcludeFromBuild" }
+ filter {}
+
+project "re3"
+ kind "WindowedApp"
+ targetname "re3"
+ targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}"
+ targetextension ".exe"
+ characterset ("MBCS")
+ linkoptions "/SAFESEH:NO"
+
files { "src/*.*" }
files { "src/animation/*.*" }
@@ -48,105 +125,38 @@ workspace "re3"
includedirs { "src/extras" }
includedirs { "eax" }
- includedirs { "dxsdk/include" }
includedirs { "milessdk/include" }
includedirs { "eax" }
- libdirs { "dxsdk/lib" }
libdirs { "milessdk/lib" }
-
- filter "configurations:Debug or Release"
- files { "src/fakerw/*.*" }
- includedirs { "src/fakerw" }
- includedirs { Librw }
- libdirs { path.join(Librw, "lib/win-x86-d3d9/%{cfg.buildcfg}") }
- links { "rw", "d3d9" }
- filter {}
- filter "configurations:DebugRW or ReleaseRW"
+ setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
+
+ filter "platforms:*RW33*"
+ staticruntime "on"
includedirs { "rwsdk/include/d3d8" }
libdirs { "rwsdk/lib/d3d8/release" }
links { "rwcore", "rpworld", "rpmatfx", "rpskin", "rphanim", "rtbmp", "rtquat", "rtcharse" }
- filter {}
-
- filter "configurations:ReleaseGLFW"
- defines { "GLEW_STATIC", "GLFW_DLL" }
+ defines { "RWLIBS" }
+ linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text"
+
+ filter "platforms:*librw*"
+ defines { "LIBRW" }
files { "src/fakerw/*.*" }
includedirs { "src/fakerw" }
includedirs { Librw }
- includedirs { "glfw-3.3.2.bin.WIN32/include" }
- includedirs { "glew-2.1.0/include" }
- libdirs { path.join(Librw, "lib/win-x86-gl3/Release") }
- libdirs { "glew-2.1.0/lib/Release/Win32" }
- libdirs { "glfw-3.3.2.bin.WIN32/lib-vc2015" }
- links { "opengl32" }
- links { "glew32s" }
- links { "glfw3dll" }
+ libdirs { "lib/%{cfg.platform}/%{cfg.buildcfg}" }
links { "rw" }
- filter {}
-
- pbcommands = {
- "setlocal EnableDelayedExpansion",
- "set file=$(TargetPath)",
- "FOR %%i IN (\"%file%\") DO (",
- "set filename=%%~ni",
- "set fileextension=%%~xi",
- "set target=!path!!filename!!fileextension!",
- "copy /y \"!file!\" \"!target!\"",
- ")" }
-
- function setpaths (gamepath, exepath, scriptspath)
- scriptspath = scriptspath or ""
- if (gamepath) then
- cmdcopy = { "set \"path=" .. gamepath .. scriptspath .. "\"" }
- table.insert(cmdcopy, pbcommands)
- postbuildcommands (cmdcopy)
- debugdir (gamepath)
- if (exepath) then
- debugcommand (gamepath .. exepath)
- dir, file = exepath:match'(.*/)(.*)'
- debugdir (gamepath .. (dir or ""))
- end
- end
- --targetdir ("bin/%{prj.name}/" .. scriptspath)
- end
-project "re3"
- kind "WindowedApp"
- language "C++"
- targetname "re3"
- targetdir "bin/%{cfg.buildcfg}"
- targetextension ".exe"
- characterset ("MBCS")
- linkoptions "/SAFESEH:NO"
-
- setpaths("$(GTA_III_RE_DIR)/", "$(TargetFileName)", "")
- symbols "Full"
- staticruntime "off"
-
- filter "configurations:Debug or Release or ReleaseFH"
- prebuildcommands { "cd \"../librw\" && premake5 " .. _ACTION .. " && msbuild \"build/librw.sln\" /property:Configuration=%{cfg.longname} /property:Platform=\"win-x86-d3d9\"" }
- defines { "LIBRW", "RW_D3D9" }
-
- filter "configurations:*RW"
- defines { "RWLIBS" }
- staticruntime "on"
- linkoptions "/SECTION:_rwcseg,ER!W /MERGE:_rwcseg=.text"
-
- filter "configurations:*GLFW"
- prebuildcommands { "cd \"../librw\" && premake5 " .. _ACTION .. " && msbuild \"build/librw.sln\" /property:Configuration=Release /property:Platform=\"win-x86-gl3\"" }
- defines { "LIBRW", "RW_GL3" }
-
- filter "configurations:Debug*"
- defines { "DEBUG" }
-
- filter "configurations:Release*"
- defines { "NDEBUG" }
- optimize "On"
+ filter "platforms:*d3d*"
+ includedirs { "dxsdk/include" }
+ libdirs { "dxsdk/lib" }
+ filter "platforms:*d3d9*"
+ links { "d3d9" }
- filter "configurations:ReleaseFH"
- prebuildcommands {}
- optimize "off"
- staticruntime "on"
+ filter "platforms:*gl3_glfw*"
+ libdirs { "glew-2.1.0/lib/Release/Win32" }
+ libdirs { "glfw-3.3.2.bin.WIN32/lib-" .. string.gsub(_ACTION, "vs", "vc") }
+ links { "opengl32", "glew32s", "glfw3" }