From 7b3361244599558e6339ef4e48bc725fbed6310a Mon Sep 17 00:00:00 2001 From: Pranav Shridhar Date: Sun, 5 Oct 2025 21:14:35 -0500 Subject: [PATCH 1/6] My big fat initial rebase --- libmuscle/cpp/build/Makefile | 8 ++--- libmuscle/cpp/build/libmuscle/Makefile | 19 +++++++----- libmuscle/cpp/build/libmuscle/tests/Makefile | 5 ++-- libmuscle/cpp/build/msgpack/Makefile | 29 ++++++++++--------- libmuscle/cpp/src/libmuscle/data.cpp | 2 +- libmuscle/cpp/src/libmuscle/mpp_message.cpp | 1 - .../src/libmuscle/tests/test_communicator.cpp | 5 ++-- 7 files changed, 37 insertions(+), 32 deletions(-) diff --git a/libmuscle/cpp/build/Makefile b/libmuscle/cpp/build/Makefile index 910e4854..73b5e73a 100644 --- a/libmuscle/cpp/build/Makefile +++ b/libmuscle/cpp/build/Makefile @@ -28,9 +28,9 @@ distclean: # Find dependencies or set up build dep_name := msgpack -dep_version_constraint := >= 3.2.0 -dep_version := 3.2.0 -dep_pkgconfig_name := msgpack +dep_version_constraint := >= 4.0.0 +dep_version := 7.0.0 +dep_pkgconfig_name := msgpack-cxx dep_install := 1 include $(TOOLDIR)/make_available.make @@ -46,7 +46,7 @@ include $(TOOLDIR)/make_available.make DEP_DIRS += $(CURDIR)/msgpack/msgpack export DEP_DIRS -PKG_CONFIG_EXTRA_DIRS := $(PKG_CONFIG_EXTRA_DIRS):$(CURDIR)/msgpack/msgpack/lib/pkgconfig +PKG_CONFIG_EXTRA_DIRS := $(PKG_CONFIG_EXTRA_DIRS):$(CURDIR)/msgpack/lib/pkgconfig export PKG_CONFIG_EXTRA_DIRS diff --git a/libmuscle/cpp/build/libmuscle/Makefile b/libmuscle/cpp/build/libmuscle/Makefile index 71860ac7..253c848d 100644 --- a/libmuscle/cpp/build/libmuscle/Makefile +++ b/libmuscle/cpp/build/libmuscle/Makefile @@ -76,7 +76,7 @@ endif installed_pkg_config_files := $(pkg_config_files:%=$(PREFIX)/lib/pkgconfig/%) -CXXFLAGS += -Wall -pedantic -std=c++14 -pthread -O3 +CXXFLAGS += -Wall -pedantic -std=c++14 -pthread -O3 -DMSGPACK_NO_BOOST export CXXFLAGS MPIFLAGS := -DMUSCLE_ENABLE_MPI @@ -136,10 +136,12 @@ install: all $(installed_headers) $(installed_pkg_config_files) -install_name_tool -change libymmsl.dylib @loader_path/libymmsl.dylib $(PREFIX)/lib/libmuscle_d.dylib -install_name_tool -change libymmsl.dylib @loader_path/libymmsl.dylib $(PREFIX)/lib/libmuscle_mpi.dylib -install_name_tool -change libymmsl.dylib @loader_path/libymmsl.dylib $(PREFIX)/lib/libmuscle_mpi_d.dylib - install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle.dylib - -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_d.dylib - -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi.dylib - -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi_d.dylib + + # Not needed for MessagePack 7.0.0 + # install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle.dylib + # -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_d.dylib + # -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi.dylib + # -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi_d.dylib @mkdir -p $(PREFIX)/bin sed -e 's@%PREFIX%@$(PREFIX)@g' muscle3.env.in >$(PREFIX)/bin/muscle3.env for pc in $(PREFIX)/lib/pkgconfig/* ; do sed -i -e 's@^prefix=.*$$@prefix=$(PREFIX)@' $$pc ; done @@ -152,11 +154,14 @@ ifeq "$(filter $(MAKECMDGOALS),$(cleantargets))" "" # Dependencies $(info pcextra: $(PKG_CONFIG_EXTRA_DIRS)) -CXXFLAGS += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_EXTRA_DIRS):$(PKG_CONFIG_PATH) ; pkg-config --cflags msgpack) +# MSGPACK_FLAGS := $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_EXTRA_DIRS):$(PKG_CONFIG_PATH) ; pkg-config --cflags msgpack-cxx) +MSGPACK_INCLUDE_DIR = $(CURDIR)/../msgpack/msgpack/include +export MSGPACK_INCLUDE_DIR +CXXFLAGS += -I$(MSGPACK_INCLUDE_DIR) LDFLAGS2 = $(LDFLAGS) LDFLAGS2 += -pthread -L$(CURDIR)/../ymmsl -lymmsl -LDFLAGS2 += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_EXTRA_DIRS):$(PKG_CONFIG_PATH) ; pkg-config --libs msgpack) +# LDFLAGS2 += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_EXTRA_DIRS):$(PKG_CONFIG_PATH) ; pkg-config --libs msgpack-cxx) # Automatic header dependencies -include $(deps) diff --git a/libmuscle/cpp/build/libmuscle/tests/Makefile b/libmuscle/cpp/build/libmuscle/tests/Makefile index 387dea44..05afad61 100644 --- a/libmuscle/cpp/build/libmuscle/tests/Makefile +++ b/libmuscle/cpp/build/libmuscle/tests/Makefile @@ -47,14 +47,15 @@ ifeq "$(filter $(MAKECMDGOALS),$(cleantargets))" "" EXTRA_LINK_DIRS := $(foreach DIR,$(DEP_DIRS),-Wl,-rpath,$(DIR)/lib) CXXFLAGS += -I$(libmuscle_testdir) -isystem $(googletest_ROOT)/include -pthread -CXXFLAGS += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PKG_CONFIG_EXTRA_DIRS) ; pkg-config --cflags msgpack) +# CXXFLAGS += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PKG_CONFIG_EXTRA_DIRS) ; pkg-config --cflags msgpack) # Keep this line anyways, may need it +CXXFLAGS += -I$(MSGPACK_INCLUDE_DIR) CXXFLAGS += -DTESTING $(DEBUGFLAGS) LDFLAGS += $(CURDIR)/../libmuscle_d.a $(CURDIR)/../../ymmsl/libymmsl_d.a LDFLAGS += $(googletest_LIB) -pthread LDFLAGS2 := $(LDFLAGS) -LDFLAGS2 += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PKG_CONFIG_EXTRA_DIRS) ; pkg-config --libs msgpack) +# LDFLAGS2 += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PKG_CONFIG_EXTRA_DIRS) ; pkg-config --libs msgpack) LDFLAGS2 += $(EXTRA_LINK_DIRS) -include $(deps) diff --git a/libmuscle/cpp/build/msgpack/Makefile b/libmuscle/cpp/build/msgpack/Makefile index 3ad756a0..5c3b6047 100644 --- a/libmuscle/cpp/build/msgpack/Makefile +++ b/libmuscle/cpp/build/msgpack/Makefile @@ -3,8 +3,8 @@ all: msgpack .PHONY: install install: msgpack - mkdir -p $(PREFIX)/lib - cp -a msgpack/lib/* $(PREFIX)/lib/ + # mkdir -p $(PREFIX)/lib + # cp -a msgpack/lib/* $(PREFIX)/lib/ # Commented: MessagePack 7.0.0 is header-only mkdir -p $(PREFIX)/include cp -a msgpack/include/* $(PREFIX)/include/ @@ -17,28 +17,29 @@ distclean: clean rm -rf $$(find . -type d -name 'msgpack-*') rm -rf msgpack -MSGPACK_LIB=$(CURDIR)/msgpack/lib/libmsgpackc.a -MSGPACK_SRC=$(CURDIR)/msgpack-$(msgpack_VERSION)/ChangeLog +# MSGPACK_LIB=$(CURDIR)/msgpack/lib/libmsgpackc.a # Commented: MessagePack 7.0.0 is header-only +MSGPACK_INCLUDE_DIR=$(CURDIR)/msgpack/include +MSGPACK_SRC=$(CURDIR)/msgpack-cxx-$(msgpack_VERSION)/ChangeLog -msgpack-$(msgpack_VERSION).tar.gz: - $(DOWNLOAD) https://github.com/msgpack/msgpack-c/releases/download/cpp-$(msgpack_VERSION)/msgpack-$(msgpack_VERSION).tar.gz +msgpack-cxx-$(msgpack_VERSION).tar.gz: + $(DOWNLOAD) https://github.com/msgpack/msgpack-c/releases/download/cpp-$(msgpack_VERSION)/msgpack-cxx-$(msgpack_VERSION).tar.gz -$(MSGPACK_SRC): msgpack-$(msgpack_VERSION).tar.gz - $(TAR) xf msgpack-$(msgpack_VERSION).tar.gz -m +$(MSGPACK_SRC): msgpack-cxx-$(msgpack_VERSION).tar.gz + $(TAR) xf msgpack-cxx-$(msgpack_VERSION).tar.gz -m -$(MSGPACK_LIB): $(MSGPACK_SRC) - cd msgpack-$(msgpack_VERSION) && rm -rf build && mkdir -p build && cd build && \ +$(MSGPACK_INCLUDE_DIR): $(MSGPACK_SRC) + cd msgpack-cxx-$(msgpack_VERSION) && rm -rf build && mkdir -p build && cd build && \ export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PKG_CONFIG_EXTRA_DIRS) && \ - cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_INSTALL_PREFIX=$(CURDIR)/msgpack -DMSGPACK_CXX11=ON -DMSGPACK_BUILD_EXAMPLES=OFF -DMSGPACK_BUILD_TESTS=OFF .. && \ + cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DMSGPACK_USE_BOOST=OFF -DCMAKE_INSTALL_PREFIX=$(CURDIR)/msgpack -DMSGPACK_CXX11=ON -DMSGPACK_BUILD_EXAMPLES=OFF -DMSGPACK_BUILD_TESTS=OFF .. && \ $(MAKE) -j $(NCORES) && make install ifdef MUSCLE_LINUX -msgpack: $(MSGPACK_LIB) +msgpack: $(MSGPACK_INCLUDE_DIR) else ifdef MUSCLE_MACOS -msgpack: $(MSGPACK_LIB) - install_name_tool -id $(CURDIR)/msgpack/lib/libmsgpackc.dylib $(CURDIR)/msgpack/lib/libmsgpackc.dylib +msgpack: $(MSGPACK_INCLUDE_DIR) + # install_name_tool -id $(CURDIR)/msgpack/lib/libmsgpackc.dylib $(CURDIR)/msgpack/lib/libmsgpackc.dylib endif diff --git a/libmuscle/cpp/src/libmuscle/data.cpp b/libmuscle/cpp/src/libmuscle/data.cpp index 66920350..7ef9d594 100644 --- a/libmuscle/cpp/src/libmuscle/data.cpp +++ b/libmuscle/cpp/src/libmuscle/data.cpp @@ -527,6 +527,7 @@ bool DataConstRef::is_a_byte_array() const { return mp_obj_->type == msgpack::type::BIN; } + template <> SettingValue DataConstRef::as() const { DataConstRef const & self = *this; @@ -1098,4 +1099,3 @@ DataConstRef DataConstRef::grid_data_( } } } // namespace libmuscle::_MUSCLE_IMPL_NS - diff --git a/libmuscle/cpp/src/libmuscle/mpp_message.cpp b/libmuscle/cpp/src/libmuscle/mpp_message.cpp index 71b6a644..fb3bc944 100644 --- a/libmuscle/cpp/src/libmuscle/mpp_message.cpp +++ b/libmuscle/cpp/src/libmuscle/mpp_message.cpp @@ -109,4 +109,3 @@ DataConstRef MPPMessage::as_dict_() const { } } } - diff --git a/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp b/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp index c20dfbdc..00f90348 100644 --- a/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp +++ b/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp @@ -189,7 +189,7 @@ TEST_F(libmuscle_communicator2, receive_message) { TEST_F(libmuscle_communicator2, receive_message_vector) { MPPMessage msg( "peer2.out_v", "component.in_v", 5, 4.0, 6.0, - Settings({{"s0", {0.0}}, {"s1", 1.0}}), 0, 3.5, "Testing2"); + Settings({{"s0", {0.0}}, {"s1", 1.3}}), 0, 3.5, "Testing2"); MockMPPClient::return_value.receive.return_value = std::make_tuple( msg.encoded(), ProfileData()); @@ -205,7 +205,7 @@ TEST_F(libmuscle_communicator2, receive_message_vector) { ASSERT_EQ(recv_msg.next_timestamp(), 6.0); ASSERT_EQ(recv_msg.data().as(), "Testing2"); ASSERT_EQ(recv_msg.settings().at("s0"), std::vector{0.0}); - ASSERT_EQ(recv_msg.settings().at("s1"), 1.0); + ASSERT_EQ(recv_msg.settings().at("s1"), 1.3); ASSERT_EQ(saved_until, 3.5); } @@ -385,4 +385,3 @@ TEST_F(libmuscle_communicator2, test_shutdown) { ASSERT_TRUE(expected_receivers.empty()); } - From 4557ce4574cfb1a2af1d7db6972dc7aa4bd2e885 Mon Sep 17 00:00:00 2001 From: Pranav Shridhar Date: Fri, 24 Oct 2025 02:04:39 -0500 Subject: [PATCH 2/6] Switched values back to what they should originally be --- libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp b/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp index 00f90348..1ab32d7a 100644 --- a/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp +++ b/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp @@ -189,7 +189,7 @@ TEST_F(libmuscle_communicator2, receive_message) { TEST_F(libmuscle_communicator2, receive_message_vector) { MPPMessage msg( "peer2.out_v", "component.in_v", 5, 4.0, 6.0, - Settings({{"s0", {0.0}}, {"s1", 1.3}}), 0, 3.5, "Testing2"); + Settings({{"s0", {0.0}}, {"s1", 1.0}}), 0, 3.5, "Testing2"); MockMPPClient::return_value.receive.return_value = std::make_tuple( msg.encoded(), ProfileData()); @@ -205,7 +205,7 @@ TEST_F(libmuscle_communicator2, receive_message_vector) { ASSERT_EQ(recv_msg.next_timestamp(), 6.0); ASSERT_EQ(recv_msg.data().as(), "Testing2"); ASSERT_EQ(recv_msg.settings().at("s0"), std::vector{0.0}); - ASSERT_EQ(recv_msg.settings().at("s1"), 1.3); + ASSERT_EQ(recv_msg.settings().at("s1"), 1.0); ASSERT_EQ(saved_until, 3.5); } From d452c910445d4fc9407f441ef20f0fbfa2d08af9 Mon Sep 17 00:00:00 2001 From: Pranav Shridhar Date: Fri, 24 Oct 2025 11:57:56 -0500 Subject: [PATCH 3/6] Fix whitespace --- libmuscle/cpp/src/libmuscle/data.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libmuscle/cpp/src/libmuscle/data.cpp b/libmuscle/cpp/src/libmuscle/data.cpp index 7ef9d594..9c13f339 100644 --- a/libmuscle/cpp/src/libmuscle/data.cpp +++ b/libmuscle/cpp/src/libmuscle/data.cpp @@ -527,7 +527,6 @@ bool DataConstRef::is_a_byte_array() const { return mp_obj_->type == msgpack::type::BIN; } - template <> SettingValue DataConstRef::as() const { DataConstRef const & self = *this; @@ -1098,4 +1097,4 @@ DataConstRef DataConstRef::grid_data_( } } -} } // namespace libmuscle::_MUSCLE_IMPL_NS +} } // namespace libmuscle::_MUSCLE_IMPL_NS \ No newline at end of file From 60fd02b4c396608bbeac3fc0ecb7e90ef39f7c92 Mon Sep 17 00:00:00 2001 From: Pranav Shridhar Date: Sun, 5 Oct 2025 21:14:35 -0500 Subject: [PATCH 4/6] This is the commit that upgrades messagepack 3.2.0 to 7.0.0 --- libmuscle/cpp/build/Makefile | 8 ++--- libmuscle/cpp/build/libmuscle/Makefile | 19 +++++++----- libmuscle/cpp/build/libmuscle/tests/Makefile | 5 ++-- libmuscle/cpp/build/msgpack/Makefile | 29 ++++++++++--------- libmuscle/cpp/src/libmuscle/data.cpp | 3 +- libmuscle/cpp/src/libmuscle/mpp_message.cpp | 1 - .../src/libmuscle/tests/test_communicator.cpp | 1 - 7 files changed, 35 insertions(+), 31 deletions(-) diff --git a/libmuscle/cpp/build/Makefile b/libmuscle/cpp/build/Makefile index 910e4854..73b5e73a 100644 --- a/libmuscle/cpp/build/Makefile +++ b/libmuscle/cpp/build/Makefile @@ -28,9 +28,9 @@ distclean: # Find dependencies or set up build dep_name := msgpack -dep_version_constraint := >= 3.2.0 -dep_version := 3.2.0 -dep_pkgconfig_name := msgpack +dep_version_constraint := >= 4.0.0 +dep_version := 7.0.0 +dep_pkgconfig_name := msgpack-cxx dep_install := 1 include $(TOOLDIR)/make_available.make @@ -46,7 +46,7 @@ include $(TOOLDIR)/make_available.make DEP_DIRS += $(CURDIR)/msgpack/msgpack export DEP_DIRS -PKG_CONFIG_EXTRA_DIRS := $(PKG_CONFIG_EXTRA_DIRS):$(CURDIR)/msgpack/msgpack/lib/pkgconfig +PKG_CONFIG_EXTRA_DIRS := $(PKG_CONFIG_EXTRA_DIRS):$(CURDIR)/msgpack/lib/pkgconfig export PKG_CONFIG_EXTRA_DIRS diff --git a/libmuscle/cpp/build/libmuscle/Makefile b/libmuscle/cpp/build/libmuscle/Makefile index 71860ac7..253c848d 100644 --- a/libmuscle/cpp/build/libmuscle/Makefile +++ b/libmuscle/cpp/build/libmuscle/Makefile @@ -76,7 +76,7 @@ endif installed_pkg_config_files := $(pkg_config_files:%=$(PREFIX)/lib/pkgconfig/%) -CXXFLAGS += -Wall -pedantic -std=c++14 -pthread -O3 +CXXFLAGS += -Wall -pedantic -std=c++14 -pthread -O3 -DMSGPACK_NO_BOOST export CXXFLAGS MPIFLAGS := -DMUSCLE_ENABLE_MPI @@ -136,10 +136,12 @@ install: all $(installed_headers) $(installed_pkg_config_files) -install_name_tool -change libymmsl.dylib @loader_path/libymmsl.dylib $(PREFIX)/lib/libmuscle_d.dylib -install_name_tool -change libymmsl.dylib @loader_path/libymmsl.dylib $(PREFIX)/lib/libmuscle_mpi.dylib -install_name_tool -change libymmsl.dylib @loader_path/libymmsl.dylib $(PREFIX)/lib/libmuscle_mpi_d.dylib - install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle.dylib - -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_d.dylib - -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi.dylib - -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi_d.dylib + + # Not needed for MessagePack 7.0.0 + # install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle.dylib + # -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_d.dylib + # -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi.dylib + # -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi_d.dylib @mkdir -p $(PREFIX)/bin sed -e 's@%PREFIX%@$(PREFIX)@g' muscle3.env.in >$(PREFIX)/bin/muscle3.env for pc in $(PREFIX)/lib/pkgconfig/* ; do sed -i -e 's@^prefix=.*$$@prefix=$(PREFIX)@' $$pc ; done @@ -152,11 +154,14 @@ ifeq "$(filter $(MAKECMDGOALS),$(cleantargets))" "" # Dependencies $(info pcextra: $(PKG_CONFIG_EXTRA_DIRS)) -CXXFLAGS += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_EXTRA_DIRS):$(PKG_CONFIG_PATH) ; pkg-config --cflags msgpack) +# MSGPACK_FLAGS := $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_EXTRA_DIRS):$(PKG_CONFIG_PATH) ; pkg-config --cflags msgpack-cxx) +MSGPACK_INCLUDE_DIR = $(CURDIR)/../msgpack/msgpack/include +export MSGPACK_INCLUDE_DIR +CXXFLAGS += -I$(MSGPACK_INCLUDE_DIR) LDFLAGS2 = $(LDFLAGS) LDFLAGS2 += -pthread -L$(CURDIR)/../ymmsl -lymmsl -LDFLAGS2 += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_EXTRA_DIRS):$(PKG_CONFIG_PATH) ; pkg-config --libs msgpack) +# LDFLAGS2 += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_EXTRA_DIRS):$(PKG_CONFIG_PATH) ; pkg-config --libs msgpack-cxx) # Automatic header dependencies -include $(deps) diff --git a/libmuscle/cpp/build/libmuscle/tests/Makefile b/libmuscle/cpp/build/libmuscle/tests/Makefile index 387dea44..05afad61 100644 --- a/libmuscle/cpp/build/libmuscle/tests/Makefile +++ b/libmuscle/cpp/build/libmuscle/tests/Makefile @@ -47,14 +47,15 @@ ifeq "$(filter $(MAKECMDGOALS),$(cleantargets))" "" EXTRA_LINK_DIRS := $(foreach DIR,$(DEP_DIRS),-Wl,-rpath,$(DIR)/lib) CXXFLAGS += -I$(libmuscle_testdir) -isystem $(googletest_ROOT)/include -pthread -CXXFLAGS += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PKG_CONFIG_EXTRA_DIRS) ; pkg-config --cflags msgpack) +# CXXFLAGS += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PKG_CONFIG_EXTRA_DIRS) ; pkg-config --cflags msgpack) # Keep this line anyways, may need it +CXXFLAGS += -I$(MSGPACK_INCLUDE_DIR) CXXFLAGS += -DTESTING $(DEBUGFLAGS) LDFLAGS += $(CURDIR)/../libmuscle_d.a $(CURDIR)/../../ymmsl/libymmsl_d.a LDFLAGS += $(googletest_LIB) -pthread LDFLAGS2 := $(LDFLAGS) -LDFLAGS2 += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PKG_CONFIG_EXTRA_DIRS) ; pkg-config --libs msgpack) +# LDFLAGS2 += $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PKG_CONFIG_EXTRA_DIRS) ; pkg-config --libs msgpack) LDFLAGS2 += $(EXTRA_LINK_DIRS) -include $(deps) diff --git a/libmuscle/cpp/build/msgpack/Makefile b/libmuscle/cpp/build/msgpack/Makefile index 3ad756a0..5c3b6047 100644 --- a/libmuscle/cpp/build/msgpack/Makefile +++ b/libmuscle/cpp/build/msgpack/Makefile @@ -3,8 +3,8 @@ all: msgpack .PHONY: install install: msgpack - mkdir -p $(PREFIX)/lib - cp -a msgpack/lib/* $(PREFIX)/lib/ + # mkdir -p $(PREFIX)/lib + # cp -a msgpack/lib/* $(PREFIX)/lib/ # Commented: MessagePack 7.0.0 is header-only mkdir -p $(PREFIX)/include cp -a msgpack/include/* $(PREFIX)/include/ @@ -17,28 +17,29 @@ distclean: clean rm -rf $$(find . -type d -name 'msgpack-*') rm -rf msgpack -MSGPACK_LIB=$(CURDIR)/msgpack/lib/libmsgpackc.a -MSGPACK_SRC=$(CURDIR)/msgpack-$(msgpack_VERSION)/ChangeLog +# MSGPACK_LIB=$(CURDIR)/msgpack/lib/libmsgpackc.a # Commented: MessagePack 7.0.0 is header-only +MSGPACK_INCLUDE_DIR=$(CURDIR)/msgpack/include +MSGPACK_SRC=$(CURDIR)/msgpack-cxx-$(msgpack_VERSION)/ChangeLog -msgpack-$(msgpack_VERSION).tar.gz: - $(DOWNLOAD) https://github.com/msgpack/msgpack-c/releases/download/cpp-$(msgpack_VERSION)/msgpack-$(msgpack_VERSION).tar.gz +msgpack-cxx-$(msgpack_VERSION).tar.gz: + $(DOWNLOAD) https://github.com/msgpack/msgpack-c/releases/download/cpp-$(msgpack_VERSION)/msgpack-cxx-$(msgpack_VERSION).tar.gz -$(MSGPACK_SRC): msgpack-$(msgpack_VERSION).tar.gz - $(TAR) xf msgpack-$(msgpack_VERSION).tar.gz -m +$(MSGPACK_SRC): msgpack-cxx-$(msgpack_VERSION).tar.gz + $(TAR) xf msgpack-cxx-$(msgpack_VERSION).tar.gz -m -$(MSGPACK_LIB): $(MSGPACK_SRC) - cd msgpack-$(msgpack_VERSION) && rm -rf build && mkdir -p build && cd build && \ +$(MSGPACK_INCLUDE_DIR): $(MSGPACK_SRC) + cd msgpack-cxx-$(msgpack_VERSION) && rm -rf build && mkdir -p build && cd build && \ export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH):$(PKG_CONFIG_EXTRA_DIRS) && \ - cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_INSTALL_PREFIX=$(CURDIR)/msgpack -DMSGPACK_CXX11=ON -DMSGPACK_BUILD_EXAMPLES=OFF -DMSGPACK_BUILD_TESTS=OFF .. && \ + cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DMSGPACK_USE_BOOST=OFF -DCMAKE_INSTALL_PREFIX=$(CURDIR)/msgpack -DMSGPACK_CXX11=ON -DMSGPACK_BUILD_EXAMPLES=OFF -DMSGPACK_BUILD_TESTS=OFF .. && \ $(MAKE) -j $(NCORES) && make install ifdef MUSCLE_LINUX -msgpack: $(MSGPACK_LIB) +msgpack: $(MSGPACK_INCLUDE_DIR) else ifdef MUSCLE_MACOS -msgpack: $(MSGPACK_LIB) - install_name_tool -id $(CURDIR)/msgpack/lib/libmsgpackc.dylib $(CURDIR)/msgpack/lib/libmsgpackc.dylib +msgpack: $(MSGPACK_INCLUDE_DIR) + # install_name_tool -id $(CURDIR)/msgpack/lib/libmsgpackc.dylib $(CURDIR)/msgpack/lib/libmsgpackc.dylib endif diff --git a/libmuscle/cpp/src/libmuscle/data.cpp b/libmuscle/cpp/src/libmuscle/data.cpp index 66920350..9c13f339 100644 --- a/libmuscle/cpp/src/libmuscle/data.cpp +++ b/libmuscle/cpp/src/libmuscle/data.cpp @@ -1097,5 +1097,4 @@ DataConstRef DataConstRef::grid_data_( } } -} } // namespace libmuscle::_MUSCLE_IMPL_NS - +} } // namespace libmuscle::_MUSCLE_IMPL_NS \ No newline at end of file diff --git a/libmuscle/cpp/src/libmuscle/mpp_message.cpp b/libmuscle/cpp/src/libmuscle/mpp_message.cpp index 71b6a644..fb3bc944 100644 --- a/libmuscle/cpp/src/libmuscle/mpp_message.cpp +++ b/libmuscle/cpp/src/libmuscle/mpp_message.cpp @@ -109,4 +109,3 @@ DataConstRef MPPMessage::as_dict_() const { } } } - diff --git a/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp b/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp index c20dfbdc..1ab32d7a 100644 --- a/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp +++ b/libmuscle/cpp/src/libmuscle/tests/test_communicator.cpp @@ -385,4 +385,3 @@ TEST_F(libmuscle_communicator2, test_shutdown) { ASSERT_TRUE(expected_receivers.empty()); } - From d6ac1d4d3a1caf66f5a9655955e31048cd27b813 Mon Sep 17 00:00:00 2001 From: Pranav Shridhar Date: Sun, 23 Nov 2025 16:30:21 -0600 Subject: [PATCH 5/6] Formally upgraded msgpack from 4 to 7 --- libmuscle/cpp/build/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmuscle/cpp/build/Makefile b/libmuscle/cpp/build/Makefile index 73b5e73a..4b31c72a 100644 --- a/libmuscle/cpp/build/Makefile +++ b/libmuscle/cpp/build/Makefile @@ -28,7 +28,7 @@ distclean: # Find dependencies or set up build dep_name := msgpack -dep_version_constraint := >= 4.0.0 +dep_version_constraint := >= 7.0.0 dep_version := 7.0.0 dep_pkgconfig_name := msgpack-cxx dep_install := 1 From 6bcfd36107515998f2effa2a33ac67cec05eee4c Mon Sep 17 00:00:00 2001 From: Pranav Shridhar Date: Fri, 5 Dec 2025 01:06:52 -0600 Subject: [PATCH 6/6] Updated libmuscle.pc generator rule to stop listing msgpack and also exclude the Boost library. --- libmuscle/cpp/build/libmuscle/Makefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libmuscle/cpp/build/libmuscle/Makefile b/libmuscle/cpp/build/libmuscle/Makefile index 253c848d..5a002c0a 100644 --- a/libmuscle/cpp/build/libmuscle/Makefile +++ b/libmuscle/cpp/build/libmuscle/Makefile @@ -141,7 +141,7 @@ install: all $(installed_headers) $(installed_pkg_config_files) # install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle.dylib # -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_d.dylib # -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi.dylib - # -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi_d.dylib + # -install_name_tool -change @rpath/libmsgpackc.2.dylib @loader_path/libmsgpackc.2.dylib $(PREFIX)/lib/libmuscle_mpi_d.dylib @mkdir -p $(PREFIX)/bin sed -e 's@%PREFIX%@$(PREFIX)@g' muscle3.env.in >$(PREFIX)/bin/muscle3.env for pc in $(PREFIX)/lib/pkgconfig/* ; do sed -i -e 's@^prefix=.*$$@prefix=$(PREFIX)@' $$pc ; done @@ -289,9 +289,9 @@ libmuscle.pc: @echo 'URL: https://muscle3.readthedocs.io' >>$@ @echo 'Version: $(muscle_version)' >>$@ @echo 'Requires: ymmsl = $(muscle_version)' >>$@ - @echo 'Requires.private: msgpack >= 3.1.0' >>$@ - @echo 'Cflags: -I$${includedir} -pthread' >>$@ - @echo 'Cflags.private: -pthread' >>$@ + @echo 'Requires.private:' >>$@ + @echo 'Cflags: -I$${includedir} -pthread -DMSGPACK_NO_BOOST' >>$@ + @echo 'Cflags.private: -pthread -DMSGPACK_NO_BOOST' >>$@ @echo 'Libs: -L$${libdir} -lmuscle' >>$@ @echo 'Libs.private: -pthread' >>$@ @@ -306,8 +306,8 @@ libmuscle_mpi.pc: @echo 'URL: https://muscle3.readthedocs.io' >>$@ @echo 'Version: $(muscle_version)' >>$@ @echo 'Requires: ymmsl = $(muscle_version)' >>$@ - @echo 'Requires.private: msgpack >= 3.1.0' >>$@ - @echo 'Cflags: -I$${includedir} -pthread -DMUSCLE_ENABLE_MPI' >>$@ - @echo 'Cflags.private: -pthread' >>$@ + @echo 'Requires.private:' >>$@ + @echo 'Cflags: -I$${includedir} -pthread -DMUSCLE_ENABLE_MPI -DMSGPACK_NO_BOOST' >>$@ + @echo 'Cflags.private: -pthread -DMSGPACK_NO_BOOST' >>$@ @echo 'Libs: -L$${libdir} -lmuscle_mpi' >>$@ @echo 'Libs.private: -pthread' >>$@