From 085a5397e350a04e37779682b9a58baf6f58eadf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Thu, 11 Jun 2015 18:13:25 +0200 Subject: [PATCH] initial; from fc --- DRAWEXE.1 | 11 ++ OCE.spec | 316 +++++++++++++++++++++++++++++++++++++++ oce-128.png | Bin 0 -> 5276 bytes oce-256.png | Bin 0 -> 8457 bytes oce-48.png | Bin 0 -> 2050 bytes oce-64.png | Bin 0 -> 2713 bytes opencascade-draw.desktop | 10 ++ 7 files changed, 337 insertions(+) create mode 100644 DRAWEXE.1 create mode 100644 OCE.spec create mode 100644 oce-128.png create mode 100644 oce-256.png create mode 100644 oce-48.png create mode 100644 oce-64.png create mode 100644 opencascade-draw.desktop diff --git a/DRAWEXE.1 b/DRAWEXE.1 new file mode 100644 index 0000000..8a8b909 --- /dev/null +++ b/DRAWEXE.1 @@ -0,0 +1,11 @@ +.TH DRAWEXE 1 "OpenCASCADE test harness" "DEBIAN" \" -*- nroff -*- +.SH NAME +DRAWEXE \- OpenCASCADE test harness +.SH SYNOPSIS +\fBDRAWEXE\fP +.SH DESCRIPTION +This program provides a kind of scripting interface to the OpenCASCADE +libraries. You can perform a simple test by starting it and entering at the +command line: "pload ALL" then "source /usr/share/opencascade/6.5.0/src/DrawResources/VisualizationDemo.tcl". +.SH AUTHOR +Adam Powell diff --git a/OCE.spec b/OCE.spec new file mode 100644 index 0000000..48dd2ab --- /dev/null +++ b/OCE.spec @@ -0,0 +1,316 @@ +%bcond_without tests +# +Summary: OpenCASCADE Community Edition +Name: OCE +Version: 0.16.1 +Release: 1 +License: LGPLv2 with exception +Group: Applications/Engineering +URL: https://github.com/tpaviot/oce +Source0: https://github.com/tpaviot/oce/archive/%{name}-%{version}.tar.gz +# Source0-md5: 4d591b240c9293e879f50d86a0cb2bb3 +Source1: DRAWEXE.1 +Source2: opencascade-draw.desktop +Source3: oce-256.png +Source4: oce-128.png +Source5: oce-64.png +Source6: oce-48.png +# Utilities +BuildRequires: cmake +BuildRequires: desktop-file-utils +# Libraries +BuildRequires: FreeImage-devel +BuildRequires: Mesa-libGL-devel +BuildRequires: Mesa-libGLU-devel +BuildRequires: ftgl-devel +BuildRequires: gl2ps-devel +BuildRequires: libgomp +BuildRequires: tbb-devel +BuildRequires: tcl-devel +BuildRequires: tk-devel +BuildRequires: xorg-lib-libXScrnSaver-devel +BuildRequires: xorg-lib-libXcomposite-devel +BuildRequires: xorg-lib-libXcursor-devel +BuildRequires: xorg-lib-libXdmcp-devel +BuildRequires: xorg-lib-libXi-devel +BuildRequires: xorg-lib-libXinerama-devel +BuildRequires: xorg-lib-libXmu-devel +BuildRequires: xorg-lib-libXpm-devel +BuildRequires: xorg-lib-libXrandr-devel +BuildRequires: xorg-lib-libXres-devel +BuildRequires: xorg-lib-libXtst-devel +BuildRequires: xorg-lib-libXv-devel +BuildRequires: xorg-lib-libXxf86misc-devel +BuildRequires: xorg-lib-libxkbfile +BuildRequires: xorg-proto-xproto-devel + +%description +OpenCASCADE Community Edition (OCE) is a suite for 3D surface and +solid modeling, visualization, data exchange and rapid application +development. It is an excellent platform for development of numerical +simulation software including CAD/CAM/CAE, AEC and GIS, as well as PDM +applications. + +%package foundation +Summary: OpenCASCADE CAE platform shared libraries +Group: Libraries + +%description foundation +OpenCASCADE CAE platform shared libraries + +This package contains foundation classes which provide a variety of +general-purpose services such as automated management of heap memory, +exception handling, classes for manipulating aggregates of data, basic +math tools. + +%package modeling +Summary: OpenCASCADE CAE platform shared libraries +Group: Libraries + +%description modeling +OpenCASCADE CAE platform shared libraries + +This package supplies data structures to represent 2D and 3D geometric +models, as well as topological and geometrical algorithms. + +%package ocaf +Summary: OpenCASCADE CAE platform shared libraries +Group: Libraries + +%description ocaf +OpenCASCADE CAE platform shared libraries + +This package provides OpenCASCADE Application Framework services and +support for data exchange. + +%package visualization +Summary: OpenCASCADE CAE platform shared libraries +Group: Libraries + +%description visualization +OpenCASCADE CAE platform shared libraries + +This package provides services for displaying 2D and 3D graphics. + +%package examples +Summary: OpenCASCADE CAE platform shared libraries +Group: Libraries + +%description examples +OpenCASCADE CAE platform shared libraries + +This package contains example input files for OpenCASCADE in various +formats. + +%package draw +Summary: OpenCASCADE CAE platform shared libraries +Group: Libraries + +%description draw +OpenCASCADE CAE DRAW test harness. + +%package devel +Summary: OpenCASCADE CAE platform library development files +Group: Development/Libraries +Requires: %{name}-foundation = %{version}-%{release} +Requires: %{name}-modeling = %{version}-%{release} +Requires: %{name}-ocaf = %{version}-%{release} +Requires: %{name}-visualization = %{version}-%{release} +Requires: FreeImage-devel +Requires: Mesa-libGL-devel +Requires: Mesa-libGLU-devel +Requires: freetype-devel +Requires: gl2ps-devel +Requires: tbb-devel +Requires: tcl-devel +Requires: tk-devel +Requires: xorg-lib-libICE-devel +Requires: xorg-lib-libSM-devel +Requires: xorg-lib-libX11-devel +Requires: xorg-lib-libXScrnSaver-devel +Requires: xorg-lib-libXcomposite-devel +Requires: xorg-lib-libXcursor-devel +Requires: xorg-lib-libXdmcp-devel +Requires: xorg-lib-libXext-devel +Requires: xorg-lib-libXi-devel +Requires: xorg-lib-libXinerama-devel +Requires: xorg-lib-libXpm-devel +Requires: xorg-lib-libXrandr-devel +Requires: xorg-lib-libXres-devel +Requires: xorg-lib-libXtst-devel +Requires: xorg-lib-libXv-devel +Requires: xorg-lib-libXxf86misc-devel +Requires: xorg-lib-libxkbfile + +%description devel +OpenCASCADE CAE platform library development files + +%prep +%setup -q -n oce-%{name}-%{version} + +%build +install -d build +cd build +%{cmake} \ + -DOCE_INSTALL_PREFIX=%{_prefix} \ + -DOCE_INSTALL_LIB_DIR=%{_lib} \ + -DOCE_WITH_FREEIMAGE=ON \ + -DOCE_WITH_GL2PS=ON \ + -DOCE_MULTITHREAD_LIBRARY:STRING=TBB \ + -DOCE_DRAW=ON \ + -DOCE_TESTING=ON \ + ../ + +%{__make} + +%if %{with tests} +export CTEST_OUTPUT_ON_FAILURE=1 +%{__make} -C test test +%endif + +%install +rm -rf $RPM_BUILD_ROOT + +%{__make} -C build install \ + DESTDIR=$RPM_BUILD_ROOT + +# Install manpage for DRAWEXE +install -Dm 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_mandir}/man1/DRAWEXE.1 + +# Install and validate desktop file +desktop-file-install \ + --dir=$RPM_BUILD_ROOT%{_desktopdir} \ + %{SOURCE2} + +# Install icons +for size in 256 128 64 48; do + icon=%{_sourcedir}/oce-${size}.png + install -Dm 0644 $icon \ + $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${size}x${size}/apps/oce.png +done + +%post foundation -p /sbin/ldconfig +%postun foundation -p /sbin/ldconfig + +%post modeling -p /sbin/ldconfig +%postun modeling -p /sbin/ldconfig + +%post ocaf -p /sbin/ldconfig +%postun ocaf -p /sbin/ldconfig + +%post visualization -p /sbin/ldconfig +%postun visualization -p /sbin/ldconfig + +%post draw +%update_icon_cache hicolor + +%postun draw +if [ $1 -eq 0 ] ; then + %update_icon_cache hicolor +fi + +%clean +rm -rf $RPM_BUILD_ROOT + +%files foundation +%defattr(644,root,root,755) +%doc AUTHORS LICENSE_LGPL_21.txt NEWS OCCT_LGPL_EXCEPTION.txt +# Foundation +%attr(755,root,root) %{_libdir}/libTKernel.so.* +%attr(755,root,root) %{_libdir}/libTKMath.so.* +%attr(755,root,root) %{_libdir}/libTKAdvTools.so.* +%{_datadir}/oce-*.*/ + +%files modeling +%defattr(644,root,root,755) +# Modeling Data +%attr(755,root,root) %{_libdir}/libTKG2d.so.* +%attr(755,root,root) %{_libdir}/libTKG3d.so.* +%attr(755,root,root) %{_libdir}/libTKGeomBase.so.* +%attr(755,root,root) %{_libdir}/libTKBRep.so.* +# Modeling Algorithm s +%attr(755,root,root) %{_libdir}/libTKGeomAlgo.so.* +%attr(755,root,root) %{_libdir}/libTKTopAlgo.so.* +%attr(755,root,root) %{_libdir}/libTKPrim.so.* +%attr(755,root,root) %{_libdir}/libTKBO.so.* +%attr(755,root,root) %{_libdir}/libTKHLR.so.* +%attr(755,root,root) %{_libdir}/libTKMesh.so.* +%attr(755,root,root) %{_libdir}/libTKShHealing.so.* +%attr(755,root,root) %{_libdir}/libTKXMesh.so.* +%attr(755,root,root) %{_libdir}/libTKBool.so.* +%attr(755,root,root) %{_libdir}/libTKFillet.so.* +%attr(755,root,root) %{_libdir}/libTKFeat.so.* +%attr(755,root,root) %{_libdir}/libTKOffset.so.* +# Data exchange +%attr(755,root,root) %{_libdir}/libTKSTL.so.* +%attr(755,root,root) %{_libdir}/libTKXSBase.so.* +%attr(755,root,root) %{_libdir}/libTKSTEPBase.so.* +%attr(755,root,root) %{_libdir}/libTKIGES.so.* +%attr(755,root,root) %{_libdir}/libTKSTEPAttr.so.* +%attr(755,root,root) %{_libdir}/libTKSTEP209.so.* +%attr(755,root,root) %{_libdir}/libTKSTEP.so.* +%attr(755,root,root) %{_libdir}/libTKVRML.so.* +%attr(755,root,root) %{_libdir}/libTKXCAF.so.* +%attr(755,root,root) %{_libdir}/libTKXCAFSchema.so.* +%attr(755,root,root) %{_libdir}/libTKXmlXCAF.so.* +%attr(755,root,root) %{_libdir}/libTKBinXCAF.so.* +%attr(755,root,root) %{_libdir}/libTKXDEIGES.so.* +%attr(755,root,root) %{_libdir}/libTKXDESTEP.so.* + +%files visualization +%defattr(644,root,root,755) +# Visualization Dependents +%attr(755,root,root) %{_libdir}/libTKService.so.* +%attr(755,root,root) %{_libdir}/libTKV3d.so.* +# Visualization +%attr(755,root,root) %{_libdir}/libTKOpenGl.so.* +%attr(755,root,root) %{_libdir}/libTKMeshVS.so.* +%attr(755,root,root) %{_libdir}/libTKNIS.so.* +%attr(755,root,root) %{_libdir}/libTKVoxel.so.* + +%files ocaf +%defattr(644,root,root,755) +# Application framework +%attr(755,root,root) %{_libdir}/libTKCDF.so.* +%attr(755,root,root) %{_libdir}/libPTKernel.so.* +%attr(755,root,root) %{_libdir}/libTKLCAF.so.* +%attr(755,root,root) %{_libdir}/libFWOSPlugin.so.* +%attr(755,root,root) %{_libdir}/libTKPShape.so.* +%attr(755,root,root) %{_libdir}/libTKBinL.so.* +%attr(755,root,root) %{_libdir}/libTKXmlL.so.* +%attr(755,root,root) %{_libdir}/libTKPLCAF.so.* +%attr(755,root,root) %{_libdir}/libTKTObj.so.* +%attr(755,root,root) %{_libdir}/libTKShapeSchema.so.* +%attr(755,root,root) %{_libdir}/libTKStdLSchema.so.* +%attr(755,root,root) %{_libdir}/libTKCAF.so.* +%attr(755,root,root) %{_libdir}/libTKBin.so.* +%attr(755,root,root) %{_libdir}/libTKXml.so.* +%attr(755,root,root) %{_libdir}/libTKPCAF.so.* +%attr(755,root,root) %{_libdir}/libTKBinTObj.so.* +%attr(755,root,root) %{_libdir}/libTKXmlTObj.so.* +%attr(755,root,root) %{_libdir}/libTKStdSchema.so.* + +%files draw +%defattr(644,root,root,755) +# Draw Libraries +%dir %{_libdir}/oce-*.* +%attr(755,root,root) %{_libdir}/oce-*.*/libTKDraw.so.* +%attr(755,root,root) %{_libdir}/oce-*.*/libTKTopTest.so.* +%attr(755,root,root) %{_libdir}/oce-*.*/libTKViewerTest.so.* +%attr(755,root,root) %{_libdir}/oce-*.*/libTKXSDRAW.so.* +%attr(755,root,root) %{_libdir}/oce-*.*/libTKDCAF.so.* +%attr(755,root,root) %{_libdir}/oce-*.*/libTKXDEDRAW.so.* +%attr(755,root,root) %{_libdir}/oce-*.*/libTKTObjDRAW.so.* +# DRAWEXE application +%attr(755,root,root) %{_bindir}/DRAWEXE +%{_mandir}/man1/DRAWEXE.1* +%{_desktopdir}/opencascade-draw.desktop +%{_iconsdir}/hicolor/*/apps/* + +%files devel +%defattr(644,root,root,755) +%doc examples +%{_includedir}/* +%attr(755,root,root) %{_libdir}/*.so +%attr(755,root,root) %{_libdir}/oce-*.*/*.so +%{_libdir}/oce-*.*/*.cmake diff --git a/oce-128.png b/oce-128.png new file mode 100644 index 0000000000000000000000000000000000000000..b342556fafd5c471e9b3b897e9f9c1fde3585eb4 GIT binary patch literal 5276 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 literal 0 HcmV?d00001 diff --git a/oce-64.png b/oce-64.png new file mode 100644 index 0000000000000000000000000000000000000000..71677623ff299e4b15a800602ece55d8e3c49920 GIT binary patch literal 2713 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