11
22# C++ target
3- set (CONTEXTPROP_EXAMPLE_TARGET contextprop_example_client)
4- add_executable (${CONTEXTPROP_EXAMPLE_TARGET } cpp/client.cc)
5- add_dependencies (${CONTEXTPROP_EXAMPLE_TARGET } ${OTEL_CPP_PROJECT_NAME} )
3+ set (CONTEXTPROP_EXAMPLE_CPP_TARGET contextprop_example_client)
4+ add_executable (${CONTEXTPROP_EXAMPLE_CPP_TARGET } cpp/client.cc)
5+ add_dependencies (${CONTEXTPROP_EXAMPLE_CPP_TARGET } ${OTEL_CPP_PROJECT_NAME} )
66
7- target_include_directories (${CONTEXTPROP_EXAMPLE_TARGET } PRIVATE ${OTEL_CPP_PREFIX} /include )
8- target_link_libraries (${CONTEXTPROP_EXAMPLE_TARGET } PRIVATE ${OPENTELEMETRY_PROXY_LINK_LIBRARIES} )
7+ target_include_directories (${CONTEXTPROP_EXAMPLE_CPP_TARGET } PRIVATE ${OTEL_CPP_PREFIX} /include )
8+ target_link_libraries (${CONTEXTPROP_EXAMPLE_CPP_TARGET } PRIVATE ${OPENTELEMETRY_PROXY_LINK_LIBRARIES} )
99if (UNIX AND NOT APPLE AND NOT CYGWIN )
10- target_link_options (${CONTEXTPROP_EXAMPLE_TARGET } PRIVATE ${OPENTELEMETRY_PROXY_LINK_OPTIONS} )
10+ target_link_options (${CONTEXTPROP_EXAMPLE_CPP_TARGET } PRIVATE ${OPENTELEMETRY_PROXY_LINK_OPTIONS} )
1111elseif (APPLE )
12- set_target_properties (${CONTEXTPROP_EXAMPLE_TARGET } PROPERTIES BUILD_RPATH "${CMAKE_INSTALL_PREFIX} /${LIBMEXCLASS_PROXY_INSTALLED_DIR} " )
12+ set_target_properties (${CONTEXTPROP_EXAMPLE_CPP_TARGET } PROPERTIES BUILD_RPATH "${CMAKE_INSTALL_PREFIX} /${LIBMEXCLASS_PROXY_INSTALLED_DIR} " )
1313endif ()
1414# use the same C++ standard as OpenTelemetry-cpp
15- target_compile_features (${CONTEXTPROP_EXAMPLE_TARGET } PRIVATE cxx_std_${OTEL_CPP_CXX_STANDARD} )
15+ target_compile_features (${CONTEXTPROP_EXAMPLE_CPP_TARGET } PRIVATE cxx_std_${OTEL_CPP_CXX_STANDARD} )
1616
1717# MATLAB target
1818find_package (Matlab REQUIRED COMPONENTS MCC_COMPILER MAIN_PROGRAM)
1919
2020set (CONTEXTPROP_EXAMPLE_DEPLOYNAME mymagic)
21+ set (CONTEXTPROP_EXAMPLE_MATLAB_TARGET ${CONTEXTPROP_EXAMPLE_DEPLOYNAME} .ctf)
2122set (CONTEXTPROP_EXAMPLE_MATLAB_SOURCE ${CMAKE_CURRENT_LIST_DIR} /matlab/${CONTEXTPROP_EXAMPLE_DEPLOYNAME} .m)
2223set (CONTEXTPROP_EXAMPLE_ROUTES ../../../examples/context_propagation/matlab/routes.json) #somehow, only relative paths are allowed
2324matlab_get_version_from_matlab_run(${Matlab_MAIN_PROGRAM} Matlab_LIST_VERSION)
@@ -27,4 +28,19 @@ if(Matlab_LIST_VERSION VERSION_GREATER_EQUAL 23.2.0)
2728else ()
2829 set (ARCHIVE_ROUTES "" )
2930endif ()
30- # install(CODE "execute_process(COMMAND ${Matlab_MCC_COMPILER} -W CTF:${CONTEXTPROP_EXAMPLE_DEPLOYNAME}${ARCHIVE_ROUTES} -U ${CONTEXTPROP_EXAMPLE_MATLAB_SOURCE} -a ${CMAKE_INSTALL_PREFIX} -a ${CMAKE_INSTALL_PREFIX}/+libmexclass/+proxy WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})")
31+
32+ # A few libraries need to be moved to libmexclass.proxy package before calling mcc
33+ add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /${LIBMEXCLASS_PROXY_INSTALLED_DIR}
34+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR} /${LIBMEXCLASS_PROXY_INSTALLED_DIR}
35+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${OPENTELEMETRY_MEX_GATEWAY_NAME} > $<TARGET_FILE:${OPENTELEMETRY_PROXY_LIBRARY_NAME} >
36+ $<TARGET_FILE:mexclass> ${OPENTELEMETRY_PROXY_RUNTIME_LIBRARIES}
37+ ${CMAKE_CURRENT_BINARY_DIR} /${LIBMEXCLASS_PROXY_INSTALLED_DIR}
38+ DEPENDS ${OPENTELEMETRY_MEX_GATEWAY_NAME} )
39+
40+ # Call mcc to create .ctf file for deployment with MATLAB Production Server
41+ add_custom_target (${CONTEXTPROP_EXAMPLE_MATLAB_TARGET} ALL
42+ ${Matlab_MCC_COMPILER} -W CTF:${CONTEXTPROP_EXAMPLE_DEPLOYNAME}${ARCHIVE_ROUTES} -U ${CONTEXTPROP_EXAMPLE_MATLAB_SOURCE}
43+ -a ${CMAKE_SOURCE_DIR} /api/trace -a ${CMAKE_SOURCE_DIR} /api/context -a ${CMAKE_SOURCE_DIR} /api/common -a ${CMAKE_SOURCE_DIR} /sdk/trace
44+ -a ${CMAKE_SOURCE_DIR} /sdk/common -a ${CMAKE_SOURCE_DIR} /exporters/otlp -a ${${LIBMEXCLASS_FETCH_CONTENT_NAME} _SOURCE_DIR}/libmexclass/matlab
45+ -a ${CMAKE_CURRENT_BINARY_DIR} /${LIBMEXCLASS_PROXY_INSTALLED_DIR}
46+ DEPENDS ${CONTEXTPROP_EXAMPLE_MATLAB_SOURCE} ${CMAKE_CURRENT_BINARY_DIR} /${LIBMEXCLASS_PROXY_INSTALLED_DIR} )
0 commit comments