Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37573494
en ru br
Репозитории ALT

Группа :: Система/Библиотеки
Пакет: itk4.12

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

%define _unpackaged_files_terminate_build 1

%define oname itk
%define soname 1
%define itkver 4.12

Name: %oname%itkver
Version: 4.12.2
Release: alt4.1

Group: System/Libraries
Summary: Toolkit for N-dimensional scientific image processing, segmentation, and registration.
License: ASL 2.0
Url: https://itk.org

# https://github.com/InsightSoftwareConsortium/ITK

Source: %name-%version.tar
Patch: %oname-%version-alt-build.patch
Patch1: %oname-%version-alt-vtk9.0-compat.patch

BuildRequires: gcc-c++ cmake
BuildRequires: gdcm-devel castxml graphviz libhdf5-devel
BuildRequires: libjpeg-devel libpng-devel libtiff-devel libxml2-devel
BuildRequires: libvxl-devel libvtk-devel zlib-devel
BuildRequires: libblas-devel liblapack-devel libnetcdf-devel jsoncpp-devel
BuildRequires: libexpat-devel dcmtk

BuildRequires: libfftw3-devel libgtest-devel eigen3-devel
BuildRequires: libminc-devel
BuildRequires: libniftilib-devel
BuildRequires: libXext-devel
BuildRequires: libdouble-conversion-devel

%define _description \
The Insight Toolkit (ITK) is an open-source, cross-platform toolkit for \
N-dimensional scientific image processing, segmentation, and registration. \
Segmentation is the process of identifying and classifying data found in a  \
digitally sampled representation. Typically the sampled representation is an  \
image acquired from such medical instrumentation as CT or MRI scanners. \
Registration is the task of aligning or developing correspondences between \
data. For example, in the medical environment, a CT scan may be aligned with  \
a MRI scan in order to combine the information contained in both.

%description
%_description

%package -n lib%oname%itkver
Summary: Shared libraries for ITK
Group: System/Libraries
%description -n lib%oname%itkver
This package contains ITK shared libraries.
%_description

%package -n lib%oname%itkver-glue
Summary: Shared libraries for ITK-VTK bindings
Group: System/Libraries
%description -n lib%oname%itkver-glue
This package contains shared libraries for VTK bindings to ITK.
%_description

%package -n lib%name-devel
Summary: Development files for ITK
Group: Development/C++
Requires: lib%oname%itkver = %EVR
Requires: lib%oname%itkver-glue = %EVR
Requires: %name-testdriver = %EVR
# Following dependencies are duplicates from build dependencies
Requires: eigen3-devel
Requires: gdcm-devel
Requires: libfftw3-devel
Requires: libXext-devel
Requires: libxml2-devel
Requires: libnetcdf-devel
Requires: libvtk-devel
Requires: libvxl-devel
Conflicts: lib%oname-devel
%description -n lib%name-devel
This package contains development files for ITK.
%_description

%package testdriver
Summary: Test driver for ITK
Group: Development/Tools
Requires: lib%oname%itkver = %EVR
Conflicts: %oname-testdriver
%description testdriver
This package contains test driver for ITK.
%_description

%package examples
Summary: Examples for ITK
Group: Development/Tools
Requires: lib%oname%itkver = %EVR
%description examples
This package contains source code of ITK examples.
%_description

%package doc
Summary: Documentation for ITK
Group: Documentation
BuildArch: noarch
%description doc
This package contains documentation for ITK.
%_description

%prep
%setup
%patch -p1
%patch1 -p1

# Save an unbuilt copy of the Example's sources for %%doc

mkdir itk-examples
cp -a Examples itk-examples

# Delete unused third party sources

rm -rf Modules/ThirdParty/Expat/src/
rm -rf Modules/ThirdParty/GDCM/src/
rm -rf Modules/ThirdParty/MINC/src/libminc/
rm -rf Modules/ThirdParty/MINC/src/CMakeLists.txt
rm -rf Modules/ThirdParty/HDF5/src/itkhdf5/
rm -rf Modules/ThirdParty/HDF5/src/CMakeLists.txt
rm -rf Modules/ThirdParty/HDF5/src/README.md
rm -rf Modules/ThirdParty/JPEG/src/itkjpeg/
rm -rf Modules/ThirdParty/JPEG/src/CMakeLists.txt
rm -rf Modules/ThirdParty/PNG/src/itkpng/
rm -rf Modules/ThirdParty/PNG/src/CMakeLists.txt
rm -rf Modules/ThirdParty/TIFF/src/itktiff/
rm -rf Modules/ThirdParty/TIFF/src/CMakeLists.txt
rm -rf Modules/ThirdParty/ZLIB/src/itkzlib/
rm -rf Modules/ThirdParty/ZLIB/src/CMakeLists.txt
rm -rf Modules/ThirdParty/VNL/src/
rm -rf Modules/ThirdParty/DoubleConversion/src

%build
# XXX: itk-examples (ex-Examples) for some reason are linked with the build
# artifact dir in the runpath, so we pass -DCMAKE_SKIP_RPATH=ON.
%cmake \
      %_cmake_skip_rpath \
      -DCMAKE_BUILD_TYPE:STRING="RelWithDebInfo" \
      -DCMAKE_VERBOSE_MAKEFILE=ON \
      -DCMAKE_CXX_FLAGS:STRING="-std=gnu++11 %{optflags}" \
      -DBUILD_SHARED_LIBS:BOOL=ON \
      -DBUILD_TESTING=OFF \
      -DBUILD_EXAMPLES:BOOL=ON \
      -DBUILD_DOCUMENTATION:BOOL=OFF \
      -DITK_BUILD_DEFAULT_MODULES:BOOL=ON \
      -DITK_WRAP_PYTHON:BOOL=OFF \
      -DITK_WRAP_JAVA:BOOL=OFF \
      -DITK_INSTALL_LIBRARY_DIR=%_lib/ \
      -DITK_INSTALL_INCLUDE_DIR=include/%name \
      -DITK_INSTALL_PACKAGE_DIR=%_lib/cmake/%name/ \
      -DITK_INSTALL_RUNTIME_DIR:PATH=%_bindir \
      -DITK_INSTALL_DOC_DIR=share/doc/%name/ \
      -DITK_USE_KWSTYLE:BOOL=OFF \
      -DITK_FORBID_DOWNLOADS=ON \
      -DModule_ITKReview:BOOL=ON \
      -DITK_USE_SYSTEM_LIBRARIES:BOOL=ON \
      -DITK_USE_FFTWD=ON \
      -DITK_USE_FFTWF=ON \
      -DITK_USE_SYSTEM_DCMTK=ON \
      -DITK_USE_SYSTEM_EXPAT=ON \
      -DITK_USE_SYSTEM_FFTW=ON \
      -DITK_USE_SYSTEM_GDCM=ON \
      -DITK_USE_SYSTEM_MINC=ON \
      -DITK_USE_SYSTEM_HDF5=ON \
      -DITK_USE_SYSTEM_JPEG=ON \
      -DITK_USE_SYSTEM_PNG=ON \
      -DITK_USE_SYSTEM_TIFF=ON \
      -DITK_USE_SYSTEM_ZLIB=ON \
      -DITK_USE_SYSTEM_VXL=ON \
      -DITK_USE_SYSTEM_DOUBLECONVERSION=ON \
      -DModule_ITKVtkGlue=ON \
   %nil
%cmake_build

%install
%cmake_install

# Don't install test driver as example

rm -f %_cmake__builddir/bin/itkTestDriver

install -D -m755 -t %buildroot%_libdir/%name-examples/ %_cmake__builddir/bin/*

%files -n lib%oname%itkver
%_libdir/lib*.so.%soname
%exclude %_libdir/libITKVtkGlue-%itkver.so.%soname

%files -n lib%name-devel
%_libdir/lib*.so
%_libdir/cmake/*
%_includedir/%name/

%files testdriver
%_bindir/itkTestDriver

%files examples
%doc itk-examples/Examples/
%_libdir/%name-examples/

%files doc
%doc %_docdir/%name/

%files -n lib%oname%itkver-glue
%_libdir/libITKVtkGlue-%itkver.so.%soname

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin