• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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