From cf830bc58b921f0d55c1b814d09793b5ef9c5312 Mon Sep 17 00:00:00 2001 From: Vitalii Koshura Date: Fri, 25 Oct 2024 23:59:02 +0200 Subject: [PATCH] Build docker_wrapper for linux on ci and upload it to the artifacts Signed-off-by: Vitalii Koshura --- deploy/prepare_deployment.py | 6 ++- samples/Makefile.am | 4 ++ samples/docker_wrapper/Makefile | 53 ++++++++++++++++++++--- samples/docker_wrapper/docker_wrapper.cpp | 2 +- 4 files changed, 56 insertions(+), 9 deletions(-) diff --git a/deploy/prepare_deployment.py b/deploy/prepare_deployment.py index 03379578f6..bcf4a34f63 100644 --- a/deploy/prepare_deployment.py +++ b/deploy/prepare_deployment.py @@ -47,7 +47,8 @@ './samples/openclapp/openclapp', './samples/wrappture/wrappture_example', './samples/wrappture/fermi', - './samples/sporadic/sporadic' + './samples/sporadic/sporadic', + './samples/docker_wrapper/docker_wrapper', ] linux_manager_list = [ @@ -77,6 +78,7 @@ './samples/wrappture/fermi.exe', './samples/sporadic/sporadic.exe', './samples/wsl_wrapper/wsl_wrapper.exe', + './samples/docker_wrapper/docker_wrapper.exe', ] android_manager_generic_list = [ @@ -172,6 +174,7 @@ './win_build/Build/x64/Release/wrappture*.exe', './win_build/Build/x64/Release/crypt_prog.exe', './win_build/Build/x64/Release/wsl_wrapper.exe', + './win_build/Build/x64/Release/docker_wrapper.exe', './win_build/Build/ARM64/Release/htmlgfx*.exe', './win_build/Build/ARM64/Release/wrapper*.exe', './win_build/Build/ARM64/Release/vboxwrapper*.exe', @@ -186,6 +189,7 @@ './win_build/Build/ARM64/Release/wrappture*.exe', './win_build/Build/ARM64/Release/crypt_prog.exe', './win_build/Build/ARM64/Release/wsl_wrapper.exe', + './win_build/Build/ARM64/Release/docker_wrapper.exe', ] windows_client_list = [ diff --git a/samples/Makefile.am b/samples/Makefile.am index f55780c1df..299d22c41c 100644 --- a/samples/Makefile.am +++ b/samples/Makefile.am @@ -35,4 +35,8 @@ if BUILD_WITH_OPENCL SUBDIRS += openclapp endif +if ! ANDROID + SUBDIRS += docker_wrapper +endif + maintainer-clean: diff --git a/samples/docker_wrapper/Makefile b/samples/docker_wrapper/Makefile index 78e1a88d4d..f735ec6880 100644 --- a/samples/docker_wrapper/Makefile +++ b/samples/docker_wrapper/Makefile @@ -1,10 +1,49 @@ + + +BOINC_DIR = ../.. +BOINC_SOURCE_API_DIR = $(BOINC_DIR)/api +BOINC_SOURCE_LIB_DIR = $(BOINC_DIR)/lib +BOINC_SOURCE_ZIP_DIR = $(BOINC_DIR)/zip + +BOINC_API_DIR = $(BOINC_SOURCE_API_DIR) +BOINC_LIB_DIR = $(BOINC_SOURCE_LIB_DIR) +BOINC_ZIP_DIR = $(BOINC_SOURCE_ZIP_DIR) + +MAKEFILE_LDFLAGS = -lpthread libstdc++.a +MAKEFILE_STDLIB = libstdc++.a + +CXXFLAGS += -g \ + -Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -fno-common \ + -I$(BOINC_DIR) \ + -I$(BOINC_SOURCE_API_DIR) \ + -I$(BOINC_SOURCE_LIB_DIR) \ + -I$(BOINC_SOURCE_ZIP_DIR) \ + -L$(BOINC_API_DIR) \ + -L$(BOINC_LIB_DIR) \ + -L. + +ifdef BUILD_APPS_WITH_VCPKG + BUILD_DIR = $(BOINC_DIR)/3rdParty/linux + VCPKG_DIR ?= $(BUILD_DIR)/vcpkg/installed/x64-linux + + CXXFLAGS += \ + -I$(VCPKG_DIR)/include \ + -L$(VCPKG_DIR)/lib +endif + all: docker_wrapper -CXXFLAGS = -g -I../../lib -I../../api\ - -L../../lib -L../../api \ - -Wformat-overflow=0 +libstdc++.a: + ln -s `$(CXX) $(CXXFLAGS) -print-file-name=libstdc++.a` + +clean: distclean + +distclean: + /bin/rm -f docker_wrapper $(addsuffix .exe, docker_wrapper) *.o libstdc++.a + +install: all -docker_wrapper: docker_wrapper.cpp - g++ $(CXXFLAGS) docker_wrapper.cpp \ - -lboinc_api -lboinc -lpthread \ - -o docker_wrapper +docker_wrapper: docker_wrapper.o $(MAKEFILE_STDLIB) $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a + $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -o docker_wrapper docker_wrapper.o \ + -lboinc_api -lboinc $(MAKEFILE_LDFLAGS) \ + $(STDCPPTC) diff --git a/samples/docker_wrapper/docker_wrapper.cpp b/samples/docker_wrapper/docker_wrapper.cpp index 317175b9dd..70d9df0039 100644 --- a/samples/docker_wrapper/docker_wrapper.cpp +++ b/samples/docker_wrapper/docker_wrapper.cpp @@ -553,7 +553,7 @@ int main(int argc, char** argv) { if (boinc_is_standalone()) { cli_prog = "docker"; } else { - cli_prog = docker_cli_prog(aid.hostinfo.docker_type); + cli_prog = docker_cli_prog(aid.host_info.docker_type); } #endif