-
Notifications
You must be signed in to change notification settings - Fork 0
Building ITK libraries
Dawid Koziński 2012-12-03
=============================================================================== This is step by step tutorial on how to build ITK 4 libraries
$ mkdir itk-4.1.0
$ cd itk-4.1.0
$ git clone http://itk.org/ITK.git
$ git checkout -b v4.1.0
$ git tag
$ git show v4.1.0
tag v4.1.0 Tagger: Luis Ibanez [email protected] Date: Fri Mar 2 11:02:52 2012 -0500
ITK 4.1.0 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux)
iQIcBAABAgAGBQJPUO90AAoJEBRnWbEJ8i3glAkP/197JEk+II60Nq4+zTCGLsfz RogUaQT1MhU4xePCfesizVlV47Dz/WsLND/7R6q4H5E9DA4INYabjrgXVYwSbp/x UrvF0u2M0arADVM7f7f4fpz+Hn4NtXYO7IqK2/BgORoqBpbrW7ol9+yQgKgBB1sw buQ7kmpSEN4gQpDihqf9e6eR+X2Hj7hiqNzdbaVx3w0RsbVfA0iwLzdyGXfALotG 7cyfYleclkTex5CFYNIbn6HB3WXU3Cjv4stWbfE6zezdLApzX/F29q7XCZjJjuUB lW5TWh4WxQGxjA6r6dGjyXM2ImyJdnYZlUB+zkQITZsC3i6lrenLTsDhuW8BwStN NHB4e/UYYhlSFqNGH0sreOOszZdehsTb98ngLyOIl13LjrePKNnH6JAI2IpZJm4b uzAgK4rWbkWambrAqbhf/ZMmOQ+1PnhICErZIgLUBzHBNnaykLtyRZvgSwVOBhE/ 0WaCJIpH6F6zH9r2bIrA0E1DRv2fclrgO3dG34W20byz6SPpoVPqPEIlFIi+V+4/ wjMJ4kLYGV11yFJw5vhkOI4kUFfdBk1AVJ3BXFmYldoMfsEobdl0oX2K2HrIqdHv aNlHK4tOB1pNQrfKjembK/AcyUBhSoG7eckV0Xk8AOAfka7b6iydFM13/7NnOdQ3 BbkB1IZL2iYmS+g5hnM+ =xEVw -----END PGP SIGNATURE-----
commit 4af483dd16e960583f0c02633f594fd253844a61 Author: KWSys Robot [email protected] Date: Fri Mar 2 00:01:08 2012 -0500
...
$ git show v4.1.0
$ git reset --hard 4af483dd16e960583f0c02633f594fd253844a61
($ refactor_namespace.sh)
$ mkdir build
$ cd build
$ ccmake ..
Set the options as follows
<samp>BUILD_EXAMPLES OFF</samp><br>
<samp>BYUILD_TESTING OFF</samp><br>
and generate make file
$ make
http://osirixpluginwithitk320.wikispaces.com/ http://www.itk.org/CourseWare/Training/GettingStarted-I.pdf http://www.itk.org/Wiki/ITK/Examples/EdgesAndGradients/DerivativeImageFilter http://osirixpluginbasics.wordpress.com/2011/01/16/osirix-plugin-with-itk-framework/
=============================================================================== refactor_namespace.sh
#!/bin/sh
# srcipt for renaming the ikt namespace
# working with ITK v3.20 and ITK4.0
# Created by Brian Jensen
# Modified by Danilo Torrisi & Rene Laqua
echo $1
echo $2
if [ "$1" == "" ]; then echo "Usage: refactor_namespace.sh ITK_DIR NEW_NAMESPACE" && exit 1
fi
if [ -n "$2" ]; then NEWNAME=$2
else NEWNAME="psfITK"
fi
#ITK v3.20
echo "Modifying Utilitites/CMakeLists.txt file, changing systems namespace"
sed -e "s/SET(KWSYS_NAMESPACE itksys)/SET(KWSYS_NAMESPACE ${NEWNAME}sys)/g" "$1/Utilities/CMakeLists.txt" > "$1/Utilities/CMakeLists.txt.sed"
test -s "$1/Utilities/CMakeLists.txt.sed" && (cmp -s "$1/Utilities/CMakeLists.txt.sed" "$1/Utilities/CMakeLists.txt" || mv -f "$1/Utilities/CMakeLists.txt.sed" "$1/Utilities/CMakeLists.txt")
echo "done\n"
echo "Modifying Code/IO/CMakeLists.txt, deavtivating test driver"
cp "$1/Code/IO/CMakeLists.txt" "$1/Code/CMakeLists.txt.original"
sed -e '/ADD_EXECUTABLE(itkTestDriver itkTestDriver.cxx)/,/CACHE INTERNAL "itkTestDriver path to be used by subprojects")/d'
"$1/Code/IO/CMakeLists.txt" > "$1/Code/IO/CMakeLists.txt.sed"
test -s "$1/Code/IO/CMakeLists.txt.sed" && (cmp -s "$1/Code/IO/CMakeLists.txt.sed" "$1/Code/IO/CMakeLists.txt" || mv -f "$1/Code/IO/CMakeLists.txt.sed" "$1/Code/IO/CMakeLists.txt")
echo "done"
#ITK v4.0
echo "Modifying Modules/ThirdParty/KWSys/src/CMakeLists.txt file, changing systems namespace"
sed -e "s/set(KWSYS_NAMESPACE itksys)/set(KWSYS_NAMESPACE ${NEWNAME}sys)/g" "$1/Modules/ThirdParty/KWSys/src/CMakeLists.txt" > "$1/Modules/ThirdParty/KWSys/src/CMakeLists.txt.sed"
test -s "$1/Modules/ThirdParty/KWSys/src/CMakeLists.txt.sed" && (cmp -s "$1/Modules/ThirdParty/KWSys/src/CMakeLists.txt.sed" "$1/Modules/ThirdParty/KWSys/src/CMakeLists.txt" || mv -f "$1/Modules/ThirdParty/KWSys/src/CMakeLists.txt.sed" "$1/Modules/ThirdParty/KWSys/src/CMakeLists.txt")
echo "done\n"
echo "Modifying Modules/Core/TestKernel/src/CMakeLists.txt, deavtivating test driver"
cp "$1/Modules/Core/TestKernel/src/CMakeLists.txt" "$1/Modules/Core/TestKernel/src/CMakeLists.txt.original"
sed -e "s/^/#/" "$1/Modules/Core/TestKernel/src/CMakeLists.txt" > "$1/Modules/Core/TestKernel/src/CMakeLists.txt.sed"
test -s "$1/Modules/Core/TestKernel/src/CMakeLists.txt.sed" && (cmp -s "$1/Modules/Core/TestKernel/src/CMakeLists.txt.sed" "$1/Modules/Core/TestKernel/src/CMakeLists.txt" || mv -f "$1/Modules/Core/TestKernel/src/CMakeLists.txt.sed" "$1/Modules/Core/TestKernel/src/CMakeLists.txt")
echo "done"
FILELIST=find $1 \( -name "*.h" -o -name "*.txx" -o -name "*.cxx" -o -name "*.hxx" \) -print
#echo "$FILELIST"
for i in $FILELIST; do
echo "Changing $i ..."
sed -e "s/namespace[ \t*]itk/namespace $NEWNAME/g" -e "s/::itk/::$NEWNAME/g" -e "s/itk::/$NEWNAME::/g" -e "s/itksys/${NEWNAME}sys/g" -e "s/itkv3/$NEWNAMEv3/g" "$i" > "$i.sed"
#cat "$i.sed"
test -s "$i.sed" && (cmp -s "$i.sed" "$i" || mv -f "$i.sed" "$i")
rm -f "$i.sed"
echo "done\n"
done