mirror of https://github.com/sz3/libcimbar
-DBUILD_PORTABLE_LINUX for static linking against opencv and libc++
This gets us back to glibc 2.27 (ubuntu 18.04) -- debian stretch would be nicer, but the default build tools (c++1x, cmake) gets slightly more interesting. The output binaries seem like they could be smaller...
This commit is contained in:
parent
729eb7ebcb
commit
7bb1bc8896
|
@ -33,8 +33,17 @@ else() # if not wasm, go find opencv. 3 or 4 should both work
|
||||||
include_directories(${OpenCV_INCLUDE_DIRS})
|
include_directories(${OpenCV_INCLUDE_DIRS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(DEFINED BUILD_PORTABLE_LINUX)
|
||||||
|
find_package(PkgConfig REQUIRED)
|
||||||
|
pkg_check_modules(OPENCV4 REQUIRED opencv4)
|
||||||
|
link_directories(${OPENCV4_STATIC_LIBRARY_DIRS})
|
||||||
|
|
||||||
|
# statically link c++/gcc (not libc!!)
|
||||||
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -static-libstdc++ -static-libgcc")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT DEFINED OPENCV_LIBS)
|
if(NOT DEFINED OPENCV_LIBS)
|
||||||
set(OPENCV_LIBS "opencv_calib3d" "opencv_imgcodecs" "opencv_imgproc" "opencv_photo" "opencv_core")
|
set(OPENCV_LIBS "opencv_calib3d" "opencv_imgcodecs" "opencv_imgproc" "opencv_photo" "opencv_core" ${OPENCV4_STATIC_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT DEFINED CPPFILESYSTEM)
|
if(NOT DEFINED CPPFILESYSTEM)
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# docker run --mount type=bind,source="$(pwd)",target="/usr/src/app" -it ubuntu:18.04
|
||||||
|
|
||||||
|
cd /usr/src/app
|
||||||
|
apt update
|
||||||
|
apt install -y pkgconf g++ cmake
|
||||||
|
apt install -y libgles2-mesa-dev libglfw3-dev
|
||||||
|
|
||||||
|
cd opencv4/
|
||||||
|
mkdir build-portable/ && cd build-portable/
|
||||||
|
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_SHARED_LIBS=OFF -DOPENCV_GENERATE_PKGCONFIG=YES -DOPENCV_FORCE_3RDPARTY_BUILD=YES
|
||||||
|
make -j5 install
|
||||||
|
|
||||||
|
cd /usr/src/app
|
||||||
|
mkdir build-portable/ && cd build-portable/
|
||||||
|
cmake .. -DBUILD_PORTABLE_LINUX=1
|
||||||
|
make -j5 install
|
Loading…
Reference in New Issue