diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4c38b5b713..59547653fc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -497,6 +497,8 @@ include(cmake/OpenCVGenAndroidMK.cmake)
# Generate OpenCVŠ”onfig.cmake and OpenCVConfig-version.cmake for cmake projects
include(cmake/OpenCVGenConfig.cmake)
+# Generate Info.plist for the IOS framework
+include(cmake/OpenCVGenInfoPlist.cmake)
# ----------------------------------------------------------------------------
# Summary:
diff --git a/cmake/OpenCVGenInfoPlist.cmake b/cmake/OpenCVGenInfoPlist.cmake
new file mode 100644
index 0000000000..97c674ceb7
--- /dev/null
+++ b/cmake/OpenCVGenInfoPlist.cmake
@@ -0,0 +1,4 @@
+if(IOS)
+ configure_file("${OpenCV_SOURCE_DIR}/platforms/ios/Info.plist.in"
+ "${CMAKE_BINARY_DIR}/ios/Info.plist")
+endif()
diff --git a/platforms/ios/Info.plist.in b/platforms/ios/Info.plist.in
index 6bcfe862d0..b2a3baf524 100644
--- a/platforms/ios/Info.plist.in
+++ b/platforms/ios/Info.plist.in
@@ -7,9 +7,9 @@
CFBundleIdentifier
org.opencv
CFBundleVersion
- ${VERSION}
+ ${OPENCV_LIBVERSION}
CFBundleShortVersionString
- ${VERSION}
+ ${OPENCV_LIBVERSION}
CFBundleSignature
????
CFBundlePackageType
diff --git a/platforms/ios/build_framework.py b/platforms/ios/build_framework.py
index 7dfd39460e..cb3788f7d5 100755
--- a/platforms/ios/build_framework.py
+++ b/platforms/ios/build_framework.py
@@ -71,19 +71,11 @@ def put_framework_together(srcroot, dstroot):
os.makedirs(framework_dir)
os.chdir(framework_dir)
- # determine OpenCV version (without subminor part)
- tdir0 = "../build/" + targetlist[0]
- cfg = open(tdir0 + "/cvconfig.h", "rt")
- for l in cfg.readlines():
- if l.startswith("#define VERSION"):
- opencv_version = l[l.find("\"")+1:l.rfind(".")]
- break
- cfg.close()
-
# form the directory tree
dstdir = "Versions/A"
os.makedirs(dstdir + "/Resources")
+ tdir0 = "../build/" + targetlist[0]
# copy headers
shutil.copytree(tdir0 + "/install/include/opencv2", dstdir + "/Headers")
@@ -91,13 +83,8 @@ def put_framework_together(srcroot, dstroot):
wlist = " ".join(["../build/" + t + "/lib/Release/libopencv_world.a" for t in targetlist])
os.system("lipo -create " + wlist + " -o " + dstdir + "/opencv2")
- # form Info.plist
- srcfile = open(srcroot + "/platforms/ios/Info.plist.in", "rt")
- dstfile = open(dstdir + "/Resources/Info.plist", "wt")
- for l in srcfile.readlines():
- dstfile.write(l.replace("${VERSION}", opencv_version))
- srcfile.close()
- dstfile.close()
+ # copy Info.plist
+ shutil.copyfile(tdir0 + "/ios/Info.plist", dstdir + "/Resources/Info.plist")
# make symbolic links
os.symlink("A", "Versions/Current")