From: Björn Esser <b.es...@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.es...@pengutronix.de>
[uol: adjusted commit message]
Signed-off-by: Ulrich Ölmann <u.oelm...@pengutronix.de>
---

Notes:
    v2 --> v3: adjusted commit message
    v5 --> v6: added "select HOST_SYSTEM_PYTHON3" to Kconfig's menu file, added
               OPEN62541_MDNSD{,_SUFFIX} and removed comment in the makefile

 ...-UA_NODESET_DIR-to-be-custom-defined.patch | 224 ++++++++++++++++++
 patches/open62541-1.0/series                  |   4 +
 rules/host-open62541.in                       |   7 +
 rules/host-open62541.make                     |  50 ++++
 rules/open62541.in                            |  13 +
 rules/open62541.make                          | 141 +++++++++++
 6 files changed, 439 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.es...@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.es...@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..06a4fc5a405c
--- /dev/null
+++ b/rules/host-open62541.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_OPEN62541
+        tristate
+       select HOST_CMAKE
+       select HOST_UA_NODESET
+       select HOST_SYSTEM_PYTHON3
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.schwe...@pengutronix.de>
+# Copyright (C) 2019 by Bjoern Esser <b.es...@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..4d20cc876fc3
--- /dev/null
+++ b/rules/open62541.make
@@ -0,0 +1,141 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2018 by Robert Schwebel <r.schwe...@pengutronix.de>
+# Copyright (C) 2019 by Bjoern Esser <b.es...@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                        := 
open62541-mdnsd-$(OPEN62541_MDNSD_VERSION)
+OPEN62541_MDNSD_SUFFIX         := tar.gz
+OPEN62541_MDNSD_URL            := 
https://github.com/Pro/mdnsd/archive/$(OPEN62541_MDNSD_VERSION)/$(OPEN62541_MDNSD).$(OPEN62541_MDNSD_SUFFIX)
+OPEN62541_MDNSD_SOURCE         := 
$(SRCDIR)/$(OPEN62541_MDNSD).$(OPEN62541_MDNSD_SUFFIX)
+$(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_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.schwe...@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.1


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to