Build: Add server option, allows to compile only the server-side part of Nazara
Former-commit-id: 28347f372b3d4b0afef0fcf8f54ebf45589470a3 [formerly b432be7d6e4404bd1c5a10c4b0a7ef43fceed307] Former-commit-id: 1622472689c5f87d5d77ffe391f1dde9cece815d
This commit is contained in:
parent
19a1cbb7e0
commit
b6be16b3c3
|
|
@ -1,20 +1,17 @@
|
||||||
// This file was automatically generated on 03 Mar 2016 at 14:09:12
|
// This file was automatically generated on 01 Jun 2016 at 13:11:09
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifndef NDK_COMPONENTS_GLOBAL_HPP
|
#ifndef NDK_COMPONENTS_GLOBAL_HPP
|
||||||
#define NDK_COMPONENTS_GLOBAL_HPP
|
#define NDK_COMPONENTS_GLOBAL_HPP
|
||||||
|
|
||||||
|
#include <NDK/Components/CameraComponent.hpp>
|
||||||
#include <NDK/Components/CollisionComponent.hpp>
|
#include <NDK/Components/CollisionComponent.hpp>
|
||||||
|
#include <NDK/Components/GraphicsComponent.hpp>
|
||||||
|
#include <NDK/Components/LightComponent.hpp>
|
||||||
|
#include <NDK/Components/ListenerComponent.hpp>
|
||||||
#include <NDK/Components/NodeComponent.hpp>
|
#include <NDK/Components/NodeComponent.hpp>
|
||||||
#include <NDK/Components/PhysicsComponent.hpp>
|
#include <NDK/Components/PhysicsComponent.hpp>
|
||||||
#include <NDK/Components/VelocityComponent.hpp>
|
#include <NDK/Components/VelocityComponent.hpp>
|
||||||
|
|
||||||
#ifndef NDK_SERVER
|
|
||||||
#include <NDK/Components/CameraComponent.hpp>
|
|
||||||
#include <NDK/Components/GraphicsComponent.hpp>
|
|
||||||
#include <NDK/Components/LightComponent.hpp>
|
|
||||||
#include <NDK/Components/ListenerComponent.hpp>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // NDK_COMPONENTS_GLOBAL_HPP
|
#endif // NDK_COMPONENTS_GLOBAL_HPP
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef NDK_SERVER
|
||||||
#ifndef NDK_COMPONENTS_CAMERACOMPONENT_HPP
|
#ifndef NDK_COMPONENTS_CAMERACOMPONENT_HPP
|
||||||
#define NDK_COMPONENTS_CAMERACOMPONENT_HPP
|
#define NDK_COMPONENTS_CAMERACOMPONENT_HPP
|
||||||
|
|
||||||
|
|
@ -108,3 +109,4 @@ namespace Ndk
|
||||||
#include <NDK/Components/CameraComponent.inl>
|
#include <NDK/Components/CameraComponent.inl>
|
||||||
|
|
||||||
#endif // NDK_COMPONENTS_CAMERACOMPONENT_HPP
|
#endif // NDK_COMPONENTS_CAMERACOMPONENT_HPP
|
||||||
|
#endif // NDK_SERVER
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef NDK_SERVER
|
||||||
#ifndef NDK_COMPONENTS_GRAPHICSCOMPONENT_HPP
|
#ifndef NDK_COMPONENTS_GRAPHICSCOMPONENT_HPP
|
||||||
#define NDK_COMPONENTS_GRAPHICSCOMPONENT_HPP
|
#define NDK_COMPONENTS_GRAPHICSCOMPONENT_HPP
|
||||||
|
|
||||||
|
|
@ -80,3 +81,4 @@ namespace Ndk
|
||||||
#include <NDK/Components/GraphicsComponent.inl>
|
#include <NDK/Components/GraphicsComponent.inl>
|
||||||
|
|
||||||
#endif // NDK_COMPONENTS_GRAPHICSCOMPONENT_HPP
|
#endif // NDK_COMPONENTS_GRAPHICSCOMPONENT_HPP
|
||||||
|
#endif // NDK_SERVER
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef NDK_SERVER
|
||||||
#ifndef NDK_COMPONENTS_LIGHTCOMPONENT_HPP
|
#ifndef NDK_COMPONENTS_LIGHTCOMPONENT_HPP
|
||||||
#define NDK_COMPONENTS_LIGHTCOMPONENT_HPP
|
#define NDK_COMPONENTS_LIGHTCOMPONENT_HPP
|
||||||
|
|
||||||
|
|
@ -28,3 +29,4 @@ namespace Ndk
|
||||||
#include <NDK/Components/LightComponent.inl>
|
#include <NDK/Components/LightComponent.inl>
|
||||||
|
|
||||||
#endif // NDK_COMPONENTS_LIGHTCOMPONENT_HPP
|
#endif // NDK_COMPONENTS_LIGHTCOMPONENT_HPP
|
||||||
|
#endif // NDK_SERVER
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef NDK_SERVER
|
||||||
#ifndef NDK_COMPONENTS_LISTENERCOMPONENT_HPP
|
#ifndef NDK_COMPONENTS_LISTENERCOMPONENT_HPP
|
||||||
#define NDK_COMPONENTS_LISTENERCOMPONENT_HPP
|
#define NDK_COMPONENTS_LISTENERCOMPONENT_HPP
|
||||||
|
|
||||||
|
|
@ -30,3 +31,4 @@ namespace Ndk
|
||||||
#include <NDK/Components/ListenerComponent.inl>
|
#include <NDK/Components/ListenerComponent.inl>
|
||||||
|
|
||||||
#endif // NDK_COMPONENTS_LISTENERCOMPONENT_HPP
|
#endif // NDK_COMPONENTS_LISTENERCOMPONENT_HPP
|
||||||
|
#endif // NDK_SERVER
|
||||||
|
|
@ -1,16 +1,13 @@
|
||||||
// This file was automatically generated on 03 Mar 2016 at 14:09:12
|
// This file was automatically generated on 01 Jun 2016 at 13:11:09
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#ifndef NDK_SYSTEMS_GLOBAL_HPP
|
#ifndef NDK_SYSTEMS_GLOBAL_HPP
|
||||||
#define NDK_SYSTEMS_GLOBAL_HPP
|
#define NDK_SYSTEMS_GLOBAL_HPP
|
||||||
|
|
||||||
|
#include <NDK/Systems/ListenerSystem.hpp>
|
||||||
#include <NDK/Systems/PhysicsSystem.hpp>
|
#include <NDK/Systems/PhysicsSystem.hpp>
|
||||||
|
#include <NDK/Systems/RenderSystem.hpp>
|
||||||
#include <NDK/Systems/VelocitySystem.hpp>
|
#include <NDK/Systems/VelocitySystem.hpp>
|
||||||
|
|
||||||
#ifndef NDK_SERVER
|
|
||||||
#include <NDK/Systems/ListenerSystem.hpp>
|
|
||||||
#include <NDK/Systems/RenderSystem.hpp>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // NDK_SYSTEMS_GLOBAL_HPP
|
#endif // NDK_SYSTEMS_GLOBAL_HPP
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef NDK_SERVER
|
||||||
#ifndef NDK_SYSTEMS_LISTENERSYSTEM_HPP
|
#ifndef NDK_SYSTEMS_LISTENERSYSTEM_HPP
|
||||||
#define NDK_SYSTEMS_LISTENERSYSTEM_HPP
|
#define NDK_SYSTEMS_LISTENERSYSTEM_HPP
|
||||||
|
|
||||||
|
|
@ -27,3 +28,4 @@ namespace Ndk
|
||||||
#include <NDK/Systems/ListenerSystem.inl>
|
#include <NDK/Systems/ListenerSystem.inl>
|
||||||
|
|
||||||
#endif // NDK_SYSTEMS_LISTENERSYSTEM_HPP
|
#endif // NDK_SYSTEMS_LISTENERSYSTEM_HPP
|
||||||
|
#endif // NDK_SERVER
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#ifndef NDK_SERVER
|
||||||
#ifndef NDK_SYSTEMS_RENDERSYSTEM_HPP
|
#ifndef NDK_SYSTEMS_RENDERSYSTEM_HPP
|
||||||
#define NDK_SYSTEMS_RENDERSYSTEM_HPP
|
#define NDK_SYSTEMS_RENDERSYSTEM_HPP
|
||||||
|
|
||||||
|
|
@ -70,3 +71,4 @@ namespace Ndk
|
||||||
#include <NDK/Systems/RenderSystem.inl>
|
#include <NDK/Systems/RenderSystem.inl>
|
||||||
|
|
||||||
#endif // NDK_SYSTEMS_RENDERSYSTEM_HPP
|
#endif // NDK_SYSTEMS_RENDERSYSTEM_HPP
|
||||||
|
#endif // NDK_SERVER
|
||||||
|
|
|
||||||
|
|
@ -196,9 +196,7 @@ function NazaraBuild:Execute()
|
||||||
targetdir("../lib/" .. makeLibDir .. "/x64")
|
targetdir("../lib/" .. makeLibDir .. "/x64")
|
||||||
|
|
||||||
-- Copy the module binaries to the example folder
|
-- Copy the module binaries to the example folder
|
||||||
if (os.is("windows")) then
|
|
||||||
self:MakeCopyAfterBuild(moduleTable)
|
self:MakeCopyAfterBuild(moduleTable)
|
||||||
end
|
|
||||||
|
|
||||||
configuration({"vs*", "x86"})
|
configuration({"vs*", "x86"})
|
||||||
libdirs("../extlibs/lib/msvc/x86")
|
libdirs("../extlibs/lib/msvc/x86")
|
||||||
|
|
@ -310,7 +308,7 @@ function NazaraBuild:Execute()
|
||||||
targetdir("../plugins/" .. toolTable.Name .. "/lib/" .. makeLibDir .. "/x64")
|
targetdir("../plugins/" .. toolTable.Name .. "/lib/" .. makeLibDir .. "/x64")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Copy the module binaries to the example folder
|
-- Copy the tool binaries to the example folder
|
||||||
if (toolTable.CopyTargetToExampleDir) then
|
if (toolTable.CopyTargetToExampleDir) then
|
||||||
self:MakeCopyAfterBuild(toolTable)
|
self:MakeCopyAfterBuild(toolTable)
|
||||||
end
|
end
|
||||||
|
|
@ -450,6 +448,11 @@ end
|
||||||
|
|
||||||
function NazaraBuild:Initialize()
|
function NazaraBuild:Initialize()
|
||||||
-- Commençons par les options
|
-- Commençons par les options
|
||||||
|
newoption({
|
||||||
|
trigger = "server",
|
||||||
|
description = "Excludes client-only modules/tools/examples"
|
||||||
|
})
|
||||||
|
|
||||||
newoption({
|
newoption({
|
||||||
trigger = "united",
|
trigger = "united",
|
||||||
description = "Builds all the modules as one united library"
|
description = "Builds all the modules as one united library"
|
||||||
|
|
@ -605,13 +608,20 @@ function NazaraBuild:Initialize()
|
||||||
self.OrderedExtLibs = {}
|
self.OrderedExtLibs = {}
|
||||||
self.OrderedModules = {}
|
self.OrderedModules = {}
|
||||||
self.OrderedTools = {}
|
self.OrderedTools = {}
|
||||||
local tables = {self.Examples, self.ExtLibs, self.Modules, self.Tools}
|
local tables = {self.ExtLibs, self.Modules, self.Tools, self.Examples}
|
||||||
local orderedTables = {self.OrderedExamples, self.OrderedExtLibs, self.OrderedModules, self.OrderedTools}
|
local orderedTables = {self.OrderedExtLibs, self.OrderedModules, self.OrderedTools, self.OrderedExamples}
|
||||||
for k,projects in ipairs(tables) do
|
for k,projects in ipairs(tables) do
|
||||||
|
-- Begin by resolving every project (because of dependencies in the same category)
|
||||||
for projectId,projectTable in pairs(projects) do
|
for projectId,projectTable in pairs(projects) do
|
||||||
self:Process(projectTable)
|
self:Resolve(projectTable)
|
||||||
|
end
|
||||||
|
|
||||||
|
for projectId,projectTable in pairs(projects) do
|
||||||
|
if (self:Process(projectTable)) then
|
||||||
table.insert(orderedTables[k], projectTable)
|
table.insert(orderedTables[k], projectTable)
|
||||||
|
else
|
||||||
|
print("Rejected client-only " .. projectTable.Name .. " " .. projectTable.Type)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
table.sort(orderedTables[k], function (a, b) return a.Name < b.Name end)
|
table.sort(orderedTables[k], function (a, b) return a.Name < b.Name end)
|
||||||
|
|
@ -772,6 +782,10 @@ local PosixOSes = {
|
||||||
}
|
}
|
||||||
|
|
||||||
function NazaraBuild:Process(infoTable)
|
function NazaraBuild:Process(infoTable)
|
||||||
|
if (infoTable.ClientOnly and _OPTIONS["server"]) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
local libraries = {}
|
local libraries = {}
|
||||||
for k, library in pairs(infoTable.Libraries) do
|
for k, library in pairs(infoTable.Libraries) do
|
||||||
local moduleName = library:match("Nazara(%w+)")
|
local moduleName = library:match("Nazara(%w+)")
|
||||||
|
|
@ -779,6 +793,11 @@ function NazaraBuild:Process(infoTable)
|
||||||
local toolTable = moduleName and self.Tools[moduleName:lower()]
|
local toolTable = moduleName and self.Tools[moduleName:lower()]
|
||||||
|
|
||||||
if (moduleTable) then
|
if (moduleTable) then
|
||||||
|
if (moduleTable.ClientOnly and _OPTIONS["server"]) then
|
||||||
|
infoTable.ClientOnly = true
|
||||||
|
return false -- We depend on a client-only library
|
||||||
|
end
|
||||||
|
|
||||||
if (_OPTIONS["united"]) then
|
if (_OPTIONS["united"]) then
|
||||||
library = "NazaraEngine"
|
library = "NazaraEngine"
|
||||||
else
|
else
|
||||||
|
|
@ -794,6 +813,11 @@ function NazaraBuild:Process(infoTable)
|
||||||
else
|
else
|
||||||
local extLibTable = self.ExtLibs[library:lower()]
|
local extLibTable = self.ExtLibs[library:lower()]
|
||||||
if (extLibTable) then
|
if (extLibTable) then
|
||||||
|
if (extLibTable.ClientOnly and _OPTIONS["server"]) then
|
||||||
|
infoTable.ClientOnly = true
|
||||||
|
return false -- We depend on a client-only library
|
||||||
|
end
|
||||||
|
|
||||||
library = extLibTable.Name
|
library = extLibTable.Name
|
||||||
|
|
||||||
table.insert(infoTable.ConfigurationLibraries.DebugStatic, library .. "-s-d")
|
table.insert(infoTable.ConfigurationLibraries.DebugStatic, library .. "-s-d")
|
||||||
|
|
@ -802,6 +826,11 @@ function NazaraBuild:Process(infoTable)
|
||||||
table.insert(infoTable.ConfigurationLibraries.ReleaseDynamic, library .. "-s")
|
table.insert(infoTable.ConfigurationLibraries.ReleaseDynamic, library .. "-s")
|
||||||
else
|
else
|
||||||
if (toolTable and toolTable.Kind == "library") then
|
if (toolTable and toolTable.Kind == "library") then
|
||||||
|
if (toolTable.ClientOnly and _OPTIONS["server"]) then
|
||||||
|
infoTable.ClientOnly = true
|
||||||
|
return false -- We depend on a client-only library
|
||||||
|
end
|
||||||
|
|
||||||
library = "Nazara" .. toolTable.Name
|
library = "Nazara" .. toolTable.Name
|
||||||
|
|
||||||
-- Import tools includes
|
-- Import tools includes
|
||||||
|
|
@ -862,6 +891,14 @@ function NazaraBuild:Process(infoTable)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
function NazaraBuild:Resolve(infoTable)
|
||||||
|
if (type(infoTable.Libraries) == "function") then
|
||||||
|
infoTable.Libraries = infoTable.Libraries()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function NazaraBuild:MakeCopyAfterBuild(infoTable)
|
function NazaraBuild:MakeCopyAfterBuild(infoTable)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
MODULE.Name = "Audio"
|
MODULE.Name = "Audio"
|
||||||
|
|
||||||
|
MODULE.ClientOnly = true
|
||||||
|
|
||||||
MODULE.Defines = {
|
MODULE.Defines = {
|
||||||
"NAZARA_AUDIO_OPENAL"
|
"NAZARA_AUDIO_OPENAL"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
MODULE.Name = "Renderer"
|
MODULE.Name = "Renderer"
|
||||||
|
|
||||||
|
MODULE.ClientOnly = true
|
||||||
|
|
||||||
MODULE.Defines = {
|
MODULE.Defines = {
|
||||||
"NAZARA_RENDERER_OPENGL"
|
"NAZARA_RENDERER_OPENGL"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
MODULE.Name = "Vulkan"
|
MODULE.Name = "Vulkan"
|
||||||
|
|
||||||
|
MODULE.ClientOnly = true
|
||||||
|
|
||||||
MODULE.Defines = {
|
MODULE.Defines = {
|
||||||
"VK_NO_PROTOTYPES"
|
"VK_NO_PROTOTYPES"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,14 +22,11 @@ TOOL.Files = {
|
||||||
"../SDK/src/NDK/**.cpp"
|
"../SDK/src/NDK/**.cpp"
|
||||||
}
|
}
|
||||||
|
|
||||||
TOOL.Libraries = {
|
TOOL.Libraries = function()
|
||||||
"NazaraCore",
|
local libraries = {}
|
||||||
"NazaraAudio",
|
for k,v in pairs(NazaraBuild.Modules) do
|
||||||
"NazaraLua",
|
table.insert(libraries, "Nazara" .. v.Name)
|
||||||
"NazaraNetwork",
|
end
|
||||||
"NazaraNoise",
|
|
||||||
"NazaraPhysics",
|
return libraries
|
||||||
"NazaraUtility",
|
end
|
||||||
"NazaraRenderer",
|
|
||||||
"NazaraGraphics"
|
|
||||||
}
|
|
||||||
|
|
@ -37,11 +37,14 @@ TOOL.FilesExcluded = {
|
||||||
"../SDK/**/LuaBinding_Renderer.*"
|
"../SDK/**/LuaBinding_Renderer.*"
|
||||||
}
|
}
|
||||||
|
|
||||||
TOOL.Libraries = {
|
|
||||||
"NazaraCore",
|
TOOL.Libraries = function()
|
||||||
"NazaraLua",
|
local libraries = {}
|
||||||
"NazaraNetwork",
|
for k,v in pairs(NazaraBuild.Modules) do
|
||||||
"NazaraNoise",
|
if (not v.ClientOnly) then
|
||||||
"NazaraPhysics",
|
table.insert(libraries, "Nazara" .. v.Name)
|
||||||
"NazaraUtility"
|
end
|
||||||
}
|
end
|
||||||
|
|
||||||
|
return libraries
|
||||||
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue