From 043a717ce21c5ea0256ba322b8ff28bd428c8321 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 16:23:58 +0200 Subject: [PATCH 01/30] Enhance CMake configuration for Debug builds and improve error logging messages --- CMakeLists.txt | 7 +++++++ conanfile.py | 5 ++++- src/cosim/observer/file_observer.cpp | 4 ++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c0661a46..6d86fa78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,6 +92,13 @@ set(LIBCOSIM_INSTALL_DESTINATIONS INCLUDES DESTINATION "${LIBCOSIM_HEADER_INSTALL_DIR}") set(LIBCOSIM_EXPORT_TARGET "${PROJECT_NAME}-targets") +# Map non-Release configs to Release for Conan-imported targets. +# This allows building our code in Debug while linking Release dependencies. +set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG Release "") +set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release "") +set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") +set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") + # ============================================================================== # Dependencies # ============================================================================== diff --git a/conanfile.py b/conanfile.py index 19af82eb..115d6bda 100755 --- a/conanfile.py +++ b/conanfile.py @@ -91,7 +91,10 @@ def generate(self): tc.cache_variables["LIBCOSIM_NO_FMI_LOGGING"] = self.options.no_fmi_logging tc.cache_variables["LIBCOSIM_WITH_PROXYFMU"] = self.options.proxyfmu tc.generate() - CMakeDeps(self).generate() + + deps = CMakeDeps(self) + deps.configuration = "Release" + deps.generate() def build(self): cmake = CMake(self) diff --git a/src/cosim/observer/file_observer.cpp b/src/cosim/observer/file_observer.cpp index 73d912df..14a2224e 100644 --- a/src/cosim/observer/file_observer.cpp +++ b/src/cosim/observer/file_observer.cpp @@ -217,7 +217,7 @@ class file_observer::slave_value_writer if (fsw_.fail()) { std::stringstream error; - error << "Failed to open log file stream: " << filePath.c_str(); + error << "Failed to open log file stream: " << filePath.string(); throw std::runtime_error(error.str()); } @@ -279,7 +279,7 @@ class file_observer::slave_value_writer if (fsw_.fail()) { std::stringstream error; - error << "Failed to open log metadata file stream: " << filePath.c_str(); + error << "Failed to open log metadata file stream: " << filePath.string(); throw std::runtime_error(error.str()); } From c67acb67877d4ddf66223f112248943d37122fe4 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 16:39:18 +0200 Subject: [PATCH 02/30] Updated --- conanfile.py | 1 - 1 file changed, 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 115d6bda..7b795cfb 100755 --- a/conanfile.py +++ b/conanfile.py @@ -93,7 +93,6 @@ def generate(self): tc.generate() deps = CMakeDeps(self) - deps.configuration = "Release" deps.generate() def build(self): From d2b0217ab45eab095aa7d7ae58773d20dccd3c07 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 17:01:28 +0200 Subject: [PATCH 03/30] Updated --- CMakeLists.txt | 8 ++++---- conanfile.py | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d86fa78..91c5e16b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,10 +94,10 @@ set(LIBCOSIM_EXPORT_TARGET "${PROJECT_NAME}-targets") # Map non-Release configs to Release for Conan-imported targets. # This allows building our code in Debug while linking Release dependencies. -set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG Release "") -set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release "") -set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") -set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") +#set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG Release "") +#set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release "") +#set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") +#set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") # ============================================================================== # Dependencies diff --git a/conanfile.py b/conanfile.py index 7b795cfb..f80089a8 100755 --- a/conanfile.py +++ b/conanfile.py @@ -93,6 +93,7 @@ def generate(self): tc.generate() deps = CMakeDeps(self) + # deps.configuration = "Release" deps.generate() def build(self): From 624c18a77f9f248ecb9659e6403ce5bae4fe9c8e Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 17:11:50 +0200 Subject: [PATCH 04/30] Updated --- conanfile.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/conanfile.py b/conanfile.py index f80089a8..19af82eb 100755 --- a/conanfile.py +++ b/conanfile.py @@ -91,10 +91,7 @@ def generate(self): tc.cache_variables["LIBCOSIM_NO_FMI_LOGGING"] = self.options.no_fmi_logging tc.cache_variables["LIBCOSIM_WITH_PROXYFMU"] = self.options.proxyfmu tc.generate() - - deps = CMakeDeps(self) - # deps.configuration = "Release" - deps.generate() + CMakeDeps(self).generate() def build(self): cmake = CMake(self) From 9ad97aacc03bdc92331d515fd09cf6e1daa25b45 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 17:18:21 +0200 Subject: [PATCH 05/30] Refactor CMake configuration to ensure Release dependencies are used for all build types --- CMakeLists.txt | 8 ++++---- conanfile.py | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 91c5e16b..6d86fa78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,10 +94,10 @@ set(LIBCOSIM_EXPORT_TARGET "${PROJECT_NAME}-targets") # Map non-Release configs to Release for Conan-imported targets. # This allows building our code in Debug while linking Release dependencies. -#set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG Release "") -#set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release "") -#set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") -#set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") +set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG Release "") +set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release "") +set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") +set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") # ============================================================================== # Dependencies diff --git a/conanfile.py b/conanfile.py index 19af82eb..115d6bda 100755 --- a/conanfile.py +++ b/conanfile.py @@ -91,7 +91,10 @@ def generate(self): tc.cache_variables["LIBCOSIM_NO_FMI_LOGGING"] = self.options.no_fmi_logging tc.cache_variables["LIBCOSIM_WITH_PROXYFMU"] = self.options.proxyfmu tc.generate() - CMakeDeps(self).generate() + + deps = CMakeDeps(self) + deps.configuration = "Release" + deps.generate() def build(self): cmake = CMake(self) From c80c83b73817a6d1acfe57e8a7985ef241a4241d Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 17:53:30 +0200 Subject: [PATCH 06/30] Set CMakeDeps configuration to "Release" for Windows builds --- conanfile.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 115d6bda..24bd9b64 100755 --- a/conanfile.py +++ b/conanfile.py @@ -93,7 +93,8 @@ def generate(self): tc.generate() deps = CMakeDeps(self) - deps.configuration = "Release" + if self.settings.os == "Windows": + deps.configuration = "Release" deps.generate() def build(self): From e77ea1971c8ffdae0cd1da6dbc6934afdf416436 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 18:01:13 +0200 Subject: [PATCH 07/30] Updated --- conanfile.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 24bd9b64..115d6bda 100755 --- a/conanfile.py +++ b/conanfile.py @@ -93,8 +93,7 @@ def generate(self): tc.generate() deps = CMakeDeps(self) - if self.settings.os == "Windows": - deps.configuration = "Release" + deps.configuration = "Release" deps.generate() def build(self): From 6b7c6d3a57a6ff18c9f24c8f4c18949ff5b7dafe Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 18:05:16 +0200 Subject: [PATCH 08/30] Updated --- .github/workflows/ci-cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cmake.yml b/.github/workflows/ci-cmake.yml index 74695829..27968fa1 100644 --- a/.github/workflows/ci-cmake.yml +++ b/.github/workflows/ci-cmake.yml @@ -21,8 +21,8 @@ jobs: mkdir /tmp/osp-builder-docker cat </tmp/osp-builder-docker/Dockerfile FROM debian:bookworm + RUN pip3 install cmake RUN apt-get update && apt-get install -y --no-install-recommends \ - cmake \ build-essential \ doxygen \ wget \ From 5e2ae9ad3a0c0b17241ee77be702ca98e072c994 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 18:06:17 +0200 Subject: [PATCH 09/30] Updated --- .github/workflows/ci-conan.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci-conan.yml b/.github/workflows/ci-conan.yml index 6acd096a..791b6968 100644 --- a/.github/workflows/ci-conan.yml +++ b/.github/workflows/ci-conan.yml @@ -39,6 +39,7 @@ jobs: run: | REFNAME="${GITHUB_REF#refs/*/}" VERSION="v$( Date: Fri, 15 May 2026 18:10:39 +0200 Subject: [PATCH 10/30] Updated --- .github/workflows/ci-cmake.yml | 4 ++-- .github/workflows/ci-conan.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-cmake.yml b/.github/workflows/ci-cmake.yml index 27968fa1..909b8bb4 100644 --- a/.github/workflows/ci-cmake.yml +++ b/.github/workflows/ci-cmake.yml @@ -21,7 +21,6 @@ jobs: mkdir /tmp/osp-builder-docker cat </tmp/osp-builder-docker/Dockerfile FROM debian:bookworm - RUN pip3 install cmake RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ doxygen \ @@ -30,7 +29,8 @@ jobs: libmsgsl-dev \ libyaml-cpp-dev \ libxerces-c-dev \ - libzip-dev zipcmp zipmerge ziptool + libzip-dev zipcmp zipmerge ziptool python3 pipx + RUN pipx install cmake RUN wget \ --no-check-certificate \ "https://github.com/viproma/debian-fmilib/releases/download/debian%2F2.0.3-1/libfmilib2_2.0.3-1_amd64.deb" \ diff --git a/.github/workflows/ci-conan.yml b/.github/workflows/ci-conan.yml index 791b6968..a39fbb8d 100644 --- a/.github/workflows/ci-conan.yml +++ b/.github/workflows/ci-conan.yml @@ -28,7 +28,7 @@ jobs: run: | apt-get update apt-get install -y pipx cmake doxygen - pipx install conan + pipx install conan cmake echo "$HOME/.local/bin" >> "$GITHUB_PATH" - name: Configure Conan run: | From c976200b83feb6417783efec387234b7fc4d212c Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 18:22:00 +0200 Subject: [PATCH 11/30] Update CMake configuration and dependencies for improved compatibility --- .github/workflows/ci-cmake.yml | 1 + .github/workflows/ci-conan.yml | 2 -- CMakeLists.txt | 1 - conanfile.py | 6 ++---- 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-cmake.yml b/.github/workflows/ci-cmake.yml index 909b8bb4..029674c6 100644 --- a/.github/workflows/ci-cmake.yml +++ b/.github/workflows/ci-cmake.yml @@ -30,6 +30,7 @@ jobs: libyaml-cpp-dev \ libxerces-c-dev \ libzip-dev zipcmp zipmerge ziptool python3 pipx + ENV PATH="/root/.local/bin:$PATH" RUN pipx install cmake RUN wget \ --no-check-certificate \ diff --git a/.github/workflows/ci-conan.yml b/.github/workflows/ci-conan.yml index a39fbb8d..98d900ef 100644 --- a/.github/workflows/ci-conan.yml +++ b/.github/workflows/ci-conan.yml @@ -39,7 +39,6 @@ jobs: run: | REFNAME="${GITHUB_REF#refs/*/}" VERSION="v$(=3.19]") + self.tool_requires("cmake/[>=4.0]") self.requires("fmilibrary/[~2.3]") self.requires("libcbor/0.11.0") self.requires("libzip/[~1.11]") @@ -92,9 +92,7 @@ def generate(self): tc.cache_variables["LIBCOSIM_WITH_PROXYFMU"] = self.options.proxyfmu tc.generate() - deps = CMakeDeps(self) - deps.configuration = "Release" - deps.generate() + CMakeDeps(self).generate() def build(self): cmake = CMake(self) From b26bd3fb6040560f5ef0a656256d259ef0d844f0 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 18:28:18 +0200 Subject: [PATCH 12/30] Enhance CMake configuration in CI and conanfile for improved dependency management --- .github/workflows/ci-cmake.yml | 11 ++++++----- conanfile.py | 4 +++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-cmake.yml b/.github/workflows/ci-cmake.yml index 029674c6..2cdf3317 100644 --- a/.github/workflows/ci-cmake.yml +++ b/.github/workflows/ci-cmake.yml @@ -21,7 +21,10 @@ jobs: mkdir /tmp/osp-builder-docker cat </tmp/osp-builder-docker/Dockerfile FROM debian:bookworm - RUN apt-get update && apt-get install -y --no-install-recommends \ + ENV PATH="/root/.local/bin:$PATH" + RUN apt-get update && apt-get install -y python3 pipx + RUN pipx install cmake + RUN apt-get install -y --no-install-recommends \ build-essential \ doxygen \ wget \ @@ -29,9 +32,7 @@ jobs: libmsgsl-dev \ libyaml-cpp-dev \ libxerces-c-dev \ - libzip-dev zipcmp zipmerge ziptool python3 pipx - ENV PATH="/root/.local/bin:$PATH" - RUN pipx install cmake + libzip-dev zipcmp zipmerge ziptool RUN wget \ --no-check-certificate \ "https://github.com/viproma/debian-fmilib/releases/download/debian%2F2.0.3-1/libfmilib2_2.0.3-1_amd64.deb" \ @@ -39,7 +40,7 @@ jobs: RUN dpkg -i libfmilib2_2.0.3-1_amd64.deb libfmilib2-dev_2.0.3-1_amd64.deb RUN wget --no-check-certificate https://github.com/PJK/libcbor/archive/refs/tags/v0.11.0.tar.gz && \ tar xaf v0.11.0.tar.gz && cd libcbor-0.11.0 && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON . && make && make install + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_POLICY_VERSION_MINIMUM=3.5 . && make && make install COPY entrypoint.sh / ENTRYPOINT /entrypoint.sh EOF diff --git a/conanfile.py b/conanfile.py index 733cfcdf..b2538863 100755 --- a/conanfile.py +++ b/conanfile.py @@ -92,7 +92,9 @@ def generate(self): tc.cache_variables["LIBCOSIM_WITH_PROXYFMU"] = self.options.proxyfmu tc.generate() - CMakeDeps(self).generate() + deps = CMakeDeps(self) + deps.configuration = "Release" + deps.generate() def build(self): cmake = CMake(self) From 7727f1d35090532fadddf85b298cdc290293e215 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 18:56:30 +0200 Subject: [PATCH 13/30] Updated --- .github/workflows/ci-conan.yml | 4 ++-- conanfile.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-conan.yml b/.github/workflows/ci-conan.yml index 98d900ef..4f0751f2 100644 --- a/.github/workflows/ci-conan.yml +++ b/.github/workflows/ci-conan.yml @@ -50,7 +50,7 @@ jobs: --options="&:${{ matrix.option_proxyfmu }}" \ --options="*:${{ matrix.option_shared }}" \ --update \ - --build=missing \ + --build=missing --build=proxyfmu\ --build=b2/* \ --user=osp \ --channel="${CHANNEL}" \ @@ -101,7 +101,7 @@ jobs: --options="&:${{ matrix.option_proxyfmu }}" \ --options="*:${{ matrix.option_shared }}" \ --update \ - --build=missing \ + --build=missing --build=proxyfmu/*\ --user=osp \ --channel="${CHANNEL}" \ . diff --git a/conanfile.py b/conanfile.py index b2538863..7b31649d 100755 --- a/conanfile.py +++ b/conanfile.py @@ -50,7 +50,7 @@ def requirements(self): self.requires("proxyfmu/0.4.1@osp/stable", transitive_headers=True, transitive_libs=True) - self.requires("yaml-cpp/[~0.8]") + self.requires("yaml-cpp/[~0.9]") self.requires("xerces-c/[~3.2]") # Exports From c47d4b80689d8a0c453fadd8aae8b2e54c17a6ef Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 19:05:58 +0200 Subject: [PATCH 14/30] Updated --- .github/workflows/ci-cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cmake.yml b/.github/workflows/ci-cmake.yml index 2cdf3317..4b4744a0 100644 --- a/.github/workflows/ci-cmake.yml +++ b/.github/workflows/ci-cmake.yml @@ -40,7 +40,7 @@ jobs: RUN dpkg -i libfmilib2_2.0.3-1_amd64.deb libfmilib2-dev_2.0.3-1_amd64.deb RUN wget --no-check-certificate https://github.com/PJK/libcbor/archive/refs/tags/v0.11.0.tar.gz && \ tar xaf v0.11.0.tar.gz && cd libcbor-0.11.0 && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_POLICY_VERSION_MINIMUM=3.5 . && make && make install + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON . && make && make install COPY entrypoint.sh / ENTRYPOINT /entrypoint.sh EOF From e6930c10a9289a211f57b2c6158d7ea9e89a7598 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 19:15:35 +0200 Subject: [PATCH 15/30] Updated --- .github/workflows/ci-cmake.yml | 4 ++-- .github/workflows/ci-conan.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-cmake.yml b/.github/workflows/ci-cmake.yml index 4b4744a0..3cc71dc8 100644 --- a/.github/workflows/ci-cmake.yml +++ b/.github/workflows/ci-cmake.yml @@ -40,7 +40,7 @@ jobs: RUN dpkg -i libfmilib2_2.0.3-1_amd64.deb libfmilib2-dev_2.0.3-1_amd64.deb RUN wget --no-check-certificate https://github.com/PJK/libcbor/archive/refs/tags/v0.11.0.tar.gz && \ tar xaf v0.11.0.tar.gz && cd libcbor-0.11.0 && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON . && make && make install + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_POLICY_VERSION_MINIMUM=3.5 . && make && make install COPY entrypoint.sh / ENTRYPOINT /entrypoint.sh EOF @@ -50,7 +50,7 @@ jobs: #!/bin/bash mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_${{ matrix.shared_libs }} /mnt/source + cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_${{ matrix.shared_libs }} -DCMAKE_POLICY_VERSION_MINIMUM=3.5 /mnt/source cmake --build . ctest --output-on-failure EOF diff --git a/.github/workflows/ci-conan.yml b/.github/workflows/ci-conan.yml index 4f0751f2..98d900ef 100644 --- a/.github/workflows/ci-conan.yml +++ b/.github/workflows/ci-conan.yml @@ -50,7 +50,7 @@ jobs: --options="&:${{ matrix.option_proxyfmu }}" \ --options="*:${{ matrix.option_shared }}" \ --update \ - --build=missing --build=proxyfmu\ + --build=missing \ --build=b2/* \ --user=osp \ --channel="${CHANNEL}" \ @@ -101,7 +101,7 @@ jobs: --options="&:${{ matrix.option_proxyfmu }}" \ --options="*:${{ matrix.option_shared }}" \ --update \ - --build=missing --build=proxyfmu/*\ + --build=missing \ --user=osp \ --channel="${CHANNEL}" \ . From cfbec0c021f440c7a34e0e0b34ae0e4af8d0612b Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 19:24:55 +0200 Subject: [PATCH 16/30] Updated --- .github/workflows/ci-cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-cmake.yml b/.github/workflows/ci-cmake.yml index 3cc71dc8..0e8b734b 100644 --- a/.github/workflows/ci-cmake.yml +++ b/.github/workflows/ci-cmake.yml @@ -20,7 +20,7 @@ jobs: run: | mkdir /tmp/osp-builder-docker cat </tmp/osp-builder-docker/Dockerfile - FROM debian:bookworm + FROM ubuntu:24.04 ENV PATH="/root/.local/bin:$PATH" RUN apt-get update && apt-get install -y python3 pipx RUN pipx install cmake From bd79bab56df378301abb23933cd4104393def1d4 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 19:28:21 +0200 Subject: [PATCH 17/30] Updated --- .github/workflows/ci-cmake.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-cmake.yml b/.github/workflows/ci-cmake.yml index 0e8b734b..fd0c07fe 100644 --- a/.github/workflows/ci-cmake.yml +++ b/.github/workflows/ci-cmake.yml @@ -20,11 +20,9 @@ jobs: run: | mkdir /tmp/osp-builder-docker cat </tmp/osp-builder-docker/Dockerfile - FROM ubuntu:24.04 - ENV PATH="/root/.local/bin:$PATH" - RUN apt-get update && apt-get install -y python3 pipx - RUN pipx install cmake - RUN apt-get install -y --no-install-recommends \ + FROM debian:bookworm + RUN apt-get update && apt-get install -y --no-install-recommends \ + cmake \ build-essential \ doxygen \ wget \ @@ -40,7 +38,7 @@ jobs: RUN dpkg -i libfmilib2_2.0.3-1_amd64.deb libfmilib2-dev_2.0.3-1_amd64.deb RUN wget --no-check-certificate https://github.com/PJK/libcbor/archive/refs/tags/v0.11.0.tar.gz && \ tar xaf v0.11.0.tar.gz && cd libcbor-0.11.0 && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_POLICY_VERSION_MINIMUM=3.5 . && make && make install + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON . && make && make install COPY entrypoint.sh / ENTRYPOINT /entrypoint.sh EOF From 875c56bd65e3fb7027a19120b689ec6f17cb3c2c Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 19:36:37 +0200 Subject: [PATCH 18/30] Updated --- .github/workflows/ci-cmake.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci-cmake.yml b/.github/workflows/ci-cmake.yml index fd0c07fe..b1fde515 100644 --- a/.github/workflows/ci-cmake.yml +++ b/.github/workflows/ci-cmake.yml @@ -48,6 +48,7 @@ jobs: #!/bin/bash mkdir build cd build + cmake --version cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_${{ matrix.shared_libs }} -DCMAKE_POLICY_VERSION_MINIMUM=3.5 /mnt/source cmake --build . ctest --output-on-failure From fb11c946286ea4d5384180df3df30db02e4c09f2 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 19:42:36 +0200 Subject: [PATCH 19/30] Updated --- .github/workflows/ci-cmake.yml | 3 +-- conanfile.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-cmake.yml b/.github/workflows/ci-cmake.yml index b1fde515..74695829 100644 --- a/.github/workflows/ci-cmake.yml +++ b/.github/workflows/ci-cmake.yml @@ -48,8 +48,7 @@ jobs: #!/bin/bash mkdir build cd build - cmake --version - cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_${{ matrix.shared_libs }} -DCMAKE_POLICY_VERSION_MINIMUM=3.5 /mnt/source + cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DBUILD_${{ matrix.shared_libs }} /mnt/source cmake --build . ctest --output-on-failure EOF diff --git a/conanfile.py b/conanfile.py index 7b31649d..582c042e 100755 --- a/conanfile.py +++ b/conanfile.py @@ -47,7 +47,7 @@ def requirements(self): self.requires("ms-gsl/[>=3 <5]", transitive_headers=True) self.requires("boost/[~1.85]", transitive_headers=True, transitive_libs=True) # Required by Thrift if self.options.proxyfmu: - self.requires("proxyfmu/0.4.1@osp/stable", + self.requires("proxyfmu/0.4.1@osp/testing-cmake-v4", transitive_headers=True, transitive_libs=True) self.requires("yaml-cpp/[~0.9]") From 8e03e997d255a7f69206344e3a30396ca3c3b8aa Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 19:49:30 +0200 Subject: [PATCH 20/30] Updated --- CMakeLists.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 272fa391..a5bffd96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,11 +92,12 @@ set(LIBCOSIM_INSTALL_DESTINATIONS INCLUDES DESTINATION "${LIBCOSIM_HEADER_INSTALL_DIR}") set(LIBCOSIM_EXPORT_TARGET "${PROJECT_NAME}-targets") -# Map non-Release configs to Release for Conan-imported targets. -# This allows building our code in Debug while linking Release dependencies. -set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG Release "") -set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release "") -set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") +# Map non-Release configs to Release for imported targets. +# "NOCONFIG" is needed for system-installed packages (e.g. from apt) whose +# CMake config files use IMPORTED_LOCATION_NOCONFIG rather than a named config. +set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG Release NOCONFIG "") +set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release NOCONFIG "") +set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release NOCONFIG "") # ============================================================================== # Dependencies From 89b0c95a42fc18b1f0554e79ec5673e70271d9c0 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 20:19:04 +0200 Subject: [PATCH 21/30] Updated --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a5bffd96..f6283021 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,9 +95,9 @@ set(LIBCOSIM_EXPORT_TARGET "${PROJECT_NAME}-targets") # Map non-Release configs to Release for imported targets. # "NOCONFIG" is needed for system-installed packages (e.g. from apt) whose # CMake config files use IMPORTED_LOCATION_NOCONFIG rather than a named config. -set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG Release NOCONFIG "") -set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release NOCONFIG "") -set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release NOCONFIG "") +#set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG Release "") +#set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release "") +#set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") # ============================================================================== # Dependencies From eba43844b14970a07b5e74d3b7d71a90cab6bcd6 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 20:22:53 +0200 Subject: [PATCH 22/30] Updated --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 582c042e..2cc2566e 100755 --- a/conanfile.py +++ b/conanfile.py @@ -93,7 +93,7 @@ def generate(self): tc.generate() deps = CMakeDeps(self) - deps.configuration = "Release" + # deps.configuration = "Release" deps.generate() def build(self): From 071dcd979005b3a30e0411e8c4af1e63537143a2 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 20:28:26 +0200 Subject: [PATCH 23/30] Updated --- conanfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 2cc2566e..9fbcf884 100755 --- a/conanfile.py +++ b/conanfile.py @@ -2,7 +2,7 @@ from conan import ConanFile from conan.errors import ConanInvalidConfiguration -from conan.tools.cmake import CMakeToolchain, CMake, CMakeDeps, cmake_layout +from conan.tools.cmake import CMakeToolchain, CMake, CMakeDeps, cmake_layout, CMakeConfigDeps from conan.tools.env import VirtualRunEnv from conan.tools.files import copy, load @@ -92,7 +92,7 @@ def generate(self): tc.cache_variables["LIBCOSIM_WITH_PROXYFMU"] = self.options.proxyfmu tc.generate() - deps = CMakeDeps(self) + deps = CMakeConfigDeps(self) # deps.configuration = "Release" deps.generate() From 930e8bf770a1b4b91ae617c5315da9b70058d4ad Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 20:32:24 +0200 Subject: [PATCH 24/30] Revert "Updated" This reverts commit 071dcd979005b3a30e0411e8c4af1e63537143a2. --- conanfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conanfile.py b/conanfile.py index 9fbcf884..2cc2566e 100755 --- a/conanfile.py +++ b/conanfile.py @@ -2,7 +2,7 @@ from conan import ConanFile from conan.errors import ConanInvalidConfiguration -from conan.tools.cmake import CMakeToolchain, CMake, CMakeDeps, cmake_layout, CMakeConfigDeps +from conan.tools.cmake import CMakeToolchain, CMake, CMakeDeps, cmake_layout from conan.tools.env import VirtualRunEnv from conan.tools.files import copy, load @@ -92,7 +92,7 @@ def generate(self): tc.cache_variables["LIBCOSIM_WITH_PROXYFMU"] = self.options.proxyfmu tc.generate() - deps = CMakeConfigDeps(self) + deps = CMakeDeps(self) # deps.configuration = "Release" deps.generate() From b5c5db6ce20698858e2c41858aa9bc1cb6e4dec0 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 21:00:00 +0200 Subject: [PATCH 25/30] Remove commented-out configuration mappings in CMakeLists.txt --- CMakeLists.txt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f6283021..c0661a46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,13 +92,6 @@ set(LIBCOSIM_INSTALL_DESTINATIONS INCLUDES DESTINATION "${LIBCOSIM_HEADER_INSTALL_DIR}") set(LIBCOSIM_EXPORT_TARGET "${PROJECT_NAME}-targets") -# Map non-Release configs to Release for imported targets. -# "NOCONFIG" is needed for system-installed packages (e.g. from apt) whose -# CMake config files use IMPORTED_LOCATION_NOCONFIG rather than a named config. -#set(CMAKE_MAP_IMPORTED_CONFIG_DEBUG Release "") -#set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release "") -#set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") - # ============================================================================== # Dependencies # ============================================================================== From 9c1bbe814fa5bf04782f0418f41e3423925e27cf Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 21:12:45 +0200 Subject: [PATCH 26/30] Updated --- conanfile.py | 1 + 1 file changed, 1 insertion(+) diff --git a/conanfile.py b/conanfile.py index 2cc2566e..fa571cfb 100755 --- a/conanfile.py +++ b/conanfile.py @@ -130,3 +130,4 @@ def _is_tests_enabled(self): "true", "1", ) + From 2a18b02f1b499be176b3dc7d598d83321a27c843 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Fri, 15 May 2026 21:25:04 +0200 Subject: [PATCH 27/30] Reverted back conanfile.py changes --- conanfile.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/conanfile.py b/conanfile.py index fa571cfb..3608856e 100755 --- a/conanfile.py +++ b/conanfile.py @@ -91,10 +91,7 @@ def generate(self): tc.cache_variables["LIBCOSIM_NO_FMI_LOGGING"] = self.options.no_fmi_logging tc.cache_variables["LIBCOSIM_WITH_PROXYFMU"] = self.options.proxyfmu tc.generate() - - deps = CMakeDeps(self) - # deps.configuration = "Release" - deps.generate() + CMakeDeps(self).generate() def build(self): cmake = CMake(self) From f1b65148ea38190542196d277f5ef23f6a927c3d Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Mon, 18 May 2026 08:26:38 +0200 Subject: [PATCH 28/30] Remove cmake installation from pipx in ci-conan.yml --- .github/workflows/ci-conan.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-conan.yml b/.github/workflows/ci-conan.yml index 98d900ef..6acd096a 100644 --- a/.github/workflows/ci-conan.yml +++ b/.github/workflows/ci-conan.yml @@ -28,7 +28,7 @@ jobs: run: | apt-get update apt-get install -y pipx cmake doxygen - pipx install conan cmake + pipx install conan echo "$HOME/.local/bin" >> "$GITHUB_PATH" - name: Configure Conan run: | From 6851f8bbae4010b7b2d7c91d424808df4c535c09 Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Mon, 18 May 2026 08:32:33 +0200 Subject: [PATCH 29/30] Update proxyfmu dependency version to 0.4.2 in conanfile.py --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 3608856e..78645781 100755 --- a/conanfile.py +++ b/conanfile.py @@ -47,7 +47,7 @@ def requirements(self): self.requires("ms-gsl/[>=3 <5]", transitive_headers=True) self.requires("boost/[~1.85]", transitive_headers=True, transitive_libs=True) # Required by Thrift if self.options.proxyfmu: - self.requires("proxyfmu/0.4.1@osp/testing-cmake-v4", + self.requires("proxyfmu/0.4.2@osp/stable", transitive_headers=True, transitive_libs=True) self.requires("yaml-cpp/[~0.9]") From 7022e33fb93926cf6e5ba3500633a9fd2b68142a Mon Sep 17 00:00:00 2001 From: Hee Jong Park Date: Mon, 18 May 2026 08:42:37 +0200 Subject: [PATCH 30/30] Remove cmake installation from ci-conan.yml --- .github/workflows/ci-conan.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-conan.yml b/.github/workflows/ci-conan.yml index 6acd096a..3fc76a8c 100644 --- a/.github/workflows/ci-conan.yml +++ b/.github/workflows/ci-conan.yml @@ -27,7 +27,7 @@ jobs: - name: Install prerequisites run: | apt-get update - apt-get install -y pipx cmake doxygen + apt-get install -y pipx doxygen pipx install conan echo "$HOME/.local/bin" >> "$GITHUB_PATH" - name: Configure Conan