From patchwork Fri Feb 5 05:16:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Kochetkov X-Patchwork-Id: 1436439 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=inbox.ru header.i=@inbox.ru header.a=rsa-sha256 header.s=mail3 header.b=V86riAMF; dkim-atps=neutral Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DX3XW6vgTz9sWL for ; Fri, 5 Feb 2021 16:15:35 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 5C7C3869F2; Fri, 5 Feb 2021 05:15:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id A7V3gX37ctSd; Fri, 5 Feb 2021 05:15:31 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id AEE60869E4; Fri, 5 Feb 2021 05:15:31 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id BA9C51BF866 for ; Fri, 5 Feb 2021 05:15:28 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id B2AC98729E for ; Fri, 5 Feb 2021 05:15:28 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RkoAWJUI34ah for ; Fri, 5 Feb 2021 05:15:26 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from smtp41.i.mail.ru (smtp41.i.mail.ru [94.100.177.101]) by hemlock.osuosl.org (Postfix) with ESMTPS id D532987290 for ; Fri, 5 Feb 2021 05:15:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=inbox.ru; s=mail3; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From:From:Subject:Content-Type:Content-Transfer-Encoding:To:Cc; bh=lTr9AD8TP0lOgNd0LD5W5x0udyiQv2bLWYKJUrlaGhk=; b=V86riAMFQqkR0Plne6JCByee4PiC0Xlzn/tjirC/pfgdbTnFP1FCmT2tABLYDRyij2n9y9ILJVBKP2yR4z8ntWRNHUrDwHL34yg37Olt8VGPvri7hVJgAeukFCdRT0j+Es/aVms4jyqjZESfoyQzZq581xA6Oll92GMazWV5yx0=; Received: by smtp41.i.mail.ru with esmtpa (envelope-from ) id 1l7tSk-0001Or-Jy; Fri, 05 Feb 2021 08:15:23 +0300 To: buildroot@buildroot.org Date: Fri, 5 Feb 2021 08:16:40 +0300 Message-Id: <20210205051640.9602-1-fido_max@inbox.ru> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Authentication-Results: smtp41.i.mail.ru; auth=pass smtp.auth=fido_max@inbox.ru smtp.mailfrom=fido_max@inbox.ru X-7564579A: B8F34718100C35BD X-77F55803: 4F1203BC0FB41BD953AC099BC0052A9CAEF2BF42A2A7729330F8028A4C0D8125182A05F538085040BA51CB38723524C3E5A06824C617782E03EA798978885E604325E921CBCFB4EC X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE796AA83661EF29BCEEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637051ADBC467AF48EA8638F802B75D45FF5571747095F342E8C7A0BC55FA0FE5FC6994D5E2152F17FBACFCCA58E4BA1AE26201CEA4ECF29B8D389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C0A3E989B1926288338941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B6D52CD31C43BF465FCC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB8D32BA5DBAC0009BE9E8FC8737B5C22499635D254FADD292C76E601842F6C81A12EF20D2F80756B5F7E9C4E3C761E06A776E601842F6C81A127C277FBC8AE2E8BEE686B575290A7923AA81AA40904B5D9DBF02ECDB25306B2B25CBF701D1BE8734AD6D5ED66289B5278DA827A17800CE757A4FF9509D8095393EC92FD9297F6715571747095F342E857739F23D657EF2BD5E8D9A59859A8B62972A486E2682F5975ECD9A6C639B01B4E70A05D1297E1BBC6867C52282FAC85D9B7C4F32B44FF57285124B2A10EEC6C00306258E7E6ABB4E4A6367B16DE6309 X-B7AD71C0: AC4F5C86D027EB782CDD5689AFBDA7A24A6D60772A99906F8E1CD14B953EB46DCD18195E47B61B08355D89D7DBCDD132 X-C1DE0DAB: C20DE7B7AB408E4181F030C43753B8186998911F362727C414F749A5E30D975C823F58AE0C7795A93B3111A0082191885D4DD0238867D2BC9C2B6934AE262D3EE7EAB7254005DCEDEEDC9C70C0CB2EC61E0A4E2319210D9B64D260DF9561598F01A9E91200F654B038889A5EF59567618E8E86DC7131B365E7726E8460B7C23C X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34B8CF715B894FC711086CD1D0409A962BFAB10C22F63E2D4DBC2153C087193A74FA9D8425E9F3B9371D7E09C32AA3244C790342F951A41AA54A83F39CB779A917D08D48398F32B4A6FACE5A9C96DEB163 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojQDytKvZo6Vt9cHEEEsQBVw== X-Mailru-Sender: 11C2EC085EDE56FA9C10FA2967F5AB24436977DC0804A4822C398B7E8D0056FE3621FE89FBB41702EE9242D420CFEBFD3DDE9B364B0DF2891A624F84B2C74EDA4239CF2AF0A6D4F80DA7A0AF5A3A8387 X-Mras: Ok Subject: [Buildroot] [PATCH 1/1] package/libmapnik: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Maxim Kochetkov via buildroot Reply-To: Maxim Kochetkov Cc: Maxim Kochetkov , Thomas Petazzoni Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Mapnik is an open source toolkit for developing mapping applications. At the core is a C++ shared library providing algorithms and patterns for spatial data access and visualization. Mapnik is basically a collection of geographic objects like maps, layers, datasources, features, and geometries. The library doesn't rely on any OS specific "windowing systems" and it can be deployed to any server environment. It is intended to play fair in a multi-threaded environment and is aimed primarily, but not exclusively, at web-based development. For further information see http://mapnik.org and also our wiki documentation. https://github.com/mapnik/mapnik Signed-off-by: Maxim Kochetkov --- package/Config.in | 1 + ...-to-check-dlfcn-when-cross-compiling.patch | 34 ++++++ ...-libs-detection-when-cross-compiling.patch | 50 +++++++++ ...-data-detection-when-cross-compiling.patch | 70 ++++++++++++ package/libmapnik/Config.in | 29 +++++ package/libmapnik/libmapnik.mk | 100 ++++++++++++++++++ 6 files changed, 284 insertions(+) create mode 100644 package/libmapnik/0001-Allow-to-check-dlfcn-when-cross-compiling.patch create mode 100644 package/libmapnik/0002-Allow-optional-libs-detection-when-cross-compiling.patch create mode 100644 package/libmapnik/0003-Allow-lib-data-detection-when-cross-compiling.patch create mode 100644 package/libmapnik/Config.in create mode 100644 package/libmapnik/libmapnik.mk diff --git a/package/Config.in b/package/Config.in index 06dfc32cc6..7ef9d9d1dd 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1909,6 +1909,7 @@ menu "Other" source "package/libite/Config.in" source "package/liblinear/Config.in" source "package/libloki/Config.in" + source "package/libmapnik/Config.in" source "package/libnpth/Config.in" source "package/libnspr/Config.in" source "package/libpfm4/Config.in" diff --git a/package/libmapnik/0001-Allow-to-check-dlfcn-when-cross-compiling.patch b/package/libmapnik/0001-Allow-to-check-dlfcn-when-cross-compiling.patch new file mode 100644 index 0000000000..fa25de7346 --- /dev/null +++ b/package/libmapnik/0001-Allow-to-check-dlfcn-when-cross-compiling.patch @@ -0,0 +1,34 @@ +From 45441e99809ee6cd75b9691bff35127936e96f28 Mon Sep 17 00:00:00 2001 +From: fidomax +Date: Thu, 28 Jan 2021 14:34:34 +0300 +Subject: [PATCH 1/3] Allow to check dlfcn when cross-compiling + +Signed-off-by: Maxim Kochetkov +Fetch from: https://github.com/mapnik/mapnik/commit/28ff0be6b91db2891e040b482fce45a532ab0add.patch +--- + SConstruct | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/SConstruct b/SConstruct +index 35b68f73c..6e169e34c 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -1545,11 +1545,10 @@ if not preconfigured: + else: + env['MISSING_DEPS'].append('libxml2') + +- if not env['HOST']: +- if conf.CheckHasDlfcn(): +- env.Append(CPPDEFINES = '-DMAPNIK_HAS_DLCFN') +- else: +- env['SKIPPED_DEPS'].append('dlfcn') ++ if conf.CheckHasDlfcn(): ++ env.Append(CPPDEFINES = '-DMAPNIK_HAS_DLCFN') ++ else: ++ env['SKIPPED_DEPS'].append('dlfcn') + + if env['JPEG']: + OPTIONAL_LIBSHEADERS.append(['jpeg', ['stdio.h', 'jpeglib.h'], False,'C','-DHAVE_JPEG']) +-- +2.29.2 + diff --git a/package/libmapnik/0002-Allow-optional-libs-detection-when-cross-compiling.patch b/package/libmapnik/0002-Allow-optional-libs-detection-when-cross-compiling.patch new file mode 100644 index 0000000000..1291f6de66 --- /dev/null +++ b/package/libmapnik/0002-Allow-optional-libs-detection-when-cross-compiling.patch @@ -0,0 +1,50 @@ +From 3ef9f8296e5308c00b6558e750f7f7fbff45a743 Mon Sep 17 00:00:00 2001 +From: fidomax +Date: Thu, 28 Jan 2021 14:48:32 +0300 +Subject: [PATCH 2/3] Allow optional libs detection when cross-compiling + +Signed-off-by: Maxim Kochetkov +Fetch from: https://github.com/mapnik/mapnik/commit/cf9bde7bf1033f800e5bc9640c586369d45814c6.patch +--- + SConstruct | 17 +++++++---------- + 1 file changed, 7 insertions(+), 10 deletions(-) + +diff --git a/SConstruct b/SConstruct +index 6e169e34c..9e03db662 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -1692,7 +1692,7 @@ if not preconfigured: + elif boost_version < [1, 57]: + env.Append(CXXFLAGS = '-DBOOST_NO_CXX11_SCOPED_ENUMS') + +- if not env['HOST'] and env['ICU_LIB_NAME'] not in env['MISSING_DEPS']: ++ if env['ICU_LIB_NAME'] not in env['MISSING_DEPS']: + # http://lists.boost.org/Archives/boost/2009/03/150076.php + # we need libicui18n if using static boost libraries, so it is + # important to try this check with the library linked +@@ -1703,16 +1703,13 @@ if not preconfigured: + env['SKIPPED_DEPS'].append('boost_regex_icu') + + for libname, headers, required, lang, define in OPTIONAL_LIBSHEADERS: +- if not env['HOST']: +- if not conf.CheckLibWithHeader(libname, headers, lang): +- if required: +- color_print(1, 'Could not find required header or shared library for %s' % libname) +- env['MISSING_DEPS'].append(libname) +- else: +- color_print(4, 'Could not find optional header or shared library for %s' % libname) +- env['SKIPPED_DEPS'].append(libname) ++ if not conf.CheckLibWithHeader(libname, headers, lang): ++ if required: ++ color_print(1, 'Could not find required header or shared library for %s' % libname) ++ env['MISSING_DEPS'].append(libname) + else: +- env.Append(CPPDEFINES = define) ++ color_print(4, 'Could not find optional header or shared library for %s' % libname) ++ env['SKIPPED_DEPS'].append(libname) + else: + env.Append(CPPDEFINES = define) + +-- +2.29.2 + diff --git a/package/libmapnik/0003-Allow-lib-data-detection-when-cross-compiling.patch b/package/libmapnik/0003-Allow-lib-data-detection-when-cross-compiling.patch new file mode 100644 index 0000000000..5a6d503dc6 --- /dev/null +++ b/package/libmapnik/0003-Allow-lib-data-detection-when-cross-compiling.patch @@ -0,0 +1,70 @@ +From 3e48998d7beb2f6277ed955b1698c6ce581fad01 Mon Sep 17 00:00:00 2001 +From: fidomax +Date: Thu, 28 Jan 2021 15:15:19 +0300 +Subject: [PATCH 3/3] Allow lib/data detection when cross-compiling + +Signed-off-by: Maxim Kochetkov +Fetch from: https://github.com/mapnik/mapnik/commit/4b0d181f6e3dbfe9fdb59fd1fdbd1a6986aaafda.patch +--- + SConstruct | 45 ++++++++++++++++++++++----------------------- + 1 file changed, 22 insertions(+), 23 deletions(-) + +diff --git a/SConstruct b/SConstruct +index 9e03db662..4989e6607 100644 +--- a/SConstruct ++++ b/SConstruct +@@ -1719,29 +1719,28 @@ if not preconfigured: + if env['HOST']: + SQLITE_HAS_RTREE = True + +- if not env['HOST']: +- env['QUERIED_PROJ_LIB'] = conf.CheckProjData() +- if os.environ.get('PROJ_LIB'): +- env['QUERIED_PROJ_LIB'] = os.environ['PROJ_LIB'] +- color_print(4,'Detected PROJ_LIB in environ, using env value instead: %s' % os.environ['PROJ_LIB'] ) +- env['QUERIED_ICU_DATA'] = conf.CheckIcuData() +- if os.environ.get('ICU_DATA'): +- env['QUERIED_ICU_DATA'] = os.environ['ICU_DATA'] +- color_print(4,'Detected ICU_DATA in environ, using env value instead: %s' % os.environ['ICU_DATA'] ) +- env['QUERIED_GDAL_DATA'] = conf.CheckGdalData() +- if os.environ.get('GDAL_DATA'): +- env['QUERIED_GDAL_DATA'] = os.environ['GDAL_DATA'] +- color_print(4,'Detected GDAL_DATA in environ, using env value instead: %s' % os.environ['GDAL_DATA'] ) +- # now validate the paths actually exist +- if env['QUERIED_PROJ_LIB'] and not os.path.exists(env['QUERIED_PROJ_LIB']): +- color_print(1,'%s not detected on your system' % env['QUERIED_PROJ_LIB'] ) +- env['MISSING_DEPS'].append('PROJ_LIB') +- if env['QUERIED_GDAL_DATA'] and not os.path.exists(env['QUERIED_GDAL_DATA']): +- color_print(1,'%s not detected on your system' % env['QUERIED_GDAL_DATA'] ) +- env['MISSING_DEPS'].append('GDAL_DATA') +- if env['QUERIED_ICU_DATA'] and not os.path.exists(env['QUERIED_ICU_DATA']): +- color_print(1,'%s not detected on your system' % env['QUERIED_ICU_DATA'] ) +- env['MISSING_DEPS'].append('ICU_DATA') ++ env['QUERIED_PROJ_LIB'] = conf.CheckProjData() ++ if os.environ.get('PROJ_LIB'): ++ env['QUERIED_PROJ_LIB'] = os.environ['PROJ_LIB'] ++ color_print(4,'Detected PROJ_LIB in environ, using env value instead: %s' % os.environ['PROJ_LIB'] ) ++ env['QUERIED_ICU_DATA'] = conf.CheckIcuData() ++ if os.environ.get('ICU_DATA'): ++ env['QUERIED_ICU_DATA'] = os.environ['ICU_DATA'] ++ color_print(4,'Detected ICU_DATA in environ, using env value instead: %s' % os.environ['ICU_DATA'] ) ++ env['QUERIED_GDAL_DATA'] = conf.CheckGdalData() ++ if os.environ.get('GDAL_DATA'): ++ env['QUERIED_GDAL_DATA'] = os.environ['GDAL_DATA'] ++ color_print(4,'Detected GDAL_DATA in environ, using env value instead: %s' % os.environ['GDAL_DATA'] ) ++ # now validate the paths actually exist ++ if env['QUERIED_PROJ_LIB'] and not os.path.exists(env['QUERIED_PROJ_LIB']): ++ color_print(1,'%s not detected on your system' % env['QUERIED_PROJ_LIB'] ) ++ env['MISSING_DEPS'].append('PROJ_LIB') ++ if env['QUERIED_GDAL_DATA'] and not os.path.exists(env['QUERIED_GDAL_DATA']): ++ color_print(1,'%s not detected on your system' % env['QUERIED_GDAL_DATA'] ) ++ env['MISSING_DEPS'].append('GDAL_DATA') ++ if env['QUERIED_ICU_DATA'] and not os.path.exists(env['QUERIED_ICU_DATA']): ++ color_print(1,'%s not detected on your system' % env['QUERIED_ICU_DATA'] ) ++ env['MISSING_DEPS'].append('ICU_DATA') + + if len(env['REQUESTED_PLUGINS']): + if env['HOST']: +-- +2.29.2 + diff --git a/package/libmapnik/Config.in b/package/libmapnik/Config.in new file mode 100644 index 0000000000..06428e59a2 --- /dev/null +++ b/package/libmapnik/Config.in @@ -0,0 +1,29 @@ +config BR2_PACKAGE_LIBMAPNIK + bool "libmapnik" + select BR2_PACKAGE_ICU + select BR2_PACKAGE_HARFBUZZ + select BR2_PACKAGE_CAIRO + select BR2_PACKAGE_CAIRO_PNG + select BR2_PACKAGE_CAIRO_SVG + select BR2_PACKAGE_POSTGRESQL + select BR2_PACKAGE_BOOST + select BR2_PACKAGE_BOOST_FILESYSTEM + select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS + select BR2_PACKAGE_BOOST_REGEX + select BR2_PACKAGE_LIBXML2 + select BR2_PACKAGE_SQLITE + + help + Mapnik is an open source toolkit for developing mapping applications. + At the core is a C++ shared library providing algorithms and patterns + for spatial data access and visualization. Mapnik is basically + a collection of geographic objects like maps, layers, datasources, + features, and geometries. + The library doesn't rely on any OS specific "windowing systems" and + it can be deployed to any server environment. It is intended to play fair + in a multi-threaded environment and is aimed primarily, but + not exclusively, at web-based development. + For further information see http://mapnik.org and also our wiki + documentation. + + https://github.com/mapnik/mapnik diff --git a/package/libmapnik/libmapnik.mk b/package/libmapnik/libmapnik.mk new file mode 100644 index 0000000000..2a019375fd --- /dev/null +++ b/package/libmapnik/libmapnik.mk @@ -0,0 +1,100 @@ +################################################################################ +# +# libmapnik +# +################################################################################ + +LIBMAPNIK_VERSION = 3.1.0 +LIBMAPNIK_SITE = https://github.com/mapnik/mapnik/releases/download/v$(LIBMAPNIK_VERSION) +LIBMAPNIK_SOURCE = mapnik-v$(LIBMAPNIK_VERSION).tar.bz2 +LIBMAPNIK_LICENSE = LGPL +LIBMAPNIK_LICENSE_FILES = $(LIBMAPNIK_SUBDIR)/COPYING +LIBMAPNIK_DEPENDENCIES += host-python3 host-scons icu harfbuzz freetype postgresql boost cairo libxml2 sqlite +LIBMAPNIK_SCONS_ENV = $(TARGET_CONFIGURE_OPTS) +LIBMAPNIK_INSTALL_STAGING = YES + +ifeq ($(BR2_PACKAGE_JPEG),y) +LIBMAPNIK_DEPENDENCIES += jpeg +endif + +ifeq ($(BR2_PACKAGE_PROJ),y) +LIBMAPNIK_DEPENDENCIES += proj +endif + +ifeq ($(BR2_PACKAGE_LIBPNG),y) +LIBMAPNIK_DEPENDENCIES += libpng +endif + +ifeq ($(BR2_PACKAGE_WEBP),y) +LIBMAPNIK_DEPENDENCIES += webp +endif + +ifeq ($(BR2_PACKAGE_TIFF),y) +LIBMAPNIK_DEPENDENCIES += tiff +endif + + +LIBMAPNIK_SCONS_OPTS = \ + CC="$(TARGET_CC)" \ + CXX="$(TARGET_CXX)" \ + HOST="$(GNU_TARGET_NAME)" \ + CUSTOM_CXXFLAGS="$(TARGET_CXXFLAGS) -DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" \ + CUSTOM_CFLAGS="$(TARGET_CFLAGS) -DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" \ + PLUGIN_LINKING=shared \ + PREFIX=/usr \ + DEMO=no \ + CPP_TESTS=no \ + PRIORITIZE_LINKING=no \ + INPUT_PLUGINS=postgis,pgraster,sqlite,shape,csv,raster,geojson,topojson \ + ICU_INCLUDES=$(STAGING_DIR)/usr/include \ + ICU_LIBS=$(TARGET_DIR)/usr/lib \ + SQLITE_INCLUDES=$(STAGING_DIR)/usr/include \ + SQLITE_LIBS=$(TARGET_DIR)/usr/lib \ + HB_INCLUDES=$(STAGING_DIR)/usr/include \ + HB_LIBS=$(TARGET_DIR)/usr/lib \ + JPEG_INCLUDES=$(STAGING_DIR)/usr/include \ + JPEG_LIBS=$(TARGET_DIR)/usr/lib \ + PROJ_INCLUDES=$(STAGING_DIR)/usr/include \ + PROJ_LIBS=$(TARGET_DIR)/usr/lib \ + PNG_INCLUDES=$(STAGING_DIR)/usr/include \ + PNG_LIBS=$(TARGET_DIR)/usr/lib \ + WEBP_INCLUDES=$(STAGING_DIR)/usr/include \ + WEBP_LIBS=$(TARGET_DIR)/usr/lib \ + TIFF_INCLUDES=$(STAGING_DIR)/usr/include \ + TIFF_LIBS=$(TARGET_DIR)/usr/lib \ + BOOST_INCLUDES=$(STAGING_DIR)/usr/include/boost \ + BOOST_LIBS=$(TARGET_DIR)/usr/lib \ + RASTERLITE_LIBS=$(TARGET_DIR)/usr/lib \ + PKG_CONFIG_PATH=$(STAGING_DIR)/usr/lib/pkgconfig \ + FREETYPE_CONFIG=$(STAGING_DIR)/usr/bin/freetype-config + +define LIBMAPNIK_CONFIGURE_CMDS + (export PROJ_LIB=$(TARGET_DIR)/usr/lib; cd $(@D); $(LIBMAPNIK_SCONS_ENV) $(HOST_DIR)/bin/python3 scons/scons.py configure $(LIBMAPNIK_SCONS_OPTS)) +endef + +define LIBMAPNIK_BUILD_CMDS + (cd $(@D); $(LIBMAPNIK_SCONS_ENV) $(HOST_DIR)/bin/python3 scons/scons.py) +endef + +define LIBMAPNIK_INSTALL_STAGING_CMDS + cp -rdpf $(@D)/src/libmapnik.* \ + $(STAGING_DIR)/usr/lib/ + $(INSTALL) -m 0755 -d $(STAGING_DIR)/usr/include/mapnik + cp -rdpf $(@D)/include/mapnik/. \ + $(STAGING_DIR)/usr/include/mapnik + $(INSTALL) -m 0755 -d $(STAGING_DIR)/usr/include/mapbox + cp -rdpf $(@D)/deps/mapbox/variant/include/mapbox/. \ + $(STAGING_DIR)/usr/include/mapbox + +endef + +define LIBMAPNIK_INSTALL_TARGET_CMDS + cp -rdpf $(@D)/src/libmapnik.* \ + $(TARGET_DIR)/usr/lib/ + $(INSTALL) -m 0755 -d $(TARGET_DIR)/usr/lib/mapnik/input + cp -rdpf $(@D)/plugins/input/*.input \ + $(TARGET_DIR)/usr/lib/mapnik/input + +endef + +$(eval $(generic-package))