Files
openwrt-packages/libs/libmraa/Makefile
Rosen Penev a31b732007 treewide: build CMake projects with Ninja
faster to compile.

A small selection of packages was tested going from:

Executed in  696.30 secs   fish           external
   usr time   82.98 mins  395.00 micros   82.98 mins
   sys time    9.02 mins    0.00 micros    9.02 mins

to:

Executed in  592.20 secs   fish           external
   usr time   84.84 mins  361.00 micros   84.84 mins
   sys time    8.85 mins   57.00 micros    8.85 mins

Tested by running make -j 12 and wiping staging/build_dir/target_x

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-03-27 21:51:50 -07:00

110 lines
3.2 KiB
Makefile

#
# Copyright (C) 2015-2018 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libmraa
PKG_VERSION:=2.2.0
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/eclipse/mraa/tar.gz/v$(PKG_VERSION)?
PKG_HASH:=076669bee8423ffef3065735b293a329020be86630fea457174dbfcc67a0554a
PKG_BUILD_DIR:=$(BUILD_DIR)/mraa-$(PKG_VERSION)
PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>, Hirokazu MORIKAWA <morikw2@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
PKG_BUILD_DEPENDS:=swig/host node/host PACKAGE_node:node
CMAKE_INSTALL:=1
PKG_USE_MIPS16:=0
PYTHON3_PKG_BUILD:=0
include $(INCLUDE_DIR)/package.mk
include ../../devel/ninja/ninja-cmake.mk
include ../../lang/python/python3-package.mk
CMAKE_OPTIONS += \
-DENABLEEXAMPLES=0 \
-DBUILDSWIGNODE=$(if $(CONFIG_PACKAGE_libmraa-node),ON,OFF) \
-DFIRMATA=ON
define Package/libmraa/Default
SECTION:=libs
CATEGORY:=Libraries
SUBMENU:=IoT
TITLE:=Eclipse MRAA lowlevel IO library
URL:=https://projects.eclipse.org/projects/iot.mraa
endef
define Package/libmraa/Default/description
Libmraa is a C/C++ library with bindings to Java, Python and JavaScript to interface
with the IO on Galileo, Edison & other platforms, with a structured and sane API where
port names/numbering matches the board that you are on. Use of libmraa does not tie you
to specific hardware with board detection done at runtime you can create portable code
that will work across the supported platforms.
endef
define Package/libmraa
$(call Package/libmraa/Default)
TITLE:=Eclipse MRAA lowlevel IO C/C++ library
DEPENDS:=+libstdcpp +libjson-c @!arc @!armeb @!powerpc
endef
define Package/libmraa/description
$(call Package/libmraa/Default/description)
This package contains the C/C++ libraries.
endef
define Package/libmraa-node
$(call Package/libmraa/Default)
TITLE:=Eclipse MRAA lowlevel IO Node.js library
DEPENDS:=+libmraa @PACKAGE_node
endef
define Package/libmraa-node/description
$(call Package/libmraa/Default/description)
This package contains the Node.js libraries.
endef
define Package/libmraa-python3
$(call Package/libmraa/Default)
TITLE:=Eclipse MRAA lowlevel IO Python3 library
DEPENDS:=+libmraa +python3-light
endef
define Package/libmraa-python3/description
$(call Package/libmraa/Default/description)
This package contains the Python3 libraries.
endef
define Package/libmraa/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libmraa.so* $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mraa-* $(1)/usr/bin/
endef
define Package/libmraa-node/install
$(INSTALL_DIR) $(1)/usr/lib/node/mraa
$(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/mraa/* $(1)/usr/lib/node/mraa/
endef
define Package/libmraa-python3/install
$(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages
$(CP) $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON3_VERSION)/site-packages/* \
$(1)/usr/lib/python$(PYTHON3_VERSION)/site-packages/
endef
$(eval $(call BuildPackage,libmraa))
$(eval $(call BuildPackage,libmraa-node))
$(eval $(call BuildPackage,libmraa-python3))