Add build profile action update-packages

Equivalent to "jam <list of all hpkgs> && jam @... <list of all hpkgs>",
i.e. it makes sure all hpkgs that are supposed to be in the image are
rebuilt respectively downloaded and copied to the image. It doesn't
remove old packages nor the activation files -- that still has to be
done manually.
This commit is contained in:
Ingo Weinhold 2013-04-21 01:44:21 +02:00
parent eee120f987
commit 7c092d4d86
3 changed files with 11 additions and 0 deletions

View File

@ -928,6 +928,9 @@ rule InstallOptionalHaikuImagePackage url : dirTokens : isCDPackage
local archiveFile = [ DownloadFile $(package) : $(url) ] ;
if $(package:S) = .hpkg {
if $(HAIKU_UPDATE_ALL_PACKAGES) {
HAIKU_INCLUDE_IN_IMAGE on $(archiveFile) = 1 ;
}
AddFilesToHaikuImage $(dirTokens) : $(archiveFile) ;
} else if ( $(isCDPackage) = true || $(isCDPackage) = 1 )
&& $(HAIKU_CD_NAME) {

View File

@ -407,6 +407,12 @@ rule DefineBuildProfile name : type : path {
HAIKU_INCLUDE_IN_PACKAGES = 1 ;
}
case "update-packages" : {
JAM_TARGETS = $(buildTarget) ;
SetUpdateHaikuImageOnly 1 ;
HAIKU_UPDATE_ALL_PACKAGES = 1 ;
}
case "mount" : {
if $(type) in "install" "cd-image" {
Exit "Build action \"mount\" not supported for profile type"

View File

@ -279,6 +279,8 @@ rule HaikuPackage package
HAIKU_CONTAINER_UPDATE_ONLY on $(package) = 1 ;
HAIKU_CONTAINER_INHERIT_UPDATE_VARIABLE on $(package)
= HAIKU_INCLUDE_IN_IMAGE ;
} else if $(HAIKU_UPDATE_ALL_PACKAGES) {
HAIKU_INCLUDE_IN_IMAGE on $(package) = 1 ;
}
HAIKU_CONTAINER_ALWAYS_CREATE_DIRECTORIES on $(package) = 1 ;