浏览代码

CMake: Make the default examples not depend on the ua-nodeset submodule

Julius Pfrommer 5 年之前
父节点
当前提交
e2df239750
共有 2 个文件被更改,包括 5 次插入7 次删除
  1. 1 0
      examples/nodeset/CMakeLists.txt
  2. 4 7
      tools/cmake/macros_public.cmake

+ 1 - 0
examples/nodeset/CMakeLists.txt

@@ -10,6 +10,7 @@
 ua_generate_nodeset_and_datatypes(
     NAME "example"
     FILE_NS "${PROJECT_SOURCE_DIR}/examples/nodeset/server_nodeset.xml"
+    DEPENDS "${PROJECT_SOURCE_DIR}/tools/schema/Opc.Ua.NodeSet2.Minimal.xml"
 )
 
 # The .csv file can be created from within UaModeler or manually

+ 4 - 7
tools/cmake/macros_public.cmake

@@ -243,13 +243,6 @@ function(ua_generate_nodeset)
         set(UA_GEN_NS_OUTPUT_DIR ${PROJECT_BINARY_DIR}/src_generated)
     endif()
 
-    list(LENGTH UA_GEN_NS_DEPENDS_TYPES DEPENDS_TYPES_LEN)
-    list(LENGTH UA_GEN_NS_DEPENDS_NS DEPENDS_NS_LEN)
-
-    if(NOT DEPENDS_TYPES_LEN EQUAL DEPENDS_NS_LEN)
-        message(FATAL_ERROR "ua_generate_nodeset parameters DEPENDS_NS and DEPENDS_TYPES must have the same number of list elements")
-    endif()
-
     # Set default target prefix
     if(NOT UA_GEN_NS_TARGET_PREFIX OR "${UA_GEN_NS_TARGET_PREFIX}" STREQUAL "")
         set(UA_GEN_NS_TARGET_PREFIX "open62541-generator")
@@ -476,6 +469,9 @@ function(ua_generate_nodeset_and_datatypes)
         set(TYPES_DEPENDS "UA_TYPES")
     else()
         foreach(f ${UA_GEN_DEPENDS})
+          if(EXISTS ${f})
+            set(NODESET_DEPENDS ${NODESET_DEPENDS} "${f}")
+          else()
             get_property(DEPENDS_FILE GLOBAL PROPERTY "UA_GEN_NS_DEPENDS_FILE_${f}")
             if(NOT DEPENDS_FILE OR "${DEPENDS_FILE}" STREQUAL "")
                 message(FATAL_ERROR "Nodeset dependency ${f} needs to be generated before ${UA_GEN_NAME}")
@@ -485,6 +481,7 @@ function(ua_generate_nodeset_and_datatypes)
             get_property(DEPENDS_TYPES GLOBAL PROPERTY "UA_GEN_NS_DEPENDS_TYPES_${f}")
             set(TYPES_DEPENDS ${TYPES_DEPENDS} "${DEPENDS_TYPES}")
             set(NODESET_DEPENDS_TARGET ${NODESET_DEPENDS_TARGET} "${UA_GEN_TARGET_PREFIX}-ns-${f}")
+          endif()
         endforeach()
     endif()