1if(MSVC) 2 set(opencv_CXXFLAGS "/DWIN32 /D_WINDOWS /W3 /GR /EHsc /std:c++17") 3 set(opencv_CFLAGS "${CMAKE_C_FLAGS}") 4 set(opencv_LDFLAGS "${CMAKE_SHARED_LINKER_FLAGS}") 5 if(DEBUG_MODE) 6 set(opencv_Debug ON) 7 endif() 8elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") 9 set(opencv_CXXFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") 10 set(opencv_CFLAGS "-fstack-protector-all -Wno-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") 11 set(opencv_LDFLAGS "-Wl") 12elseif(${CMAKE_SYSTEM_NAME} MATCHES "Windows") 13 set(opencv_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") 14 set(opencv_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") 15 set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -Wno-attributes -Wno-unknown-pragmas") 16 set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -Wno-unused-value -Wno-implicit-fallthrough") 17else() 18 set(opencv_CXXFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2") 19 set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -O2") 20 if(NOT ENABLE_GLIBCXX) 21 set(opencv_CXXFLAGS "${opencv_CXXFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") 22 endif() 23 set(opencv_CFLAGS "-fstack-protector-all -Wno-maybe-uninitialized -Wno-unused-parameter -D_FORTIFY_SOURCE=2 -O2") 24 set(opencv_LDFLAGS "-Wl,-z,relro,-z,now,-z,noexecstack -s") 25endif() 26 27if(ENABLE_GITEE_EULER) 28 set(GIT_REPOSITORY "https://gitee.com/src-openeuler/opencv.git") 29 set(GIT_TAG "openEuler-22.03-LTS") 30 set(SHA256 "d8b00a5440c8e5d275aa5b141f89d69ee196d9dcd2d2032ddd8ef4b04010999a") 31 set(OPENCV_SRC "${CMAKE_BINARY_DIR}/_deps/opencv-src") 32 __download_pkg_with_git(opencv ${GIT_REPOSITORY} ${GIT_TAG} ${SHA256}) 33 execute_process(COMMAND tar -xf ${OPENCV_SRC}/opencv-4.5.2.tar.gz --strip-components 1 -C ${OPENCV_SRC}) 34else() 35if(ENABLE_GITEE) 36 set(REQ_URL "https://gitee.com/mirrors/opencv/repository/archive/4.5.2.tar.gz") 37 set(SHA256 "ae258ed50aa039279c3d36afdea5c6ecf762515836b27871a8957c610d0424f8") 38else() 39 set(REQ_URL "https://github.com/opencv/opencv/archive/4.5.2.tar.gz") 40 set(SHA256 "ae258ed50aa039279c3d36afdea5c6ecf762515836b27871a8957c610d0424f8") 41endif() 42endif() 43 44if(MSVC) 45 mindspore_add_pkg(opencv 46 VER 4.5.2 47 LIBS opencv_core452 opencv_imgcodecs452 opencv_imgproc452 48 LIB_PATH x64/*/lib 49 URL ${REQ_URL} 50 SHA256 ${SHA256} 51 CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF 52 -DWITH_ADE=OFF 53 -DBUILD_ZLIB=ON 54 -DBUILD_JPEG=ON 55 -DBUILD_PNG=ON 56 -DWITH_OPENEXR=OFF 57 -DBUILD_TESTS=OFF 58 -DBUILD_PERF_TESTS=OFF 59 -DBUILD_opencv_apps=OFF 60 -DCMAKE_SKIP_RPATH=TRUE 61 -DBUILD_opencv_python3=OFF 62 -DBUILD_opencv_videoio=OFF 63 -DWITH_FFMPEG=OFF 64 -DWITH_TIFF=ON 65 -DBUILD_TIFF=ON 66 -DWITH_JASPER=OFF 67 -DBUILD_JASPER=OFF 68 -DCV_TRACE=OFF # cause memory usage increacing 69 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2022-0561_and_CVE-2022-0562.patch001 70 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2022-0908.patch002 71 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2022-3970.patch 72 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2023-3316.patch 73 PATCHES ${TOP_DIR}/third_party/patch/opencv/Fix_Binary.patch) 74elseif(WIN32) 75 mindspore_add_pkg(opencv 76 VER 4.5.2 77 LIBS libopencv_core452.dll.a libopencv_imgcodecs452.dll.a libopencv_imgproc452.dll.a 78 LIB_PATH x64/mingw/lib 79 URL ${REQ_URL} 80 SHA256 ${SHA256} 81 CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF 82 -DWITH_ADE=OFF 83 -DBUILD_ZLIB=ON 84 -DBUILD_JPEG=ON 85 -DBUILD_PNG=ON 86 -DWITH_OPENEXR=OFF 87 -DBUILD_TESTS=OFF 88 -DBUILD_PERF_TESTS=OFF 89 -DBUILD_opencv_apps=OFF 90 -DCMAKE_SKIP_RPATH=TRUE 91 -DBUILD_opencv_python3=OFF 92 -DBUILD_opencv_videoio=OFF 93 -DWITH_FFMPEG=OFF 94 -DWITH_TIFF=ON 95 -DBUILD_TIFF=ON 96 -DWITH_JASPER=OFF 97 -DBUILD_JASPER=OFF 98 -DCV_TRACE=OFF # cause memory usage increacing 99 -DWITH_LAPACK=OFF 100 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2022-0561_and_CVE-2022-0562.patch001 101 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2022-0908.patch002 102 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2022-3970.patch 103 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2023-3316.patch 104 PATCHES ${TOP_DIR}/third_party/patch/opencv/Fix_Binary.patch) 105else() 106 mindspore_add_pkg(opencv 107 VER 4.5.2 108 LIBS opencv_core opencv_imgcodecs opencv_imgproc 109 URL ${REQ_URL} 110 SHA256 ${SHA256} 111 CMAKE_OPTION -DCMAKE_BUILD_TYPE=Release -DWITH_PROTOBUF=OFF -DWITH_WEBP=OFF -DWITH_IPP=OFF 112 -DWITH_ADE=OFF 113 -DBUILD_ZLIB=ON 114 -DBUILD_JPEG=ON 115 -DBUILD_PNG=ON 116 -DWITH_OPENEXR=OFF 117 -DBUILD_TESTS=OFF 118 -DBUILD_PERF_TESTS=OFF 119 -DBUILD_opencv_apps=OFF 120 -DCMAKE_SKIP_RPATH=TRUE 121 -DBUILD_opencv_python3=OFF 122 -DWITH_FFMPEG=OFF 123 -DWITH_TIFF=ON 124 -DBUILD_TIFF=ON 125 -DWITH_JASPER=OFF 126 -DBUILD_JASPER=OFF 127 -DCV_TRACE=OFF # cause memory usage increacing 128 -DWITH_LAPACK=OFF 129 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2022-0561_and_CVE-2022-0562.patch001 130 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2022-0908.patch002 131 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2022-3970.patch 132 PATCHES ${TOP_DIR}/third_party/patch/opencv/libtiff/CVE-2023-3316.patch 133 PATCHES ${TOP_DIR}/third_party/patch/opencv/Fix_Binary.patch) 134endif() 135 136if(MSVC) 137 include_directories(${opencv_INC}) 138 add_library(mindspore::opencv_core ALIAS opencv::opencv_core452) 139 add_library(mindspore::opencv_imgcodecs ALIAS opencv::opencv_imgcodecs452) 140 add_library(mindspore::opencv_imgproc ALIAS opencv::opencv_imgproc452) 141elseif(WIN32) 142 include_directories(${opencv_INC}) 143 add_library(mindspore::opencv_core ALIAS opencv::libopencv_core452.dll.a) 144 add_library(mindspore::opencv_imgcodecs ALIAS opencv::libopencv_imgcodecs452.dll.a) 145 add_library(mindspore::opencv_imgproc ALIAS opencv::libopencv_imgproc452.dll.a) 146else() 147 include_directories(${opencv_INC}/opencv4) 148 add_library(mindspore::opencv_core ALIAS opencv::opencv_core) 149 add_library(mindspore::opencv_imgcodecs ALIAS opencv::opencv_imgcodecs) 150 add_library(mindspore::opencv_imgproc ALIAS opencv::opencv_imgproc) 151endif() 152