From 5069527d5291ad559a212b79db8cedfb368f84a4 Mon Sep 17 00:00:00 2001 From: Haïkel Guémar Date: Feb 27 2010 14:20:45 +0000 Subject: use cmake build system, autotools being deprecated by upstream --- diff --git a/opencv-cmake-libdir.patch b/opencv-cmake-libdir.patch new file mode 100644 index 0000000..f0d6b1b --- /dev/null +++ b/opencv-cmake-libdir.patch @@ -0,0 +1,163 @@ +diff -Naur OpenCV-2.0.0.orig/3rdparty/flann/CMakeLists.txt OpenCV-2.0.0/3rdparty/flann/CMakeLists.txt +--- OpenCV-2.0.0.orig/3rdparty/flann/CMakeLists.txt 2009-10-01 01:21:00.000000000 +0100 ++++ OpenCV-2.0.0/3rdparty/flann/CMakeLists.txt 2010-02-25 23:10:44.000000000 +0100 +@@ -86,8 +86,8 @@ + INSTALL ( + TARGETS flann flann_s + RUNTIME DESTINATION bin +- LIBRARY DESTINATION lib +- ARCHIVE DESTINATION lib ++ LIBRARY DESTINATION lib${LIB_SUFFIX} ++ ARCHIVE DESTINATION lib${LIB_SUFFIX} + ) + + # INSTALL ( +diff -Naur OpenCV-2.0.0.orig/CMakeLists.txt OpenCV-2.0.0/CMakeLists.txt +--- OpenCV-2.0.0.orig/CMakeLists.txt 2009-10-01 01:21:05.000000000 +0100 ++++ OpenCV-2.0.0/CMakeLists.txt 2010-02-25 23:10:44.000000000 +0100 +@@ -405,8 +405,8 @@ + + string(REGEX MATCH "[0-9].[0-9]" PYTHON_VERSION_MAJOR_MINOR "${PYTHON_VERSION_FULL}") + if(UNIX) +- set(PYTHON_PLUGIN_INSTALL_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages/opencv) +- set(PYTHON_PACKAGES_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages) ++ set(PYTHON_PLUGIN_INSTALL_PATH lib${LIB_SUFFIX}/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages/opencv) ++ set(PYTHON_PACKAGES_PATH lib${LIB_SUFFIX}/python${PYTHON_VERSION_MAJOR_MINOR}/site-packages) + endif() + if(WIN32) + get_filename_component(PYTHON_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${PYTHON_VERSION_MAJOR_MINOR}\\InstallPath]" ABSOLUTE CACHE) +@@ -731,7 +731,7 @@ + # Set CMAKE_INCLUDE_DIRS_CONFIGCMAKE to the list of include directories: + + set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/include/opencv") +-set(CMAKE_LIB_DIRS_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/lib") ++set(CMAKE_LIB_DIRS_CONFIGCMAKE "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") + + #exec_program(${CMAKE_COMMAND} ARGS "-E make_directory \"${CMAKE_BINARY_DIR}/unix-install/\"") + exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/unix-install/\"") +@@ -764,19 +764,19 @@ + # Part 2/2: ${BIN_DIR}/unix-install/opencv.pc -> For use *with* "make install" + # prefix=/usr + # exec_prefix=${prefix} +-# libdir=${exec_prefix}/lib ++# libdir=${exec_prefix}/lib${LIB_SUFFIX} + # includedir=${prefix}/include/opencv + # ------------------------------------------------------------------------------------------- + set(prefix ${CMAKE_INSTALL_PREFIX}) + set(exec_prefix "\${prefix}") +-set(libdir "\${exec_prefix}/lib") ++set(libdir "\${exec_prefix}/lib${LIB_SUFFIX}") + set(includedir "\${prefix}/include") + set(VERSION ${OPENCV_VERSION}) + + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/opencv.pc.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/opencv.pc" @ONLY IMMEDIATE) + + if(UNIX) +- install(FILES ${CMAKE_BINARY_DIR}/unix-install/opencv.pc DESTINATION lib/pkgconfig) ++ install(FILES ${CMAKE_BINARY_DIR}/unix-install/opencv.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig) + endif() + + +diff -Naur OpenCV-2.0.0.orig/interfaces/ffopencv/CMakeLists.txt OpenCV-2.0.0/interfaces/ffopencv/CMakeLists.txt +--- OpenCV-2.0.0.orig/interfaces/ffopencv/CMakeLists.txt 2009-10-01 01:20:57.000000000 +0100 ++++ OpenCV-2.0.0/interfaces/ffopencv/CMakeLists.txt 2010-02-25 23:10:44.000000000 +0100 +@@ -33,5 +33,5 @@ + + install(TARGETS ${the_target} + RUNTIME DESTINATION bin COMPONENT main +- LIBRARY DESTINATION lib COMPONENT main ++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT main + ) +diff -Naur OpenCV-2.0.0.orig/src/cv/CMakeLists.txt OpenCV-2.0.0/src/cv/CMakeLists.txt +--- OpenCV-2.0.0.orig/src/cv/CMakeLists.txt 2009-10-01 01:20:58.000000000 +0100 ++++ OpenCV-2.0.0/src/cv/CMakeLists.txt 2010-02-25 23:10:44.000000000 +0100 +@@ -66,8 +66,8 @@ + + install(TARGETS ${the_target} + RUNTIME DESTINATION bin COMPONENT main +- LIBRARY DESTINATION lib COMPONENT main +- ARCHIVE DESTINATION lib COMPONENT main) ++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT main ++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT main) + + install(FILES ${lib_hdrs} + DESTINATION include/opencv +diff -Naur OpenCV-2.0.0.orig/src/cvaux/CMakeLists.txt OpenCV-2.0.0/src/cvaux/CMakeLists.txt +--- OpenCV-2.0.0.orig/src/cvaux/CMakeLists.txt 2009-10-01 01:20:59.000000000 +0100 ++++ OpenCV-2.0.0/src/cvaux/CMakeLists.txt 2010-02-25 23:10:44.000000000 +0100 +@@ -76,8 +76,8 @@ + + install(TARGETS ${the_target} + RUNTIME DESTINATION bin COMPONENT main +- LIBRARY DESTINATION lib COMPONENT main +- ARCHIVE DESTINATION lib COMPONENT main) ++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT main ++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT main) + + install(FILES ${aux_hdrs_ext} + DESTINATION include/opencv +diff -Naur OpenCV-2.0.0.orig/src/cxcore/CMakeLists.txt OpenCV-2.0.0/src/cxcore/CMakeLists.txt +--- OpenCV-2.0.0.orig/src/cxcore/CMakeLists.txt 2009-10-01 01:20:59.000000000 +0100 ++++ OpenCV-2.0.0/src/cxcore/CMakeLists.txt 2010-02-25 23:10:44.000000000 +0100 +@@ -66,8 +66,8 @@ + + install(TARGETS ${the_target} + RUNTIME DESTINATION bin COMPONENT main +- LIBRARY DESTINATION lib COMPONENT main +- ARCHIVE DESTINATION lib COMPONENT main) ++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT main ++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT main) + + # install each module headers separately + install(FILES ${lib_hdrs} +diff -Naur OpenCV-2.0.0.orig/src/highgui/CMakeLists.txt OpenCV-2.0.0/src/highgui/CMakeLists.txt +--- OpenCV-2.0.0.orig/src/highgui/CMakeLists.txt 2009-10-01 01:20:58.000000000 +0100 ++++ OpenCV-2.0.0/src/highgui/CMakeLists.txt 2010-02-25 23:10:44.000000000 +0100 +@@ -191,8 +191,8 @@ + if(WIN32) + target_link_libraries(${the_target} comctl32 gdi32 ole32) + +- if (MSVC) +- target_link_libraries(${the_target} vfw32) ++ if (MSVC) ++ target_link_libraries(${the_target} vfw32) + endif() + + if(MINGW) +@@ -206,8 +206,8 @@ + + install(TARGETS ${the_target} + RUNTIME DESTINATION bin COMPONENT main +- LIBRARY DESTINATION lib COMPONENT main +- ARCHIVE DESTINATION lib COMPONENT main) ++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT main ++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT main) + + install(FILES ${highgui_ext_hdrs} + DESTINATION include/opencv +diff -Naur OpenCV-2.0.0.orig/src/ml/CMakeLists.txt OpenCV-2.0.0/src/ml/CMakeLists.txt +--- OpenCV-2.0.0.orig/src/ml/CMakeLists.txt 2009-10-01 01:20:59.000000000 +0100 ++++ OpenCV-2.0.0/src/ml/CMakeLists.txt 2010-02-25 23:10:44.000000000 +0100 +@@ -61,8 +61,8 @@ + + install(TARGETS ${the_target} + RUNTIME DESTINATION bin COMPONENT main +- LIBRARY DESTINATION lib COMPONENT main +- ARCHIVE DESTINATION lib COMPONENT main) ++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT main ++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT main) + + install(FILES ${lib_hdrs} + DESTINATION include/opencv +diff -Naur OpenCV-2.0.0.orig/tests/cxts/CMakeLists.txt OpenCV-2.0.0/tests/cxts/CMakeLists.txt +--- OpenCV-2.0.0.orig/tests/cxts/CMakeLists.txt 2009-10-01 01:20:56.000000000 +0100 ++++ OpenCV-2.0.0/tests/cxts/CMakeLists.txt 2010-02-25 23:10:44.000000000 +0100 +@@ -63,6 +63,6 @@ + if(WIN32) + install(TARGETS ${the_target} + RUNTIME DESTINATION bin COMPONENT main +- LIBRARY DESTINATION lib COMPONENT main +- ARCHIVE DESTINATION lib COMPONENT main) ++ LIBRARY DESTINATION lib${LIB_SUFFIX} COMPONENT main ++ ARCHIVE DESTINATION lib${LIB_SUFFIX} COMPONENT main) + endif() diff --git a/opencv.spec b/opencv.spec index 1178351..ed0a0b6 100644 --- a/opencv.spec +++ b/opencv.spec @@ -1,10 +1,10 @@ %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} %{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} -%define tar_name OpenCV +%global tar_name OpenCV Name: opencv Version: 2.0.0 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Collection of algorithms for computer vision Group: Development/Libraries @@ -13,11 +13,12 @@ License: BSD URL: http://opencv.willowgarage.com/wiki/ Source0: http://prdownloads.sourceforge.net/opencvlibrary/%{tar_name}-%{version}.tar.bz2 Source1: opencv-samples-Makefile -Patch0: opencv-2.0.0-data-automake.patch -Patch1: opencv-2.0.0-apps-automake.patch +# Fedora cmake macros define -DLIB_SUFFIX=64 on 64 bits platforms +Patch0: opencv-cmake-libdir.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libtool +BuildRequires: cmake >= 2.4 BuildRequires: gtk2-devel BuildRequires: unicap-devel @@ -32,9 +33,9 @@ BuildRequires: libpng-devel BuildRequires: libjpeg-devel BuildRequires: libtiff-devel BuildRequires: libtool -BuildRequires: swig >= 1.3.24, zlib-devel, pkgconfig +BuildRequires: zlib-devel, pkgconfig BuildRequires: python-devel -BuildRequires: python-imaging, numpy +BuildRequires: python-imaging, numpy, swig >= 1.3.24 %{?_with_ffmpeg:BuildRequires: ffmpeg-devel >= 0.4.9} %{!?_without_gstreamer:BuildRequires: gstreamer-devel} %{?_with_xine:BuildRequires: xine-lib-devel} @@ -54,8 +55,18 @@ Requires: pkgconfig %description devel This package contains the OpenCV C/C++ library and header files, as well as documentation. It should be installed if you want to develop programs that -will use the OpenCV library. +will use the OpenCV library. You should consider installing opencv-devel-docs +package. +%package devel-docs +Summary: Development files for using the OpenCV library +Group: Development/Libraries +Requires: opencv-devel = %{version}-%{release} +Requires: pkgconfig +BuildArch: noarch + +%description devel-docs +This package contains the OpenCV documentation and examples programs. %package python Summary: Python bindings for apps which use OpenCV @@ -70,10 +81,7 @@ This package contains Python bindings for the OpenCV library. %prep %setup -q -n %{tar_name}-%{version} -%patch0 -p1 -b .automake -%patch1 -p1 -b .automake -#Renew the autotools (and remove rpath). -autoreconf -vif +%patch0 -p1 %build @@ -81,18 +89,20 @@ autoreconf -vif export CXXFLAGS="%{__global_cflags} -m32 -fasynchronous-unwind-tables" %endif -export SWIG_PYTHON_LIBS=%{_libdir} -%configure --disable-static --enable-apps \ - %{?_with_ffmpeg:--with-ffmpeg}%{!?_with_ffmpeg:--without-ffmpeg} \ - %{!?_without_gstreamer:--with-gstreamer} \ - %{?_with_xine:--with-xine --without-quicktime} \ - --with-unicap \ - --with-1394libs --without-quicktime \ -%ifarch i386 i586 - --disable-sse2 \ -%endif -make %{?_smp_mflags} +# enabled by default if libraries are presents at build time: +# GTK, GSTREAMER, UNICAP, 1394, V4L +# non available on Fedora: FFMPEG, XINE +%cmake -DENABLE_OPENMP=1\ + %{?_without_gstreamer:-DWITH_GSTREAMER=0} \ + %{!?_with_ffmpeg:-DWITH_FFMPEG=0} \ + %{!?_with_xine:-DWITH_XINE=0} \ + -DBUILD_SWIG_PYTHON_SUPPORT=1 \ + -DINSTALL_C_EXAMPLES=1 \ + -DINSTALL_PYTHON_EXAMPLES=1 \ +. +make VERBOSE=1 %{?_smp_mflags} + %install @@ -106,16 +116,19 @@ rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/samples/c/build_all.sh \ $RPM_BUILD_ROOT%{_datadir}/%{name}/samples/c/facedetect.cmd install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/%{name}/samples/c/GNUmakefile install -m644 cvconfig.h $RPM_BUILD_ROOT%{_includedir}/%{name}/cvconfig.h +mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}/ +# install documentation +install -m644 doc/%{name}.pdf $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}/%{name}.pdf +install -m644 doc/*.{htm,png,jpg} $RPM_BUILD_ROOT%{_docdir}/%{name}-doc-%{version}/ -#Remove unversioned documentation -rm -rf $RPM_BUILD_ROOT%{_docdir}/opencv -#And Octave since we don't build against it yet -rm -rf $RPM_BUILD_ROOT%{_datadir}/opencv/{samples/octave/,ChangeLog,THANKS} - +# fix dos end of lines +sed -i 's|\r||g' $RPM_BUILD_ROOT/%{_datadir}/%{name}/samples/c/adaptiveskindetector.cpp +# remove unnecessary documentation +rm -rf $RPM_BUILD_ROOT%{_datadir}/opencv/{doc/,samples/octave/} %check -#Check fails since we don't support most video -#read/write capability and we don't provide a display +# Check fails since we don't support most video +# read/write capability and we don't provide a display %ifnarch ppc64 make check || : %endif @@ -132,12 +145,11 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %doc AUTHORS ChangeLog COPYING THANKS TODO -%{_bindir}/opencv-* +%{_bindir}/opencv_* %{_libdir}/lib*.so.* %dir %{_datadir}/opencv %{_datadir}/opencv/haarcascades %{_datadir}/opencv/lbpcascades -%{_datadir}/opencv/readme.txt %files devel @@ -145,20 +157,37 @@ rm -rf $RPM_BUILD_ROOT %{_includedir}/opencv %{_libdir}/lib*.so %{_libdir}/pkgconfig/opencv.pc +%{_datadir}/opencv/OpenCVConfig.cmake + +%files devel-docs +%defattr(-,root,root,-) %doc %{_datadir}/doc/opencv-2.0.0/ %doc %dir %{_datadir}/opencv/samples %doc %{_datadir}/opencv/samples/c -%doc %{_datadir}/opencv/samples/CMake - +%doc %{_docdir}/%{name}-doc-%{version}/%{name}.pdf +%doc %{_docdir}/%{name}-doc-%{version}/*.htm +%doc %{_docdir}/%{name}-doc-%{version}/%{name}.jpg +%doc %{_docdir}/%{name}-doc-%{version}/%{name}-logo*.png %files python %defattr(-,root,root,-) -%{python_sitearch}/opencv +%{python_sitearch}/cv.so %doc %dir %{_datadir}/opencv/samples %doc %{_datadir}/opencv/samples/python +# old SWIG wrappers +%{python_sitearch}/opencv %changelog +* Thu Feb 25 2010 Haïkel Guémar - 2.0.0-6 +- use cmake build system +- applications renamed to opencv_xxx instead of opencv-xxx +- add devel-docs subpackage #546605 +- add OpenCVConfig.cmake +- enable openmp build +- enable old SWIG based python wrappers +- opencv package is a good boy and use global instead of define + * Tue Feb 16 2010 Karel Klic - 2.0.0-5 - Set CXXFLAXS without -match=i386 for i386 architecture #565074 @@ -169,7 +198,7 @@ rm -rf $RPM_BUILD_ROOT - Fixed spec file issues detected by rpmlint * Sun Dec 06 2009 Haïkel Guémar - 2.0.0-2 -- Fix autotools scripts (missing LBP features) - #544167 +- Fix autotools scripts (missing LBP features) - #544167 * Fri Nov 27 2009 Haïkel Guémar - 2.0.0-1 - Updated to 2.0.0