* prepend "+" to each file name to be added to the library by wlib. This

indicates an "add" command, instead of "replace".

git-svn-id: trunk@30287 -
This commit is contained in:
nickysn 2015-03-23 01:19:19 +00:00
parent 931f5a0b54
commit 85cb180d80
2 changed files with 9 additions and 3 deletions

View File

@ -761,11 +761,11 @@ Implementation
Function TExternalLinker.MakeStaticLibrary:boolean; Function TExternalLinker.MakeStaticLibrary:boolean;
function GetNextFiles(const maxCmdLength : Longint; var item : TCmdStrListItem) : TCmdStr; function GetNextFiles(const maxCmdLength : Longint; var item : TCmdStrListItem; const addfilecmd : string) : TCmdStr;
begin begin
result := ''; result := '';
while (assigned(item) and ((length(result) + length(item.str) + 1) < maxCmdLength)) do begin while (assigned(item) and ((length(result) + length(item.str) + 1) < maxCmdLength)) do begin
result := result + ' ' + item.str; result := result + ' ' + addfilecmd + item.str;
item := TCmdStrListItem(item.next); item := TCmdStrListItem(item.next);
end; end;
end; end;
@ -849,7 +849,7 @@ Implementation
nextcmd := firstcmd nextcmd := firstcmd
else else
nextcmd := cmdstr; nextcmd := cmdstr;
Replace(nextcmd,'$FILES',GetNextFiles(2047, current)); Replace(nextcmd,'$FILES',GetNextFiles(2047, current, target_ar.addfilecmd));
if first then if first then
success:=DoExec(firstbinstr,nextcmd,false,true) success:=DoExec(firstbinstr,nextcmd,false,true)
else else
@ -1604,6 +1604,7 @@ Implementation
ar_gnu_ar_info : tarinfo = ar_gnu_ar_info : tarinfo =
( (
id : ar_gnu_ar; id : ar_gnu_ar;
addfilecmd : '';
arfirstcmd : ''; arfirstcmd : '';
arcmd : 'ar qS $LIB $FILES'; arcmd : 'ar qS $LIB $FILES';
arfinishcmd : 'ar s $LIB' arfinishcmd : 'ar s $LIB'
@ -1612,6 +1613,7 @@ Implementation
ar_gnu_ar_scripted_info : tarinfo = ar_gnu_ar_scripted_info : tarinfo =
( (
id : ar_gnu_ar_scripted; id : ar_gnu_ar_scripted;
addfilecmd : '';
arfirstcmd : ''; arfirstcmd : '';
arcmd : 'ar -M < $SCRIPT'; arcmd : 'ar -M < $SCRIPT';
arfinishcmd : '' arfinishcmd : ''
@ -1619,6 +1621,7 @@ Implementation
ar_gnu_gar_info : tarinfo = ar_gnu_gar_info : tarinfo =
( id : ar_gnu_gar; ( id : ar_gnu_gar;
addfilecmd : '';
arfirstcmd : ''; arfirstcmd : '';
arcmd : 'gar qS $LIB $FILES'; arcmd : 'gar qS $LIB $FILES';
arfinishcmd : 'gar s $LIB' arfinishcmd : 'gar s $LIB'
@ -1626,6 +1629,7 @@ Implementation
ar_watcom_wlib_omf_info : tarinfo = ar_watcom_wlib_omf_info : tarinfo =
( id : ar_watcom_wlib_omf; ( id : ar_watcom_wlib_omf;
addfilecmd : '+';
arfirstcmd : 'wlib -q -fo -c -b -n -o=$OUTPUTLIB $LIB $FILES'; arfirstcmd : 'wlib -q -fo -c -b -n -o=$OUTPUTLIB $LIB $FILES';
arcmd : 'wlib -q -fo -c -b -o=$OUTPUTLIB $LIB $FILES'; arcmd : 'wlib -q -fo -c -b -o=$OUTPUTLIB $LIB $FILES';
arfinishcmd : '' arfinishcmd : ''
@ -1634,6 +1638,7 @@ Implementation
ar_watcom_wlib_omf_scripted_info : tarinfo = ar_watcom_wlib_omf_scripted_info : tarinfo =
( (
id : ar_watcom_wlib_omf_scripted; id : ar_watcom_wlib_omf_scripted;
addfilecmd : '+';
arfirstcmd : ''; arfirstcmd : '';
arcmd : 'wlib @$SCRIPT'; arcmd : 'wlib @$SCRIPT';
arfinishcmd : '' arfinishcmd : ''

View File

@ -83,6 +83,7 @@ interface
parinfo = ^tarinfo; parinfo = ^tarinfo;
tarinfo = record tarinfo = record
id : tar; id : tar;
addfilecmd : string[10];
arfirstcmd : string[50]; arfirstcmd : string[50];
arcmd : string[50]; arcmd : string[50];
arfinishcmd : string[10]; arfinishcmd : string[10];