AVT相机arm版本SDK

This commit is contained in:
zhangpeng
2025-04-30 09:26:04 +08:00
parent 837c870f18
commit 78a1c63a95
705 changed files with 148770 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
UNAME = $(shell uname -m)
ifeq ($(UNAME),i386)
ARCH = x86
AUTOWORDSIZE = 32
AUTOFLOATABI = ignore
endif
ifeq ($(UNAME),i486)
ARCH = x86
AUTOWORDSIZE = 32
AUTOFLOATABI = ignore
endif
ifeq ($(UNAME),i586)
ARCH = x86
AUTOWORDSIZE = 32
AUTOFLOATABI = ignore
endif
ifeq ($(UNAME),i686)
ARCH = x86
AUTOWORDSIZE = 32
AUTOFLOATABI = ignore
endif
ifeq ($(UNAME),x86_64)
ARCH = x86
AUTOWORDSIZE = 64
AUTOFLOATABI = ignore
endif
ifeq ($(UNAME),amd64)
ARCH = x86
AUTOWORDSIZE = 64
AUTOFLOATABI = ignore
endif
ifeq ($(UNAME),armv6l)
ARCH = arm
AUTOWORDSIZE = 32
AUTOFLOATABI = soft
endif
ifeq ($(UNAME),armv7l)
ARCH = arm
AUTOWORDSIZE = 32
AUTOFLOATABI = soft
endif
ifeq ($(UNAME),aarch64)
ARCH = arm
AUTOWORDSIZE = 64
AUTOFLOATABI = hard
endif
#Possible word sizes: 32, 64
WORDSIZE = $(AUTOWORDSIZE)
#Possible float abis: soft, hard
FLOATABI = $(AUTOFLOATABI)
ifneq ($(WORDSIZE),32)
ifneq ($(WORDSIZE),64)
$(error Invalid word size set)
endif
endif
ifneq ($(FLOATABI),soft)
ifneq ($(FLOATABI),hard)
ifneq ($(FLOATABI),ignore)
$(error Invalid float abi set)
endif
endif
endif
#Common tools
PKGCFG = pkg-config
MKDIR = mkdir
RM = rm
CXX = g++
MAKE = make
CP = cp
#Set word size on x86
ifeq ($(ARCH),x86)
ARCH_CFLAGS = -m$(WORDSIZE)
endif
#Configure compiler and linker for soft or hard-float build on ARM
ifeq ($(ARCH),arm)
ifeq ($(FLOATABI),soft)
ARCH_CFLAGS = -marm -mfloat-abi=soft -march=armv4t
else ifeq ($(FLOATABI),hard)
ifeq ($(WORDSIZE),32)
ARCH_CFLAGS = -mthumb -mfloat-abi=hard -march=armv7
else ifeq ($(WORDSIZE),64)
ARCH_CFLAGS = -march=armv8-a
endif
endif
endif
ifeq ($(CONFIG),Debug)
CONFIG_CFLAGS = -O0 -g
else
CONFIG_CFLAGS = -O3
endif
COMMON_CFLAGS = $(CONFIG_CFLAGS) $(ARCH_CFLAGS) -fPIC

View File

@@ -0,0 +1,73 @@
PROJECT_NAME = VimbaCPP
PROJECT_DIR = ../..
VIMBASDK_DIR = $(PROJECT_DIR)/..
MAKE_INCLUDE_DIR = $(CURDIR)
include $(MAKE_INCLUDE_DIR)/Common.mk
CONFIG_DIR = $(ARCH)_$(WORDSIZE)bit
BIN_FILE = lib$(PROJECT_NAME).so
BIN_DIR = dynamic/$(CONFIG_DIR)
OBJ_DIR = object/$(CONFIG_DIR)
BIN_PATH = $(BIN_DIR)/$(BIN_FILE)
all: $(BIN_PATH)
include $(MAKE_INCLUDE_DIR)/VimbaC.mk
SOURCE_DIR = $(PROJECT_DIR)/Source
INCLUDE_DIRS = -I$(PROJECT_DIR)/..
LIBS = $(VIMBAC_LIBS) \
-lpthread
DEFINES =
CFLAGS = $(COMMON_CFLAGS) \
$(VIMBAC_CFLAGS)
OBJ_FILES = $(OBJ_DIR)/AncillaryData.o \
$(OBJ_DIR)/BaseFeature.o \
$(OBJ_DIR)/BasicLockable.o \
$(OBJ_DIR)/BoolFeature.o \
$(OBJ_DIR)/Camera.o \
$(OBJ_DIR)/Clock.o \
$(OBJ_DIR)/CommandFeature.o \
$(OBJ_DIR)/Condition.o \
$(OBJ_DIR)/ConditionHelper.o \
$(OBJ_DIR)/DefaultCameraFactory.o \
$(OBJ_DIR)/EnumEntry.o \
$(OBJ_DIR)/EnumFeature.o \
$(OBJ_DIR)/FeatureContainer.o \
$(OBJ_DIR)/Feature.o \
$(OBJ_DIR)/FileLogger.o \
$(OBJ_DIR)/FloatFeature.o \
$(OBJ_DIR)/Frame.o \
$(OBJ_DIR)/FrameHandler.o \
$(OBJ_DIR)/Interface.o \
$(OBJ_DIR)/IntFeature.o \
$(OBJ_DIR)/Mutex.o \
$(OBJ_DIR)/MutexGuard.o \
$(OBJ_DIR)/RawFeature.o \
$(OBJ_DIR)/Semaphore.o \
$(OBJ_DIR)/StringFeature.o \
$(OBJ_DIR)/VimbaSystem.o
DEPENDENCIES = VimbaC
$(OBJ_DIR)/%.o: $(SOURCE_DIR)/%.cpp $(OBJ_DIR)
$(CXX) -c $(INCLUDE_DIRS) $(DEFINES) $(CFLAGS) -o $@ $<
$(BIN_PATH): $(DEPENDENCIES) $(OBJ_FILES) $(BIN_DIR)
$(CXX) -shared $(ARCH_CFLAGS) -o $(BIN_PATH) $(OBJ_FILES) $(LIBS) -Wl,-rpath,'$$ORIGIN'
clean:
$(RM) dynamic -r -f
$(RM) object -r -f
$(OBJ_DIR):
$(MKDIR) -p $(OBJ_DIR)
$(BIN_DIR):
$(MKDIR) -p $(BIN_DIR)

View File

@@ -0,0 +1,14 @@
include $(MAKE_INCLUDE_DIR)/Common.mk
#Compile options needed for VimbaC
VIMBAC_CFLAGS = -I$(VIMBASDK_DIR)
#Linker options needed for VimbaC
VIMBAC_LIBS = -L$(BIN_DIR) -lVimbaC
#By default we copy libVimbaC.so next to the binary
$(BIN_DIR)/libVimbaC.so: $(BIN_DIR)
$(CP) $(VIMBASDK_DIR)/VimbaC/DynamicLib/$(ARCH)_$(WORDSIZE)bit/libVimbaC.so $(BIN_DIR)/
#Operations we have to do in order to prepare VimbaC
VimbaC: $(BIN_DIR)/libVimbaC.so