From d298e93c136561f6bac346ef0bcaf6a171b41003 Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 24 Feb 2020 20:57:06 +0100 Subject: [PATCH] Fix Linux linking issues --- build/scripts/common.lua | 48 +++++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/build/scripts/common.lua b/build/scripts/common.lua index 1ec784848..aca8527eb 100644 --- a/build/scripts/common.lua +++ b/build/scripts/common.lua @@ -89,7 +89,7 @@ function NazaraBuild:Execute() for k, libTable in ipairs(self.OrderedExtLibs) do project(libTable.Name) - self:PrepareGeneric() + self:PreconfigGenericProject() language(libTable.Language) location(_ACTION .. "/thirdparty") @@ -126,6 +126,8 @@ function NazaraBuild:Execute() end filter({}) + + self:PostconfigGenericProject() end end @@ -135,14 +137,14 @@ function NazaraBuild:Execute() if (_OPTIONS["united"]) then project("NazaraEngine") - self:PrepareMainWorkspace() + self:PreconfigNazaraProject() end for k, moduleTable in ipairs(self.OrderedModules) do if (not _OPTIONS["united"]) then project("Nazara" .. moduleTable.Name) - self:PrepareMainWorkspace() + self:PreconfigNazaraProject() end location(_ACTION .. "/modules") @@ -184,6 +186,14 @@ function NazaraBuild:Execute() end filter({}) + + if (not _OPTIONS["united"]) then + self:PostconfigNazaraProject() + end + end + + if (_OPTIONS["united"]) then + self:PostconfigNazaraProject() end -- Tools @@ -197,7 +207,7 @@ function NazaraBuild:Execute() project(prefix .. toolTable.Name) - self:PrepareMainWorkspace() + self:PreconfigNazaraProject() location(_ACTION .. "/tools") @@ -255,6 +265,8 @@ function NazaraBuild:Execute() end filter({}) + + self:PostconfigNazaraProject() end group("Examples") @@ -264,7 +276,7 @@ function NazaraBuild:Execute() project("Demo" .. exampleTable.Name) - self:PrepareMainWorkspace() + self:PreconfigNazaraProject() location(_ACTION .. "/examples") @@ -305,6 +317,8 @@ function NazaraBuild:Execute() end filter({}) + + self:PostconfigNazaraProject() end end end @@ -806,7 +820,7 @@ function NazaraBuild:Process(infoTable) return true end -function NazaraBuild:PrepareGeneric() +function NazaraBuild:PreconfigGenericProject() flags({ "MultiProcessorCompile", "NoMinimalRebuild", @@ -871,18 +885,22 @@ function NazaraBuild:PrepareGeneric() buildoptions("-mfpmath=sse") buildoptions("-ftree-vectorize") - -- Add options required for C++17 thread and filesystem - filter("action:gmake*") - links("stdc++fs") - links("pthread") - filter({}) buildoptions(self.Config["AdditionalCompilationOptions"]) end -function NazaraBuild:PrepareMainWorkspace() - self:PrepareGeneric() +function NazaraBuild:PostconfigGenericProject() + -- Add options required for C++17 thread and filesystem (have to be linked last) + filter("action:gmake*") + links("stdc++fs") + links("pthread") + + filter({}) +end + +function NazaraBuild:PreconfigNazaraProject() + self:PreconfigGenericProject() language("C++") @@ -916,6 +934,10 @@ function NazaraBuild:PrepareMainWorkspace() filter({}) end +function NazaraBuild:PostconfigNazaraProject() + self:PostconfigGenericProject() +end + function NazaraBuild:RegisterAction(actionTable) if (not actionTable.Manual) then if (actionTable.Name == nil or type(actionTable.Name) ~= "string" or string.len(actionTable.Name) == 0) then