Merging r44003 through r44069 from trunk into soc-2011-tomato
[blender.git] / extern / carve / bundle.sh
1 #!/bin/sh
2
3 if [ -d ./.svn ]; then
4   echo "This script is supposed to work only when using git-svn"
5   exit 1
6 fi
7
8 tmp=`mktemp -d`
9
10 hg clone https://code.google.com/p/carve/ $tmp/carve
11
12 for p in `cat ./patches/series`; do
13   echo "Applying patch $p..."
14   cat ./patches/$p | patch -d $tmp/carve -p1
15 done
16
17 rm -rf include
18 rm -rf lib
19
20 cat "files.txt" | while read f; do
21   mkdir -p `dirname $f`
22   cp $tmp/carve/$f $f
23 done
24
25 rm -rf $tmp
26
27 sources=`find ./lib -type f -iname '*.cc' -or -iname '*.cpp' -or -iname '*.c' | sed -r 's/^\.\//\t/'`
28 headers=`find ./lib -type f -iname '*.h' -or -iname '*.hpp' | sed -r 's/^\.\//\t/'`
29 includes=`find ./include -type f -iname '*.h' -or -iname '*.hpp' | sed -r 's/^\.\//\t/'`
30
31 mkdir -p include/carve/external/boost
32 cp patches/files/random.hpp include/carve/external/boost/random.hpp
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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, 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
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'] != 'win32-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