Skip to content

Commit 1176b22

Browse files
authored
Add functionality to copy .so .dll and .dylib libraries to exectuable location (#8046)
1 parent 2a8059b commit 1176b22

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,15 @@ ReleaseABI: $(TARGET)
168168
ifneq ($(strip $(PROJECT_ADDONS_DATA)),)
169169
@$(MAKE) $(JOBS) copyaddonsdata PROJECT_ADDONS_DATA="$(PROJECT_ADDONS_DATA)"
170170
endif
171+
@$(MAKE) $(JOBS) copyaddonslibs ADDONS_SHARED_LIBS_SO="$(ADDONS_SHARED_LIBS_SO)" ADDONS_SHARED_LIBS_DLL="$(ADDONS_SHARED_LIBS_DLL)" ADDONS_SHARED_LIBS_DYLIB="$(ADDONS_SHARED_LIBS_DYLIB)"
171172
@$(MAKE) $(JOBS) afterplatform BIN_NAME=$(BIN_NAME) ABIS_TO_COMPILE="$(ABIS_TO_COMPILE_RELEASE)" RUN_TARGET=$(RUN_TARGET) TARGET=$(TARGET)
172173
@$(PROJECT_AFTER)
173174

174175
DebugABI: $(TARGET)
175176
ifneq ($(strip $(PROJECT_ADDONS_DATA)),)
176177
@$(MAKE) $(JOBS) copyaddonsdata PROJECT_ADDONS_DATA="$(PROJECT_ADDONS_DATA)"
177178
endif
179+
@$(MAKE) $(JOBS) copyaddonslibs ADDONS_SHARED_LIBS_SO="$(ADDONS_SHARED_LIBS_SO)" ADDONS_SHARED_LIBS_DLL="$(ADDONS_SHARED_LIBS_DLL)" ADDONS_SHARED_LIBS_DYLIB="$(ADDONS_SHARED_LIBS_DYLIB)"
178180
@$(MAKE) $(JOBS) afterplatform BIN_NAME=$(BIN_NAME) ABIS_TO_COMPILE="$(ABIS_TO_COMPILE_DEBUG)" RUN_TARGET=$(RUN_TARGET) TARGET=$(TARGET)
179181
@$(PROJECT_AFTER)
180182

@@ -453,6 +455,25 @@ copyaddonsdata:
453455
@mkdir -p bin/data
454456
@cp -rf $(PROJECT_ADDONS_DATA) bin/data/
455457

458+
copyaddonslibs:
459+
@if [ -n "$(ADDONS_SHARED_LIBS_SO)" ]; then \
460+
echo "Copying shared libraries"; \
461+
for lib in $(ADDONS_SHARED_LIBS_SO); do \
462+
cp -f $$lib bin/; \
463+
done \
464+
fi
465+
@if [ -n "$(ADDONS_SHARED_LIBS_DLL)" ]; then \
466+
echo "Copying shared libraries"; \
467+
for lib in $(ADDONS_SHARED_LIBS_DLL); do \
468+
cp -f $$lib bin/; \
469+
done \
470+
fi
471+
@if [ -n "$(ADDONS_SHARED_LIBS_DYLIB)" ]; then \
472+
echo "Copying shared libraries"; \
473+
for lib in $(ADDONS_SHARED_LIBS_DYLIB); do \
474+
cp -f $$lib bin/; \
475+
done \
476+
fi
456477
help:
457478
@echo
458479
@echo openFrameworks universal makefile

libs/openFrameworksCompiled/project/makefileCommon/config.addons.mk

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,13 @@ define parse_addons_libraries
3838
$(eval PARSED_ADDONS_LIBS_PLATFORM_LIB_PATHS = $(filter-out $(ADDON_LIBS_EXCLUDE),$(addsuffix /libs/*/lib/$(ABI_LIB_SUBPATH), $1))) \
3939
$(eval PARSED_ALL_PLATFORM_LIBS = $(shell $(FIND) $(PARSED_ADDONS_LIBS_PLATFORM_LIB_PATHS) -type d 2> /dev/null | grep -v "/\.[^\.]" )) \
4040
$(if $(PARSED_ALL_PLATFORM_LIBS), \
41+
$(eval ADDONS_SHARED_LIBS_SO = $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.so 2> /dev/null | grep -v "/\.[^\.]" )) \
42+
$(eval ADDONS_SHARED_LIBS_DLL = $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.dll 2> /dev/null | grep -v "/\.[^\.]" )) \
43+
$(eval ADDONS_SHARED_LIBS_DYLIB = $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.dylib 2> /dev/null | grep -v "/\.[^\.]" )) \
4144
$(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_STATICS = $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.a 2> /dev/null | grep -v "/\.[^\.]" )) \
42-
$(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED = $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.so 2> /dev/null | grep -v "/\.[^\.]" )) \
43-
$(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED += $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.dylib 2> /dev/null | grep -v "/\.[^\.]" )) \
44-
$(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED += $(shell $(FIND) $(PARSED_ALL_PLATFORM_LIBS) -name *.dll 2> /dev/null | grep -v "/\.[^\.]" )) \
45+
$(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED = $(ADDONS_SHARED_LIBS_SO)) \
46+
$(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED += $(ADDONS_SHARED_LIBS_DLL)) \
47+
$(eval PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED += $(ADDONS_SHARED_LIBS_DYLIB)) \
4548
$(eval PARSED_ADDONS_LIBS = $(PARSED_ADDONS_LIBS_PLATFORM_LIBS_STATICS)) \
4649
$(eval PARSED_ADDONS_LIBS += $(PARSED_ADDONS_LIBS_PLATFORM_LIBS_SHARED)) \
4750
)

libs/openFrameworksCompiled/project/makefileCommon/config.linux.common.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ PLATFORM_CXXFLAGS += $(PLATFORM_CXXVER)
188188
# Note: Leave a leading space when adding list items with the += operator
189189
################################################################################
190190

191-
PLATFORM_LDFLAGS = -Wl,-rpath=./libs:./bin/libs -Wl,--as-needed -Wl,--gc-sections
191+
PLATFORM_LDFLAGS = -Wl,-rpath=./libs:./bin/libs:./ -Wl,--as-needed -Wl,--gc-sections
192192

193193
ifeq ($(OF_USING_STD_FS),1)
194194
# gcc 8 need special file system linking with -lstdc++fs. gcc 9 onwards doesn't

0 commit comments

Comments
 (0)