2013/12/31 Vadim Zhukov <persg...@gmail.com>: > 2013/12/31 Rafael Sadowski <raf...@sizeofvoid.org>: >> On Tuesday 31 December 2013 01:22:13 Vadim Zhukov wrote: >>> 2013/12/30 Rafael Sadowski <raf...@sizeofvoid.org>: >>> > Hey @ports, >>> > >>> > maintainer update. Okay? >>> >>> Upstream decided to convert opencv_ts to a static library, really? >>> >>> > cheers Rafael >>> >>> -- >>> Vadim Zhukov >> >> Yes, if I can trust my build and the "ArchLinux OpenCV package contents". I >> was also surprised. >> >> cheers Rafael > > I see the following commit upstream: > https://github.com/Itseez/opencv/commit/131458847bbf2fe971c6b5e40a8b59d0d48b0d0c > > "Make ts always static. This allows us to forget about the > GTEST_(CREATE|LINKED_AS)_SHARED_LIBRARY > macros and to get rid of the dependency on cvconfig.h." > > As far as I can see, they bundled GTest into the opencv_ts module, and > now are having problems when GTest is installed on the system and is > picked up (how?! I don't see any mention of find_package(GTest) or > such in CMakeLists.txt files... Maybe it could get linked by > transition from some other external library, though?). Could you, > please, try to do builds both with and without devel/gtest installed, > and compare port-lib-depends-check output? > > If there will be no fallout in both builds, I think we could easily > patch out the "set(OPENCV_MODULE_TYPE STATIC)" line and have opencv_ts > in a shared library, as it should be. If something will break - it > will mean that we have some serious problems already, with current > port, which should get investigated.
After some expirements I've got OpenCV successfully built on i386 with "ts" module as a shared library. I see no problems here, and also I don't see new regression tests starting to fail. The diff I've run with is just: --- modules/ts/CMakeLists.txt.orig Fri Jan 3 12:54:40 2014 +++ modules/ts/CMakeLists.txt Fri Jan 3 13:08:59 2014 @@ -4,8 +4,8 @@ if(IOS) ocv_module_disable(ts) endif() -set(OPENCV_MODULE_TYPE STATIC) -set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE) +#set(OPENCV_MODULE_TYPE STATIC) +#set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE) if(HAVE_CUDA) ocv_include_directories(${CUDA_INCLUDE_DIRS}) Rafael, if this will be okay for you and tested on amd64 (I don't have PIE yet), then I'll update the port after returning from Belarus (January 8-9), unless someone would like to steal a commit. :) -- WBR, Vadim Zhukov