@@ -44,6 +44,111 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
4444 apt-get autoremove -y && apt-get clean && \
4545 rm -rf /var/lib/apt/lists/* /tmp/*
4646
47+ # Install Hik MVS runtime SDK and its runtime dependencies
48+ RUN apt-get update && apt-get install -y --no-install-recommends \
49+ libbz2-1.0 \
50+ libgcc-s1 \
51+ libstdc++6 \
52+ libudev1 \
53+ libusb-1.0-0 \
54+ zlib1g && \
55+ apt-get autoremove -y && apt-get clean && \
56+ rm -rf /var/lib/apt/lists/* /tmp/* && \
57+ set -eux; \
58+ case "${TARGETARCH}" in \
59+ amd64) arch_tag=x86_64; arch_dir=64 ;; \
60+ arm64) arch_tag=aarch64; arch_dir=aarch64 ;; \
61+ *) echo "unsupported TARGETARCH: ${TARGETARCH}" >&2; exit 1 ;; \
62+ esac; \
63+ download_url="https://github.com/Alliance-Algorithm/hik-mvs/releases/latest/download/mvs-sdk-${arch_tag}.tar.gz" ; \
64+ mkdir -p /tmp/mvs-src \
65+ "/opt/mvs-usb3-core/lib/${arch_dir}" \
66+ /opt/mvs-usb3-core/lib/cmake/MVSUSB3Core \
67+ /opt/mvs-usb3-core/include \
68+ /usr/local/bin; \
69+ curl -fsSL -o /tmp/mvs.tar.gz "${download_url}" ; \
70+ tar -xzf /tmp/mvs.tar.gz -C /tmp/mvs-src; \
71+ cp -a "/tmp/mvs-src/lib/${arch_dir}/." "/opt/mvs-usb3-core/lib/${arch_dir}/" ; \
72+ cp -a /tmp/mvs-src/include/. /opt/mvs-usb3-core/include/; \
73+ rm -f "/opt/mvs-usb3-core/lib/${arch_dir}/libusb-1.0.so.0" ; \
74+ case "${TARGETARCH}" in \
75+ amd64) \
76+ rm -f \
77+ "/opt/mvs-usb3-core/lib/${arch_dir}/libCLAllSerial_gcc485_v3_0.so" \
78+ "/opt/mvs-usb3-core/lib/${arch_dir}/libCLProtocol_gcc485_v3_0.so" \
79+ "/opt/mvs-usb3-core/lib/${arch_dir}/libCLSerCOM.so" \
80+ "/opt/mvs-usb3-core/lib/${arch_dir}/libCLSerHvc.so" \
81+ "/opt/mvs-usb3-core/lib/${arch_dir}/libGCBase_gcc485_v3_0.so" \
82+ "/opt/mvs-usb3-core/lib/${arch_dir}/libGenCP_gcc485_v3_0.so" \
83+ "/opt/mvs-usb3-core/lib/${arch_dir}/liblog4cpp_gcc485_v3_0.so" \
84+ "/opt/mvs-usb3-core/lib/${arch_dir}/libLog_gcc485_v3_0.so" \
85+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMvCameraControlWrapper.so" \
86+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMvCameraControlWrapper.so.4.7.0.1" \
87+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMvCamLVision.so" \
88+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMvCamLVision.so.4.7.0.3" \
89+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMVGigEVisionSDK.so" \
90+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMVGigEVisionSDK.so.4.7.1.1" \
91+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMVFGControl.so" \
92+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMvProducerVIR.so" \
93+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMvLCProducer.so" \
94+ "/opt/mvs-usb3-core/lib/${arch_dir}/MvLCProducer.so" \
95+ "/opt/mvs-usb3-core/lib/${arch_dir}/MvProducerGEV.cti" \
96+ "/opt/mvs-usb3-core/lib/${arch_dir}/MvFGProducerCML.cti" \
97+ "/opt/mvs-usb3-core/lib/${arch_dir}/MvFGProducerCXP.cti" \
98+ "/opt/mvs-usb3-core/lib/${arch_dir}/MvFGProducerGEV.cti" \
99+ "/opt/mvs-usb3-core/lib/${arch_dir}/MvFGProducerXoF.cti" ; \
100+ ;; \
101+ arm64) \
102+ rm -f \
103+ "/opt/mvs-usb3-core/lib/${arch_dir}/libCLAllSerial_gcc494_v3_0.so" \
104+ "/opt/mvs-usb3-core/lib/${arch_dir}/libCLProtocol_gcc494_v3_0.so" \
105+ "/opt/mvs-usb3-core/lib/${arch_dir}/libCLSerCOM.so" \
106+ "/opt/mvs-usb3-core/lib/${arch_dir}/libGCBase_gcc494_v3_0.so" \
107+ "/opt/mvs-usb3-core/lib/${arch_dir}/libGenCP_gcc494_v3_0.so" \
108+ "/opt/mvs-usb3-core/lib/${arch_dir}/liblog4cpp_gcc494_v3_0.so" \
109+ "/opt/mvs-usb3-core/lib/${arch_dir}/libLog_gcc494_v3_0.so" \
110+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMvCameraControlWrapper.so" \
111+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMvCameraControlWrapper.so.4.7.0.1" \
112+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMvCamLVision.so" \
113+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMvCamLVision.so.4.7.0.3" \
114+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMVGigEVisionSDK.so" \
115+ "/opt/mvs-usb3-core/lib/${arch_dir}/libMVGigEVisionSDK.so.4.7.1.1" \
116+ "/opt/mvs-usb3-core/lib/${arch_dir}/MvProducerGEV.cti" ; \
117+ ;; \
118+ *) echo "unsupported TARGETARCH: ${TARGETARCH}" >&2; exit 1 ;; \
119+ esac; \
120+ rm -rf /var/lib/apt/lists/* /tmp/mvs-src /tmp/mvs.tar.gz; \
121+ cmake_dir=/opt/mvs-usb3-core/lib/cmake/MVSUSB3Core; \
122+ <<EOF cat > "${cmake_dir}/MVSUSB3CoreConfig.cmake"
123+ get_filename_component(MVSUSB3Core_ROOT "\$ {CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
124+
125+ set(MVSUSB3Core_INCLUDE_DIR "\$ {MVSUSB3Core_ROOT}/include" )
126+ set(MVSUSB3Core_INCLUDE_DIRS "\$ {MVSUSB3Core_INCLUDE_DIR}" )
127+ set(MVSUSB3Core_LIBRARY_DIR "\$ {MVSUSB3Core_ROOT}/lib/${arch_dir}" )
128+ set(MVSUSB3Core_LIBRARY "\$ {MVSUSB3Core_LIBRARY_DIR}/libMvCameraControl.so" )
129+ set(MVSUSB3Core_LIBRARIES "\$ {MVSUSB3Core_LIBRARY}" )
130+
131+ if(NOT EXISTS "\$ {MVSUSB3Core_INCLUDE_DIR}/MvCameraControl.h" )
132+ set(MVSUSB3Core_FOUND FALSE)
133+ message(FATAL_ERROR "MVSUSB3Core headers not found under \$ {MVSUSB3Core_INCLUDE_DIR}" )
134+ endif()
135+
136+ if(NOT EXISTS "\$ {MVSUSB3Core_LIBRARY}" )
137+ set(MVSUSB3Core_FOUND FALSE)
138+ message(FATAL_ERROR "MVSUSB3Core library libMvCameraControl.so not found under \$ {MVSUSB3Core_LIBRARY_DIR}" )
139+ endif()
140+
141+ if(NOT TARGET MVSUSB3Core::MVSUSB3Core)
142+ add_library(MVSUSB3Core::MVSUSB3Core SHARED IMPORTED GLOBAL)
143+ set_target_properties(MVSUSB3Core::MVSUSB3Core PROPERTIES
144+ IMPORTED_LOCATION "\$ {MVSUSB3Core_LIBRARY}"
145+ INTERFACE_INCLUDE_DIRECTORIES "\$ {MVSUSB3Core_INCLUDE_DIR}"
146+ )
147+ endif()
148+
149+ set(MVSUSB3Core_FOUND TRUE)
150+ EOF
151+
47152
48153# Install openvino runtime
49154RUN if [ "${TARGETARCH}" = "amd64" ]; then \
0 commit comments