include $(TOPDIR)/rules.mk

PKG_NAME:=open62541
VERSION_MAJOR:=1.3
VERSION_REVISION:=6
PKG_VERSION:=$(VERSION_MAJOR).$(VERSION_REVISION)

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/open62541/open62541/archive/refs/tags/v1.3.6.tar.gz
PKG_MD5SUM:=d3e9fc35bc6b49d864b03639dd2b1048
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk

TARGET_CFLAGS+=-w
CMAKE_OPTIONS+=-DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=MinSizeRel -DUA_NAMESPACE_ZERO=REDUCED \
               -DUA_LOGLEVEL=500 -DUA_ARCHITECTURE=posix \
				-DUA_MULTITHREADING=199 -DUA_BUILD_EXAMPLES=OFF -DUA_BUILD_TOOLS=OFF \
				-DUA_ENABLE_NODEMANAGEMENT=ON -DUA_ENABLE_IMMUTABLE_NODES=ON \
				-DUA_ENABLE_TYPEDESCRIPTION=ON -DUA_ENABLE_STATUSCODE_DESCRIPTIONS=ON \
				-DUA_ENABLE_ENCRYPTION=ON -DUA_ENABLE_SUBSCRIPTIONS_EVENTS=ON -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_HISTORIZING=ON \
				-DUA_ENABLE_AMALGAMATION=ON -DUA_ENABLE_SUBSCRIPTIONS=ON -DUA_ENABLE_SUBSCRIPTIONS_ALARMS_CONDITIONS=OFF \
				-DUA_ENABLE_METHODCALLS=ON -DUA_ENABLE_IMMUTABLE_NODES=ON -DUA_ENABLE_PUBSUB=ON -DUA_ENABLE_PUBSUB_DELTAFRAMES=ON \
				-DUA_ENABLE_PUBSUB_INFORMATIONMODEL=ON -DUA_ENABLE_PUBSUB_MONITORING=ON -DUA_ENCRYPTION_PLUGINS=OFF
define Package/$(PKG_NAME)
	SECTION:=ASMC
	CATEGORY:=ASMC Software
	TITLE:= open62541
	DEPENDS:=+libc +libmbedtls +libpthread +librt +libsqlite3
endef

define Package/$(PKG_NAME)/description
  open62541
endef

define Build/InstallDev
	$(INSTALL_DIR) $(1)/usr/lib
	$(INSTALL_DIR) $(1)/usr/include/
	$(CP) $(PKG_BUILD_DIR)/ipkg-install/usr/include/* $(1)/usr/include/.
	$(CP) $(PKG_BUILD_DIR)/ipkg-install/usr/lib/* $(1)/usr/lib/.
endef

define Package/$(PKG_NAME)/install
	$(INSTALL_DIR) $(1)/usr/lib
	$(CP) $(PKG_BUILD_DIR)/ipkg-install/usr/lib/* $(1)/usr/lib/.
endef

$(eval $(call BuildPackage,$(PKG_NAME)))
