1################################################################################
2#
3# open62541
4#
5################################################################################
6
7OPEN62541_VERSION = v1.3.10
8OPEN62541_SITE_METHOD = git
9OPEN62541_SITE = https://github.com/open62541/open62541.git
10OPEN62541_GIT_SUBMODULES = YES
11OPEN62541_INSTALL_STAGING = YES
12OPEN62541_LICENSE = MPL-2.0
13OPEN62541_LICENSE_FILES = LICENSE
14OPEN62541_CPE_ID_VENDOR = open62541
15
16# Force Release build to remove -Werror.
17# Don't use git describe to get the version number.
18# Disable hardening options to let Buildroot handle it.
19OPEN62541_CONF_OPTS = \
20	-DCMAKE_BUILD_TYPE=Release \
21	-DGIT_EXECUTABLE=NO \
22	-DOPEN62541_VERSION=$(OPEN62541_VERSION) \
23	-DUA_ENABLE_HARDENING=OFF \
24	-DUA_FORCE_WERROR=OFF
25
26ifeq ($(BR2_PACKAGE_OPEN62541_ENCRYPTION_MBEDTLS),y)
27OPEN62541_DEPENDENCIES += mbedtls
28OPEN62541_CONF_OPTS += -DUA_ENABLE_ENCRYPTION=MBEDTLS
29endif
30
31ifeq ($(BR2_PACKAGE_OPEN62541_ENCRYPTION_OPENSSL),y)
32OPEN62541_DEPENDENCIES += openssl
33OPEN62541_CONF_OPTS += -DUA_ENABLE_ENCRYPTION=OPENSSL
34endif
35
36ifeq ($(BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_MINIMAL),y)
37OPEN62541_CONF_OPTS += -DUA_NAMESPACE_ZERO=MINIMAL -DUA_ENABLE_SUBSCRIPTIONS_EVENTS=OFF
38else ifeq ($(BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_REDUCED),y)
39OPEN62541_CONF_OPTS += -DUA_NAMESPACE_ZERO=REDUCED
40else ifeq ($(BR2_PACKAGE_OPEN62541_UA_NAMESPACE_ZERO_FULL),y)
41OPEN62541_CONF_OPTS += -DUA_NAMESPACE_ZERO=FULL
42endif
43
44ifeq ($(BR2_PACKAGE_OPEN62541_HISTORIZING),y)
45OPEN62541_CONF_OPTS += -DUA_ENABLE_HISTORIZING=ON
46else
47OPEN62541_CONF_OPTS += -DUA_ENABLE_HISTORIZING=OFF
48endif
49
50ifeq ($(BR2_PACKAGE_OPEN62541_DISCOVERY),y)
51OPEN62541_CONF_OPTS += -DUA_ENABLE_DISCOVERY=ON
52else
53OPEN62541_CONF_OPTS += -DUA_ENABLE_DISCOVERY=OFF
54endif
55
56ifeq ($(BR2_PACKAGE_OPEN62541_JSON_ENCODING),y)
57OPEN62541_CONF_OPTS += -DUA_ENABLE_JSON_ENCODING=ON
58else
59OPEN62541_CONF_OPTS += -DUA_ENABLE_JSON_ENCODING=OFF
60endif
61
62ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB),y)
63OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB=ON
64else
65OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB=OFF
66endif
67
68ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB_DELTAFRAMES),y)
69OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_DELTAFRAMES=ON
70else
71OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_DELTAFRAMES=OFF
72endif
73
74ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB_INFORMATIONMODEL),y)
75OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_INFORMATIONMODEL=ON
76else
77OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_INFORMATIONMODEL=OFF
78endif
79
80ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB_INFORMATIONMODEL_METHODS),y)
81OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_INFORMATIONMODEL_METHODS=ON
82else
83OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_INFORMATIONMODEL_METHODS=OFF
84endif
85
86ifeq ($(BR2_PACKAGE_OPEN62541_PUBSUB_ETH_UADP),y)
87OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_ETH_UADP=ON
88else
89OPEN62541_CONF_OPTS += -DUA_ENABLE_PUBSUB_ETH_UADP=OFF
90endif
91
92# Remove unneeded files
93define OPEN62541_REMOVE_UNNEEDED_FILES
94	$(RM) -r $(TARGET_DIR)/usr/share/open62541
95endef
96
97OPEN62541_POST_INSTALL_TARGET_HOOKS += OPEN62541_REMOVE_UNNEEDED_FILES
98
99$(eval $(cmake-package))
100