-# http://www.freecadweb.org/tracker/view.php?id=1757
-
From 328bdcf6363f1107447858c2dd939ecae1005f47 Mon Sep 17 00:00:00 2001
From: Yorik van Havre <yorik@uncreated.net>
Date: Thu, 18 Sep 2014 19:39:37 -0300
--- /dev/null
+diff -Naur freecad-0.14.3702.orig/src/CMakeLists.txt freecad-0.14.3702/src/CMakeLists.txt
+--- freecad-0.14.3702.orig/src/CMakeLists.txt 2015-05-28 11:24:13.393935311 -0500
++++ freecad-0.14.3702/src/CMakeLists.txt 2015-05-28 11:24:03.937354886 -0500
+@@ -1,5 +1,7 @@
+-
+-add_subdirectory(Build)
++# Do not generate a new Version.h if the source is a release tarball.
++if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Build/Version.h)
++ add_subdirectory(Build)
++endif()
+ add_subdirectory(Base)
+ add_subdirectory(App)
+ add_subdirectory(Main)
+++ /dev/null
-diff -Naur freecad-0.14.3702.orig/CMakeLists.txt freecad-0.14.3702/CMakeLists.txt
---- freecad-0.14.3702.orig/CMakeLists.txt 2014-07-13 10:33:02.000000000 -0500
-+++ freecad-0.14.3702/CMakeLists.txt 2014-11-30 16:28:11.540834321 -0600
-@@ -117,6 +117,7 @@
- OPTION(FREECAD_MAINTAINERS_BUILD "Build FreeCAD for Maintainers, with Docu and 3rd party libs. On Windows the Installer is build." OFF)
- OPTION(FREECAD_USE_EXTERNAL_ZIPIOS "Use system installed zipios++ instead of the bundled." OFF)
- OPTION(FREECAD_USE_EXTERNAL_PIVY "Use system installed python-pivy instead of the bundled." OFF)
-+OPTION(FREECAD_USE_EXTERNAL_SMESH "Use system installed smesh instead of the bundled." OFF)
- OPTION(FREECAD_BUILD_DEBIAN "Prepare for a build of a Debian package" OFF)
-
- OPTION(FREECAD_BUILD_CAM "Build the FreeCAD CAM module and the needed libs, be aware, unfinished code!" OFF)
-@@ -165,6 +166,7 @@
- if (FREECAD_BUILD_DEBIAN)
- set(FREECAD_USE_EXTERNAL_ZIPIOS ON)
- set(FREECAD_USE_EXTERNAL_PIVY ON)
-+ set(FREECAD_USE_EXTERNAL_SMESH ON)
- endif (FREECAD_BUILD_DEBIAN)
-
- # ==============================================================================
-@@ -348,10 +350,6 @@
- message(SEND_ERROR "Could not find libpack in specified location:" ${FREECAD_LIBPACK_DIR})
- ENDIF(FREECAD_LIBPACK_CHECKFILE6X)
-
--# -------------------------------- PyCXX --------------------------------
--
-- find_package(PyCXX REQUIRED)
--
- # -------------------------------- Swig ----------------------------------
-
- find_package(SWIG)
-@@ -473,24 +471,29 @@
-
- # Salome SMESH sources are under src/3rdParty now
- IF(OCC_FOUND)
-- set(SMESH_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc)
-- set(SMESH_LIBRARIES
-- StdMeshers
-- #MEFISTO2
-- SMESH
-- DriverUNV
-- SMESHDS
-- DriverSTL
-- DriverDAT
-- Driver
-- SMDS
-- )
-- set(SMESH_FOUND TRUE)
-- ENDIF(OCC_FOUND)
-- #find_package(SMESH)
-- #IF(NOT SMESH_FOUND)
-- # MESSAGE("Salome SMESH was not found!")
-- #ENDIF(NOT SMESH_FOUND)
-+ if(NOT FREECAD_USE_EXTERNAL_SMESH)
-+ set(SMESH_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc)
-+ else()
-+ include_directories(${SMESH_INCLUDE_DIR})
-+ set(SMESH_LIBRARIES "")
-+ foreach(SMESH_LIB
-+ StdMeshers
-+ #MEFISTO2
-+ SMESH
-+ DriverUNV
-+ SMESHDS
-+ DriverSTL
-+ DriverDAT
-+ Driver
-+ SMDS
-+ )
-+ find_library(SMESH_${SMESH_LIB} ${SMESH_LIB} REQUIRED)
-+ list(APPEND SMESH_LIBRARIES ${SMESH_${SMESH_LIB}})
-+ endforeach()
-+ message(STATUS "Found SMESH library: ${SMESH_LIBRARIES}")
-+ endif()
-+ set(SMESH_FOUND TRUE)
-+ ENDIF(OCC_FOUND)
-
- # -------------------------------- Netgen --------------------------------
-
-diff -Naur freecad-0.14.3702.orig/src/3rdParty/CMakeLists.txt freecad-0.14.3702/src/3rdParty/CMakeLists.txt
---- freecad-0.14.3702.orig/src/3rdParty/CMakeLists.txt 2014-07-13 10:33:02.000000000 -0500
-+++ freecad-0.14.3702/src/3rdParty/CMakeLists.txt 2014-07-26 21:31:55.617168862 -0500
-@@ -34,8 +34,8 @@
- endif (FREECAD_LIBPACK_CHECKFILE6X)
- endif(FREECAD_BUILD_GUI AND NOT FREECAD_USE_EXTERNAL_PIVY)
-
--# Build SalomeMesh for all Platforms since heavily patched
--if (FREECAD_BUILD_SMESH)
-+if(NOT FREECAD_USE_EXTERNAL_SMESH)
-+ # Build SalomeMesh for all Platforms since heavily patched
- add_subdirectory(salomesmesh)
--endif(FREECAD_BUILD_SMESH)
-+endif(NOT FREECAD_USE_EXTERNAL_SMESH)
-
-diff -Naur freecad-0.14.3702.orig/src/Mod/Fem/App/CMakeLists.txt freecad-0.14.3702/src/Mod/Fem/App/CMakeLists.txt
---- freecad-0.14.3702.orig/src/Mod/Fem/App/CMakeLists.txt 2014-07-13 10:33:02.000000000 -0500
-+++ freecad-0.14.3702/src/Mod/Fem/App/CMakeLists.txt 2014-12-15 14:23:39.548135756 -0600
-@@ -21,7 +21,7 @@
- ${PYTHON_INCLUDE_PATH}
- ${ZLIB_INCLUDE_DIR}
- ${XERCESC_INCLUDE_DIR}
-- ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc
-+ ${SMESH_INCLUDE_DIR}
- )
-
- link_directories(${OCC_LIBRARY_DIR})
-@@ -34,6 +34,8 @@
- StdMeshers
- NETGENPlugin
- SMESH
-+ SMDS
-+ SMESHDS
- )
- else(FREECAD_BUILD_FEM_NETGEN)
- set(Fem_LIBS
-@@ -41,6 +43,8 @@
- FreeCADApp
- StdMeshers
- SMESH
-+ SMDS
-+ SMESHDS
- )
- endif(FREECAD_BUILD_FEM_NETGEN)
-
-diff -Naur freecad-0.14.3702.orig/src/Mod/Fem/Gui/CMakeLists.txt freecad-0.14.3702/src/Mod/Fem/Gui/CMakeLists.txt
---- freecad-0.14.3702.orig/src/Mod/Fem/Gui/CMakeLists.txt 2014-07-13 10:33:02.000000000 -0500
-+++ freecad-0.14.3702/src/Mod/Fem/Gui/CMakeLists.txt 2014-12-15 11:16:24.706617437 -0600
-@@ -20,7 +20,7 @@
- ${SOQT_INCLUDE_DIR}
- ${PYTHON_INCLUDE_PATH}
- ${XERCESC_INCLUDE_DIR}
-- ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc
-+ ${SMESH_INCLUDE_DIR}
- )
-
- link_directories(${OCC_LIBRARY_DIR})
-diff -Naur freecad-0.14.3702.orig/src/Mod/MeshPart/App/CMakeLists.txt freecad-0.14.3702/src/Mod/MeshPart/App/CMakeLists.txt
---- freecad-0.14.3702.orig/src/Mod/MeshPart/App/CMakeLists.txt 2014-07-13 10:33:02.000000000 -0500
-+++ freecad-0.14.3702/src/Mod/MeshPart/App/CMakeLists.txt 2014-12-15 12:55:44.292060698 -0600
-@@ -14,7 +14,6 @@
-
- include_directories(
- ${CMAKE_SOURCE_DIR}/src
-- ${CMAKE_SOURCE_DIR}/src/3rdParty/salomesmesh/inc
- ${Boost_INCLUDE_DIRS}
- ${OCC_INCLUDE_DIR}
- ${ZLIB_INCLUDE_DIR}
-@@ -34,6 +33,7 @@
- StdMeshers
- NETGENPlugin
- SMESH
-+ SMDS
- )
- else(FREECAD_BUILD_FEM_NETGEN)
- set(MeshPart_LIBS
-@@ -41,6 +41,7 @@
- Mesh
- StdMeshers
- SMESH
-+ SMDS
- )
- endif(FREECAD_BUILD_FEM_NETGEN)
-
--- /dev/null
+diff -Naur freecad-0.15.4671.orig/src/Base/CMakeLists.txt freecad-0.15.4671/src/Base/CMakeLists.txt
+--- freecad-0.15.4671.orig/src/Base/CMakeLists.txt 2015-04-05 12:25:02.000000000 -0500
++++ freecad-0.15.4671/src/Base/CMakeLists.txt 2015-04-11 07:19:09.729155453 -0500
+@@ -301,9 +301,11 @@
+ # Use external zipios++ if specified.
+ if(FREECAD_USE_EXTERNAL_ZIPIOS)
+ find_library(ZIPIOS_LIBRARY zipios)
+- find_path(ZIPIOS_INCLUDES zipios++/zipios-config.h)
++ find_path(ZIPIOS_INCLUDES NAMES
++ zipios++/zipios-config.h
++ zipios++/zipios-config.hpp)
+ if(ZIPIOS_LIBRARY)
+- message(STATUS "Found zipios++: ${ZIPIOS}")
++ message(STATUS "Found zipios++: ${ZIPIOS_LIBRARY}")
+ endif()
+ if(ZIPIOS_INCLUDES)
+ message(STATUS "Found zipios++ headers.")
#
# Conditional build:
%bcond_with occ # Compile using OpenCASCADE instead of OCE
-%bcond_with bundled_zipios # use bundled version of zipios++
-%bcond_with bundled_pycxx # use bundled version of pycxx
-%bcond_with bundled_smesh # use bundled version of Salome's Mesh
+%bcond_without system_zipios # use system version of zipios++
+%bcond_without system_pycxx # use system version of pycxx
+%bcond_without system_smesh # use system version of Salome's Mesh
# This revision is 0.15 final.
%define rev 4671
Source102: %{name}.1
Source103: %{name}.appdata.xml
Source104: %{name}.sharedmimeinfo
-Patch0: %{name}-3rdParty.patch
-Patch1: %{name}-0.14-Xlib_h.patch
-Patch2: %{name}-0.14-smesh.patch
-Patch3: %{name}-0.14-DraftSnap.patch
-#Patch4: %{name}-0.14-disable_auto_dxf_dl.patch
+Patch0: freecad-3rdParty.patch
+Patch1: freecad-0.14-Xlib_h.patch
+Patch2: freecad-0.15-zipios.patch
+Patch3: freecad-0.14-Version_h.patch
URL: http://freecadweb.org/
# Utilities
BuildRequires: cmake
#BuildRequires: opencv-devel
BuildRequires: python-devel
BuildRequires: python-matplotlib
-%{!?with_bundled_pycxx:BuildRequires: python-pycxx-devel}
-BuildRequires: python-pyside-devel
+%{?with_system_pycxx:BuildRequires: python-pycxx-devel}
+BuildRequires: python-PySide-devel
+BuildRequires: pyside-tools
BuildRequires: qt-devel
-BuildRequires: qt-webkit-devel
+BuildRequires: QtWebKit-devel
BuildRequires: shiboken
-%{!?with_bundled_smesh:BuildRequires: smesh-devel}
BuildRequires: xerces-c
BuildRequires: xerces-c-devel
-%{!?with_bundled_zipios:BuildRequires: zipios++-devel}
+%{?with_system_zipios:BuildRequires: zipios++-devel}
Requires: %{name}-data = %{version}-%{release}
Requires: glib2 >= 1:2.26.0
-# Obsolete old doc package since it's required for functionality.
-Obsoletes: freecad-doc < 0.13-5
# Needed for plugin support and is not a soname dependency.
Requires: hicolor-icon-theme
Requires: python-collada
%package data
Summary: Data files for FreeCAD
Requires: %{name} = %{version}-%{release}
-%if "%{_rpmversion}" >= "5"
BuildArch: noarch
-%endif
%description data
Data files for FreeCAD.
%prep
%setup -q -n %{name}-%{version}.%{rev}
%patch0 -p1
-%if %{without bundled_pycxx}
-rm -r src/CXX
-%endif
%patch1 -p1
%patch2 -p1
%patch3 -p1
-# Patch comes from upstream/master, doesn't apply cleanly to 0.14.
-#patch4 -p1
-%if %{without bundled_zipios}
+%if %{with system_pycxx}
+rm -r src/CXX
+%endif
+
+%if %{with system_zipios}
rm -r src/zipios++
%endif
copying.lib \
data/License.txt
-# Removed bundled libraries
+# Removed system libraries
rm -r src/3rdParty
%build
install -d build
cd build
-
-# Deal with cmake projects that tend to link excessively.
-export LDFLAGS="%{rpmcflags} -Wl,--as-needed -Wl,--no-undefined"
-
%cmake \
-DCMAKE_INSTALL_PREFIX=%{_libdir}/%{name} \
-DCMAKE_INSTALL_DATADIR=%{_datadir}/%{name} \
%if %{with occ}
-DUSE_OCC=TRUE \
%endif
-%if %{without bundled_smesh}
+%if %{with system_smesh}
-DFREECAD_USE_EXTERNAL_SMESH=TRUE \
-DSMESH_INCLUDE_DIR=%{_includedir}/smesh \
%endif
-%if %{without bundled_zipios}
+%if %{with system_zipios}
-DFREECAD_USE_EXTERNAL_ZIPIOS=TRUE \
%endif
-%if %{without bundled_pycxx}
+%if %{with system_pycxx}
-DPYCXX_INCLUDE_DIR=$(pkg-config --variable=includedir PyCXX) \
-DPYCXX_SOURCE_DIR=$(pkg-config --variable=srcdir PyCXX) \
%endif
# Install man page
install -pD %{SOURCE102} $RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1
-# Symlink manpage to other binary names
-ln -s %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/FreeCAD.1
-ln -s %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/FreeCADCmd.1
+# groff link manpage to other binary names
+echo %{name}.1 > $RPM_BUILD_ROOT%{_mandir}/man1/FreeCAD.1
+echo %{name}.1 > $RPM_BUILD_ROOT%{_mandir}/man1/FreeCADCmd.1
# Remove obsolete Start_Page.html
rm $RPM_BUILD_ROOT%{_docdir}/%{name}/Start_Page.html