|
@@ -29,8 +29,15 @@ if(UA_ENABLE_MULTITHREADING)
|
|
|
list(APPEND LIBS urcu-cds urcu urcu-common)
|
|
|
endif(UA_ENABLE_MULTITHREADING)
|
|
|
|
|
|
+set(STATIC_OBJECTS $<TARGET_OBJECTS:open62541-object>)
|
|
|
+if(WIN32 AND BUILD_SHARED_LIBS)
|
|
|
+ # on windows the .dll.a file has to be used for the linker
|
|
|
+ list(APPEND LIBS open62541)
|
|
|
+ set(STATIC_OBJECTS "")
|
|
|
+endif()
|
|
|
+
|
|
|
macro(add_example EXAMPLE_NAME EXAMPLE_SOURCE)
|
|
|
- add_executable(${EXAMPLE_NAME} $<TARGET_OBJECTS:open62541-object> ${EXAMPLE_SOURCE})
|
|
|
+ add_executable(${EXAMPLE_NAME} ${STATIC_OBJECTS} ${EXAMPLE_SOURCE})
|
|
|
target_link_libraries(${EXAMPLE_NAME} ${LIBS})
|
|
|
assign_source_group(${EXAMPLE_SOURCE})
|
|
|
add_dependencies(${EXAMPLE_NAME} open625451_amalgamation)
|
|
@@ -89,9 +96,10 @@ target_include_directories(server_readspeed PRIVATE ${PROJECT_SOURCE_DIR}/src ${
|
|
|
|
|
|
add_example(server_inheritance server_inheritance.c)
|
|
|
|
|
|
-if(UA_BUILD_EXAMPLES_NODESET_COMPILER)
|
|
|
- add_executable(server_nodeset "server_nodeset.c ${PROJECT_BINARY_DIR}/src_generated/nodeset.c")
|
|
|
- target_include_directories(server_nodeset PRIVATE ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/deps) # needs an internal header
|
|
|
+if(NOT BUILD_SHARED_LIBS AND UA_BUILD_EXAMPLES_NODESET_COMPILER)
|
|
|
+ # needs internal methods which are not exported in the dynamic lib
|
|
|
+ add_example(server_nodeset "server_nodeset.c ${PROJECT_BINARY_DIR}/src_generated/nodeset.c")
|
|
|
+ target_include_directories(server_nodeset PRIVATE ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/deps) # needs an internal header
|
|
|
endif()
|
|
|
|
|
|
if(UA_BUILD_SELFSIGNED_CERTIFICATE)
|
|
@@ -101,17 +109,25 @@ if(UA_BUILD_SELFSIGNED_CERTIFICATE)
|
|
|
DEPENDS ${PROJECT_SOURCE_DIR}/tools/certs/create_self-signed.py
|
|
|
${PROJECT_SOURCE_DIR}/tools/certs/localhost.cnf)
|
|
|
add_custom_target(selfsigned ALL DEPENDS server_cert.der ca.crt)
|
|
|
- add_executable(server_certificate server_certificate.c $<TARGET_OBJECTS:open62541-object> server_cert.der ca.crt)
|
|
|
+ add_executable(server_certificate server_certificate.c ${STATIC_OBJECTS} server_cert.der ca.crt)
|
|
|
target_link_libraries(server_certificate ${LIBS})
|
|
|
endif()
|
|
|
|
|
|
+if(NOT BUILD_SHARED_LIBS)
|
|
|
+ # needs internal methods which are not exported in the dynamic lib
|
|
|
+ add_executable(server_readspeed server_readspeed.c ${STATIC_OBJECTS})
|
|
|
+ target_include_directories(server_readspeed PRIVATE ${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/deps) # needs an internal header
|
|
|
+ target_link_libraries(server_readspeed ${LIBS})
|
|
|
+endif()
|
|
|
+
|
|
|
+
|
|
|
if(UA_ENABLE_DISCOVERY)
|
|
|
- add_example(discovery_server_lds discovery/server_lds.c)
|
|
|
+ add_example(discovery_server_lds discovery/server_lds.c)
|
|
|
|
|
|
- add_example(discovery_server_register discovery/server_register.c)
|
|
|
+ add_example(discovery_server_register discovery/server_register.c)
|
|
|
|
|
|
- add_example(discovery_client_find_servers discovery/client_find_servers.c)
|
|
|
- if(UA_ENABLE_DISCOVERY_MULTICAST)
|
|
|
- add_example(discovery_server_multicast discovery/server_multicast.c)
|
|
|
- endif()
|
|
|
-endif()
|
|
|
+ add_example(discovery_client_find_servers discovery/client_find_servers.c)
|
|
|
+ if(UA_ENABLE_DISCOVERY_MULTICAST)
|
|
|
+ add_example(discovery_server_multicast discovery/server_multicast.c)
|
|
|
+ endif()
|
|
|
+endif()
|