MyGUI/MyGUI.spec

326 lines
8.7 KiB
RPMSpec

# Copyright (c) 2009-2010 oc2pus
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments to toni@links2linux.de
# norootforbuild
%define prefix /usr
%define _name2 MYGUI
%define _major 3.0
%define _minor 1
%define _SO_nr 3
Summary: A GUI library for Ogre Rendering Engine
Name: MyGUI
Version: %{_major}.%{_minor}
Release: 1
License: LGPL
Group: Development/Tools/GUI Builders
Source: %{name}_%{version}_source.zip
Source1: %{name}.png
Source90: %{name}-rpmlintrc
Patch0: LIB_SUFFIX.patch
URL: http://my-gui.sourceforge.net/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cmake
BuildRequires: dejavu
BuildRequires: dos2unix
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: freetype2-devel
BuildRequires: gcc-c++
BuildRequires: graphviz
BuildRequires: libOIS-devel
BuildRequires: libuuid-devel
BuildRequires: libOgreMain-devel
BuildRequires: pkgconfig
BuildRequires: unzip
BuildRequires: update-desktop-files
Requires: dejavu
BuildRequires: Cg-devel Cg
%description
MyGUI, it is a GUI library for Ogre Rendering Engine. We pursue
next targets: GUI have to be fast, flexible and simple in using.
Speed
We are working above productivity. We have already own variant
of Overlays for the text and for the simple rectangles, allowing
uniting them in one batch. In the future it is planned some more
modifications for improvement of result.
Flexibility
The library supports plug-ins that allows to use your own widgets,
which can be loaded in realtime. Loading description of the majority
of parameters, from XML files, and as creation skins in process.
Loading skins, layouts, descriptions of a plane of overlapping,
cursors and fonts. Creation of skins in a code. Support of parsing
of some parameters for widget, for management of a condition widget,
for example, at loading from XML.
Simplicity
The interface for use is done as much as possible clear. Use of
delegates, this disappears necessity for inheritance for reception
of messages. In addition: support an alpha effects. The coloring
text in one line. Skins, consisting from unlimited quantity pieces.
Unlimited quantity of widget condition's (for developers).
This package contains ImageSetViewer and LayoutEditor.
%package demo
Summary: Some demo applications for MyGUI
Group: Development/Tools/GUI Builders
Requires: %{name} = %{version}
%description demo
MyGUI, it is a GUI library for Ogre Rendering Engine. We pursue
next targets: GUI have to be fast, flexible and simple in using.
This package contains some demo applications for package MyGUI.
%package -n libMyGUIEngine%{_SO_nr}
Summary: Shared library for MyGUI
Group: System/Libraries
Provides: libmygui0 = 2.2.3
Obsoletes: libmygui0 < 2.2.3
%description -n libMyGUIEngine%{_SO_nr}
MyGUI, it is a GUI library for Ogre Rendering Engine. We pursue
next targets: GUI have to be fast, flexible and simple in using.
This package contains the shared library for package MyGUI.
%package devel
Summary: Include Files and Libraries mandatory for Development
Group: Development/Libraries/C and C++
Requires: freetype2-devel
Requires: libMyGUIEngine%{_SO_nr} = %{version}
Requires: libuuid-devel
Requires: libOIS-devel
Requires: libOgreMain-devel
%description devel
MyGUI, it is a GUI library for Ogre Rendering Engine. We pursue
next targets: GUI have to be fast, flexible and simple in using.
Include Files and Libraries mandatory for Development with
MyGUI.
%package devel-doc
Summary: Development documentation for MyGUI
Group: Documentation/HTML
%description devel-doc
MyGUI, it is a GUI library for Ogre Rendering Engine. We pursue
next targets: GUI have to be fast, flexible and simple in using.
Development documentation for package MyGUI.
%debug_package
%prep
%setup -q -n %{name}%{_major}
%patch0
dos2unix *.txt COPYING.LESSER
%__chmod 644 *.txt COPYING.LESSER
%build
%__install -dm 755 build
pushd build
cmake \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DCMAKE_SKIP_RPATH=YES \
-DCMAKE_BUILD_TYPE=release \
%ifarch x86_64
-DLIB_SUFFIX=64 \
%endif
-DMYGUI_STATIC=FALSE \
-DMYGUI_USE_FREETYPE=TRUE \
-DMYGUI_BUILD_SAMPLES=TRUE \
-DMYGUI_BUILD_PLUGINS=TRUE \
-DMYGUI_BUILD_TOOLS=TRUE \
-DMYGUI_BUILD_WRAPPER=FALSE \
-DMYGUI_INSTALL_SAMPLES=TRUE \
-DMYGUI_INSTALL_TOOLS=TRUE \
-DMYGUI_INSTALL_DOCS=TRUE \
-DMYGUI_INSTALL_MEDIA=TRUE \
-DMYGUI_INSTALL_SAMPLES_SOURCE=TRUE \
-DMYGUI_FULL_RPATH=FALSE \
..
%if %suse_version <= 1100
find . -name flags.make | xargs %__sed -i -e 's|-I/usr/include/OGRE|`pkg-config --cflags OGRE`|g'
%endif
%__make %{?jobs:-j%{jobs}}
popd
pushd Docs
doxygen -u 2> /dev/null
doxygen Doxyfile
popd
%install
pushd build
%makeinstall
popd
# rename demos to avoid duplicate names with other packages
pushd %{buildroot}%{_bindir}
demos=`ls -1 Demo_*`
for i in $demos; do
%__mv $i %{name}-$i
done
popd
# move those files to /usr/share/MYGUI
%__mv %{buildroot}%{_bindir}/plugins.cfg \
%{buildroot}%{_datadir}/%{_name2}
%__mv %{buildroot}%{_bindir}/resources.xml \
%{buildroot}%{_datadir}/%{_name2}
# adjust OGRE path
%__sed -i -e 's|PluginFolder=/usr/local/lib/OGRE|%{_libdir}/OGRE|g' \
%{buildroot}%{_datadir}/%{_name2}/plugins.cfg
# wrapper-script for binaries
%__cat > %{name}.sh <<EOF
#! /bin/bash
if [ -z "\$1" ]; then
echo "missing parameter..."
echo ""
echo "usage:"
echo "\$0 LayoutEditor"
echo "\$0 ImageSetViewer"
echo "\$0 FontViewer"
echo ""
echo "or one of the installed demo applications:"
myDemos=\`ls -1 %{_bindir}/%{name}-Demo_*\`
echo \$myDemos | sed -e 's|%{_bindir}/||g'
exit 1
fi
# create local working directory
mkdir -p \$HOME/.%{name}
# link the resources to local dir
# just in case some new files appear (update)
ln -sf %{_datadir}/%{_name2}/Media \$HOME/.%{name}
if [ ! -f \$HOME/.%{name}/plugins.cfg ]; then
# config should be user writeable
%__cp %{_datadir}/%{_name2}/plugins.cfg \$HOME/.%{name}
fi
if [ ! -f \$HOME/.%{name}/resources.xml ]; then
%__cp %{_datadir}/%{_name2}/resources.xml \$HOME/.%{name}
fi
# call binary from local working-directory
cd \$HOME/.%{name}
%{_bindir}/\$1
EOF
%__install -m 755 %{name}.sh \
%{buildroot}%{_bindir}
# use system fonts
pushd %{buildroot}%{_datadir}/%{_name2}/Media/MyGUI_Media
ln -sf %{_datadir}/fonts/truetype/DejaVuSans.ttf .
ln -sf %{_datadir}/fonts/truetype/DejaVuSans-ExtraLight.ttf .
popd
# icon
%__install -dm 755 %{buildroot}%{_datadir}/pixmaps
%__install -m 644 %{SOURCE1} \
%{buildroot}%{_datadir}/pixmaps
# menu-entries
for i in LayoutEditor ImageSetViewer FontViewer; do
%__cat > $i.desktop << EOF
[Desktop Entry]
Name=MyGUI $i
GenericName=MyGUI $i
Comment=%{name} $i
Exec=%{name}.sh $i
Icon=%{name}
Terminal=false
Type=Application
EOF
%suse_update_desktop_file -i $i Development GUIDesigner
done
# remove unwanted files
%__rm -r %{buildroot}%{_datadir}/%{_name2}/Media/UnitTests
%__rm -r %{buildroot}%{_datadir}/%{_name2}/Media/Wrapper/WrapperBaseApp
%__rm Docs/html/installdox
%fdupes -s %{buildroot}
%clean
[ -d "%{buildroot}" -a "%{buildroot}" != "" ] && %__rm -rf "%{buildroot}"
%post -n libMyGUIEngine%{_SO_nr} -p /sbin/ldconfig
%postun -n libMyGUIEngine%{_SO_nr} -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc *.txt COPYING.LESSER
%{_bindir}/%{name}.sh
%{_bindir}/FontViewer
%{_bindir}/ImageSetViewer
%{_bindir}/LayoutEditor
%dir %{_datadir}/%{_name2}
%{_datadir}/%{_name2}/*.cfg
%{_datadir}/%{_name2}/*.xml
%dir %{_datadir}/%{_name2}/Media
%dir %{_datadir}/%{_name2}/Media/Common
%{_datadir}/%{_name2}/Media/Common/*
%dir %{_datadir}/%{_name2}/Media/MyGUI_Media
%{_datadir}/%{_name2}/Media/MyGUI_Media/*
%dir %{_datadir}/%{_name2}/Media/Tools
%{_datadir}/%{_name2}/Media/Tools/*
%{_datadir}/applications/FontViewer.desktop
%{_datadir}/applications/ImageSetViewer.desktop
%{_datadir}/applications/LayoutEditor.desktop
%{_datadir}/pixmaps/*.png
%files devel
%defattr(-,root,root)
%dir %{_includedir}/%{_name2}
%{_includedir}/%{_name2}/*.h
%{_libdir}/libMyGUIEngine.so
%{_libdir}/libMyGUI.OgrePlatform.a
%{_libdir}/pkgconfig/*.pc
%files devel-doc
%defattr(-,root,root)
%doc Docs/html/*
%files -n libMyGUIEngine%{_SO_nr}
%defattr(-,root,root)
%{_libdir}/libMyGUIEngine.so.*
%files demo
%defattr(-,root,root)
%{_bindir}/%{name}-Demo_*
%{_libdir}/libPlugin_StrangeButton.so
#%dir %{_datadir}/%{_name2}
#%dir %{_datadir}/%{_name2}/Media
%dir %{_datadir}/%{_name2}/Media/Demos
%{_datadir}/%{_name2}/Media/Demos/*
%changelog
* Fri Feb 12 2010 Toni Graffy <toni@links2linux.de> - 3.0.1-0.pm.1
- update to 3.0.1
- renamed libmygui0 ==> libMyGUIEngine3
* Fri Oct 30 2009 Toni Graffy <toni@links2linux.de> - 2.2.3-0.pm.1
- update to 2.2.3
* Mon Apr 13 2009 Toni Graffy <toni@links2linux.de> - 2.2.2-0.pm.2
- rebuild with ogre-1.6.2
* Fri Mar 27 2009 Toni Graffy <toni@links2linux.de> - 2.2.2-0.pm.1
- initial build 2.2.2