Skip to content

Commit 4eca4b1

Browse files
authored
Merge pull request #137 from mathworks/abseil_build_failure
Abseil build failure
2 parents 6749801 + d763f6d commit 4eca4b1

File tree

4 files changed

+123
-11
lines changed

4 files changed

+123
-11
lines changed
+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Full build-and-test with gRPC exporter, only run when pushed to main
2+
name: "Build and Run Tests Full"
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches:
7+
- main
8+
env:
9+
MLM_LICENSE_TOKEN: ${{ secrets.MLM_LICENSE_TOKEN }}
10+
jobs:
11+
build-and-run-tests-ubuntu:
12+
# Running on ubuntu-latest would use a glibc version that is incompatible when using the built mex files on a Debian 11
13+
# Instead, run on ubuntu-20.04
14+
runs-on: ubuntu-20.04
15+
env:
16+
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install"
17+
SYSTEM_LIBSTDCPP_PATH: "/usr/lib/x86_64-linux-gnu/libstdc++.so.6"
18+
steps:
19+
- name: Download OpenTelemetry-Matlab source
20+
uses: actions/checkout@v3
21+
with:
22+
path: opentelemetry-matlab
23+
- name: Install ninja-build
24+
run: sudo apt-get install ninja-build
25+
- name: Install MATLAB
26+
uses: matlab-actions/setup-matlab@v2
27+
with:
28+
products: MATLAB_Compiler MATLAB_Compiler_SDK
29+
- name: Build OpenTelemetry-Matlab
30+
working-directory: opentelemetry-matlab
31+
run: |
32+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DWITH_OTLP_GRPC=ON -DUSE_BATCH_FOR_MCC=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
33+
cmake --build build --config Release --target install
34+
- name: Run tests
35+
env:
36+
# Add the installation directory to the MATLAB Search Path by
37+
# setting the MATLABPATH environment variable.
38+
MATLABPATH: ${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
39+
uses: matlab-actions/run-tests@v2
40+
with:
41+
select-by-folder: opentelemetry-matlab/test
42+
build-and-run-tests-windows:
43+
runs-on: windows-latest
44+
env:
45+
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install"
46+
steps:
47+
- name: Download OpenTelemetry-Matlab source
48+
uses: actions/checkout@v3
49+
with:
50+
path: opentelemetry-matlab
51+
- name: Install ninja-build
52+
run: choco install ninja
53+
- name: Install MATLAB
54+
uses: matlab-actions/setup-matlab@v2
55+
with:
56+
products: MATLAB_Compiler MATLAB_Compiler_SDK
57+
- name: Build OpenTelemetry-Matlab
58+
working-directory: opentelemetry-matlab
59+
shell: cmd
60+
run: |
61+
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
62+
cmake -S . -B build -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DWITH_OTLP_GRPC=ON -DUSE_BATCH_FOR_MCC=ON -DFETCH_VCPKG=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
63+
cmake --build build --config Release --target install
64+
- name: Run tests
65+
env:
66+
# Add the installation directory to the MATLAB Search Path by
67+
# setting the MATLABPATH environment variable.
68+
MATLABPATH: ${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
69+
uses: matlab-actions/run-tests@v2
70+
with:
71+
select-by-folder: opentelemetry-matlab/test
72+
build-and-run-tests-macos:
73+
runs-on: ${{ matrix.os }}
74+
strategy:
75+
matrix:
76+
os: [macos-13, macos-14] # runs on Mac with both Intel (macos-13) and Apple Silicon (macos-14) processors
77+
env:
78+
OPENTELEMETRY_MATLAB_INSTALL: "${{ github.workspace }}/otel_matlab_install"
79+
steps:
80+
- name: Download OpenTelemetry-Matlab source
81+
uses: actions/checkout@v3
82+
with:
83+
path: opentelemetry-matlab
84+
- name: Install ninja-build
85+
run: brew install ninja
86+
- name: Install MATLAB
87+
uses: matlab-actions/setup-matlab@v2
88+
with:
89+
products: MATLAB_Compiler MATLAB_Compiler_SDK
90+
- name: Build OpenTelemetry-Matlab
91+
working-directory: opentelemetry-matlab
92+
run: |
93+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DWITH_OTLP_GRPC=ON -DUSE_BATCH_FOR_MCC=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
94+
cmake --build build --config Release --target install
95+
- name: Run tests
96+
env:
97+
# Add the installation directory to the MATLAB Search Path by
98+
# setting the MATLABPATH environment variable.
99+
MATLABPATH: ${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
100+
uses: matlab-actions/run-tests@v2
101+
with:
102+
select-by-folder: opentelemetry-matlab/test

.github/workflows/build_and_test.yml renamed to .github/workflows/build_and_test_simple.yml

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
name: "Build and Run Tests"
1+
# Simplified build-and-test without gRPC exporter, run when pushed to any branches other than main or release branches
2+
name: "Build and Run Tests Simple"
23
on:
34
workflow_dispatch:
45
push:
6+
branches:
7+
- '**'
8+
- '!main'
9+
- '!v*.*'
510
env:
611
MLM_LICENSE_TOKEN: ${{ secrets.MLM_LICENSE_TOKEN }}
712
jobs:
@@ -56,7 +61,7 @@ jobs:
5661
shell: cmd
5762
run: |
5863
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
59-
cmake -S . -B build -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_BATCH_FOR_MCC=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
64+
cmake -S . -B build -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_BATCH_FOR_MCC=ON -DFETCH_VCPKG=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
6065
cmake --build build --config Release --target install
6166
- name: Run tests
6267
env:

.github/workflows/publish_mltbx.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
shell: cmd
5555
run: |
5656
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
57-
cmake -S . -B build -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DWITH_OTLP_GRPC=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
57+
cmake -S . -B build -G Ninja -DCMAKE_CXX_COMPILER="cl.exe" -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_BUILD_TYPE=Release -DWITH_OTLP_GRPC=ON -DFETCH_VCPKG=ON -DCMAKE_INSTALL_PREFIX=${{ env.OPENTELEMETRY_MATLAB_INSTALL }}
5858
cmake --build build --config Release --target install
5959
- name: Compress into single artifact
6060
working-directory: ${{ github.workspace }}

CMakeLists.txt

+13-8
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,16 @@ cmake_policy(SET CMP0074 NEW)
1010
include(FetchContent)
1111

1212
# check if VCPKG_ROOT is defined, which should point to an existing installation
13-
if(DEFINED ENV{VCPKG_ROOT})
13+
# FETCH_VCPKG is a switch that can be defined to ignore VCPKG_ROOT
14+
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED FETCH_VCPKG)
1415
# Autodetect vcpkg toolchain
1516
if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
1617
string(REPLACE "\\" "/" CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
1718
endif()
1819
else()
1920
# VCPKG_ROOT not defined, get it using FetchContent
2021

21-
if(DEFINED VCPKG_PREFIX})
22+
if(DEFINED VCPKG_PREFIX)
2223
# download location specified
2324
string(REPLACE "\\" "/" VCPKG_PREFIX "${VCPKG_PREFIX}")
2425
else()
@@ -225,8 +226,8 @@ set(OPENTELEMETRY_PROXY_LIBRARY_NAME "OtelMatlabProxy")
225226
find_package(Matlab REQUIRED)
226227
find_package(Protobuf REQUIRED)
227228
find_package(nlohmann_json REQUIRED)
228-
if(WIN32)
229-
find_package(zlib REQUIRED)
229+
if(WIN32 OR APPLE)
230+
find_package(ZLIB REQUIRED)
230231
endif()
231232

232233
if(WITH_OTLP_HTTP)
@@ -406,12 +407,16 @@ if(WIN32)
406407
$<TARGET_FILE_DIR:OpenSSL::SSL>/../bin/${OPENSSL_CRYPTO_DLL}
407408
$<TARGET_FILE:re2::re2>)
408409
endif()
409-
elseif(UNIX AND NOT CYGWIN)
410+
else()
411+
set(OTEL_CPP_RUNTIME ${OTEL_CPP_PREFIX}/lib/libopentelemetry_proto${CMAKE_SHARED_LIBRARY_SUFFIX})
410412
if(WITH_OTLP_GRPC)
411-
set(OTEL_CPP_RUNTIME ${OTEL_CPP_PREFIX}/lib/libopentelemetry_proto${CMAKE_SHARED_LIBRARY_SUFFIX}
413+
set(OTEL_CPP_RUNTIME ${OTEL_CPP_RUNTIME}
412414
${OTEL_CPP_PREFIX}/lib/libopentelemetry_proto_grpc${CMAKE_SHARED_LIBRARY_SUFFIX})
413-
else()
414-
set(OTEL_CPP_RUNTIME ${OTEL_CPP_PREFIX}/lib/libopentelemetry_proto${CMAKE_SHARED_LIBRARY_SUFFIX})
415+
endif()
416+
if(APPLE)
417+
set(OTEL_CPP_RUNTIME ${OTEL_CPP_RUNTIME} $<TARGET_FILE:ZLIB::ZLIB>
418+
$<TARGET_FILE_DIR:ZLIB::ZLIB>/libz.${ZLIB_MAJOR_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}
419+
$<TARGET_FILE_DIR:ZLIB::ZLIB>/libz.${ZLIB_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX})
415420
endif()
416421
set(OPENTELEMETRY_PROXY_RUNTIME_LIBRARIES ${OTEL_CPP_RUNTIME})
417422
endif()

0 commit comments

Comments
 (0)