Fix Linux linking issues

This commit is contained in:
Lynix 2020-02-24 20:57:06 +01:00
parent 2154782840
commit d298e93c13
1 changed files with 35 additions and 13 deletions

View File

@ -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