File OpenSceneGraph.spec of Package OpenSceneGraph

#
# spec file for package OpenSceneGraph
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define _osg_so_nr	80
%define _opt_so_nr	12

Name:           OpenSceneGraph
Version:        3.0.1
Release:        0
Summary:        Open source high performance 3D graphics toolkit
License:        LGPL-2.1 and WXwindows
Group:          Productivity/Graphics/Other
Url:            http://openscenegraph.org/projects/osg
Source:         http://www.openscenegraph.org/downloads/stable_releases/%{name}-%{version}/source/%{name}-%{version}.zip
Source1:        %{name}.png
Source90:       %{name}-rpmlintrc
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch0:         %{name}-gcc43.patch
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
Patch1:         %{name}-xine12.patch
# PATCH-FIX-UPSTREAM OpenSceneGraph-libgif6.patch
# Used Raymond Wooninck kdelibs patch as a template https://git.reviewboard.kde.org/r/109478/
Patch2:         %{name}-libgif6.patch
BuildRequires:  cmake
BuildRequires:  curl-devel
BuildRequires:  dos2unix
BuildRequires:  fdupes
BuildRequires:  fltk-devel
BuildRequires:  freeglut-devel
BuildRequires:  freetype2-devel
BuildRequires:  gcc-c++
BuildRequires:  giflib-devel
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} < 1230
BuildRequires:  gtkglext-devel
%endif
BuildRequires:  OpenEXR-devel
BuildRequires:  SDL-devel
BuildRequires:  libQtWebKit-devel
BuildRequires:  libjpeg-devel
BuildRequires:  liboil-devel
BuildRequires:  libpng-devel
BuildRequires:  libpoppler-glib-devel
BuildRequires:  librsvg-devel
BuildRequires:  libsndfile-devel
BuildRequires:  libtiff-devel
BuildRequires:  libxine-devel
BuildRequires:  openal-soft-devel
BuildRequires:  phonon-devel
BuildRequires:  pkgconfig
BuildRequires:  qt-devel
BuildRequires:  unzip
BuildRequires:  update-desktop-files
BuildRequires:  zlib-devel

%description
The OpenSceneGraph is an OpenSource, cross platform graphics
toolkit for the development of high performance graphics
applications such as flight simulators, games, virtual reality
and scientific visualization. Based around the concept of a
SceneGraph, it provides an object oriented framework on top of
OpenGL freeing the developer from implementing and optimizing
low level graphics calls, and provides many additional
utilities for rapid development of graphics applications.

%package -n libOpenSceneGraph%{_osg_so_nr}
Summary:        Shared libraries for OpenSceneGraph
Group:          System/Libraries

%description -n libOpenSceneGraph%{_osg_so_nr}
The OpenSceneGraph is an OpenSource, cross platform graphics
toolkit for the development of high performance graphics
applications such as flight simulators, games, virtual reality
and scientific visualization. Based around the concept of a
SceneGraph, it provides an object oriented framework on top of
OpenGL freeing the developer from implementing and optimizing
low level graphics calls, and provides many additional
utilities for rapid development of graphics applications.

This package contains the shared libraries for OpenSceneGraph.

%package -n libOpenSceneGraph-devel
Summary:        OpenSceneGraph development files
Group:          Development/Libraries/C and C++
Requires:       curl-devel
Requires:       freeglut-devel
Requires:       freetype2-devel
Requires:       giflib-devel
Requires:       libOpenSceneGraph%{_osg_so_nr} = %{version}
Requires:       libOpenThreads-devel = %{version}
%if 0%{?suse_version} < 1230
Requires:       gtkglext-devel
%endif
Requires:       SDL-devel
Requires:       libjpeg-devel
Requires:       libpng-devel
Requires:       libpoppler-glib-devel
Requires:       librsvg-devel
Requires:       libtiff-devel
Requires:       libxine-devel
Requires:       openal-soft-devel
Requires:       qt-devel

%description -n libOpenSceneGraph-devel
The OpenSceneGraph is an OpenSource, cross platform graphics
toolkit for the development of high performance graphics
applications such as flight simulators, games, virtual reality
and scientific visualization. Based around the concept of a
SceneGraph, it provides an object oriented framework on top of
OpenGL freeing the developer from implementing and optimizing
low level graphics calls, and provides many additional
utilities for rapid development of graphics applications.

This package contains the header and development files for
OpenSceneGraph.

%package -n libOpenThreads%{_opt_so_nr}
Summary:        Shared libraries for OpenSceneGraph
Group:          System/Libraries

%description -n libOpenThreads%{_opt_so_nr}
The OpenSceneGraph is an OpenSource, cross platform graphics
toolkit for the development of high performance graphics
applications such as flight simulators, games, virtual reality
and scientific visualization. Based around the concept of a
SceneGraph, it provides an object oriented framework on top of
OpenGL freeing the developer from implementing and optimizing
low level graphics calls, and provides many additional
utilities for rapid development of graphics applications.

This package contains the shared libraries for OpenSceneGraph.

%package -n libOpenThreads-devel
Summary:        OpenSceneGraph development files
Group:          Development/Libraries/C and C++
Requires:       SDL-devel
Requires:       curl-devel
Requires:       freeglut-devel
Requires:       freetype2-devel
Requires:       giflib-devel
Requires:       libOpenThreads%{_opt_so_nr} = %{version}
Requires:       libjpeg-devel
Requires:       libpng-devel
Requires:       libpoppler-glib-devel
Requires:       libtiff-devel
Requires:       libxine-devel
Requires:       qt-devel

%description -n libOpenThreads-devel
The OpenSceneGraph is an OpenSource, cross platform graphics
toolkit for the development of high performance graphics
applications such as flight simulators, games, virtual reality
and scientific visualization. Based around the concept of a
SceneGraph, it provides an object oriented framework on top of
OpenGL freeing the developer from implementing and optimizing
low level graphics calls, and provides many additional
utilities for rapid development of graphics applications.

This package contains the header and development files for
OpenSceneGraph.

%package plugins
Summary:        Plugins for OpenSceneGraph
Group:          Productivity/Graphics/Other

%description plugins
The OpenSceneGraph is an OpenSource, cross platform graphics
toolkit for the development of high performance graphics
applications such as flight simulators, games, virtual reality
and scientific visualization. Based around the concept of a
SceneGraph, it provides an object oriented framework on top of
OpenGL freeing the developer from implementing and optimizing
low level graphics calls, and provides many additional
utilities for rapid development of graphics applications.

This package contains some plugins for OpenSceneGraph.

%package examples
Summary:        OpenSceneGraph example applications
Group:          Productivity/Graphics/Other

%description examples
The OpenSceneGraph is an OpenSource, cross platform graphics
toolkit for the development of high performance graphics
applications such as flight simulators, games, virtual reality
and scientific visualization. Based around the concept of a
SceneGraph, it provides an object oriented framework on top of
OpenGL freeing the developer from implementing and optimizing
low level graphics calls, and provides many additional
utilities for rapid development of graphics applications.

This package contains some example applications built with OpenSceneGraph

%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
dos2unix     *.txt ChangeLog
chmod 644 *.txt ChangeLog

%build
export CFLAGS="%{optflags} -fno-strict-aliasing -D__STDC_CONSTANT_MACROS -UGTK_DISABLE_DEPRECATED"
export CXXFLAGS="%{optflags} -fno-strict-aliasing -D__STDC_CONSTANT_MACROS -UGTK_DISABLE_DEPRECATED"
cmake \
	-DCMAKE_INSTALL_PREFIX=%{_prefix} \
	-DBUILD_OSG_EXAMPLES=ON \
	-DBUILD_OSG_PLUGINS=ON \
	-DBUILD_DOCUMENTATION=OFF \
	-DBUILD_OSG_WRAPPER=ON \
	-DBUILD_OSG_APPLICATIONS=ON \
	-DCMAKE_BUILD_TYPE=Release \
	-DDYNAMIC_OPENSCENEGRAPH=ON \
	-DDYNAMIC_OPENTHREADS=ON
make %{?_smp_mflags}

%install
make DESTDIR=%{buildroot} install
install -dm 755 %{buildroot}%{_libdir}/pkgconfig
install -m 644 packaging/pkgconfig/*.pc \
	%{buildroot}%{_libdir}/pkgconfig
# example bins installed in share dir, not acceptable. Note, this will break
# when %{_datadir}/OpenSceneGraph is also used for other stuff
mv %{buildroot}%{_datadir}/OpenSceneGraph \
   %{buildroot}%{_libdir}

%post -n libOpenSceneGraph%{_osg_so_nr} -p /sbin/ldconfig

%post -n libOpenThreads%{_opt_so_nr} -p /sbin/ldconfig

%postun -n libOpenSceneGraph%{_osg_so_nr} -p /sbin/ldconfig

%postun -n libOpenThreads%{_opt_so_nr} -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc AUTHORS.txt LICENSE.txt NEWS.txt README.txt ChangeLog
%{_bindir}/osg2cpp
%{_bindir}/osgarchive
%{_bindir}/osgconv
%{_bindir}/osgfilecache
%{_bindir}/osgversion
%{_bindir}/osgviewer
%{_bindir}/present3D

%files plugins
%defattr(-,root,root)
%{_libdir}/osgPlugins-%{version}/

%files -n libOpenSceneGraph%{_osg_so_nr}
%defattr(-,root,root)
%{_libdir}/libosg.so.*
%{_libdir}/libosgAnimation.so.*
%{_libdir}/libosgDB.so.*
%{_libdir}/libosgFX.so.*
%{_libdir}/libosgGA.so.*
%{_libdir}/libosgManipulator.so.*
%{_libdir}/libosgParticle.so.*
%{_libdir}/libosgShadow.so.*
%{_libdir}/libosgSim.so.*
%{_libdir}/libosgTerrain.so.*
%{_libdir}/libosgText.so.*
%{_libdir}/libosgUtil.so.*
%{_libdir}/libosgVolume.so.*
%{_libdir}/libosgViewer.so.*
%{_libdir}/libosgWidget.so.*
%{_libdir}/libosgPresentation.so.*
%{_libdir}/libosgQt.so.*

%files -n libOpenSceneGraph-devel
%defattr(-,root,root)
%{_includedir}/osg/
%{_includedir}/osgAnimation/
%{_includedir}/osgDB/
%{_includedir}/osgFX/
%{_includedir}/osgGA/
%{_includedir}/osgManipulator/
%{_includedir}/osgParticle/
%{_includedir}/osgShadow/
%{_includedir}/osgSim/
%{_includedir}/osgTerrain/
%{_includedir}/osgText/
%{_includedir}/osgUtil/
%{_includedir}/osgViewer/
%{_includedir}/osgVolume/
%{_includedir}/osgWidget/
%{_includedir}/osgQt/
%{_includedir}/osgPresentation/
%{_libdir}/libosg.so
%{_libdir}/libosgAnimation.so
%{_libdir}/libosgDB.so
%{_libdir}/libosgFX.so
%{_libdir}/libosgGA.so
%{_libdir}/libosgManipulator.so
%{_libdir}/libosgParticle.so
%{_libdir}/libosgShadow.so
%{_libdir}/libosgSim.so
%{_libdir}/libosgTerrain.so
%{_libdir}/libosgText.so
%{_libdir}/libosgUtil.so
%{_libdir}/libosgViewer.so
%{_libdir}/libosgVolume.so
%{_libdir}/libosgWidget.so
%{_libdir}/libosgPresentation.so
%{_libdir}/libosgQt.so
%{_libdir}/pkgconfig/openscenegraph.pc
%{_libdir}/pkgconfig/openscenegraph-osg*.pc

%files examples
%defattr(-,root,root)
%{_libdir}/OpenSceneGraph

%files -n libOpenThreads%{_opt_so_nr}
%defattr(-,root,root)
%{_libdir}/libOpenThreads.so.*

%files -n libOpenThreads-devel
%defattr(-,root,root)
%{_includedir}/OpenThreads/
%{_libdir}/libOpenThreads.so
%{_libdir}/pkgconfig/openthreads.pc

%changelog
openSUSE Build Service is sponsored by