From e9f440fdfdc4a2872dca8cb12928c6c3a9f118d8 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Thu, 13 Jun 2013 22:48:00 +0200 Subject: [PATCH] Update libpng package Also make use of new build feature rules --- build/jam/BuildFeatures | 47 ++++++++++----------------- build/jam/HaikuImage | 1 - build/jam/OptionalPackageDependencies | 8 +++-- build/jam/OptionalPackages | 22 +++++++++++++ build/jam/packages/Haiku | 7 ---- build/jam/packages/HaikuDevel | 3 -- src/add-ons/translators/hpgs/Jamfile | 7 ++-- src/add-ons/translators/icns/Jamfile | 7 ++-- src/add-ons/translators/png/Jamfile | 9 ++--- src/tools/translation/pnginfo/Jamfile | 7 ++-- 10 files changed, 61 insertions(+), 57 deletions(-) diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 073404f62d..788c5140f5 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -515,44 +515,31 @@ if $(HAIKU_BUILD_FEATURE_WEBKIT) { # libpng local libpngBaseURL = $(baseURL)/lib ; -if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 || $(TARGET_ARCH) = arm { +if $(TARGET_ARCH) in arm ppc x86 x86_64 { if $(TARGET_ARCH) = arm { - HAIKU_LIBPNG_FILE = libpng-1.5.12-arm-2012-11-21.zip ; + HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-arm-2012-11-21.zip ; } else if $(TARGET_ARCH) = ppc { - HAIKU_LIBPNG_FILE = libpng-1.5.12-ppc-gcc4-2012-08-27.zip ; + HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-ppc-gcc4-2012-08-27.zip ; } else if $(TARGET_ARCH) = x86_64 { - HAIKU_LIBPNG_FILE = libpng-1.5.12-x86_64-2012-11-18.zip ; + HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-x86_64-2012-11-18.zip ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_LIBPNG_FILE = libpng-1.5.12-x86-gcc4-2012-08-23.zip ; + HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-x86-gcc4-2012-08-23.zip ; } else { - HAIKU_LIBPNG_FILE = libpng-1.5.12-x86-gcc2-2012-08-23.zip ; + HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-2-x86_gcc2.hpkg ; + HAIKU_LIBPNG_DEVEL_PACKAGE = libpng_devel-1.5.12-2-x86_gcc2.hpkg ; } - local libpngZipFile = [ DownloadFile $(HAIKU_LIBPNG_FILE) - : $(libpngBaseURL)/$(HAIKU_LIBPNG_FILE) ] ; + HAIKU_LIBPNG_URL = $(hpkgBaseURL)/$(HAIKU_LIBPNG_PACKAGE) ; + HAIKU_LIBPNG_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_LIBPNG_DEVEL_PACKAGE) ; - HAIKU_LIBPNG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_LIBPNG_FILE:B) ] ; - - HAIKU_LIBPNG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBPNG_DIR) - : common/include : $(libpngZipFile) - : extracted-libpng ] ; - - HAIKU_LIBPNG_LIB = [ ExtractArchive $(HAIKU_LIBPNG_DIR) - : - common/lib/libpng.so - : $(libpngZipFile) - : extracted-libpng ] ; - HAIKU_LIBPNG_CURRENT_LIB = [ ExtractArchive $(HAIKU_LIBPNG_DIR) - : - common/lib/libpng15.so.15.12.0 - : $(libpngZipFile) - : extracted-libpng ] ; - Depends $(HAIKU_LIBPNG_LIB) $(HAIKU_LIBPNG_CURRENT_LIB) : $(HAIKU_LIBPNG_HEADERS_DEPENDENCY) ; - - HAIKU_LIBPNG_CURRENT_LINK = libpng15.so.15 ; - - HAIKU_LIBPNG_HEADERS = [ FDirName $(HAIKU_LIBPNG_DIR) common include ] ; + ExtractBuildFeatureArchives libpng : + file: base $(HAIKU_LIBPNG_URL) + runtime: lib + file: devel $(HAIKU_LIBPNG_DEVEL_URL) + depends: base + library: develop/lib/libpng.so + headers: develop/headers + ; EnableBuildFeatures libpng ; } else { diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 685e5ddd78..149bdb9c19 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -77,7 +77,6 @@ SYSTEM_LIBS = [ FFilterByBuildFeatures ] ; PRIVATE_SYSTEM_LIBS = [ FFilterByBuildFeatures $(HAIKU_JPEG_CURRENT_LIB) - $(HAIKU_LIBPNG_CURRENT_LIB) libalm.so libfluidsynth.so libilmimf.so diff --git a/build/jam/OptionalPackageDependencies b/build/jam/OptionalPackageDependencies index e71e6e1703..38f7e1c1b8 100644 --- a/build/jam/OptionalPackageDependencies +++ b/build/jam/OptionalPackageDependencies @@ -11,8 +11,10 @@ OptionalPackageDependencies Caya : Expat ; OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ; OptionalPackageDependencies Curl : OpenSSL ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; -OptionalPackageDependencies Development - : DevelopmentBase FFMpeg-devel FreeType-devel GLU-devel Perl Zlib-devel ; +OptionalPackageDependencies Development : + DevelopmentBase FFMpeg-devel FreeType-devel GLU-devel Libpng-devel Perl + Zlib-devel + ; OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ; OptionalPackageDependencies GetText : GetTextLibintl ; OptionalPackageDependencies GetTextLibintl : LibIconv ; @@ -46,4 +48,4 @@ OptionalPackageDependencies XZ-Utils : Tar ; OptionalPackageDependencies Zlib-devel : Zlib ; OptionalPackageDependencies MandatoryPackages - : Bzip Ctags FFMpeg FreeType GLU Grep ICU LibSolv Mesa Sed Tar Zlib ; + : Bzip Ctags FFMpeg FreeType GLU Grep ICU Libpng LibSolv Mesa Sed Tar Zlib ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index c8b84c307c..bf9dbbd3f0 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -67,6 +67,8 @@ # LibIconv - text encoding conversion library # LibLayout - GCC2 package needed by some BeOS apps to compile # Libmng - mng support library +# Libpng - Portable Network Graphics library +# Libpng-devel - Libpng development files # LibSolv - package dependency solver library # LibXML2 - the XML support library # LibXSLT - xslt library and utility @@ -1249,6 +1251,26 @@ if [ IsOptionalHaikuImagePackageAdded Libmng ] { } +# Libpng +if [ IsOptionalHaikuImagePackageAdded Libpng ] { + if $(TARGET_ARCH) in arm ppc x86 x86_64 { + InstallOptionalHaikuImagePackage $(HAIKU_LIBPNG_URL) : system ; + } else { + Echo "No optional package Libpng available for $(TARGET_ARCH)" ; + } +} + + +# Libpng-devel +if [ IsOptionalHaikuImagePackageAdded Libpng-devel ] { + if $(TARGET_ARCH) in arm ppc x86 x86_64 { + InstallOptionalHaikuImagePackage $(HAIKU_LIBPNG_DEVEL_URL) : system ; + } else { + Echo "No optional package Libpng-devel available for $(TARGET_ARCH)" ; + } +} + + # LibSolv if [ IsOptionalHaikuImagePackageAdded LibSolv ] { if ! $(HAIKU_LIBSOLV_PACKAGE) { diff --git a/build/jam/packages/Haiku b/build/jam/packages/Haiku index ba54ac02f7..f051a34c25 100644 --- a/build/jam/packages/Haiku +++ b/build/jam/packages/Haiku @@ -104,18 +104,11 @@ SYSTEM_LIBS_ALIASES = OPTIONAL_LIBS_ALIASES = libjpeg.so - libpng.so libz.so ; # TODO: Remove the following symlinks when the libraries have been packaged # properly! -# libpng.so links to the current libpng -AddSymlinkToPackage lib : $(HAIKU_LIBPNG_CURRENT_LIB:BS) - : $(HAIKU_LIBPNG_CURRENT_LINK) : : true ; -AddSymlinkToPackage lib : $(HAIKU_LIBPNG_CURRENT_LINK) - : libpng.so : : true ; - # libjpeg.so links to the current libjpeg AddSymlinkToPackage lib : $(HAIKU_JPEG_CURRENT_LIB:BS) : $(HAIKU_JPEG_CURRENT_LINK) : : true ; diff --git a/build/jam/packages/HaikuDevel b/build/jam/packages/HaikuDevel index 55e16853fd..46421dc2e2 100644 --- a/build/jam/packages/HaikuDevel +++ b/build/jam/packages/HaikuDevel @@ -73,9 +73,6 @@ AddHeaderDirectoryToPackage libs tiff : 3rdparty ; CopyDirectoryToPackage develop headers : $(HAIKU_JPEG_HEADERS_DEPENDENCY) : 3rdparty : : isTarget ; -CopyDirectoryToPackage develop headers : $(HAIKU_LIBPNG_HEADERS_DEPENDENCY) - : 3rdparty : : isTarget ; - # cpp headers if $(HAIKU_GCC_VERSION[1]) = 2 { # GCC 2 only -- for GCC 4 they come with the DevelopmentBase package diff --git a/src/add-ons/translators/hpgs/Jamfile b/src/add-ons/translators/hpgs/Jamfile index 764f25ec60..c7cdc578b4 100644 --- a/src/add-ons/translators/hpgs/Jamfile +++ b/src/add-ons/translators/hpgs/Jamfile @@ -3,8 +3,8 @@ SubDir HAIKU_TOP src add-ons translators hpgs ; SubDirSysHdrs [ FDirName $(SUBDIR) lib ] ; SubDirCcFlags -DHPGS_SHARED -std=c99 ; UseLibraryHeaders iconv ; +UseBuildFeatureHeaders libpng ; UseBuildFeatureHeaders zlib ; -UseHeaders $(HAIKU_LIBPNG_HEADERS) : true ; SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; local sources = @@ -42,7 +42,7 @@ hpgszostream.c ; Includes [ FGristFiles hpgsimage.c ] - : $(HAIKU_LIBPNG_HEADERS_DEPENDENCY) ; + : [ BuildFeatureAttribute libpng : headers ] ; Includes [ FGristFiles hpgszostream.c ] : [ BuildFeatureAttribute zlib : headers ] ; @@ -51,7 +51,8 @@ Translator HPGSTranslator : ConfigView.cpp HPGSTranslator.cpp $(sources) - : be translation $(HAIKU_LIBPNG_LIB) libtextencoding.so + : be translation libtextencoding.so + [ BuildFeatureAttribute libpng : library ] [ BuildFeatureAttribute zlib : library ] libtranslatorsutils.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) : true diff --git a/src/add-ons/translators/icns/Jamfile b/src/add-ons/translators/icns/Jamfile index 0782acd7fb..04151d9728 100644 --- a/src/add-ons/translators/icns/Jamfile +++ b/src/add-ons/translators/icns/Jamfile @@ -2,7 +2,7 @@ SubDir HAIKU_TOP src add-ons translators icns ; SetSubDirSupportedPlatformsBeOSCompatible ; -UseHeaders $(HAIKU_LIBPNG_HEADERS) : true ; +UseBuildFeatureHeaders libpng ; SubDirSysHdrs [ FDirName $(SUBDIR) openjpeg ] ; SubDirSysHdrs [ FDirName $(SUBDIR) libicns ] ; @@ -45,7 +45,7 @@ local openjpeg_files = ObjectCcFlags [ FGristFiles $(openjpeg_files:S=$(SUFOBJ)) ] : -w ; Includes [ FGristFiles icns_png.c ] - : $(HAIKU_LIBPNG_HEADERS_DEPENDENCY) ; + : [ BuildFeatureAttribute libpng : headers ] ; local libicns_files = icns_debug.c @@ -76,7 +76,8 @@ Translator ICNSTranslator : $(libicns_files) : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) - $(HAIKU_LIBPNG_LIB) $(HAIKU_LOCALE_LIBS) + [ BuildFeatureAttribute libpng : library ] + $(HAIKU_LOCALE_LIBS) : true ; diff --git a/src/add-ons/translators/png/Jamfile b/src/add-ons/translators/png/Jamfile index 27a744cb06..33e6bdc02e 100644 --- a/src/add-ons/translators/png/Jamfile +++ b/src/add-ons/translators/png/Jamfile @@ -2,8 +2,8 @@ SubDir HAIKU_TOP src add-ons translators png ; SetSubDirSupportedPlatformsBeOSCompatible ; +UseBuildFeatureHeaders libpng ; UseBuildFeatureHeaders zlib ; -UseHeaders $(HAIKU_LIBPNG_HEADERS) : true ; SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; AddResources PNGTranslator : PNGTranslator.rdef ; @@ -13,16 +13,17 @@ if $(HAIKU_GCC_VERSION[1]) = 2 { } Includes [ FGristFiles PNGTranslator.cpp PNGView.cpp ] - : $(HAIKU_LIBPNG_HEADERS_DEPENDENCY) ; + : [ BuildFeatureAttribute libpng : headers ] ; Translator PNGTranslator : PNGMain.cpp PNGTranslator.cpp PNGView.cpp - : be translation $(HAIKU_LIBPNG_LIB) + : be translation + [ BuildFeatureAttribute libpng : library ] [ BuildFeatureAttribute zlib : library ] - $(TARGET_LIBSUPC++) libtranslatorsutils.a + $(TARGET_LIBSUPC++) libtranslatorsutils.a $(HAIKU_LOCALE_LIBS) : true ; diff --git a/src/tools/translation/pnginfo/Jamfile b/src/tools/translation/pnginfo/Jamfile index 646b182a1f..ad98a6a630 100644 --- a/src/tools/translation/pnginfo/Jamfile +++ b/src/tools/translation/pnginfo/Jamfile @@ -1,15 +1,16 @@ SubDir HAIKU_TOP src tools translation pnginfo ; UseBuildFeatureHeaders zlib ; -UseHeaders $(HAIKU_LIBPNG_HEADERS) : true ; +UseBuildFeatureHeaders libpng ; Includes [ FGristFiles pnginfo.cpp ] : - $(HAIKU_LIBPNG_HEADERS_DEPENDENCY) + [ BuildFeatureAttribute libpng : headers ] [ BuildFeatureAttribute zlib : headers ] ; -BinCommand pnginfo : pnginfo.cpp : be $(HAIKU_LIBPNG_LIB) +BinCommand pnginfo : pnginfo.cpp : be + [ BuildFeatureAttribute libpng : library ] [ BuildFeatureAttribute zlib : library ] $(TARGET_LIBSUPC++) ;