From a4be0a540a22e74d30e5c624250d745499b4d8b8 Mon Sep 17 00:00:00 2001 From: Dmitry Glavchev Date: Sat, 15 Aug 2026 10:55:17 +0000 Subject: [PATCH] Make googletest version compatible with C++11 --- generator/CPP11/test/posix/.gitignore | 1 + generator/CPP11/test/posix/Makefile | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/generator/CPP11/test/posix/.gitignore b/generator/CPP11/test/posix/.gitignore index fd3ecfaa2..419e64af6 100644 --- a/generator/CPP11/test/posix/.gitignore +++ b/generator/CPP11/test/posix/.gitignore @@ -2,3 +2,4 @@ /mavtest_ardupilotmega /mavtest_common /mavtest_uAvionix +/.deps diff --git a/generator/CPP11/test/posix/Makefile b/generator/CPP11/test/posix/Makefile index ba43d3540..22073c236 100644 --- a/generator/CPP11/test/posix/Makefile +++ b/generator/CPP11/test/posix/Makefile @@ -2,7 +2,11 @@ CXX ?= g++ CXXFLAGS ?= -std=c++11 -g -O0 -Wall -pthread GENDIR ?= ../../include_v2.0 -GTESTSRC ?= /usr/src/gtest/src/gtest-all.cc +GTESTTAR := .deps/gtest-1.12.1.tar.gz +GTESTURL := https://github.com/google/googletest/archive/refs/tags/release-1.12.1.tar.gz +GTESTROOT ?= $(CURDIR)/.deps/googletest-release-1.12.1 +GTESTINC ?= -I$(GTESTROOT)/googletest/include -I$(GTESTROOT)/googletest +GTESTSRC ?= $(GTESTROOT)/googletest/src/gtest-all.cc MSGDEFDIR ?= ../../../../../message_definitions/v1.0 DIALECTS := $(notdir $(shell find $(GENDIR) -mindepth 1 -maxdepth 1 -type d)) @@ -10,13 +14,20 @@ TARGETS := $(foreach d,$(DIALECTS),mavtest_$(d)) all: run_tests +$(GTESTTAR): + mkdir -p $(dir $@) + curl -L -C - -o $@ $(GTESTURL) + +deps: $(GTESTTAR) + tar -xf $(GTESTTAR) -C .deps + gtest-all.o: $(GTESTSRC) - $(CXX) $(CXXFLAGS) -I"$(dir $(GTESTSRC))../" -c -o $@ $< + $(CXX) $(CXXFLAGS) $(GTESTINC) -I"$(dir $(GTESTSRC))../" -c -o $@ $< mavtest_%: mtest.cpp gtest-all.o $(foreach d,$(DIALECTS),$(GENDIR)/$(d)/$(d).hpp) - $(CXX) $(CXXFLAGS) -I $(GENDIR)/$* -o $@ $< gtest-all.o + $(CXX) $(CXXFLAGS) $(GTESTINC) -I $(GENDIR)/$* -o $@ $< gtest-all.o -run_tests: $(TARGETS) +run_tests: deps $(TARGETS) for f in $(TARGETS); do \ ./$$f; \ done