mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: "Ulrich Ölmann" <u.oelmann@pengutronix.de>
To: PTXdist Development Mailing List <ptxdist@pengutronix.de>
Subject: [ptxdist] [PATCH v5 3/3] open62541: new package
Date: Wed,  5 Feb 2020 11:42:41 +0100	[thread overview]
Message-ID: <20200205104241.19603-3-u.oelmann@pengutronix.de> (raw)
In-Reply-To: <20200205104241.19603-1-u.oelmann@pengutronix.de>

From: Björn Esser <b.esser@pengutronix.de>

The open62541 project is an open source implementation of the OPC UA
communication infrastructure which is used in industrial control.

Signed-off-by: Björn Esser <b.esser@pengutronix.de>
[uol: adjusted commit message]
Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
---
v2 --> v3: adjusted commit message

 ...-UA_NODESET_DIR-to-be-custom-defined.patch | 224 ++++++++++++++++++
 patches/open62541-1.0/series                  |   4 +
 rules/host-open62541.in                       |   6 +
 rules/host-open62541.make                     |  50 ++++
 rules/open62541.in                            |  13 +
 rules/open62541.make                          | 140 +++++++++++
 6 files changed, 437 insertions(+)
 create mode 100644 patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
 create mode 100644 patches/open62541-1.0/series
 create mode 100644 rules/host-open62541.in
 create mode 100644 rules/host-open62541.make
 create mode 100644 rules/open62541.in
 create mode 100644 rules/open62541.make

diff --git a/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch b/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
new file mode 100644
index 000000000000..0dfd003518ed
--- /dev/null
+++ b/patches/open62541-1.0/0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
@@ -0,0 +1,224 @@
+From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <b.esser@pengutronix.de>
+Date: Mon, 2 Dec 2019 14:38:38 +0100
+Subject: [PATCH] CMake: Allow UA_NODESET_DIR to be custom defined.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This makes it easier for developers to keep all ua-nodesets XML
+definitions in a common location.
+
+Backported from: https://github.com/open62541/open62541/pull/3310
+
+Signed-off-by: Björn Esser <b.esser@pengutronix.de>
+---
+ CMakeLists.txt                        | 14 +++++++++-----
+ doc/nodeset_compiler.rst              | 22 +++++++++++-----------
+ examples/CMakeLists.txt               |  4 ----
+ examples/nodeset/CMakeLists.txt       |  6 +++---
+ tests/nodeset-compiler/CMakeLists.txt | 14 +++++++-------
+ tools/cmake/macros_public.cmake       |  2 +-
+ 6 files changed, 31 insertions(+), 31 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d426e1da66fe..fbbafd8f2791 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -15,7 +15,6 @@ include(GNUInstallDirs)
+ 
+ # Set when installed via make install
+ set(open62541_TOOLS_DIR ${PROJECT_SOURCE_DIR}/tools)
+-set(open62541_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
+ 
+ include(macros_internal)
+ include(macros_public)
+@@ -134,6 +133,11 @@ option(UA_ENABLE_ENCRYPTION "Enable encryption support (uses mbedTLS)" OFF)
+ option(UA_ENABLE_MICRO_EMB_DEV_PROFILE "Builds CTT Compliant Micro Embedded Device Server Profile" OFF)
+ option(BUILD_SHARED_LIBS "Enable building of shared libraries (dll/so)" OFF)
+ 
++if(NOT UA_NODESET_DIR)
++    set(UA_NODESET_DIR ${PROJECT_SOURCE_DIR}/deps/ua-nodeset)
++endif()
++set(open62541_NODESET_DIR ${UA_NODESET_DIR})
++
+ # Namespace Zero
+ set(UA_NAMESPACE_ZERO "REDUCED" CACHE STRING "Completeness of the generated namespace zero (minimal/reduced/full)")
+ SET_PROPERTY(CACHE UA_NAMESPACE_ZERO PROPERTY STRINGS "MINIMAL" "REDUCED" "FULL")
+@@ -770,7 +774,7 @@ set(UA_FILE_NODESETS)
+ 
+ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
+     if(NOT UA_FILE_NS0)
+-        set(UA_FILE_NS0 ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml)
++        set(UA_FILE_NS0 ${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml)
+     endif()
+     set(UA_FILE_NODESETS "${UA_FILE_NS0}")
+ 
+@@ -779,9 +783,9 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
+     endif()
+ 
+ 
+-    set(UA_FILE_NODEIDS ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/NodeIds.csv)
+-    set(UA_FILE_STATUSCODES ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/StatusCode.csv)
+-    set(UA_FILE_TYPES_BSD ${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.Types.bsd)
++    set(UA_FILE_NODEIDS ${UA_NODESET_DIR}/Schema/NodeIds.csv)
++    set(UA_FILE_STATUSCODES ${UA_NODESET_DIR}/Schema/StatusCode.csv)
++    set(UA_FILE_TYPES_BSD ${UA_NODESET_DIR}/Schema/Opc.Ua.Types.bsd)
+ else()
+     if(NOT UA_FILE_NS0)
+         set(UA_FILE_NS0 ${PROJECT_SOURCE_DIR}/tools/schema/Opc.Ua.NodeSet2.Minimal.xml)
+diff --git a/doc/nodeset_compiler.rst b/doc/nodeset_compiler.rst
+index dd752ccd70a9..34fc8f800480 100644
+--- a/doc/nodeset_compiler.rst
++++ b/doc/nodeset_compiler.rst
+@@ -292,17 +292,17 @@ Here are some examples for the ``DI`` and ``PLCOpen`` nodesets::
+     # Generate types and namespace for DI
+     ua_generate_nodeset_and_datatypes(
+         NAME "di"
+-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
+-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
++        FILE_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
+         NAMESPACE_IDX 2
+-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
++        FILE_NS "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
+     )
+ 
+     # generate PLCopen namespace which is using DI
+     ua_generate_nodeset_and_datatypes(
+         NAME "plc"
+         # PLCopen does not define custom types. Only generate the nodeset
+-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
++        FILE_NS "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
+         # PLCopen depends on the di nodeset, which must be generated before
+         DEPENDS "di"
+     )
+@@ -403,8 +403,8 @@ This DI nodeset makes use of some additional data types in ``deps/ua-nodeset/DI/
+         NAME "ua_types_di"
+         TARGET_SUFFIX "types-di"
+         NAMESPACE_IDX 2
+-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
+-        FILES_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
++        FILES_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
+     )
+ 
+ The ``NAMESPACE_IDX`` parameter indicates the namespace index of the generated node IDs for the type definitions. Currently we need to rely that the namespace is also added at this position in the final server. There is no automatic inferring yet (pull requests are warmly welcome).
+@@ -414,11 +414,11 @@ Now you can compile the DI nodeset XML using the following command::
+ 
+     ua_generate_nodeset(
+         NAME "di"
+-        FILE "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
++        FILE "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
+         TYPES_ARRAY "UA_TYPES_DI"
+         INTERNAL
+         DEPENDS_TYPES "UA_TYPES"
+-        DEPENDS_NS    "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml"
++        DEPENDS_NS    "${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml"
+         DEPENDS_TARGET "open62541-generator-types-di"
+     )
+ 
+@@ -429,13 +429,13 @@ Next we can generate the PLCopen nodeset. Since it doesn't require any additiona
+ 
+     ua_generate_nodeset(
+         NAME "plc"
+-        FILE "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
++        FILE "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
+         INTERNAL
+         DEPENDS_TYPES
+             "UA_TYPES" "UA_TYPES_DI"
+         DEPENDS_NS
+-            "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml"
+-            "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
++            "${UA_NODESET_DIR}/Schema/Opc.Ua.NodeSet2.xml"
++            "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
+         DEPENDS_TARGET "open62541-generator-ns-di"
+     )
+ 
+diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
+index d46f853ecde6..353a0fbf992d 100644
+--- a/examples/CMakeLists.txt
++++ b/examples/CMakeLists.txt
+@@ -26,10 +26,6 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
+         set(UA_TOOLS_DIR ${open62541_TOOLS_DIR})
+     endif()
+ 
+-    if(NOT UA_NODESET_DIR)
+-        set(UA_NODESET_DIR ${open62541_NODESET_DIR})
+-    endif()
+-
+     function(assign_source_group)
+         # define empty function. We don't need it in standalone
+     endfunction(assign_source_group)
+diff --git a/examples/nodeset/CMakeLists.txt b/examples/nodeset/CMakeLists.txt
+index c4b612d911d5..0a5fe38ef229 100644
+--- a/examples/nodeset/CMakeLists.txt
++++ b/examples/nodeset/CMakeLists.txt
+@@ -63,10 +63,10 @@ endif()
+ ###################
+ 
+ if(NOT CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
+-    set(FILE_CSV_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
+-    set(FILE_BSD_PLCOPEN_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
++    set(FILE_CSV_DIRPREFIX ${UA_NODESET_DIR})
++    set(FILE_BSD_PLCOPEN_DIRPREFIX ${UA_NODESET_DIR})
+     set(FILE_BSD_POWERLINK_DIRPREFIX ${PROJECT_SOURCE_DIR}/nodeset)
+-    set(FILE_NS_DIRPREFIX ${CMAKE_SOURCE_DIR}/deps/ua-nodeset)
++    set(FILE_NS_DIRPREFIX ${UA_NODESET_DIR})
+ else()
+     set(FILE_CSV_DIRPREFIX ${UA_NODESET_DIR})
+     set(FILE_BSD_PLCOPEN_DIRPREFIX ${UA_NODESET_DIR})
+diff --git a/tests/nodeset-compiler/CMakeLists.txt b/tests/nodeset-compiler/CMakeLists.txt
+index 153759aa16c6..2b68e3926499 100644
+--- a/tests/nodeset-compiler/CMakeLists.txt
++++ b/tests/nodeset-compiler/CMakeLists.txt
+@@ -11,22 +11,22 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
+     # Generate types and namespace for DI
+     ua_generate_nodeset_and_datatypes(
+         NAME "tests-di"
+-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/OpcUaDiModel.csv"
+-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.Types.bsd"
++        FILE_CSV "${UA_NODESET_DIR}/DI/OpcUaDiModel.csv"
++        FILE_BSD "${UA_NODESET_DIR}/DI/Opc.Ua.Di.Types.bsd"
+         NAMESPACE_IDX 2
+         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
+-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/DI/Opc.Ua.Di.NodeSet2.xml"
++        FILE_NS "${UA_NODESET_DIR}/DI/Opc.Ua.Di.NodeSet2.xml"
+         INTERNAL
+     )
+ 
+     # Generate types and namespace for ADI
+     ua_generate_nodeset_and_datatypes(
+         NAME "tests-adi"
+-        FILE_CSV "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/OpcUaAdiModel.csv"
+-        FILE_BSD "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/Opc.Ua.Adi.Types.bsd"
++        FILE_CSV "${UA_NODESET_DIR}/ADI/OpcUaAdiModel.csv"
++        FILE_BSD "${UA_NODESET_DIR}/ADI/Opc.Ua.Adi.Types.bsd"
+         NAMESPACE_IDX 3
+         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
+-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/ADI/Opc.Ua.Adi.NodeSet2.xml"
++        FILE_NS "${UA_NODESET_DIR}/ADI/Opc.Ua.Adi.NodeSet2.xml"
+         DEPENDS "tests-di"
+         INTERNAL
+     )
+@@ -46,7 +46,7 @@ if(UA_NAMESPACE_ZERO STREQUAL "FULL")
+     ua_generate_nodeset_and_datatypes(
+         NAME "tests-plc"
+         # PLCopen does not define custom types. Only generate the nodeset
+-        FILE_NS "${PROJECT_SOURCE_DIR}/deps/ua-nodeset/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
++        FILE_NS "${UA_NODESET_DIR}/PLCopen/Opc.Ua.Plc.NodeSet2.xml"
+         # PLCopen depends on the di nodeset, which must be generated before
+         OUTPUT_DIR "${GENERATE_OUTPUT_DIR}"
+         DEPENDS "tests-di"
+diff --git a/tools/cmake/macros_public.cmake b/tools/cmake/macros_public.cmake
+index a6a36f3d1090..751b679a37d8 100644
+--- a/tools/cmake/macros_public.cmake
++++ b/tools/cmake/macros_public.cmake
+@@ -100,7 +100,7 @@ endfunction()
+ #                   passed which will all combined to one resulting code.
+ #   IMPORT_BSD      Combination of types array and path to the .bsd file containing additional type definitions referenced by
+ #                   the FILES_BSD files. The value is separated with a hash sign, i.e.
+-#                   'UA_TYPES#${PROJECT_SOURCE_DIR}/deps/ua-nodeset/Schema/Opc.Ua.Types.bsd'
++#                   'UA_TYPES#${UA_NODESET_DIR}/Schema/Opc.Ua.Types.bsd'
+ #                   Multiple files can be passed which will all be imported.
+ #   [FILES_SELECTED] Optional path to a simple text file which contains a list of types which should be included in the generation.
+ #                   The file should contain one type per line. Multiple files can be passed to this argument.
diff --git a/patches/open62541-1.0/series b/patches/open62541-1.0/series
new file mode 100644
index 000000000000..248a1b603996
--- /dev/null
+++ b/patches/open62541-1.0/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-CMake-Allow-UA_NODESET_DIR-to-be-custom-defined.patch
+# 4a88edd1483ff7bb07a623335b407de7  - git-ptx-patches magic
diff --git a/rules/host-open62541.in b/rules/host-open62541.in
new file mode 100644
index 000000000000..8a432080ed34
--- /dev/null
+++ b/rules/host-open62541.in
@@ -0,0 +1,6 @@
+## SECTION=hosttools_noprompt
+
+config HOST_OPEN62541
+        tristate
+	select HOST_CMAKE
+	select HOST_UA_NODESET
diff --git a/rules/host-open62541.make b/rules/host-open62541.make
new file mode 100644
index 000000000000..755ef67a380c
--- /dev/null
+++ b/rules/host-open62541.make
@@ -0,0 +1,50 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
+# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_OPEN62541) += host-open62541
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_OPEN62541_LOGLEVEL		:= 300
+
+HOST_OPEN62541_CONF_TOOL	:= cmake
+HOST_OPEN62541_CONF_OPT		 = \
+	$(CROSS_CMAKE_USR) \
+	-DBUILD_SHARED_LIBS=OFF \
+	-DOPEN62541_VERSION="v$(HOST_OPEN62541_VERSION)" \
+	-DUA_ARCHITECTURE=posix \
+	-DUA_BUILD_EXAMPLES=OFF \
+	-DUA_BUILD_TOOLS=ON \
+	-DUA_BUILD_UNIT_TESTS=OFF \
+	-DUA_ENABLE_AMALGAMATION=OFF \
+	-DUA_ENABLE_COVERAGE=OFF \
+	-DUA_ENABLE_DISCOVERY=OFF \
+	-DUA_ENABLE_DISCOVERY_MULTICAST=OFF \
+	-DUA_ENABLE_ENCRYPTION=OFF \
+	-DUA_ENABLE_EXPERIMENTAL_HISTORIZING=OFF \
+	-DUA_ENABLE_HISTORIZING=OFF \
+	-DUA_ENABLE_METHODCALLS=OFF \
+	-DUA_ENABLE_MICRO_EMB_DEV_PROFILE=OFF \
+	-DUA_ENABLE_NODEMANAGEMENT=OFF \
+	-DUA_ENABLE_QUERY=OFF \
+	-DUA_ENABLE_STATIC_ANALYZER=OFF \
+	-DUA_ENABLE_SUBSCRIPTIONS=OFF \
+	-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=OFF \
+	-DUA_LOGLEVEL=$(HOST_OPEN62541_LOGLEVEL) \
+	-DUA_NAMESPACE_ZERO=FULL \
+	-DUA_NODESET_DIR="$(PTXDIST_SYSROOT_HOST)/usr/share/ua-nodeset"
+
+# vim: syntax=make
diff --git a/rules/open62541.in b/rules/open62541.in
new file mode 100644
index 000000000000..74ee011e2875
--- /dev/null
+++ b/rules/open62541.in
@@ -0,0 +1,13 @@
+## SECTION=communication
+
+config OPEN62541
+	tristate
+	prompt "open62541"
+	select HOST_CMAKE
+	select HOST_OPEN62541
+	select HOST_UA_NODESET
+	select LIBC_PTHREAD
+	select MBEDTLS
+	help
+          The open62541 project is an open source implementation of the OPC UA
+          communication infrastructure which is used in industrial control.
diff --git a/rules/open62541.make b/rules/open62541.make
new file mode 100644
index 000000000000..62e030ed3752
--- /dev/null
+++ b/rules/open62541.make
@@ -0,0 +1,140 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2018 by Robert Schwebel <r.schwebel@pengutronix.de>
+# Copyright (C) 2019 by Bjoern Esser <b.esser@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_OPEN62541) += open62541
+
+#
+# Paths and names
+#
+OPEN62541_VERSION		:= 1.0
+OPEN62541_MD5			:= b8e02d7310e8b48faf52efc539fa9496
+OPEN62541			:= open62541-$(OPEN62541_VERSION)
+OPEN62541_SUFFIX		:= tar.gz
+OPEN62541_URL			:= https://github.com/open62541/open62541/archive/v$(OPEN62541_VERSION)/$(OPEN62541).$(OPEN62541_SUFFIX)
+OPEN62541_SOURCE		:= $(SRCDIR)/$(OPEN62541).$(OPEN62541_SUFFIX)
+OPEN62541_DIR			:= $(BUILDDIR)/$(OPEN62541)
+OPEN62541_LICENSE		:= MPL-2.0
+OPEN62541_LICENSE_FILES		:= file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad
+
+OPEN62541_MDNSD_VERSION		:= 4bd993e0fdd06d54c8fd0b8f416cda6a8db18585
+OPEN62541_MDNSD_MD5		:= 0961fc8dc253753ec8ea157104671498
+OPEN62541_MDNSD_URL		:= https://github.com/Pro/mdnsd/archive/$(OPEN62541_MDNSD_VERSION)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
+OPEN62541_MDNSD_SOURCE		:= $(SRCDIR)/open62541-mdnsd-$(OPEN62541_MDNSD_VERSION).tar.gz
+$(OPEN62541_MDNSD_SOURCE)	:= OPEN62541_MDNSD
+OPEN62541_MDNSD_DIR		:= $(OPEN62541_DIR)/deps/mdnsd
+OPEN62541_MDNSD_LICENSE		:= BSD-3-Clause
+OPEN62541_MDNSD_LICENSE_FILES	:= file://LICENSE;md5=3bb4047dc4095cd7336de3e2a9be94f0
+
+# open62541-mdnsd needs the source dir.
+OPEN62541_DEVPKG		:= NO
+
+OPEN62541_SOURCES		:= $(OPEN62541_SOURCE) $(OPEN62541_MDNSD_SOURCE)
+
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/open62541.extract:
+	@$(call targetinfo)
+	@$(call clean, $(OPEN62541_DIR))
+	@$(call extract, OPEN62541)
+	@$(call extract, OPEN62541_MDNSD)
+	@$(call patchin, OPEN62541)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+OPEN62541_LOGLEVEL	:= 300
+
+OPEN62541_CONF_TOOL	:= cmake
+OPEN62541_CONF_OPT	:= \
+	$(CROSS_CMAKE_USR) \
+	-DBUILD_SHARED_LIBS=ON \
+	-DCLANG_FORMAT_EXE=$(PTXDIST_WORKSPACE)/selected_toolchain/clang-format \
+	-DMDNSD_LOGLEVEL=$(OPEN62541_LOGLEVEL) \
+	-DOPEN62541_VERSION="v$(OPEN62541_VERSION)" \
+	-DUA_ARCHITECTURE=posix \
+	-DUA_BUILD_EXAMPLES=OFF \
+	-DUA_BUILD_FUZZING=OFF \
+	-DUA_BUILD_FUZZING_CORPUS=OFF \
+	-DUA_BUILD_OSS_FUZZ=OFF \
+	-DUA_BUILD_TOOLS=ON \
+	-DUA_BUILD_UNIT_TESTS=OFF \
+	-DUA_DEBUG=OFF \
+	-DUA_DEBUG_DUMP_PKGS=OFF \
+	-DUA_ENABLE_AMALGAMATION=OFF \
+	-DUA_ENABLE_COVERAGE=OFF \
+	-DUA_ENABLE_DA=ON \
+	-DUA_ENABLE_CUSTOM_NODESTORE=OFF \
+	-DUA_ENABLE_DETERMINISTIC_RNG=OFF \
+	-DUA_ENABLE_DISCOVERY=ON \
+	-DUA_ENABLE_DISCOVERY_MULTICAST=ON \
+	-DUA_ENABLE_DISCOVERY_SEMAPHORE=ON \
+	-DUA_ENABLE_ENCRYPTION=ON \
+	-DUA_ENABLE_EXPERIMENTAL_HISTORIZING=OFF \
+	-DUA_ENABLE_HARDENING=ON \
+	-DUA_ENABLE_HISTORIZING=ON \
+	-DUA_ENABLE_IMMUTABLE_NODES=ON \
+	-DUA_ENABLE_JSON_ENCODING=OFF \
+	-DUA_ENABLE_MALLOC_SINGLETON=OFF \
+	-DUA_ENABLE_METHODCALLS=ON \
+	-DUA_ENABLE_MICRO_EMB_DEV_PROFILE=ON \
+	-DUA_ENABLE_MULTITHREADING=200 \
+	-DUA_ENABLE_NODEMANAGEMENT=ON \
+	-DUA_ENABLE_NODESET_COMPILER_DESCRIPTIONS=ON \
+	-DUA_ENABLE_PUBSUB=ON \
+	-DUA_ENABLE_PUBSUB_ETH_UADP=ON \
+	-DUA_ENABLE_PUBSUB_DELTAFRAMES=ON \
+	-DUA_ENABLE_PUBSUB_INFORMATIONMODEL=ON \
+	-DUA_ENABLE_PUBSUB_INFORMATIONMODEL_METHODS=ON \
+	-DUA_ENABLE_PUBSUB_CUSTOM_PUBLISH_HANDLING=OFF \
+	-DUA_ENABLE_QUERY=ON \
+	-DUA_ENABLE_STATIC_ANALYZER=OFF \
+	-DUA_ENABLE_STATUSCODE_DESCRIPTIONS=ON \
+	-DUA_ENABLE_SUBSCRIPTIONS=ON \
+	-DUA_ENABLE_SUBSCRIPTIONS_EVENTS=ON \
+	-DUA_ENABLE_TYPENAMES=ON \
+	-DUA_ENABLE_UNIT_TEST_FAILURE_HOOKS=OFF \
+	-DUA_ENABLE_UNIT_TESTS_MEMCHECK=OFF \
+	-DUA_ENABLE_VALGRIND_INTERACTIVE=OFF \
+	-DUA_COMPILE_AS_CXX=OFF \
+	-DUA_FILE_NS0="" \
+	-DUA_LOGLEVEL=$(OPEN62541_LOGLEVEL) \
+	-DUA_MSVC_FORCE_STATIC_CRT=OFF \
+	-DUA_NAMESPACE_ZERO=FULL \
+	-DUA_NODESET_DIR="$(PTXDIST_SYSROOT_HOST)/usr/share/ua-nodeset" \
+	-DUA_PACK_DEBIAN=OFF
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/open62541.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, open62541)
+	@$(call install_fixup, open62541,PRIORITY,optional)
+	@$(call install_fixup, open62541,SECTION,base)
+	@$(call install_fixup, open62541,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de>")
+	@$(call install_fixup, open62541,DESCRIPTION,missing)
+
+	@$(call install_lib, open62541, 0, 0, 0644, libopen62541)
+
+	@$(call install_finish, open62541)
+	@$(call touch)
+
+# vim: syntax=make
-- 
2.25.0


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

  parent reply	other threads:[~2020-02-05 10:42 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-05 10:42 [ptxdist] [PATCH v5 1/3] mbedtls: " Ulrich Ölmann
2020-02-05 10:42 ` [ptxdist] [PATCH v5 2/3] host-ua-nodeset: " Ulrich Ölmann
2020-02-05 10:42 ` Ulrich Ölmann [this message]
2020-02-14 12:50   ` [ptxdist] [PATCH v5 3/3] open62541: " Michael Olbrich
2020-02-17  9:50     ` Roland Hieber
2020-02-17 10:32       ` Michael Olbrich
2020-03-11 15:42         ` Ulrich Ölmann
2020-03-11 15:40     ` Ulrich Ölmann
2020-02-15  9:58   ` Michael Olbrich
2020-03-11 15:38     ` Ulrich Ölmann
2020-02-17  9:39 ` [ptxdist] [PATCH v5 1/3] mbedtls: " Michael Olbrich
2020-03-11 15:36   ` Ulrich Ölmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200205104241.19603-3-u.oelmann@pengutronix.de \
    --to=u.oelmann@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox