Simplify/fix the ExtractArchive rule and friends
* The call to the dummy actions isn't needed * The calls to Extract{Zip,Tar,HPKG}Archive1 couldn't work like that. The directory has to be the main target, since ExtractArchive is potentially invoked multiple times with different extracted file targets and the Extract*Archive1 is only invoked the first time. Tested only with the HPKG actions, but they others should work as well.
This commit is contained in:
parent
7c29395824
commit
bcdf492404
@ -236,15 +236,15 @@ rule ExtractArchive directory : entries : archiveFile : grist
|
|||||||
switch $(archiveFile:S)
|
switch $(archiveFile:S)
|
||||||
{
|
{
|
||||||
case .zip :
|
case .zip :
|
||||||
ExtractZipArchive1 $(targets) : $(directory) $(archiveFile) ;
|
ExtractZipArchive1 $(directory) : $(archiveFile) ;
|
||||||
|
|
||||||
case .tgz :
|
case .tgz :
|
||||||
ExtractTarArchive1 $(targets) : $(directory) $(archiveFile) ;
|
ExtractTarArchive1 $(directory) : $(archiveFile) ;
|
||||||
|
|
||||||
case .hpkg :
|
case .hpkg :
|
||||||
Depends $(targets) : <build>package ;
|
Depends $(directory) : <build>package ;
|
||||||
ExtractHPKGArchive1 $(targets)
|
ExtractHPKGArchive1 $(directory)
|
||||||
: <build>package $(directory) $(archiveFile) ;
|
: <build>package $(archiveFile) ;
|
||||||
|
|
||||||
case * :
|
case * :
|
||||||
Exit "ExtractArchive: Unhandled archive extension:"
|
Exit "ExtractArchive: Unhandled archive extension:"
|
||||||
@ -253,39 +253,32 @@ rule ExtractArchive directory : entries : archiveFile : grist
|
|||||||
INITIALIZED on $(directory) = 1 ;
|
INITIALIZED on $(directory) = 1 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Use a dummy rule so that it looks to jam like the targets are actually
|
|
||||||
# built from the directory target.
|
|
||||||
ExtractArchiveDummy $(targets) : $(directory) ;
|
|
||||||
|
|
||||||
return $(targets) ;
|
return $(targets) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
actions ExtractZipArchive1
|
actions ExtractZipArchive1
|
||||||
{
|
{
|
||||||
mkdir -p $(2[1])
|
mkdir -p $(1)
|
||||||
unzip -q -u -o -d $(2[1]) $(2[2])
|
unzip -q -u -o -d $(1) $(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
actions ExtractTarArchive1
|
actions ExtractTarArchive1
|
||||||
{
|
{
|
||||||
mkdir -p $(2[1])
|
mkdir -p $(1)
|
||||||
tar -C $(2[1]) -xf $(2[2])
|
tar -C $(1) -xf $(2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
actions ExtractHPKGArchive1
|
actions ExtractHPKGArchive1
|
||||||
{
|
{
|
||||||
mkdir -p "$(2[2])"
|
mkdir -p "$(1)"
|
||||||
$(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)
|
$(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)
|
||||||
$(2[1]) extract -C "$(2[2])" "$(2[3])"
|
$(2[1]) extract -C "$(1)" "$(2[2])"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
actions ExtractArchiveDummy
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
rule ObjectReference
|
rule ObjectReference
|
||||||
{
|
{
|
||||||
# ObjectReference <reference object> : <source object>
|
# ObjectReference <reference object> : <source object>
|
||||||
|
Loading…
Reference in New Issue
Block a user