summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/genie/src/actions/make/make_cpp.lua
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/genie/src/actions/make/make_cpp.lua')
-rw-r--r--3rdparty/genie/src/actions/make/make_cpp.lua23
1 files changed, 17 insertions, 6 deletions
diff --git a/3rdparty/genie/src/actions/make/make_cpp.lua b/3rdparty/genie/src/actions/make/make_cpp.lua
index 4492ac2bbd2..869727c236d 100644
--- a/3rdparty/genie/src/actions/make/make_cpp.lua
+++ b/3rdparty/genie/src/actions/make/make_cpp.lua
@@ -90,7 +90,8 @@
_p('\t$(SILENT) $(LINKCMD) $(OBJECTS)')
else
_p('\t@$(call max_args,$(LINKCMD),'.. prj.archivesplit_size ..',$(OBJECTS))')
- end
+ _p('\t$(SILENT) $(LINKCMD_NDX)')
+ end
else
if prj.msglinking then
_p('\t@echo ' .. prj.msglinking)
@@ -238,7 +239,7 @@
cpp.flags(cfg, cc)
-- write out libraries, linker flags, and the link command
- cpp.linker(cfg, cc)
+ cpp.linker(prj, cfg, cc)
-- add objects for compilation, and remove any that are excluded per config.
_p(' OBJECTS := \\')
@@ -340,7 +341,7 @@
-- and the linker command.
--
- function cpp.linker(cfg, cc)
+ function cpp.linker(prj, cfg, cc)
-- Patch #3401184 changed the order
_p(' ALL_LDFLAGS += $(LDFLAGS)%s', make.list(table.join(cc.getlibdirflags(cfg), cc.getldflags(cfg), cfg.linkoptions)))
@@ -351,10 +352,20 @@
if cfg.platform:startswith("Universal") then
_p(' LINKCMD = libtool -o $(TARGET)')
else
- if cc.llvm then
- _p(' LINKCMD = $(AR) rcs $(TARGET)')
+ if (not prj.options.ArchiveSplit) then
+ if cc.llvm then
+ _p(' LINKCMD = $(AR) rcs $(TARGET)')
+ else
+ _p(' LINKCMD = $(AR) -rcs $(TARGET)')
+ end
else
- _p(' LINKCMD = $(AR) -rcs $(TARGET)')
+ if cc.llvm then
+ _p(' LINKCMD = $(AR) qc $(TARGET)')
+ _p(' LINKCMD_NDX= $(AR) cs $(TARGET)')
+ else
+ _p(' LINKCMD = $(AR) -qc $(TARGET)')
+ _p(' LINKCMD_NDX= $(AR) -cs $(TARGET)')
+ end
end
end
else