Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
af81ddd
add cmake components to group targets
dbarker Dec 23, 2024
bd6685d
fix markdown lint errors
dbarker Dec 23, 2024
4cef852
fix default case to include all components in the package
dbarker Dec 23, 2024
80a3cb3
remove unused opentelemetry_ext dependency from the otlp grpc client
dbarker Dec 24, 2024
6d6c2c9
the ext target is used by the grpc client but can be private
dbarker Jan 8, 2025
d2d2608
Merge branch 'main' into feature_add_cmake_package_components
dbarker Jan 8, 2025
7ade45b
Merge branch 'main' into feature_add_cmake_package_components
dbarker Feb 10, 2025
74d5f74
adds the COMPONENT name to export sets, file sets, and installs. Brea…
dbarker Feb 17, 2025
96e2e96
add missing copyright and license statements. Set LD_LIBRARY path to …
dbarker Feb 17, 2025
d3d171c
update the cmake_install_test runner image to ubuntu 24.04 to pull in…
dbarker Feb 17, 2025
5dadf7a
fix gihub workflow yaml to use correct syntacx for accessing env vars
dbarker Feb 17, 2025
d3d0db7
set the install path in the run statement
dbarker Feb 17, 2025
56e6654
Merge branch 'main' into feature_add_cmake_package_components
dbarker Feb 17, 2025
ca4a507
move cmake install tests to a top level install dir. Clean up comment…
dbarker Feb 18, 2025
e239be7
set -E when calling the install scripts
dbarker Feb 18, 2025
8cefb13
Merge branch 'main' into feature_add_cmake_package_components
owent Feb 19, 2025
0392f48
Merge branch 'main' into feature_add_cmake_package_components
dbarker Feb 24, 2025
60a21af
make nlohmann_json a build time dependency only for otlp file and otl…
dbarker Mar 6, 2025
a6aaede
Merge remote-tracking branch 'origin/main' into feature_add_cmake_pac…
dbarker Mar 6, 2025
66088b1
format fix
dbarker Mar 6, 2025
50aee21
fix markdown table alignment. Add changelog entry
dbarker Mar 7, 2025
2a8f682
Merge remote-tracking branch 'origin/main' into feature_add_cmake_pac…
dbarker Mar 25, 2025
28be5f9
windows components install tests
dbarker Mar 24, 2025
b189f7e
record thirdparty dependency versions on install. Use module search m…
dbarker Mar 24, 2025
218e8f7
conan package install support. DockerFile that uses conan to install …
dbarker Mar 24, 2025
7299995
update install.md with the version
dbarker Mar 25, 2025
b028914
add curl link to zipkin test
dbarker Mar 25, 2025
d2a423e
fix opentracing and dll test in ci scripts. add opentracing to the co…
dbarker Mar 25, 2025
0591dba
add build config messages to the main cmake file
dbarker Mar 25, 2025
89c2acb
move cmake install test to a separate gitlab workflow
dbarker Mar 25, 2025
70c3232
fix shellcheck error
dbarker Mar 25, 2025
cefd815
Merge remote-tracking branch 'origin/main' into feature_add_cmake_pac…
dbarker Mar 31, 2025
2863321
upgrade 20.04 cmake install test runner to 22.04
dbarker Mar 31, 2025
594d158
Merge remote-tracking branch 'origin/main' into feature_add_cmake_pac…
dbarker Apr 2, 2025
560a374
pin cmake version in the cmake install test workflow
dbarker Apr 2, 2025
3c1f8e7
remove abseil as a public dependency. update install notes on how to …
dbarker Apr 2, 2025
98cc8cf
fix format issues
dbarker Apr 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .devcontainer/Dockerfile.conan
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Copyright The OpenTelemetry Authors
# SPDX-License-Identifier: Apache-2.0
FROM ubuntu:24.04

RUN apt update && apt install -y \
build-essential \
ca-certificates \
wget \
cmake \
git \
sudo \
nano \
pkg-config \
ninja-build \
clang-format \
clang-tidy \
autoconf \
automake \
libtool \
python3-pip

RUN pip install conan --break-system-packages

ARG USER_UID=1000
ARG USER_GID=1000
ARG USER_NAME=devuser
ENV USER_NAME=devuser
ENV USER_UID=${USER_UID}
ENV USER_GID=${USER_GID}
ENV INSTALL_PACKAGES=
ENV IS_CONTAINER_BUILD=true

COPY ./.devcontainer/customize_container.sh /tmp/opentelemetry_cpp/devcontainer/customize_container.sh
RUN /tmp/opentelemetry_cpp/devcontainer/customize_container.sh
USER devuser

RUN conan profile detect --force

ARG CONAN_FILE=conanfile_stable.txt
ARG CONAN_BUILD_TYPE=Debug
ARG CXX_STANDARD=17
WORKDIR /home/devuser/conan
COPY ./install/conan/ .

RUN conan install ./${CONAN_FILE} --build=missing -s build_type=${CONAN_BUILD_TYPE}
ENV CMAKE_TOOLCHAIN_FILE=/home/devuser/conan/build/${CONAN_BUILD_TYPE}/generators/conan_toolchain.cmake
ENV CXX_STANDARD=${CXX_STANDARD}
ENV BUILD_TYPE=${CONAN_BUILD_TYPE}
ENV CONAN_FILE=${CONAN_FILE}

WORKDIR /workspaces/opentelemetry-cpp

ENTRYPOINT []

CMD ["/bin/bash"]
38 changes: 0 additions & 38 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -302,24 +302,6 @@ jobs:
run: |
./ci/do_ci.sh cmake.with_async_export.test

# cmake_abseil_stl_test:
# name: CMake test (with abseil)
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: 'recursive'
# - name: setup
# run: |

# sudo -E ./ci/setup_ci_environment.sh
# sudo -E ./ci/setup_cmake.sh
# sudo -E ./ci/setup_googletest.sh
# - name: run cmake tests (enable abseil-cpp)
# run: |
# sudo ./ci/install_abseil.sh
# ./ci/do_ci.sh cmake.abseil.test

cmake_opentracing_shim_test:
name: CMake test (with opentracing-shim)
runs-on: ubuntu-latest
Expand Down Expand Up @@ -558,26 +540,6 @@ jobs:
sudo ./ci/setup_grpc.sh -T
./ci/do_ci.sh cmake.exporter.otprotocol.shared_libs.with_static_grpc.test

# cmake_install_test:
# name: CMake install test (with abseil)
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: 'recursive'
# - name: setup
# run: |
# sudo -E ./ci/setup_ci_environment.sh
# sudo -E ./ci/setup_cmake.sh
# sudo -E ./ci/setup_googletest.sh
# - name: run cmake install (with abseil)
# run: |
# sudo ./ci/install_abseil.sh
# ./ci/do_ci.sh cmake.install.test
# - name: verify packages
# run: |
# ./ci/verify_packages.sh

plugin_test:
name: Plugin -> CMake
runs-on: ubuntu-latest
Expand Down
287 changes: 287 additions & 0 deletions .github/workflows/cmake_install.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,287 @@
name: CMake Install Tests

on:
workflow_dispatch:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
windows_2022_vcpkg:
name: Windows 2022 vcpkg cxx17 (static libs - dll)
runs-on: windows-2022
env:
CXX_STANDARD: '17'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Build dependencies with vcpkg submodule
run: |
./ci/setup_cmake.ps1
./ci/setup_windows_ci_environment.ps1
- name: Run Tests
run: ./ci/do_ci.ps1 cmake.install.test
- name: Run DLL Tests
run: ./ci/do_ci.ps1 cmake.dll.install.test

windows_2019_vcpkg:
name: Windows 2019 vcpkg cxx14 (static libs)
runs-on: windows-2019
env:
CXX_STANDARD: '14'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Build dependencies with vcpkg submodule
run: |
./ci/setup_cmake.ps1
./ci/setup_windows_ci_environment.ps1
- name: Run Tests
run: ./ci/do_ci.ps1 cmake.install.test

ubuntu_2404_system_packages:
name: Ubuntu 24.04 apt packages cxx17 (static libs - shared libs)
runs-on: ubuntu-24.04
env:
INSTALL_TEST_DIR: '/home/runner/install_test'
CXX_STANDARD: '17'
BUILD_TYPE: 'Debug'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install libcurl, zlib, nlohmann-json with apt
run: |
sudo -E ./ci/setup_ci_environment.sh
sudo -E ./ci/setup_cmake.sh
sudo -E ./ci/setup_googletest.sh
- name: Install abseil, protobuf, and grpc with apt
run: |
sudo -E apt-get update
sudo -E apt-get install -y libabsl-dev libprotobuf-dev libgrpc++-dev protobuf-compiler protobuf-compiler-grpc
- name: Run Tests (static libs)
env:
BUILD_SHARED_LIBS: 'OFF'
run: ./ci/do_ci.sh cmake.install.test
- name: Run Tests (shared libs)
env:
BUILD_SHARED_LIBS: 'ON'
run: ./ci/do_ci.sh cmake.install.test

ubuntu_2404_script_build_grpc_1_71_0:
name: Ubuntu 24.04 script grpc 1.71.0 cxx17 (static libs)
runs-on: ubuntu-24.04
env:
INSTALL_TEST_DIR: '/home/runner/install_test'
CXX_STANDARD: '20'
BUILD_TYPE: 'Debug'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install gtest, libcurl, zlib, nlohmann-json with apt
run: |
sudo -E ./ci/setup_ci_environment.sh
sudo -E ./ci/setup_cmake.sh
sudo -E ./ci/setup_googletest.sh
- name: Build abseil, protobuf, and grpc with ci scripts
env:
ABSEIL_CPP_VERSION: '20240722.1'
PROTOBUF_VERSION: '29.0'
GRPC_VERSION: 'v1.71.0'
run: |
sudo -E ./ci/install_abseil.sh
sudo -E ./ci/install_protobuf.sh
sudo -E ./ci/setup_grpc.sh -r $GRPC_VERSION -s $CXX_STANDARD -p protobuf -p abseil-cpp
- name: Run Tests (static libs)
env:
BUILD_SHARED_LIBS: 'OFF'
run: ./ci/do_ci.sh cmake.install.test

ubuntu_2204_script_build_grpc_1_55_0:
name: Ubuntu 22.04 script grpc 1.55.0 cxx17 (static libs - shared libs)
runs-on: ubuntu-22.04
env:
INSTALL_TEST_DIR: '/home/runner/install_test'
CXX_STANDARD: '17'
BUILD_TYPE: 'Debug'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install gtest, libcurl, zlib, nlohmann-json with apt
run: |
sudo -E ./ci/setup_ci_environment.sh
sudo -E ./ci/setup_cmake.sh
sudo -E ./ci/setup_googletest.sh
- name: Build abseil, protobuf, and grpc with ci scripts
env:
ABSEIL_CPP_VERSION: '20230125.3'
PROTOBUF_VERSION: '23.3'
GRPC_VERSION: 'v1.55.0'
run: |
sudo -E ./ci/install_abseil.sh
sudo -E ./ci/install_protobuf.sh
sudo -E ./ci/setup_grpc.sh -r $GRPC_VERSION -s $CXX_STANDARD -p protobuf -p abseil-cpp
- name: Run Tests (static libs)
env:
BUILD_SHARED_LIBS: 'OFF'
run: ./ci/do_ci.sh cmake.install.test
- name: Run Tests (shared libs)
env:
BUILD_SHARED_LIBS: 'ON'
run: ./ci/do_ci.sh cmake.install.test

ubuntu_2204_script_build_grpc_1_49_2:
name: Ubuntu 22.04 script grpc 1.49.2 cxx14 (static libs - shared libs)
runs-on: ubuntu-22.04
env:
INSTALL_TEST_DIR: '/home/runner/install_test'
CXX_STANDARD: '14'
BUILD_TYPE: 'Debug'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install gtest, libcurl, zlib, nlohmann-json with apt
run: |
sudo -E ./ci/setup_ci_environment.sh
sudo -E ./ci/setup_cmake.sh
sudo -E ./ci/setup_googletest.sh
- name: Build abseil, protobuf, and grpc with ci scripts
env:
ABSEIL_CPP_VERSION: '20220623.2'
PROTOBUF_VERSION: '21.12'
GRPC_VERSION: 'v1.49.2'
run: |
sudo -E ./ci/install_abseil.sh
sudo -E ./ci/install_protobuf.sh
sudo -E ./ci/setup_grpc.sh -r $GRPC_VERSION -s $CXX_STANDARD -p protobuf -p abseil-cpp
- name: Run Tests (static libs)
env:
BUILD_SHARED_LIBS: 'OFF'
run: ./ci/do_ci.sh cmake.install.test
- name: Run Tests (shared libs)
env:
BUILD_SHARED_LIBS: 'ON'
run: ./ci/do_ci.sh cmake.install.test

ubuntu_2404_conan_stable:
name: Ubuntu 24.04 conan stable cxx17 (static libs - shared libs - opentracing shim)
runs-on: ubuntu-24.04
env:
INSTALL_TEST_DIR: '/home/runner/install_test'
CXX_STANDARD: '17'
CMAKE_TOOLCHAIN_FILE: /home/runner/conan/build/Debug/generators/conan_toolchain.cmake
BUILD_TYPE: 'Debug'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install Conan
run: |
python3 -m pip install --upgrade pip
pip install "conan>=2.0,<3"
conan profile detect --force
- name: Install or build all dependencies with Conan
run: |
sudo -E ./ci/setup_cmake.sh
conan install install/conan/conanfile_stable.txt --build=missing -of /home/runner/conan -s build_type=Debug
- name: Run Tests (static libs)
env:
BUILD_SHARED_LIBS: 'OFF'
run: ./ci/do_ci.sh cmake.install.test
- name: Run Tests (shared libs)
env:
BUILD_SHARED_LIBS: 'ON'
run: ./ci/do_ci.sh cmake.install.test
- name: verify pkgconfig packages
run: |
export PKG_CONFIG_PATH=$INSTALL_TEST_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
./ci/verify_packages.sh
- name: Run OpenTracing Shim Test
run: ./ci/do_ci.sh cmake.opentracing_shim.install.test

ubuntu_2404_conan_latest:
name: Ubuntu 24.04 conan latest cxx17 (static libs)
runs-on: ubuntu-24.04
env:
INSTALL_TEST_DIR: '/home/runner/install_test'
CXX_STANDARD: '17'
CMAKE_TOOLCHAIN_FILE: /home/runner/conan/build/Debug/generators/conan_toolchain.cmake
BUILD_TYPE: 'Debug'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install Conan
run: |
python3 -m pip install --upgrade pip
pip install "conan>=2.0,<3"
conan profile detect --force
- name: Install or build all dependencies with Conan
run: |
sudo -E ./ci/setup_cmake.sh
conan install install/conan/conanfile_latest.txt --build=missing -of /home/runner/conan -s build_type=Debug
- name: Run Tests (static libs)
env:
BUILD_SHARED_LIBS: 'OFF'
run: ./ci/do_ci.sh cmake.install.test
- name: verify pkgconfig packages
run: |
export PKG_CONFIG_PATH=$INSTALL_TEST_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
./ci/verify_packages.sh

macos_14_conan_stable:
name: macOS 14 conan stable cxx17 (static libs)
runs-on: macos-14
env:
INSTALL_TEST_DIR: '/Users/runner/install_test'
CXX_STANDARD: '17'
CMAKE_TOOLCHAIN_FILE: '/Users/runner/conan/build/Debug/generators/conan_toolchain.cmake'
BUILD_TYPE: 'Debug'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install Conan and tools
run: |
brew install conan autoconf automake libtool coreutils
sudo -E ./ci/setup_cmake_macos.sh
conan profile detect --force
- name: Install or build all dependencies with Conan
run: conan install install/conan/conanfile_stable.txt --build=missing -of /Users/runner/conan -s build_type=Debug
- name: Run Tests (static libs)
env:
BUILD_SHARED_LIBS: 'OFF'
run: ./ci/do_ci.sh cmake.install.test

macos_14_brew_packages:
name: macOS 14 brew packages cxx17 (static libs)
runs-on: macos-14
env:
CXX_STANDARD: '17'
BUILD_TYPE: 'Debug'
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install Dependencies with Homebrew
run: |
sudo -E ./ci/setup_cmake_macos.sh
brew install coreutils
brew install googletest
brew install google-benchmark
brew install zlib
brew install abseil
brew install protobuf
brew install grpc
brew install nlohmann-json
brew install prometheus-cpp
- name: Run Tests (static libs)
env:
BUILD_SHARED_LIBS: 'OFF'
run: ./ci/do_ci.sh cmake.install.test
Loading
Loading