mirror of
https://github.com/recastnavigation/recastnavigation.git
synced 2026-09-14 06:18:29 +00:00
* Changed asserts to be explicitly disabled with RC_DISABLE_ASSERTS rather than using NDEBUG This gives explicit control to users over when recast asserts are enabled or disabled. This is useful when users wish to disable asserts in debug mode or enable them in release mode. e.g. it's common to compile game code in debug alongside third party code in release. * Added Integration.md with documentation on the integration process for Recast
279 lines
5.9 KiB
Lua
279 lines
5.9 KiB
Lua
--
|
|
-- premake5 file to build RecastDemo
|
|
-- http://premake.github.io/
|
|
--
|
|
|
|
local action = _ACTION or ""
|
|
local todir = "Build/" .. action
|
|
|
|
workspace "recastnavigation"
|
|
configurations {
|
|
"Debug",
|
|
"Release"
|
|
}
|
|
|
|
location (todir)
|
|
|
|
floatingpoint "Fast"
|
|
exceptionhandling "Off"
|
|
rtti "Off"
|
|
symbols "On"
|
|
flags { "FatalCompileWarnings" }
|
|
cppdialect "C++98"
|
|
|
|
-- debug configs
|
|
filter "configurations:Debug"
|
|
defines { "DEBUG" }
|
|
targetdir ( todir .. "/lib/Debug" )
|
|
|
|
-- release configs
|
|
filter "configurations:Release"
|
|
defines { "RC_DISABLE_ASSERTS" }
|
|
optimize "On"
|
|
targetdir ( todir .. "/lib/Release" )
|
|
|
|
filter "system:not windows"
|
|
warnings "Extra"
|
|
|
|
-- windows specific
|
|
filter "system:windows"
|
|
platforms { "Win32", "Win64" }
|
|
defines { "WIN32", "_WINDOWS", "_CRT_SECURE_NO_WARNINGS", "_HAS_EXCEPTIONS=0" }
|
|
-- warnings "Extra" uses /W4 which is too aggressive for us, so use W3 instead.
|
|
-- Disable:
|
|
-- * C4351: new behavior for array initialization
|
|
buildoptions { "/W3", "/wd4351" }
|
|
|
|
filter "platforms:Win32"
|
|
architecture "x32"
|
|
|
|
filter "platforms:Win64"
|
|
architecture "x64"
|
|
|
|
project "DebugUtils"
|
|
language "C++"
|
|
kind "StaticLib"
|
|
includedirs {
|
|
"../DebugUtils/Include",
|
|
"../Detour/Include",
|
|
"../DetourTileCache/Include",
|
|
"../Recast/Include"
|
|
}
|
|
files {
|
|
"../DebugUtils/Include/*.h",
|
|
"../DebugUtils/Source/*.cpp"
|
|
}
|
|
|
|
project "Detour"
|
|
language "C++"
|
|
kind "StaticLib"
|
|
includedirs {
|
|
"../Detour/Include"
|
|
}
|
|
files {
|
|
"../Detour/Include/*.h",
|
|
"../Detour/Source/*.cpp"
|
|
}
|
|
-- linux library cflags and libs
|
|
filter {"system:linux", "toolset:gcc"}
|
|
buildoptions {
|
|
"-Wno-error=class-memaccess",
|
|
"-Wno-error=maybe-uninitialized"
|
|
}
|
|
|
|
project "DetourCrowd"
|
|
language "C++"
|
|
kind "StaticLib"
|
|
includedirs {
|
|
"../DetourCrowd/Include",
|
|
"../Detour/Include",
|
|
"../Recast/Include"
|
|
}
|
|
files {
|
|
"../DetourCrowd/Include/*.h",
|
|
"../DetourCrowd/Source/*.cpp"
|
|
}
|
|
|
|
project "DetourTileCache"
|
|
language "C++"
|
|
kind "StaticLib"
|
|
includedirs {
|
|
"../DetourTileCache/Include",
|
|
"../Detour/Include",
|
|
"../Recast/Include"
|
|
}
|
|
files {
|
|
"../DetourTileCache/Include/*.h",
|
|
"../DetourTileCache/Source/*.cpp"
|
|
}
|
|
|
|
project "Recast"
|
|
language "C++"
|
|
kind "StaticLib"
|
|
includedirs {
|
|
"../Recast/Include"
|
|
}
|
|
files {
|
|
"../Recast/Include/*.h",
|
|
"../Recast/Source/*.cpp"
|
|
}
|
|
|
|
project "RecastDemo"
|
|
language "C++"
|
|
kind "WindowedApp"
|
|
includedirs {
|
|
"../RecastDemo/Include",
|
|
"../RecastDemo/Contrib",
|
|
"../RecastDemo/Contrib/fastlz",
|
|
"../DebugUtils/Include",
|
|
"../Detour/Include",
|
|
"../DetourCrowd/Include",
|
|
"../DetourTileCache/Include",
|
|
"../Recast/Include"
|
|
}
|
|
files {
|
|
"../RecastDemo/Include/*.h",
|
|
"../RecastDemo/Source/*.cpp",
|
|
"../RecastDemo/Contrib/fastlz/*.h",
|
|
"../RecastDemo/Contrib/fastlz/*.c"
|
|
}
|
|
|
|
-- project dependencies
|
|
links {
|
|
"DebugUtils",
|
|
"Detour",
|
|
"DetourCrowd",
|
|
"DetourTileCache",
|
|
"Recast"
|
|
}
|
|
|
|
-- distribute executable in RecastDemo/Bin directory
|
|
targetdir "Bin"
|
|
|
|
-- linux library cflags and libs
|
|
filter "system:linux"
|
|
buildoptions {
|
|
"`pkg-config --cflags sdl2`",
|
|
"`pkg-config --cflags gl`",
|
|
"`pkg-config --cflags glu`",
|
|
"-Wno-ignored-qualifiers",
|
|
}
|
|
linkoptions {
|
|
"`pkg-config --libs sdl2`",
|
|
"`pkg-config --libs gl`",
|
|
"`pkg-config --libs glu`"
|
|
}
|
|
|
|
filter { "system:linux", "toolset:gcc", "files:*.c" }
|
|
buildoptions {
|
|
"-Wno-class-memaccess"
|
|
}
|
|
|
|
-- windows library cflags and libs
|
|
filter "system:windows"
|
|
includedirs { "../RecastDemo/Contrib/SDL/include" }
|
|
libdirs { "../RecastDemo/Contrib/SDL/lib/%{cfg.architecture:gsub('x86_64', 'x64')}" }
|
|
debugdir "../RecastDemo/Bin/"
|
|
links {
|
|
"glu32",
|
|
"opengl32",
|
|
"SDL2",
|
|
"SDL2main",
|
|
}
|
|
postbuildcommands {
|
|
-- Copy the SDL2 dll to the Bin folder.
|
|
'{COPY} "%{path.getabsolute("Contrib/SDL/lib/" .. cfg.architecture:gsub("x86_64", "x64") .. "/SDL2.dll")}" "%{cfg.targetdir}"'
|
|
}
|
|
|
|
-- mac includes and libs
|
|
filter "system:macosx"
|
|
kind "ConsoleApp" -- xcode4 failes to run the project if using WindowedApp
|
|
includedirs { "Bin/SDL2.framework/Headers" }
|
|
links {
|
|
"OpenGL.framework",
|
|
"SDL2.framework",
|
|
"Cocoa.framework",
|
|
}
|
|
|
|
project "Tests"
|
|
language "C++"
|
|
kind "ConsoleApp"
|
|
cppdialect "C++14" -- Catch requires newer C++ features
|
|
|
|
-- Catch requires RTTI and exceptions
|
|
exceptionhandling "On"
|
|
rtti "On"
|
|
|
|
includedirs {
|
|
"../DebugUtils/Include",
|
|
"../Detour/Include",
|
|
"../DetourCrowd/Include",
|
|
"../DetourTileCache/Include",
|
|
"../Recast/Include",
|
|
"../Recast/Source",
|
|
"../Tests/Recast",
|
|
"../Tests",
|
|
"../Tests/Contrib"
|
|
}
|
|
files {
|
|
"../Tests/*.h",
|
|
"../Tests/*.hpp",
|
|
"../Tests/*.cpp",
|
|
"../Tests/Recast/*.h",
|
|
"../Tests/Recast/*.cpp",
|
|
"../Tests/Detour/*.h",
|
|
"../Tests/Detour/*.cpp",
|
|
"../Tests/Contrib/catch2/*.cpp"
|
|
}
|
|
|
|
-- project dependencies
|
|
links {
|
|
"DebugUtils",
|
|
"Detour",
|
|
"DetourCrowd",
|
|
"DetourTileCache",
|
|
"Recast",
|
|
}
|
|
|
|
-- distribute executable in RecastDemo/Bin directory
|
|
targetdir "Bin"
|
|
|
|
-- enable ubsan and asan when compiling with clang
|
|
filter "toolset:clang"
|
|
buildoptions { "-fsanitize=undefined", "-fsanitize=address" } -- , "-fsanitize=memory" }
|
|
linkoptions { "-fsanitize=undefined", "-fsanitize=address" } --, "-fsanitize=memory" }
|
|
|
|
-- linux library cflags and libs
|
|
filter "system:linux"
|
|
buildoptions {
|
|
"`pkg-config --cflags sdl2`",
|
|
"`pkg-config --cflags gl`",
|
|
"`pkg-config --cflags glu`",
|
|
"-Wno-parentheses" -- Disable parentheses warning for the Tests target, as Catch's macros generate this everywhere.
|
|
}
|
|
linkoptions {
|
|
"`pkg-config --libs sdl2`",
|
|
"`pkg-config --libs gl`",
|
|
"`pkg-config --libs glu`",
|
|
"-lpthread"
|
|
}
|
|
|
|
-- windows library cflags and libs
|
|
filter "system:windows"
|
|
includedirs { "../RecastDemo/Contrib/SDL/include" }
|
|
libdirs { "../RecastDemo/Contrib/SDL/lib/%{cfg.architecture:gsub('x86_64', 'x64')}" }
|
|
debugdir "../RecastDemo/Bin/"
|
|
links {
|
|
"glu32",
|
|
"opengl32",
|
|
"SDL2",
|
|
"SDL2main",
|
|
}
|
|
|
|
-- mac includes and libs
|
|
filter "system:macosx"
|
|
kind "ConsoleApp"
|
|
links {
|
|
"Cocoa.framework",
|
|
}
|