Update Carve to latest update
[blender.git] / extern / carve / bundle.sh
1 #!/bin/sh
2
3 if [ "x$1" = "x--i-really-know-what-im-doing" ] ; then
4   echo Proceeding as requested by command line ...
5 else
6   echo "*** Please run again with --i-really-know-what-im-doing ..."
7   exit 1
8 fi
9
10 tmp=`mktemp -d`
11
12 hg clone https://code.google.com/p/carve/ $tmp/carve
13
14 for p in `cat ./patches/series`; do
15   echo "Applying patch $p..."
16   cat ./patches/$p | patch -d $tmp/carve -p1
17 done
18
19 find include -type f -not -iwholename '*.svn*' -exec rm -rf {} \;
20 find lib -type f -not -iwholename '*.svn*' -exec rm -rf {} \;
21
22 cat "files.txt" | while read f; do
23   mkdir -p `dirname $f`
24   cp $tmp/carve/$f $f
25 done
26
27 rm -rf $tmp
28
29 sources=`find ./lib -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//\t/' | sort -d`
30 headers=`find ./lib -type f -iname '*.h' -or -iname '*.hpp' | sed -r 's/^\.\//\t/' | sort -d`
31 includes=`find ./include -type f -iname '*.h' -or -iname '*.hpp' | sed -r 's/^\.\//\t/' | sort -d`
32
33 cp patches/files/config.h include/carve/config.h
34
35 cat > CMakeLists.txt << EOF
36 # ***** BEGIN GPL LICENSE BLOCK *****
37 #
38 # This program is free software; you can redistribute it and/or
39 # modify it under the terms of the GNU General Public License
40 # as published by the Free Software Foundation; either version 2
41 # of the License, or (at your option) any later version.
42 #
43 # This program is distributed in the hope that it will be useful,
44 # but WITHOUT ANY WARRANTY; without even the implied warranty of
45 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
46 # GNU General Public License for more details.
47 #
48 # You should have received a copy of the GNU General Public License
49 # along with this program; if not, write to the Free Software Foundation,
50 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
51 #
52 # The Original Code is Copyright (C) 2006, Blender Foundation
53 # All rights reserved.
54 #
55 # The Original Code is: all of this file.
56 #
57 # Contributor(s): Jacques Beaurai, Erwin Coumans
58 #
59 # ***** END GPL LICENSE BLOCK *****
60
61 # NOTE: This file is automatically generated by bundle.sh script
62 #       If you're doing changes in this file, please update template
63 #       in that script too
64
65 set(INC
66         include
67 )
68
69 set(INC_SYS
70 )
71
72 set(SRC
73 ${sources}
74
75 ${headers}
76
77 ${includes}
78 )
79
80 if(WITH_BOOST)
81         if(NOT MSVC)
82                 # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
83                 add_definitions(
84                         -DHAVE_BOOST_UNORDERED_COLLECTIONS
85                 )
86         endif()
87
88         add_definitions(
89                 -DCARVE_SYSTEM_BOOST
90         )
91
92         list(APPEND INC_SYS
93                 \${BOOST_INCLUDE_DIR}
94         )
95 endif()
96
97 blender_add_lib(extern_carve "\${SRC}" "\${INC}" "\${INC_SYS}")
98 EOF
99
100 cat > SConscript << EOF
101 #!/usr/bin/python
102
103 # NOTE: This file is automatically generated by bundle.sh script
104 #       If you're doing changes in this file, please update template
105 #       in that script too
106
107 Import ('env')
108
109 sources = env.Glob('lib/*.cpp')
110
111 defs = []
112 incs = ['include']
113
114 if env['WITH_BF_BOOST']:
115     if env['OURPLATFORM'] not in ('win32-vc', 'win64-vc'):
116         # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
117         if env['OURPLATFORM'] not in ('win32-mingw', 'win64-mingw'):
118             defs.append('HAVE_BOOST_UNORDERED_COLLECTIONS')
119
120     defs.append('CARVE_SYSTEM_BOOST')
121     incs.append(env['BF_BOOST_INC'])
122
123 env.BlenderLib ('extern_carve', Split(sources), incs, defs, libtype=['extern'], priority=[40] )
124 EOF