-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add recipe for ua-nodeset #7312
Changes from 18 commits
7f91dde
71779d1
4943e8d
436166e
029882b
20d1b52
941df87
d09c96a
b1f2beb
79fd9ed
9decffa
4e2471f
3a11220
9ab696f
7dc143f
3723652
aa96f30
094027b
fafc3b6
1aff707
b063d0e
49b808d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
sources: | ||
"1.02-2021-07-21": | ||
url: https://github.com/OPCFoundation/UA-Nodeset/archive/refs/tags/PADIM-1.02-2021-07-21.tar.gz | ||
sha256: 05c83369ea82cd275d47ccc46a6d919c81392e2d0b7444a3e538ee3ba482dbee |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
from conans import ConanFile, CMake, tools | ||
import os | ||
|
||
required_conan_version = ">=1.33.0" | ||
|
||
|
||
class UaNodeSetConan(ConanFile): | ||
name = "ua-nodeset" | ||
license = "MIT" | ||
description = "UANodeSets and other normative files which are released with a specification" | ||
homepage = "https://github.com/OPCFoundation/UA-Nodeset" | ||
url = "https://github.com/conan-io/conan-center-index" | ||
topics = ("opc-ua-specifications", "uanodeset", "normative-files", "companion-specification") | ||
|
||
no_copy_source = True | ||
|
||
@property | ||
def _source_subfolder(self): | ||
return "source_subfolder" | ||
|
||
def _extract_license(self): | ||
content = tools.load(os.path.join(self.source_folder, self._source_subfolder, "AnsiC", "opcua_clientapi.c")) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I see there are some sources ( There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These source files are just example files which could be used in combination with the official OPC Foundation reference ANSI C implementation, which is not open source. The other files, especially the NodeSet2.xml files (together with their Types.xsd and NodeId.csv) files are machine-readable descriptions of an OPC UA companion specification. The open62541 stack includes the nodeset generator, which generates C Code from these XML files, to correctly initialize an OPC UA Server with a given companion specification. That script is added in #7314 to open62541. |
||
license_contents = content[2:content.find("*/", 1)] | ||
tools.save("LICENSE", license_contents) | ||
|
||
def source(self): | ||
tools.get(**self.conan_data["sources"][self.version], strip_root=True, destination=self._source_subfolder) | ||
|
||
def build(self): | ||
pass | ||
|
||
|
||
def package(self): | ||
Pro marked this conversation as resolved.
Show resolved
Hide resolved
|
||
self._extract_license() | ||
self.copy("*", dst="res", src=self._source_subfolder) | ||
self.copy("LICENSE", dst="licenses") | ||
|
||
|
||
def package_info(self): | ||
self.cpp_info.libdirs = [] | ||
Mo-Tay marked this conversation as resolved.
Show resolved
Hide resolved
|
||
self.cpp_info.resdirs = ["res"] | ||
self.user_info.nodeset_dir = os.path.join(self.package_folder, "res") |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
from conans import ConanFile, CMake, tools | ||
import os | ||
|
||
|
||
class TestUaNodeSetConan(ConanFile): | ||
|
||
def build(self): | ||
pass | ||
|
||
def test(self): | ||
assert os.path.exists(os.path.join(self.deps_user_info["ua-nodeset"].nodeset_dir, "PLCopen")) | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
versions: | ||
Mo-Tay marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"1.02-2021-07-21": | ||
folder: all |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reading the releases, they have different prefixes, but are related to the same project. How can distribute it individually? Here you are using PADIM, but what does happen if someone want DEXPI? It looks the project is the same, but the provided package is totally different.
Or you could use the real release name for package version, or we should think about separated packages for each release, like
ua-nodeset-padim/1.02
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These tags are like rolling releases on the 1.04 branch.
E.g. the tag
PADIM-1.02-2021-07-21
(https://github.com/OPCFoundation/UA-Nodeset/releases/tag/PADIM-1.02-2021-07-21) is for the commit OPCFoundation/UA-Nodeset@6f2b384 which is almost the newest one on the 1.04 branch.The tag names just indicate that a specific companion specification version is part of that release. All other companion specifications released previously are still part of that too.
Therefore I do not think that it is a good idea to separate the ua-nodeset package into sub-packages.
I suggest to just use the version
1.04
and the date of the latest tag, i.e.,1.04-2021-09-15
.I will update the conandata.yml file with some more comments (and also fix the version as it is currently wrong)