Merge pull request #3837 from mshabunin:abi-compliance
This commit is contained in:
commit
e157d70d43
@ -244,6 +244,7 @@ OCV_OPTION(ENABLE_NOISY_WARNINGS "Show all warnings even if they are too no
|
|||||||
OCV_OPTION(OPENCV_WARNINGS_ARE_ERRORS "Treat warnings as errors" OFF )
|
OCV_OPTION(OPENCV_WARNINGS_ARE_ERRORS "Treat warnings as errors" OFF )
|
||||||
OCV_OPTION(ANDROID_EXAMPLES_WITH_LIBS "Build binaries of Android examples with native libraries" OFF IF ANDROID )
|
OCV_OPTION(ANDROID_EXAMPLES_WITH_LIBS "Build binaries of Android examples with native libraries" OFF IF ANDROID )
|
||||||
OCV_OPTION(ENABLE_IMPL_COLLECTION "Collect implementation data on function call" OFF )
|
OCV_OPTION(ENABLE_IMPL_COLLECTION "Collect implementation data on function call" OFF )
|
||||||
|
OCV_OPTION(GENERATE_ABI_DESCRIPTOR "Generate XML file for abi_compliance_checker tool" OFF IF UNIX)
|
||||||
|
|
||||||
if(ENABLE_IMPL_COLLECTION)
|
if(ENABLE_IMPL_COLLECTION)
|
||||||
add_definitions(-DCV_COLLECT_IMPL_DATA)
|
add_definitions(-DCV_COLLECT_IMPL_DATA)
|
||||||
@ -639,6 +640,9 @@ include(cmake/OpenCVGenConfig.cmake)
|
|||||||
# Generate Info.plist for the IOS framework
|
# Generate Info.plist for the IOS framework
|
||||||
include(cmake/OpenCVGenInfoPlist.cmake)
|
include(cmake/OpenCVGenInfoPlist.cmake)
|
||||||
|
|
||||||
|
# Generate ABI descriptor
|
||||||
|
include(cmake/OpenCVGenABI.cmake)
|
||||||
|
|
||||||
# Generate environment setup file
|
# Generate environment setup file
|
||||||
if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
|
if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH)
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
|
29
cmake/OpenCVGenABI.cmake
Normal file
29
cmake/OpenCVGenABI.cmake
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
if (NOT GENERATE_ABI_DESCRIPTOR)
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(filename "opencv_abi.xml")
|
||||||
|
set(path1 "${CMAKE_BINARY_DIR}/${filename}")
|
||||||
|
|
||||||
|
set(modules "${OPENCV_MODULES_PUBLIC}")
|
||||||
|
ocv_list_filterout(modules "opencv_ts")
|
||||||
|
|
||||||
|
message(STATUS "Generating ABI compliance checker configuration: ${filename}")
|
||||||
|
|
||||||
|
if (OPENCV_VCSVERSION AND NOT OPENCV_VCSVERSION STREQUAL "unknown")
|
||||||
|
set(OPENCV_ABI_VERSION "${OPENCV_VCSVERSION}")
|
||||||
|
else()
|
||||||
|
set(OPENCV_ABI_VERSION "${OPENCV_VERSION}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Headers
|
||||||
|
set(OPENCV_ABI_HEADERS "{RELPATH}/${OPENCV_INCLUDE_INSTALL_PATH}")
|
||||||
|
|
||||||
|
# Libraries
|
||||||
|
set(OPENCV_ABI_LIBRARIES "{RELPATH}/${OPENCV_LIB_INSTALL_PATH}")
|
||||||
|
|
||||||
|
# Options
|
||||||
|
set(OPENCV_ABI_GCC_OPTIONS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}")
|
||||||
|
string(REGEX REPLACE "([^ ]) +([^ ])" "\\1\\n \\2" OPENCV_ABI_GCC_OPTIONS "${OPENCV_ABI_GCC_OPTIONS}")
|
||||||
|
|
||||||
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/opencv_abi.xml.in" "${path1}")
|
40
cmake/templates/opencv_abi.xml.in
Normal file
40
cmake/templates/opencv_abi.xml.in
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
This file is auto-generated
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
<descriptor>
|
||||||
|
|
||||||
|
<version>
|
||||||
|
@OPENCV_ABI_VERSION@
|
||||||
|
</version>
|
||||||
|
|
||||||
|
<headers>
|
||||||
|
@OPENCV_ABI_HEADERS@
|
||||||
|
</headers>
|
||||||
|
|
||||||
|
<libs>
|
||||||
|
@OPENCV_ABI_LIBRARIES@
|
||||||
|
</libs>
|
||||||
|
|
||||||
|
<skip_headers>
|
||||||
|
opencv2/core/cuda*
|
||||||
|
opencv2/core/private*
|
||||||
|
opencv/cxeigen.hpp
|
||||||
|
opencv2/core/eigen.hpp
|
||||||
|
opencv2/flann/hdf5.h
|
||||||
|
opencv2/imgcodecs/ios.h
|
||||||
|
opencv2/videoio/cap_ios.h
|
||||||
|
opencv2/ts.hpp
|
||||||
|
opencv2/ts/*
|
||||||
|
opencv2/xobjdetect/private.hpp
|
||||||
|
</skip_headers>
|
||||||
|
|
||||||
|
<gcc_options>
|
||||||
|
@OPENCV_ABI_GCC_OPTIONS@
|
||||||
|
</gcc_options>
|
||||||
|
|
||||||
|
</descriptor>
|
@ -51,12 +51,6 @@
|
|||||||
#include "opencv2/photo/photo_c.h"
|
#include "opencv2/photo/photo_c.h"
|
||||||
#include "opencv2/video/tracking_c.h"
|
#include "opencv2/video/tracking_c.h"
|
||||||
#include "opencv2/objdetect/objdetect_c.h"
|
#include "opencv2/objdetect/objdetect_c.h"
|
||||||
#include "opencv2/contrib/compat.hpp"
|
|
||||||
|
|
||||||
#include "opencv2/legacy.hpp"
|
|
||||||
#include "opencv2/legacy/compat.hpp"
|
|
||||||
#include "opencv2/legacy/blobtrack.hpp"
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user