From ef0a27d7d8a05f07ac2604eed5c562813d51e351 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Tue, 5 Mar 2024 12:10:15 -0500 Subject: [PATCH 01/14] Add Ninja to Linux and Mac builds --- .github/workflows/build_and_test.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 8d90430..8054a1e 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -15,6 +15,8 @@ jobs: uses: actions/checkout@v3 with: path: opentelemetry-matlab + - name: Install ninja-build + run: sudo apt-get install ninja-build` - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: @@ -22,7 +24,7 @@ jobs: - name: Build OpenTelemetry-Matlab run: | cd opentelemetry-matlab - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} + cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Run tests env: @@ -67,6 +69,8 @@ jobs: uses: actions/checkout@v3 with: path: opentelemetry-matlab + - name: Install ninja-build + run: brew install ninja - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: @@ -74,7 +78,7 @@ jobs: - name: Build OpenTelemetry-Matlab run: | cd opentelemetry-matlab - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} + cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Run tests env: From f7c2b72461c455b3269743519ee1595e0bcf3108 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Tue, 5 Mar 2024 13:01:58 -0500 Subject: [PATCH 02/14] add ninja to Linux and Mac builds --- .github/workflows/build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 8054a1e..d9f6407 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -16,7 +16,7 @@ jobs: with: path: opentelemetry-matlab - name: Install ninja-build - run: sudo apt-get install ninja-build` + run: sudo apt-get install ninja-build - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: From a6a605acefba076048a09a27b6f3126540089367 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Wed, 6 Mar 2024 11:32:18 -0500 Subject: [PATCH 03/14] Enable Ninja build --- CMakeLists.txt | 62 ++++++++++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d50cb8..c018cb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,21 +122,45 @@ FetchContent_MakeAvailable( # OpenTelemetry-cpp # ########################### +# Determine OTEL_CPP_PREFIX if(DEFINED OTEL_CPP_INSTALLED_DIR) # OTEL_CPP_INSTALLED_DIR should point to an installed location of OpenTelemetry-cpp string(REPLACE "\\" "/" OTEL_CPP_PREFIX ${OTEL_CPP_INSTALLED_DIR}) else() - # No installed location supplied. Fetch it as an external project - include(ExternalProject) - set(OTEL_CPP_PROJECT_NAME opentelemetry-cpp) - set(OTEL_CPP_GIT_REPOSITORY "https://github.com/open-telemetry/opentelemetry-cpp.git") - set(OTEL_CPP_GIT_TAG "a799f4a") - if(DEFINED OTEL_CPP_PREFIX) string(REPLACE "\\" "/" OTEL_CPP_PREFIX ${OTEL_CPP_PREFIX}) else() set(OTEL_CPP_PREFIX ${CMAKE_BINARY_DIR}/otel-cpp) endif() +endif() + +set(OTEL_CPP_LIBRARIES ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_common${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_otlp_recordable${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}opentelemetry_proto${OTEL_PROTO_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_resources${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_trace${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_version${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_logs${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_metrics${CMAKE_STATIC_LIBRARY_SUFFIX}) +if(WITH_OTLP_HTTP) + set(OTEL_CPP_LIBRARIES ${OTEL_CPP_LIBRARIES} ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_http${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_http_client${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_http_metric${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_http_client_curl${CMAKE_STATIC_LIBRARY_SUFFIX}) +endif() +if(WITH_OTLP_GRPC) + set(OTEL_CPP_LIBRARIES ${OTEL_CPP_LIBRARIES} ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_grpc${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_grpc_client${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_grpc_metrics${CMAKE_STATIC_LIBRARY_SUFFIX} + ${OTEL_CPP_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}opentelemetry_proto_grpc${OTEL_PROTO_LIBRARY_SUFFIX}) +endif() + +if(NOT DEFINED OTEL_CPP_INSTALLED_DIR) + # No installed location supplied. Fetch it as an external project + include(ExternalProject) + set(OTEL_CPP_PROJECT_NAME opentelemetry-cpp) + set(OTEL_CPP_GIT_REPOSITORY "https://github.com/open-telemetry/opentelemetry-cpp.git") + set(OTEL_CPP_GIT_TAG "a799f4a") set(OTEL_CPP_CXX_STANDARD 14) @@ -154,6 +178,7 @@ else() UPDATE_DISCONNECTED 1 PATCH_COMMAND ${patch_command} CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DBUILD_TESTING=OFF -DWITH_BENCHMARK=OFF -DOPENTELEMETRY_INSTALL=ON -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_CXX_STANDARD=${OTEL_CPP_CXX_STANDARD} -DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR} + BUILD_BYPRODUCTS ${OTEL_CPP_LIBRARIES} INSTALL_DIR ${OTEL_CPP_PREFIX} INSTALL_COMMAND ${CMAKE_COMMAND} --install . --prefix ${OTEL_CPP_PREFIX} ) @@ -291,32 +316,15 @@ endif() target_compile_options(${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTLP_MACROS} ${CUSTOM_CXX_FLAGS}) # link against OpenTelemetry-cpp libraries and their dependencies -set(OTEL_CPP_LINK_LIBRARIES ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_common${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_otlp_recordable${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}opentelemetry_proto${OTEL_PROTO_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_resources${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_trace${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_version${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_logs${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_metrics${CMAKE_STATIC_LIBRARY_SUFFIX} - ${Protobuf_LIBRARIES} ${Matlab_MEX_LIBRARY}) +set(OPENTELEMETRY_PROXY_LINK_LIBRARIES ${OTEL_CPP_LIBRARIES} ${Protobuf_LIBRARIES} ${Matlab_MEX_LIBRARY}) if(WITH_OTLP_HTTP) - set(OTEL_CPP_LINK_LIBRARIES ${OTEL_CPP_LINK_LIBRARIES} ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_http${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_http_client${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_http_metric${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_http_client_curl${CMAKE_STATIC_LIBRARY_SUFFIX} - ${CURL_LIBRARIES}) + set(OPENTELEMETRY_PROXY_LINK_LIBRARIES ${OPENTELEMETRY_PROXY_LINK_LIBRARIES} ${CURL_LIBRARIES}) endif() if(WITH_OTLP_GRPC) - set(OTEL_CPP_LINK_LIBRARIES ${OTEL_CPP_LINK_LIBRARIES} ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_grpc${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_grpc_client${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_exporter_otlp_grpc_metrics${CMAKE_STATIC_LIBRARY_SUFFIX} - ${OTEL_CPP_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}opentelemetry_proto_grpc${OTEL_PROTO_LIBRARY_SUFFIX} - gRPC::grpc++ - absl::synchronization) + set(OPENTELEMETRY_PROXY_LINK_LIBRARIES ${OPENTELEMETRY_PROXY_LINK_LIBRARIES} gRPC::grpc++ absl::synchronization) endif() -target_link_libraries(${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTEL_CPP_LINK_LIBRARIES}) +target_link_libraries(${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OPENTELEMETRY_PROXY_LINK_LIBRARIES}) # On Linux, when linking with certain static libraries, need to force include entire archive to avoid the linker mistakenly leaving out symbols if(UNIX AND NOT APPLE AND NOT CYGWIN) From 8e72bee47c5a188f492bff9019c625758072f40c Mon Sep 17 00:00:00 2001 From: duncanpo Date: Fri, 8 Mar 2024 13:36:33 -0500 Subject: [PATCH 04/14] ninja build --- CMakeLists.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c018cb5..d30c6e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -134,6 +134,12 @@ else() endif() endif() +if(WIN32) + set(OTEL_PROTO_LIBRARY_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX}) +else() + set(OTEL_PROTO_LIBRARY_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) +endif() + set(OTEL_CPP_LIBRARIES ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_common${CMAKE_STATIC_LIBRARY_SUFFIX} ${OTEL_CPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}opentelemetry_otlp_recordable${CMAKE_STATIC_LIBRARY_SUFFIX} ${OTEL_CPP_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}opentelemetry_proto${OTEL_PROTO_LIBRARY_SUFFIX} @@ -284,6 +290,10 @@ libmexclass_client_add_proxy_library( INCLUDE_DIRS ${OPENTELEMETRY_PROXY_INCLUDE_DIRS} ) +if(NOT DEFINED OTEL_CPP_INSTALLED_DIR) + add_dependencies(${OPENTELEMETRY_PROXY_LIBRARY_NAME} ${OTEL_CPP_PROJECT_NAME}) +endif() + # Additional compiler flags for HTTP/gRPC exporters if(WITH_OTLP_HTTP) if(WIN32) @@ -306,11 +316,9 @@ if(WIN32) set(CUSTOM_CXX_FLAGS -D_SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING) # pass in version number set(OTLP_MACROS ${OTLP_MACROS} /DOTEL_MATLAB_VERSION="${OTEL_MATLAB_VERSION}") - set(OTEL_PROTO_LIBRARY_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX}) else() set(CUSTOM_CXX_FLAGS "") set(OTLP_MACROS ${OTLP_MACROS} "-D OTEL_MATLAB_VERSION=\"${OTEL_MATLAB_VERSION}\"") - set(OTEL_PROTO_LIBRARY_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}) endif() target_compile_options(${OPENTELEMETRY_PROXY_LIBRARY_NAME} PRIVATE ${OTLP_MACROS} ${CUSTOM_CXX_FLAGS}) From 617b79061e348db74ca06b38bc63004f592fab87 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Mon, 11 Mar 2024 14:52:34 -0400 Subject: [PATCH 05/14] Fix examples in Ninja build --- examples/context_propagation/CMakeLists.txt | 3 ++- examples/webread/CMakeLists.txt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/context_propagation/CMakeLists.txt b/examples/context_propagation/CMakeLists.txt index 48693a5..03a07a0 100644 --- a/examples/context_propagation/CMakeLists.txt +++ b/examples/context_propagation/CMakeLists.txt @@ -2,9 +2,10 @@ # C++ target set(CONTEXTPROP_EXAMPLE_TARGET contextprop_example_client) add_executable(${CONTEXTPROP_EXAMPLE_TARGET} cpp/client.cc) +add_dependencies(${CONTEXTPROP_EXAMPLE_TARGET} ${OTEL_CPP_PROJECT_NAME}) target_include_directories(${CONTEXTPROP_EXAMPLE_TARGET} PRIVATE ${OTEL_CPP_PREFIX}/include) -target_link_libraries(${CONTEXTPROP_EXAMPLE_TARGET} PRIVATE ${OTEL_CPP_LINK_LIBRARIES}) +target_link_libraries(${CONTEXTPROP_EXAMPLE_TARGET} PRIVATE ${OPENTELEMETRY_PROXY_LINK_LIBRARIES}) if(UNIX AND NOT APPLE AND NOT CYGWIN) target_link_options(${CONTEXTPROP_EXAMPLE_TARGET} PRIVATE ${OPENTELEMETRY_PROXY_LINK_OPTIONS}) elseif(APPLE) diff --git a/examples/webread/CMakeLists.txt b/examples/webread/CMakeLists.txt index 1e29012..320d09a 100644 --- a/examples/webread/CMakeLists.txt +++ b/examples/webread/CMakeLists.txt @@ -1,9 +1,10 @@ set(WEBREAD_EXAMPLE_TARGET webread_example_server) add_executable(${WEBREAD_EXAMPLE_TARGET} cpp/server.cc) +add_dependencies(${WEBREAD_EXAMPLE_TARGET} ${OTEL_CPP_PROJECT_NAME}) target_include_directories(${WEBREAD_EXAMPLE_TARGET} PRIVATE ${OTEL_CPP_PREFIX}/include) -target_link_libraries(${WEBREAD_EXAMPLE_TARGET} PRIVATE ${OTEL_CPP_LINK_LIBRARIES}) +target_link_libraries(${WEBREAD_EXAMPLE_TARGET} PRIVATE ${OPENTELEMETRY_PROXY_LINK_LIBRARIES}) if(UNIX AND NOT APPLE AND NOT CYGWIN) target_link_options(${WEBREAD_EXAMPLE_TARGET} PRIVATE ${OPENTELEMETRY_PROXY_LINK_OPTIONS}) elseif(APPLE) From aaa2949dc9a89ea11ca98e9c940c6b18e802e9f9 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Mon, 11 Mar 2024 18:18:24 -0400 Subject: [PATCH 06/14] ninja build --- .github/workflows/build_and_test.yml | 9 +++++---- CMakeLists.txt | 15 +++++++++------ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index d9f6407..bd001e6 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -22,8 +22,8 @@ jobs: with: products: MATLAB_Compiler - name: Build OpenTelemetry-Matlab + working-directory: opentelemetry-matlab run: | - cd opentelemetry-matlab cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Run tests @@ -48,9 +48,10 @@ jobs: with: products: MATLAB_Compiler - name: Build OpenTelemetry-Matlab + working-directory: opentelemetry-matlab run: | - cd opentelemetry-matlab - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 + cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Run tests env: @@ -76,8 +77,8 @@ jobs: with: products: MATLAB_Compiler - name: Build OpenTelemetry-Matlab + working-directory: opentelemetry-matlab run: | - cd opentelemetry-matlab cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Run tests diff --git a/CMakeLists.txt b/CMakeLists.txt index d30c6e4..d12a423 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,14 +124,17 @@ FetchContent_MakeAvailable( # Determine OTEL_CPP_PREFIX if(DEFINED OTEL_CPP_INSTALLED_DIR) - # OTEL_CPP_INSTALLED_DIR should point to an installed location of OpenTelemetry-cpp + # Set OTEL_CPP_INSTALLED_DIR to use a pre-installed OpenTelemetry-cpp + # It should point to the installed location string(REPLACE "\\" "/" OTEL_CPP_PREFIX ${OTEL_CPP_INSTALLED_DIR}) +elseif(DEFINED OTEL_CPP_PREFIX) + # Set OTEL_CPP_PREFIX to specify an install location of the automatically + # downloaded and built OpenTelemetry-cpp, instead of using the default + # location with the build directory. This can preserve the OpenTelemetry-cpp + # install even if the build directory is removed. + string(REPLACE "\\" "/" OTEL_CPP_PREFIX ${OTEL_CPP_PREFIX}) else() - if(DEFINED OTEL_CPP_PREFIX) - string(REPLACE "\\" "/" OTEL_CPP_PREFIX ${OTEL_CPP_PREFIX}) - else() - set(OTEL_CPP_PREFIX ${CMAKE_BINARY_DIR}/otel-cpp) - endif() + set(OTEL_CPP_PREFIX ${CMAKE_BINARY_DIR}/otel-cpp) endif() if(WIN32) From 78f394d8f39558c37b5f4dc00a4b0849d7682631 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Tue, 12 Mar 2024 10:02:51 -0400 Subject: [PATCH 07/14] ninja build --- .github/workflows/build_and_test.yml | 1 + .github/workflows/publish_mltbx.yml | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index bd001e6..28311e5 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -49,6 +49,7 @@ jobs: products: MATLAB_Compiler - name: Build OpenTelemetry-Matlab working-directory: opentelemetry-matlab + shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} diff --git a/.github/workflows/publish_mltbx.yml b/.github/workflows/publish_mltbx.yml index 072010e..3dff9f4 100644 --- a/.github/workflows/publish_mltbx.yml +++ b/.github/workflows/publish_mltbx.yml @@ -15,14 +15,16 @@ jobs: uses: actions/checkout@v3 with: path: opentelemetry-matlab + - name: Install ninja-build + run: sudo apt-get install ninja-build - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: products: MATLAB_Compiler - name: Build OpenTelemetry-Matlab + working-directory: opentelemetry-matlab run: | - cd opentelemetry-matlab - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} + cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Compress into single artifact working-directory: ${{ github.workspace }} @@ -46,9 +48,11 @@ jobs: with: products: MATLAB_Compiler - name: Build OpenTelemetry-Matlab + working-directory: opentelemetry-matlab + shell: cmd run: | - cd opentelemetry-matlab - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 + cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Compress into single artifact working-directory: ${{ github.workspace }} @@ -67,14 +71,16 @@ jobs: uses: actions/checkout@v3 with: path: opentelemetry-matlab + - name: Install ninja-build + run: brew install ninja - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: products: MATLAB_Compiler - name: Build OpenTelemetry-Matlab + working-directory: opentelemetry-matlab run: | - cd opentelemetry-matlab - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} + cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Compress into single artifact working-directory: ${{ github.workspace }} From 40fbae8b22cf03d3058416c807fca899e42a2660 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Tue, 12 Mar 2024 11:32:13 -0400 Subject: [PATCH 08/14] ninja build --- .github/workflows/build_and_test.yml | 4 ++-- .github/workflows/publish_mltbx.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 28311e5..03ece82 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -43,15 +43,15 @@ jobs: uses: actions/checkout@v3 with: path: opentelemetry-matlab + - name: Install ninja-build + run: choco install ninja - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: products: MATLAB_Compiler - name: Build OpenTelemetry-Matlab working-directory: opentelemetry-matlab - shell: cmd run: | - call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Run tests diff --git a/.github/workflows/publish_mltbx.yml b/.github/workflows/publish_mltbx.yml index 3dff9f4..1f4e0fb 100644 --- a/.github/workflows/publish_mltbx.yml +++ b/.github/workflows/publish_mltbx.yml @@ -43,15 +43,15 @@ jobs: uses: actions/checkout@v3 with: path: opentelemetry-matlab + - name: Install ninja-build + run: choco install ninja - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: products: MATLAB_Compiler - name: Build OpenTelemetry-Matlab working-directory: opentelemetry-matlab - shell: cmd run: | - call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Compress into single artifact From 33bf835450a9412338214212911e35371634cc7e Mon Sep 17 00:00:00 2001 From: duncanpo Date: Tue, 12 Mar 2024 14:37:27 -0400 Subject: [PATCH 09/14] ninja build --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d12a423..56aeca2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,7 +186,7 @@ if(NOT DEFINED OTEL_CPP_INSTALLED_DIR) PREFIX ${OTEL_CPP_PREFIX} UPDATE_DISCONNECTED 1 PATCH_COMMAND ${patch_command} - CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DBUILD_TESTING=OFF -DWITH_BENCHMARK=OFF -DOPENTELEMETRY_INSTALL=ON -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_CXX_STANDARD=${OTEL_CPP_CXX_STANDARD} -DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR} + CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DBUILD_TESTING=OFF -DWITH_BENCHMARK=OFF -DWITH_EXAMPLES=OFF -DOPENTELEMETRY_INSTALL=ON -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_CXX_STANDARD=${OTEL_CPP_CXX_STANDARD} -DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR} BUILD_BYPRODUCTS ${OTEL_CPP_LIBRARIES} INSTALL_DIR ${OTEL_CPP_PREFIX} INSTALL_COMMAND ${CMAKE_COMMAND} --install . --prefix ${OTEL_CPP_PREFIX} From ca7cec2ee876f984c602b18a58abf4eb846c8966 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Tue, 12 Mar 2024 16:07:05 -0400 Subject: [PATCH 10/14] ninja build --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 56aeca2..6444594 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,7 +186,7 @@ if(NOT DEFINED OTEL_CPP_INSTALLED_DIR) PREFIX ${OTEL_CPP_PREFIX} UPDATE_DISCONNECTED 1 PATCH_COMMAND ${patch_command} - CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DBUILD_TESTING=OFF -DWITH_BENCHMARK=OFF -DWITH_EXAMPLES=OFF -DOPENTELEMETRY_INSTALL=ON -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_CXX_STANDARD=${OTEL_CPP_CXX_STANDARD} -DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR} + CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DBUILD_TESTING=OFF -DWITH_BENCHMARK=OFF -DWITH_EXAMPLES=OFF -DWITH_FUNC_TESTS=OFF -DOPENTELEMETRY_INSTALL=ON -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_CXX_STANDARD=${OTEL_CPP_CXX_STANDARD} -DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR} BUILD_BYPRODUCTS ${OTEL_CPP_LIBRARIES} INSTALL_DIR ${OTEL_CPP_PREFIX} INSTALL_COMMAND ${CMAKE_COMMAND} --install . --prefix ${OTEL_CPP_PREFIX} From 629ac15439ca49e1842510d2763bd68f8b5f24e7 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Wed, 13 Mar 2024 11:02:34 -0400 Subject: [PATCH 11/14] ninja build --- .github/workflows/build_and_test.yml | 2 -- CMakeLists.txt | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 03ece82..0341b51 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -43,8 +43,6 @@ jobs: uses: actions/checkout@v3 with: path: opentelemetry-matlab - - name: Install ninja-build - run: choco install ninja - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: diff --git a/CMakeLists.txt b/CMakeLists.txt index 6444594..d12a423 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -186,7 +186,7 @@ if(NOT DEFINED OTEL_CPP_INSTALLED_DIR) PREFIX ${OTEL_CPP_PREFIX} UPDATE_DISCONNECTED 1 PATCH_COMMAND ${patch_command} - CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DBUILD_TESTING=OFF -DWITH_BENCHMARK=OFF -DWITH_EXAMPLES=OFF -DWITH_FUNC_TESTS=OFF -DOPENTELEMETRY_INSTALL=ON -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_CXX_STANDARD=${OTEL_CPP_CXX_STANDARD} -DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR} + CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DWITH_OTLP_HTTP=${WITH_OTLP_HTTP} -DWITH_OTLP_GRPC=${WITH_OTLP_GRPC} -DBUILD_TESTING=OFF -DWITH_BENCHMARK=OFF -DOPENTELEMETRY_INSTALL=ON -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DCMAKE_CXX_STANDARD=${OTEL_CPP_CXX_STANDARD} -DVCPKG_INSTALLED_DIR=${VCPKG_INSTALLED_DIR} BUILD_BYPRODUCTS ${OTEL_CPP_LIBRARIES} INSTALL_DIR ${OTEL_CPP_PREFIX} INSTALL_COMMAND ${CMAKE_COMMAND} --install . --prefix ${OTEL_CPP_PREFIX} From 2b47a11d9b82ef6df4437a8c9b7fc3f88db944d0 Mon Sep 17 00:00:00 2001 From: duncanpo Date: Wed, 13 Mar 2024 11:49:29 -0400 Subject: [PATCH 12/14] ninja build --- .github/workflows/build_and_test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 0341b51..1e15c72 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -43,6 +43,8 @@ jobs: uses: actions/checkout@v3 with: path: opentelemetry-matlab + - name: Install ninja-build + run: choco install ninja - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: @@ -50,7 +52,7 @@ jobs: - name: Build OpenTelemetry-Matlab working-directory: opentelemetry-matlab run: | - cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Run tests env: From d60e3272398943771dd2aabbca17d6b7af6b7a1a Mon Sep 17 00:00:00 2001 From: duncanpo Date: Wed, 13 Mar 2024 13:02:11 -0400 Subject: [PATCH 13/14] ninja build --- .github/workflows/build_and_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 1e15c72..03ece82 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -52,7 +52,7 @@ jobs: - name: Build OpenTelemetry-Matlab working-directory: opentelemetry-matlab run: | - cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} + cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Run tests env: From 13e3ff2cb35cfedab23de31149c9e4e148d420cb Mon Sep 17 00:00:00 2001 From: duncanpo Date: Wed, 13 Mar 2024 18:29:06 -0400 Subject: [PATCH 14/14] Enable Ninja build on Linux and Mac --- .github/workflows/build_and_test.yml | 4 +--- .github/workflows/publish_mltbx.yml | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 03ece82..3e8b4e5 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -43,8 +43,6 @@ jobs: uses: actions/checkout@v3 with: path: opentelemetry-matlab - - name: Install ninja-build - run: choco install ninja - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: @@ -52,7 +50,7 @@ jobs: - name: Build OpenTelemetry-Matlab working-directory: opentelemetry-matlab run: | - cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Run tests env: diff --git a/.github/workflows/publish_mltbx.yml b/.github/workflows/publish_mltbx.yml index 1f4e0fb..6f39e46 100644 --- a/.github/workflows/publish_mltbx.yml +++ b/.github/workflows/publish_mltbx.yml @@ -43,8 +43,6 @@ jobs: uses: actions/checkout@v3 with: path: opentelemetry-matlab - - name: Install ninja-build - run: choco install ninja - name: Install MATLAB uses: matlab-actions/setup-matlab@v2 with: @@ -52,7 +50,7 @@ jobs: - name: Build OpenTelemetry-Matlab working-directory: opentelemetry-matlab run: | - cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }} cmake --build build --config Release --target install - name: Compress into single artifact working-directory: ${{ github.workspace }}