Commit Graph

746 Commits

Author SHA1 Message Date
Alexander Alekhin
08941b7890 cmake: avoid amending of CMAKE_COMPILER_IS_[GNUCXX|CLANGCXX|CCACHE] vars
- Recommended compiler checks:
  - GCC: CV_GCC
  - Clang: CV_CLANG
- fixed problem with CMAKE_CXX_COMPILER_ID=Clang/AppleClang mess on MacOSX
  Details: cmake --help-policy CMP0025
- do not declare Clang as GCC compiler
2018-03-27 16:16:59 +03:00
Vadim Pisarevsky
88b689bcf1 Merge pull request #10876 from alalek:android_static_libs 2018-02-19 14:16:06 +00:00
Alexander Alekhin
ddb482b14a android: move .a files into 'staticlibs' directory
to reduce overhead of gradle builds
2018-02-15 16:31:49 +03:00
Alexander Alekhin
36f11a54e1 cmake: customize OpenCV build via CMake script hooks 2018-02-15 14:03:38 +03:00
Alexander Alekhin
c434198ee5 Merge pull request #10864 from alalek:cmake_update_debug_info 2018-02-14 12:47:43 +00:00
Alexander Alekhin
95014f311d cmake: debug info 2018-02-14 13:44:10 +03:00
Maksim Shabunin
2200e13c71 cmake: refactored scripts with samples building:
- allow installing samples sources on all platforms
  even if BUILD_EXAMPLES is disabled,  fixed minor
  issues in sources installation process
- use 'example_<group>_<name>' scheme for target and binary file naming
- use single function for sample executable creation
2018-02-12 18:42:36 +03:00
Alexander Alekhin
65ba2e0adf cmake: update adding of extra compiler flags
Read flags from 'cache' instead of resetting them
2018-02-09 17:09:35 +03:00
luz.paz
413fba14ab Some mist. typo fixes
Found via `codespell -i 3 -w --skip="./3rdparty" -I ../opencv-whitelist.txt`
2018-02-07 06:59:15 -05:00
Dmitry Kurtaev
10e1de74d2 Intel Inference Engine deep learning backend (#10608)
* Intel Inference Engine deep learning backend.

* OpenFace network using Inference Engine backend
2018-02-06 11:57:35 +03:00
Alexander Alekhin
06455fc0cd Merge pull request #10764 from sturkmen72:update_cmake 2018-02-05 14:07:40 +00:00
Suleyman TURKMEN
3b191bf2dd update CMakeList.txt 2018-02-05 16:23:52 +03:00
Maksim Shabunin
82aff110b7 cmake: allow providing list of extra modules paths 2018-02-01 19:02:02 +03:00
Maksim Shabunin
e56d6054aa Do not build protobuf without dnn (#10689)
* Do not build protobuf if dnn is disabled

* Added BUILD_LIST cmake option to the cache

* Moved protobuf to the top level

* Fixed static build

* Fixed world build

* fixup! Fixed world build
2018-02-01 16:30:23 +03:00
Alexander Alekhin
c4f9ff0285 cmake: avoid using of pkg-config in cross-compilation mode unconditionally
- specify PKG_CONFIG_LIBDIR environment variable to new target SYSROOT
2018-01-31 16:56:24 +03:00
Maksim Shabunin
1b0ff57562 Merge pull request #10621 from mshabunin:disable-docs
Documentation generation refactoring (#10621)

* Documentation build updates:

- disable documentation by default, do not add to ALL target
- combine Doxygen and Javadoc
- optimize Doxygen html

* javadoc: fix path in build directory

* cmake: fix "Documentation" status line
2018-01-18 16:37:19 +03:00
Maksim Shabunin
c0ae812aa2 Add ThinLTO support for clang 2018-01-16 15:26:28 +03:00
Alexander Alekhin
8533b45ce9 cmake: Java/Android SDK refactoring 2018-01-13 02:12:39 +00:00
Alexander Alekhin
f3dde79ed6 cmake: allow BUILD_FAT_JAVA_LIB for non-Android targets too 2018-01-08 19:24:39 +00:00
Alexander Alekhin
50365b7741 cmake: update CMAKE_POSITION_INDEPENDENT_CODE 2017-12-15 15:56:19 +03:00
Alexander Alekhin
a9de6900e5 cmake(3rdparty): BUILD_ options before WITH_ options 2017-12-14 14:49:31 +03:00
Alexander Alekhin
3e45795232 cmake: update timestamp status
- avoid unnecessary rebuilding of OpenCV libraries
- use timestamp of the first launch of CMake
- to return to previous behavior use `-UOPENCV_TIMESTAMP` CMake option
2017-12-13 15:31:36 +03:00
Alexander Alekhin
a2811d93dd Merge pull request #10253 from alalek:cmake_disable_optimization 2017-12-08 11:35:11 +00:00
Alexander Alekhin
cadd1a0074 cmake: CV_DISABLE_OPTIMIZATION disables IPP, OpenCL, Eigen and LAPACK too 2017-12-07 17:54:37 +03:00
Pavel Rojtberg
6fb9d42c3f Hid symbols in static builds, added LTO flags, removed exports from ts 2017-12-07 10:26:48 +03:00
Alexander Alekhin
22c0bb7dc9 cmake: fix WITH_VTK usage
'WITH_' variables is intended to enable CMake scripts with some autodetection logic.
'WITH_' can be off, but components is really enabled via command-line options
with proper variables setup (including 'HAVE_').
2017-11-29 21:43:09 +03:00
Alexander Alekhin
b19f81b35b cmake: update BUILD_DOCS / ENABLE_PYLINT options, add BUILD_JAVA 2017-11-29 21:43:09 +03:00
Alexander Alekhin
28717d0437 cmake: don't try to detect Python libraries for iOS builds
Python executable is not used to generate code for iOS builds
2017-11-29 21:43:09 +03:00
Alexander Alekhin
5ea50d1e8d cmake: don't use Eigen auto-detection in cross-compiling modes
Sometimes it tries to use host '/usr/include' directory and garbages
compiler flags with invalid '-I /usr/include'
2017-11-29 21:43:09 +03:00
Maksim Shabunin
5ebb234746 cmake: simplified configuration output 2017-11-17 11:57:49 +03:00
Alexander Alekhin
1bd865120c cmake: disable IPP on iOS
IPP is used on iPhoneSimulator only.
2017-11-02 17:36:53 +03:00
Alexander Alekhin
22496742b4 Merge pull request #9864 from mapreri:multiarch 2017-10-30 15:43:42 +00:00
Alexander Alekhin
0622146a93 cmake: disable generation of pkg-config file during Xcode build 2017-10-23 12:31:20 +03:00
Mattia Rizzolo
437da0a3d9
Use CMake's ${CMAKE_INSTALL_LIBDIR} variable to decide where to place the built libraries
The typical situation where the usual, plain 'lib' is not wanted is in a
multiarch system, that allows installation of the same library built for
multiple architectures.
Use the standard ${CMAKE_INSTALL_LIBDIR} variable (coming from the
GNUInstallDirs module) to figure where to put the built libraries.

Signed-off-by: Mattia Rizzolo <mattia@mapreri.org>
2017-10-17 00:55:08 +02:00
Maksim Shabunin
83655ba9be MediaSDK video backend: Windows support 2017-10-11 16:33:37 +03:00
Sayed Adel
d077778074 Added support for VSX 2017-10-09 00:32:29 +00:00
Congxiang Pan
89b6e68e1e Merge pull request #9466 from huningxin:js
GSoC 2017: Improve and Extend the JavaScript Bindings for OpenCV (#9466)

* Initial support for build with emscripten

mkdir build_js
cd build_js
cmake -D CMAKE_TOOLCHAIN_FILE=/path/to/emsdk/emsdk-portable/emscripten/master/cmake/Modules/Platform/Emscripten.cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

* Add js module

The output is build/bin/opencv_js.js

* Fix opencv2/calib3d.hpp not found issue

* Add module name

Usage:
var cv = cv();

* Add total memory as 128MB and allow growth

* Add compilation flags for emscripten

* Use EMSCRIPTEN build target

* Disable js module for non emscripten build

* Bind the preload file path to root

Usage:
face_cascade.load('haarcascade_frontalface_default.xml');

* add test folder

* fix test files

* Copy js module test to bin

* Support to run tests on Node.js

Fix tests to import cv Module when runtime is node.
Add tests.js to use qunit to auto run tests.
Modify umd wrapper to support Module is not defined.

Usage:
node tests.js

* Support UMD and file system

Wrap the opencv_js.js to opencv.js by UMD wrapper

Use emscripten file system API to load files instead of generating data file or
embedding them. It supports both browser and node.js usages.

* Fix incorrect module name in tests

* Add package.json to add dependence of qunit

* Add js_tutorials folder and a intro page of opencv.js

Enable BUILD_DOCS in CMakeLists.txt.
Add new folder of js_tutorials in folder opencv/doc.
Imitate the tutorials of OpenCV-Python to create a intro page of opencv.js and a setup guide

* Import and use binding gen from opencvjs project

* Modify the embindgen.py to pass the build and test

* Add classes and functions white list

* Consolidate hdr_parser.py (#31)

Use hdr_parser.py of python module

Add js flag to support js binding generator.

* Use emscripten::vecFromJSArray for input vector param

Fix part of #23

* Fix test cases after #34

Fix #39

* Expose groupRectangles and CascadeClassifier.empty

* Add js highgui tutorials

add tutorials of imread&imshow and createTrackbar in doc/js_tutorials/js_gui folder
add interactive tutorial webpage for imread&imshow and createTrackbar in doc/js_tutorials/js_interactive_tutorials folder, and some images needed.
change doc/CMakeLists.txt to copy the interactive tutorial webpage and opencv.js to the tutorials' destination folder

* rm useless annotation in doc/CMakeLists.txt

* fix some nonstandard indentation and space

* add check if canvas is valid

* Expose BackgroundSubtractorMOG2

Fix #43

* Fix build of js doc

Limit copy_js_interactive_tutorials for doxygen build
Add dep to opencv.js

Fix #53

* Implement cv.imread & cv.imshow and insert interactive pages in tutorials (#55)

* add helper.js

* delete ALL in add target copy_js_interactive_tutorials to avoid dependence error

* Insert interactive pages in tutorials

insert the old interactive pages in markdown by using \htmlonly and \endhtmlonly command.
delete the useless interactive page
rename js_interactive_tutorials to js_assets to put some images needed in

* fix the depends of the target doxygen

add opencv.js to depends and delete the useless target of copy_js_assets

* change filename helper.js to helpers.js

* disable button or trankbar before opencv.js is ready

* Expose CV_64F

Fix #65

* improve cv.imshow to display different types as native imshow

* add utils.js to reuse functions and update tutorials

* Make doxygen depend on bin/opencv.js

* Fix memory issue of matFromArray

Fix #37

* Merge pull request from ganwenyao/tutorial_18

* Add notes for ganwenyao/tutorial_18

* Modifying for ganwenyao/tutorial_18

* Change Mat constructor with data to 5 parameters

* Mat supports constructor with Scalar

Fix #60

* update cv.imread cause the memory issue of matFromArray has been fixed

* fix canvas name and default input image

* Expose cv::Moments

Fix #85

* Add -Wno-missing-prototypes for emscripten build

* fix canvas name

* add tutorial of video input and output

* Expose enums as emscripten consts

Fix #72

* update the tutorial to use Mat constructor with Scalar and change lena.jpg

* Exclude cv::Mat for vecFromJSArray

Fix #82

* Add unit tests for cv.moments

* Fix the unit tests.

* add checkbox and stop button

* add adapter.js to make sure compatibility fo video tutorials

* Support default parameters with function overloading

* modify enums to constants

* Use https URL for MathJax.js

Fix #109

* Comment out the debug print in embindgen.py

* Expose RotatedRect

Fix #96

* replace enum with constants and improve onload function

* delete some useless paras cause #105 fixed this

* Modify const name

* Modify Contour Properties

* tutorials for imgprc2 and objdec

* Expose more functions for img proc tutorials

Fix #76

* Expose polylines for video analysis tutorial

Fix #121

* Expose constants for default parameters of img proc tutorials

Fix #122

* Fix wrong parameter types of Mat.copyTo

Fix #87

* Support default parameters of mat.convertTo

Fix #123

* Support default parameters for external constructors

Fix #131

* Revert "Expose polylines for video analysis tutorial"

This reverts commit 3ce7615652e510d30e3c0014706ac38c98883189.

Fix #121

* Support cv.minMaxLoc

Fix #127

* Expose cv.minEnclosingCircle

Fix #126

* Add video analysis tutorials

add three video tutorials, Meanshift and Camshift, Optical Flow Background Subtraction
add cup.mp4 and box.mp4 for demo in tutorials

* improve image processing tutorials

* repalce console.warn with throw to throw exception

* add try-catch to throw exception in code demo

* Change mat.size() return value to JS Array object

Fix #140

* add a note about different channels order between canvas and native opencv

* add a note about how to capture video from video files

* Binding cv.Scalar to JS array

Fix #147

* Add JS cv.Scalar object into helpers.js

* Update Install OpenCV-JavaScript tutorial page

Fix #44

* Update the OpenCV-JavaScript introduction page

Fix #44

* add cv.VideoCapture and read() function

* set the size of the hidden canvas same as the video

* Add Using OpenCV-JavaScript tutorial page

Fix #44

* fix some bad code style

* Update tutorials after 8/2 sync meeting

Changes include:
- Use OpenCV.js name instead of OpenCV-JavaScript
- Put using OpenCV.js ahead of build OpenCV.js
- Refine usage and introduction page
- Muted the video in tutorials

* Fix a typo in introduction page

* use cv.VideoCapture and its read() function to read video

* replace OpenCV-JavaScript with OpenCV.js

* Use onload of async script in js_usage tutorial

* add more info about mat.data

* Change Size to value_object

* Integrate Moh and Sajjad's editing into introduction page

* Change Point to value_object

* Change Rect to value_object with helper object

* Add helper objects for Point and Size

* Change RotatedRect to value_object with helpers

* Change MinMaxLoc and Circle to value_object

* Change TermCriteria to value_object

* Fix core_bindings.cpp for MinMaxLoc and Circle

* Remove unused types

* Change meanShift and CamShift to return Rect

* Change methods of RotatedRect to static

* Change mat.data from methods to property

Fix #75 and #77

* support img id and element in cv.imread

* Change mat.size to property and add mat.step

Fix #163

* Add matFromArray and matFromImageData as JS helpers

Fix #79, #78

* Lower camel case for Mat element getters

Fix #81

* Mat.getRoiRect and tests

Fix #86

* Support type for Mat.ptr

Fix #83

* Name changing of Mat element getters

'getUcharAt` -> 'ucharAt'

* fix code style and args names

* Fix helpers.js due to cv.Mat API update

* Fix opencv.js usage tutorial

* Fix a typo of js_setup

* Change Moments to value_object

* Add Range as value_object

Fix #171

* Support Mat.diag and Mat.isContinous

Fix #84 and #89

* Support Mat.setTo

Fix #88

* Apply edits to js_intro

* Apply edits to js_usage

* Apply edits to js_setup

* update tutorials to apply data type change

* Modify tutorials

* add core tutorials

* delete MatVector elements and delete useless set operation

* add tutorials_objdec_camera

* Add instructions for WebAssembly

* apply tech writer's feedbacks into tutorials

* Organize white list by modules

* Change size to method and bind to MatExpr.size()

Fix #177

* improve tutorials

* Modify core tutorials

* add params list and explanations for OpenCV.js functions

* remove face_profile from Face Detection in Video Capture

* Add demos link

* Change Gui to GUI

* Update js_intro based on Moh and Sajjad's edits

* Fixup for 3.3.0 rebase

* Update js_intro per Moh's suggestion

* Update contributors list per Moh's idea

* add adapter.js in video_display tutorial

* Change Mat.getRoiRect to Mat.roi

Fix #194

* Remove unnecessary files for test

Fix #192

* Licenses updated to UC BSD 3-Clause

* Apply OpenCV coding style for C++ files

* Add OpenCV license for python and js files

* Fix coding style issue in helpers.js

* Remove unused test_commons.js

* Fix coding style of test_imgproc.js

* Fix coding style of test_mat.js

* Fix space before semicolon

* Fix coding style of test_objdetect.js

* Fix coding style of tests.js

* Fix coding style of test_utils.js

* Fix coding style of test_video.js

* Fix failures of node.js tests

* Add eslint rule config and fix eslint errors

* Add eslint config for js/src and fix eslint errors

* Clean up the opencv.js dependencies

Fix #186

* Fix build issue for python generator

* Fix doxygen buildbot failure

* delete trailing whitespace, blank line at EOF and replace tab with space

* Fix tutorial_js_root reference issue for non opencv.js build

* replace the file with small size

* Initial commit of build_js.py

* Move the js build configurations to build script

* Add wasm build support

* Update OpenCV.js build tutorial by using script

* Fix global var issue in tests

* Add a README.md for build_js.py

* Copy the haar cascade files from data dir for tutorials

* Not use memory init file

* Disable debug print for modules/js/CMakeLists.txt

* Check files when build done

* Fix image name in js_gradients tutorial

* Fix image load issue in js_trackbar tutorial

* Find the opencv source directory via relative path by default

* Make the cmake args based on build_doc option

* Fix a typo in js_setup.markdown

* Fix make failure issue on config generated by build_js.py

* Eliminate js branch of hdr_parser.py

* Extract examples from js_basic_ops tutorial

* Fix coding style of utils.js

* Improve examples error handling

Handle:
1. opencv.js loading errors
2. script errors (Error)
3. cv::Exception

Fix #217

* Add enable_exception option into build_js.py

* Support print exception for exception catching disabled build

* Extract example from js_usage tutorial

* Avoid copying .eslintrc.json when building doc

Fix #223

* Revert to use onload as opencv.js ready event

* Use 4 spaces indention for js examples

* embed html in tutorials with iframe tag

* Revert to use onload as opencv.js ready event

* Extract examples from js_video_display tutorial

* Implement Utils object

* modify core imgprc and face_detection tutorials

* Fix examples of js_gui tutorials

* Fix coding style of utils.js

* Modify tutorials

* Extract example from js_face_detection_camera tutorial

* Disable new-cap check in eslint

* Extract examples from js_meanshift tutorial

* Extract examples from video tutorials

* Remove new-cap declaration and update grammer in comments

* Change textarea width to 100 to align with eslint config

* Fix printError issue when opencv.js loading fails

* Remove BUILD_opencv_js dependency for doc build

Fix #213

* Expose cv::getBuildInformation

* Dump opencv build info when opencv.js loaded for live examples

* Make the button to stand out in js live examples

Fix #235

* Style for disabled button

* Add js_imgproc_camera.html example

* Fix coding style of imgproc_camera example

* Add js_imgproc_camera tutorial

* Remove link to opencv.js demos

* doc: copy opencv.js on build, use absolute paths for assets

* doc: reuse existed file box.mp4
2017-09-25 16:52:07 +03:00
Alexander Alekhin
936234d5b1 python(test): enable pylint checks for tests 2017-09-03 18:19:17 +00:00
Zoltán Mizsei
c7516b840a Haiku got no -lrt and -ld 2017-08-26 11:35:13 +02:00
Alexander Alekhin
d195f2775a cmake: change Pylint integration 2017-08-24 14:59:33 +03:00
Alexander Alekhin
9c14a2f0aa Merge pull request #9395 from lupustr3:pvlasov/icv2017u3_update 2017-08-24 11:48:53 +00:00
Boris Fomitchev
c48807c383 Merge pull request #9418 from borisfom:cuda9
CUDA9 build fixed, added detection (#9418)

* CUDA9 build fixed, added detection

* Replacing deprecated __shfl_xxx with __shfl_sync, fixing bogus CUDA9 warnings
2017-08-24 07:11:44 +00:00
Pavel Vlasov
a57718e1ac ICV2017u3 package update;
- Optimizations set change. Now IPP integrations will provide code for SSE42, AVX2 and AVX512 (SKX) CPUs only. For HW below SSE42 IPP code is disabled.
- Performance regressions fixes for IPP code paths;
- cv::boxFilter integration improvement;
- cv::filter2D integration improvement;
2017-08-23 14:24:43 +03:00
Alexander Alekhin
a710317aa0 Merge pull request #9421 from csukuangfj:fix-doc 2017-08-22 20:51:49 +00:00
Guillaume Jacob
688fcf14f3 CMakeLists.txt: fix a typo in a message 2017-08-22 20:48:35 +02:00
Alexander Alekhin
f694192878 cmake: use CMAKE_CXX_COMPILER_VERSION (CMake 2.8.8+)
- '-fvisibility' flag was updated
- PVAPI library detection was changed
2017-08-21 18:06:40 +03:00
KUANG Fangjun
336996152a Improve the documentation. 2017-08-20 17:21:39 +02:00
Alexander Alekhin
87a98e4562 cmake: CMP0026 NEW 2017-08-19 15:15:05 +00:00
Alexander Alekhin
e63d3dd25f cmake: CMP0046 NEW 2017-08-19 15:15:05 +00:00
Alexander Alekhin
b6949c5088 cmake: CMP0022 NEW 2017-08-19 15:15:05 +00:00
Alexander Alekhin
870d9502bb cmake: CMP0020 NEW 2017-08-19 15:15:05 +00:00
Alexander Alekhin
6ff9fc67bb build: HAVE_LIBPTHREAD, HAVE_PTHREAD(S) => HAVE_PTHREAD 2017-08-14 10:59:38 +03:00
KUANG, Fangjun
4bbe67451d fix some typos in the documentation. 2017-08-08 17:32:04 +02:00
Alexander Alekhin
b46e741c95 core(alloc): drop unused code, use memalign() functions instead of hacks
valgrind provides better detection without memory buffer hacks
2017-07-27 18:10:41 +03:00
Alexander Alekhin
92f182bc3b minimal CMake version => 2.8.12.2 2017-07-21 14:06:19 +03:00
Alexander Alekhin
3f02f569af cmake: update CXX11 compiler flag 2017-07-03 16:13:12 +03:00
Alexander Alekhin
006966e629 trace: initial support for code trace 2017-06-26 17:07:13 +03:00
Vadim Pisarevsky
fa7e7e0ff9 Merge pull request #8900 from alalek:update_android_build 2017-06-23 10:58:53 +00:00
Dmitry Kurtaev
16368a275b cmake: add Halide support (#8794) 2017-06-21 14:33:47 +03:00
Alexander Alekhin
3e3e2dd512 android: make optional "cpufeatures", build fixes for NDK r15 2017-06-21 13:34:19 +03:00
Maksim Shabunin
c06f3d63e8 Initial version of MediaSDK integration:
- cmake dependencies search (WITH_MFX option)
- raw H264, H265, MPEG2 encoding and decoding
- tests for supported formats
2017-06-20 12:15:10 +03:00
Alexander Alekhin
a3189e36c0 Merge pull request #8753 from RyuheiMori:fix-cpu-feature-detection-on-android 2017-06-12 16:08:08 +00:00
Alexander Alekhin
3dee87b697 update CPU detection on ANDROID patch 2017-06-11 05:06:49 +00:00
Alexander Alekhin
1961bb1857 cmake: add ENABLE_BUILD_HARDENING option 2017-06-08 00:39:29 +00:00
Robin Chavignat
c4a3278bab Fix build with CUDA on windows with JOM and Ninja (#6372) 2017-05-30 15:57:39 +02:00
Ryuhei Mori
bb3a416320 Fix cpu features detection on android 2017-05-19 21:19:13 +08:00
Vadim Pisarevsky
f77e9bc995 Merge pull request #8582 from alalek:cmake_disable_insource_builds 2017-05-03 11:53:32 +00:00
Pavel Vlasov
35c7216846 IPP for OpenCV 2017u2 initial enabling patch; 2017-04-20 20:26:30 +03:00
Alexander Alekhin
a07d8a89b6 cmake: disallow in-source builds 2017-04-15 06:55:46 +03:00
Maksim Shabunin
e72d353b45 Download cache 2017-03-24 16:19:56 +03:00
Alexander Alekhin
69df0eee77 cmake: fix try_compile() with --coverage flags 2017-03-23 18:15:24 +03:00
Vadim Pisarevsky
a57d144076 Merge pull request #7462 from alalek:cpu_multi_target 2017-03-21 19:51:32 +00:00
Alexander Alekhin
88a338a3eb cmake: disable pkg-config for Apple frameworks 2017-02-21 19:23:37 +03:00
Alexander Alekhin
1304ad1e12 Merge pull request #8160 from ilijapuaca:master 2017-02-14 13:03:09 +00:00
Alexander Alekhin
e16227b53c cmake: support multiple CPU targets 2017-02-13 19:52:59 +03:00
Gabriel B. Nunes
88e54ca1c0 Work around CMake bug that mangles install dir
CMake has a long-standing bug/feature (see [here](https://cmake.org/pipermail/cmake/2015-March/060204.html) and reply [here](https://cmake.org/pipermail/cmake/2015-March/060209.html)) which can mangle certain path variables by attempting to make them into relative paths if you try to set them with CACHE PATH.

Say you have your OpenCV download at `/path/on/my/computer/to/opencv/`. What actually happens is that if you try to set this variable by invoking CMAKE with `-DCMAKE_INSTALL_PREFIX=/my/desired/install/path`, what you end up is *not* `/usr/local/` and *not* `my/desired/install/path`, but instead, this monstrosity: `/path/on/my/computer/to/opencv/src/OpenCV-build//my/desired/install/path`.

That is, CMake attempts, for some reason, to turn the path that you passed into a path relative to `${CMAKE_BINARY_DIR}`. See the links I posted above: this is a known (and apparently unfixable) issue with CMake.

In OpenCV's case, among other potential issues, this leads to broken paths in `opencv_tests_config.hpp`, which can break the build or cause bizarre behaviour.

The fix for this issue, as stated in my links above, is to test that the variable hasn't been set yet with an `if(NOT DEFINED ...)` before attempting to set it. This is what I've implemented here. I admit I don't know enough about OpenCV's internals to know whether you *really* need to force the install to be in `/usr/local`, but as it stands right now you get *neither* a clean `/usr/local` path *nor* a customized `/my/desired/install/path`, but a broken mess. This change at least allows the user to customize their install directory.

In the meantime, there's a workaround for this, by explicitly defining the variable as a path with `-DCMAKE_INSTALL_PREFIX:PATH=my/desired/install/path`. But if this change can save anyone else the hours of headaches that I had today, I'll be happy.
2017-02-11 20:40:37 -05:00
Ilija Puaca
1b842c4762 Updated version of libwebp to 0.6.0. Removed iOS from build exceptions for libwebp 2017-02-09 23:35:27 +01:00
Maksim Shabunin
50d350bcd1 Enable GNU STL debug mode for debug builds 2017-01-31 12:36:26 +03:00
Alexander Alekhin
36b34465a4 cmake: include contrib modules into opencv_world 2017-01-23 18:45:53 +03:00
Vadim Pisarevsky
ad74fdd7cc moved BLAS/LAPACK detection scripts from opencv_contrib/dnn to the main repository (#7918)
* moved BLAS/LAPACK detection scripts from opencv_contrib/dnn to the main repository.

* trying to fix the bug with undefined symbols sgesdd_ and dgesdd_

* removed extra whitespaces; disabled LAPACK on IOS
2016-12-22 22:57:44 +03:00
Alexander Alekhin
3ae1990727 Merge pull request #7769 from alalek:cmake_ffmpeg_cleanup 2016-12-01 20:24:05 +00:00
Alexander Alekhin
39ff8a0d26 cmake: cleanup ffmpeg detection 2016-12-01 19:33:27 +03:00
Alexander Alekhin
71b2409df0 ts: added findDataFile() utility function and SkipTestException 2016-11-29 23:17:39 +03:00
Alexander Alekhin
14d2046f80 cmake: ccache 2016-11-18 15:09:44 +03:00
Alexander Alekhin
3e0252ebcc docs: drop plantuml support 2016-11-10 16:29:04 +03:00
Arek
e77bc24b96 Merge pull request #7518 from ArkadiuszRaj:aravis-buffer-status
Aravis several updates

* Fix adressing camera with id=0

* Aravis buffer property control & status added

* Modify of autoexposure algorith, ream frame ID from aravis + new properites

* Change of macro name

* VideoCapture now returns no frame on camera disconnecion

* Allow aravis-0.4 usage, proper camera object release.
2016-10-22 19:07:55 +03:00
ArkadiuszRaj
70c12e5407 Basic support for GigE cameras via Aravis SDK 2016-10-07 21:55:49 +02:00
mshabunin
81938af5d0 Added support for OpenVX 1.0, updated cmake part, minor fixes 2016-10-04 15:31:54 +03:00
Vadim Pisarevsky
dc3d0cbc22 Merge pull request #7266 from alalek:pr7159 2016-09-16 21:18:26 +00:00
Alexander Alekhin
f85e33f4af videoio: refactor AVFoundation code integration 2016-09-09 17:42:41 +03:00
Maksim Shabunin
ae3dfa80db OpenVX HAL 2016-08-25 16:08:45 +03:00
yoffy
767780a4b2 add VideoCapture / VideoWriter AVFoundation implementation for Mac 2016-08-23 10:51:58 -07:00
Pavel Vlasov
a462d76a95 Implementations instrumentation framework for OpenCV performance system; 2016-08-17 16:26:03 +03:00
Vladislav Sovrasov
a113d9bcc1 Add MKL support 2016-08-10 11:20:23 +03:00
Alexander Alekhin
18e7afdfd9 cmake: add OPENCV_ENABLE_NONFREE option and macro 2016-08-04 19:23:49 +03:00
look4pritam
6f22f49c02 Grassroots DiCoM i.e. GDCM based DICOM image reader is added. 2016-07-08 16:08:55 +03:00
Elif Albuz
c65d2a0d86 Add Carotene - NVIDIA Hardware-Abstraction-Layer for ARM platforms 2016-07-04 23:45:07 -07:00
Alexander Alekhin
cb48183d02 Merge pull request #6711 from Dubrzr:vs_compile_cuda_fix 2016-06-29 11:03:47 +00:00
Alexander Alekhin
f57e3ce5f3 cmake: don't use absolute paths with/without CMAKE_INSTALL_PREFIX
CPack can't work with absolute paths.
2016-06-22 16:38:54 +03:00
Julien Dubiel
33ab236ed3 Use CMAKE_LIBRARY_PATH_FLAG variable instead of -L. 2016-06-21 20:00:50 +02:00