You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
5.1 KiB
161 lines
5.1 KiB
solution "Symmetry"
|
|
configurations { "Debug", "Release" }
|
|
platforms {"x64"}
|
|
location(_ACTION)
|
|
defines {"USE_GLAD"}
|
|
includedirs {"../include/"}
|
|
|
|
configuration {"linux"}
|
|
postbuildcommands {"ln -fs " .. os.getcwd() .. "/../assets debug/assets"}
|
|
postbuildcommands {"ln -fs " .. os.getcwd() .. "/../assets release/assets"}
|
|
buildoptions {"-Wall", "-std=c99", "`pkg-config --cflags-only-I sdl2`"}
|
|
|
|
configuration {"windows", "gmake"}
|
|
postbuildcommands {"rm -rf debug/assets"}
|
|
postbuildcommands {"rm -rf release/assets"}
|
|
postbuildcommands {"ln -fs " .. os.getcwd() .. "/../assets debug/assets"}
|
|
postbuildcommands {"ln -fs " .. os.getcwd() .. "/../assets release/assets"}
|
|
buildoptions {"-Wall", "-std=c99"}
|
|
|
|
|
|
configuration {"windows", "vs2017 or qbs"}
|
|
includedirs
|
|
{
|
|
"../third_party/windows/SDL2-2.0.5/include/",
|
|
"../third_party/windows/Soloud/include/"
|
|
}
|
|
|
|
local sdl_lib_dir = "../third_party/windows/SDL2-2.0.5/lib/x64/"
|
|
local soloud_lib_dir = "../third_party/windows/Soloud/lib/"
|
|
|
|
defines {"_CRT_SECURE_NO_WARNINGS"}
|
|
flags {"NoIncrementalLink", "NoEditAndContinue"}
|
|
|
|
configuration "Debug"
|
|
if (_ACTION ~= nil and _ACTION ~= "postbuild_copy") then
|
|
os.mkdir(_ACTION .. "/debug")
|
|
targetdir (_ACTION .. "/debug")
|
|
end
|
|
defines { "DEBUG" }
|
|
flags { "Symbols" }
|
|
|
|
configuration "Release"
|
|
if (_ACTION ~= nil and _ACTION ~= "postbuild_copy") then
|
|
os.mkdir(_ACTION .. "/release")
|
|
targetdir (_ACTION .. "/release")
|
|
end
|
|
defines { "NDEBUG", "ExtraWarnings" }
|
|
flags { "OptimizeSpeed"}
|
|
|
|
-------------------------
|
|
-- Game
|
|
-------------------------
|
|
project "Game"
|
|
kind "ConsoleApp"
|
|
targetname "Symmetry"
|
|
language "C"
|
|
files { "../src/common/**.c", "../src/common/**.h", "../src/game/**.c", "../src/game/**.h" }
|
|
defines {"GAME"}
|
|
local soloud_lib_name =
|
|
|
|
configuration "Debug"
|
|
links {"soloud_x64_d"}
|
|
|
|
configuration "Release"
|
|
links {"soloud_x64"}
|
|
|
|
configuration "linux"
|
|
buildoptions {"`pkg-config --cflags-only-other sdl2`"}
|
|
linkoptions {"`pkg-config --libs sdl2`"}
|
|
links {"m"}
|
|
|
|
configuration {"windows", "gmake"}
|
|
buildoptions {"`pkg-config --cflags-only-I sdl2`"}
|
|
linkoptions {"`pkg-config --libs sdl2`"}
|
|
links {"m"}
|
|
|
|
configuration {"windows", "vs2017 or qbs"}
|
|
libdirs { sdl_lib_dir, soloud_lib_dir }
|
|
links {"SDL2"}
|
|
|
|
|
|
|
|
configuration {"windows", "Release", "vs2017"}
|
|
postbuildcommands {
|
|
"xcopy ..\\..\\assets ..\\..\\bin\\assets /s /e /h /i /y /d",
|
|
"copy release\\Symmetry.exe ..\\..\\bin\\ /Y",
|
|
"copy release\\libSymmetry.dll ..\\..\\bin\\ /Y",
|
|
"copy release\\SDL2.dll ..\\..\\bin\\ /Y",
|
|
"copy release\\soloud_x64.dll ..\\..\\bin\\ /Y",
|
|
}
|
|
|
|
newaction {
|
|
trigger = "postbuild_copy",
|
|
description = "Action to copy relevant dlls to executable directory after build",
|
|
execute = function ()
|
|
local copy_dest_dir = ""
|
|
local symlink_dest_dir = ""
|
|
|
|
if(_ARGS[1] == "vs2017") then
|
|
copy_dest_dir = "vs2017"
|
|
symlink_dest_dir = "..\\..\\..\\assets"
|
|
printf("Copying DLLs to visual studio build directory...\n")
|
|
else
|
|
copy_dest_dir = "projects/qbs"
|
|
symlink_dest_dir = "..\\..\\..\\..\\assets"
|
|
printf("Copying DLLs to qbs build directory...\n")
|
|
end
|
|
|
|
local success = false
|
|
success = os.copyfile(sdl_lib_dir .. "SDL2.dll", copy_dest_dir .. "/debug/SDL2.dll")
|
|
success = os.copyfile(sdl_lib_dir .. "SDL2.dll", copy_dest_dir .. "/release/SDL2.dll")
|
|
success = os.copyfile(soloud_lib_dir .. "soloud_x64_d.dll", copy_dest_dir .. "/debug/soloud_x64_d.dll")
|
|
success = os.copyfile(soloud_lib_dir .. "soloud_x64.dll", copy_dest_dir .. "/release/soloud_x64.dll")
|
|
|
|
|
|
if success ~= true then
|
|
printf("Copying one or more dlls failed.")
|
|
else
|
|
printf("Copying dlls successful.")
|
|
end
|
|
|
|
-- Create sym links
|
|
local output = os.outputof("mklink /D " .. path.translate(copy_dest_dir, "\\") .. "\\debug\\assets " .. symlink_dest_dir)
|
|
printf("MKlink debug output : %s", output)
|
|
output = os.outputof("mklink /D " .. path.translate(copy_dest_dir, "\\") .. "\\release\\assets " ..symlink_dest_dir)
|
|
printf("MKlink release output : %s", output)
|
|
end
|
|
}
|
|
|
|
if(_ACTION == "vs2017") then
|
|
postbuildcommands
|
|
{
|
|
_PREMAKE_COMMAND .. " postbuild_copy vs2017"
|
|
}
|
|
else
|
|
postbuildcommands
|
|
{
|
|
_PREMAKE_COMMAND .. " postbuild_copy qbs"
|
|
}
|
|
end
|
|
-------------------------
|
|
-- libSymmetry
|
|
-------------------------
|
|
project "Library"
|
|
kind "SharedLib"
|
|
language "C"
|
|
targetname "Symmetry"
|
|
defines {"GAME_LIB"}
|
|
files { "../src/common/**.c", "../src/common/**.h", "../src/libsymmetry/**.h", "../src/libsymmetry/**.c" }
|
|
|
|
-- configuration {"windows or linux", "gmake"}
|
|
--buildoptions {"`pkg-config --cflags-only-I sdl2`"}
|
|
|
|
configuration "windows"
|
|
targetname "libSymmetry"
|
|
|
|
configuration {"windows", "vs2017"}
|
|
flags "NoImportLib"
|
|
|
|
configuration "Debug"
|
|
defines {"GL_DEBUG_CONTEXT"} |