File HeeksCAD.spec of Package HeeksCAD

#
# spec file for HeeksCAD
#
# 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.

# norootforbuild

Name:           HeeksCAD
Summary:        HeeksCAD is a free, open source, CAD application
Version:        0.7.0svn404
Release:        10
License:        New BSD License
Group:          Productivity/Graphics/3D Editors
Packager:	Andrea Florio <andrea@opensuse.org>
Url:            http://code.google.com/p/heekscad/
Vendor:         openSUSE-Education
BuildRequires:  make gcc gcc-c++
BuildRequires:  OpenCASCADE-devel wxWidgets-wxcontainer-devel gtkglext-devel update-desktop-files
%if 0%{?suse_version}
BuildRequires:  fdupes
%if 0%{?suse_version} > 1110
BuildRequires:  -post-build-checks
%endif
%endif
Source0:        heekscad.tar.bz2
#Patch0:		fix-icons-dir.patch
#Patch1:         makefile.patch
Patch2:         wxlibs.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
%if 0%{?suse_version} >= 1140
%define _use_internal_dependency_generator 0
%define __find_requires %wx_requires
%endif

%description
HeeksCAD is a free, open source
Functionality: Import solid models from STEP and IGES files.
Draw construction geomtery and lines and arcs.
Create new primitive solids, or make solids by extruding a sketch
or by making a lofted solid between sketches. Modify solids using
blending, or boolean operations. Save IGES, STEP and STL.
Printer plot the 2D geometry. Import and export dxf files;
only lines and arcs at the moment

The solid modelling is provided by OpenCASCADE.
The graphical user interface is made using wxWidgets.

It is possible to make Add-In modules, see HeeksCNC project.

Authors:
--------
   Dan Heeks <danheeks@gmail.com>

%package devel
Summary:        Development file for %name
Group:          Development/Libraries/C and C++
Requires:       %name = %version
Requires:       OpenCASCADE-devel wxWidgets-devel gtkglext-devel

%description devel
HeeksCAD is a free, open source
Functionality: Import solid models from STEP and IGES files.
Draw construction geomtery and lines and arcs.
Create new primitive solids, or make solids by extruding a sketch
or by making a lofted solid between sketches. Modify solids using
blending, or boolean operations. Save IGES, STEP and STL.
Printer plot the 2D geometry. Import and export dxf files;
only lines and arcs at the moment

The solid modelling is provided by OpenCASCADE.
The graphical user interface is made using wxWidgets.

It is possible to make Add-In modules, see HeeksCNC project.

Authors:
--------
   Dan Heeks <danheeks@gmail.com>


%prep
%setup -q -n heekscad
#%patch0 -p1
#%patch1 -p1
%patch2 -p1

%build
cd src
%__make %{?jobs:-j%{jobs}}

%install
cd src
#%makeinstall
%__mkdir -p %buildroot/opt/%name/bitmaps
%__mkdir -p %buildroot/opt/%name/icons

%__cp ../HeeksCAD %buildroot/opt/%name/
%__cp ../bitmaps/*.png ../bitmaps/*.svg ../bitmaps/*.glf %buildroot/opt/%name/bitmaps/
%__cp ../icons/*.png %buildroot/opt/%name/icons/


# install include files to allow easy plugins compilation
%__make clean

%__cp -R ../src %buildroot/opt/%name
%__cp -R ../interface %buildroot/opt/%name
%__cp -R ../tinyxml %buildroot/opt/%name

# remove unuseful files (svn folders and windows files)
%__rm -rf %buildroot/opt/%{name}/src/.svn
%__rm -rf %buildroot/opt/%{name}/interface/.svn
%__rm -rf %buildroot/opt/%{name}/tinyxml/.svn

%__rm %buildroot/opt/%{name}/src/HeeksCAD.rc
%__rm %buildroot/opt/%{name}/src/HeeksCAD.sln
%__rm %buildroot/opt/%{name}/src/HeeksCAD.vcproj
%__rm %buildroot/opt/%{name}/src/Makefile
%__rm %buildroot/opt/%{name}/src/*.ico
%__rm %buildroot/opt/%{name}/src/*.png
%__rm %buildroot/opt/%{name}/src/vc_retro.py

chmod -x %buildroot/opt/%{name}/tinyxml/tinyxmlerror.cpp
chmod -x %buildroot/opt/%{name}/tinyxml/tinyxml.cpp
chmod -x %buildroot/opt/%{name}/tinyxml/tinystr.cpp
chmod -x %buildroot/opt/%{name}/tinyxml/tinyxmlparser.cpp

# menu entry and icons
%__install -dm 755 %{buildroot}%{_datadir}/pixmaps
%__cp ../bitmaps/cyl.png %{buildroot}%{_datadir}/pixmaps/HeeksCAD.png
%__install -dm 755 %{buildroot}%{_datadir}/applications
%__cat > %{buildroot}%{_datadir}/applications/%{name}.desktop <<EOF
[Desktop Entry]
Encoding=UTF-8
Type=Application
Exec=/opt/%name/%name
Icon=%{name}.png
Terminal=false
Name=%{name}
GenericName=%{name}
Comment=%{summary}
Categories=Graphics;3DGraphics
EOF
%suse_update_desktop_file %{name} Graphics 3DGraphics

%if 0%{?suse_version}
%fdupes -s %{buildroot}
%endif

%clean
rm -fr %buildroot

%files
%defattr(-,root,root)
%doc COPYING
%{_datadir}/pixmaps/HeeksCAD.png
%{_datadir}/applications/%name.desktop
%dir /opt/%{name}
%dir /opt/%{name}/bitmaps
%dir /opt/%{name}/icons
/opt/%{name}/%name
/opt/%{name}/bitmaps/*
/opt/%{name}/icons/*

%files devel
%defattr(-,root,root)
%dir /opt/%{name}/src
%dir /opt/%{name}/interface
%dir /opt/%{name}/tinyxml
/opt/%{name}/src/*.h
/opt/%{name}/src/*.cpp
/opt/%{name}/interface/*.h
/opt/%{name}/interface/*.cpp
/opt/%{name}/tinyxml/*.h
/opt/%{name}/tinyxml/*.cpp

%changelog
openSUSE Build Service is sponsored by