Merging r46469 through r46494 from trunk into soc-2011-tomato
[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 mkdir -p include/carve/external/boost
34 cp patches/files/random.hpp include/carve/external/boost/random.hpp
35 cp patches/files/config.h include/carve/config.h
36
37 cat > CMakeLists.txt << EOF
38 # ***** BEGIN GPL LICENSE BLOCK *****
39 #
40 # This program is free software; you can redistribute it and/or
41 # modify it under the terms of the GNU General Public License
42 # as published by the Free Software Foundation; either version 2
43 # of the License, or (at your option) any later version.
44 #
45 # This program is distributed in the hope that it will be useful,
46 # but WITHOUT ANY WARRANTY; without even the implied warranty of
47 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
48 # GNU General Public License for more details.
49 #
50 # You should have received a copy of the GNU General Public License
51 # along with this program; if not, write to the Free Software Foundation,
52 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
53 #
54 # The Original Code is Copyright (C) 2006, Blender Foundation
55 # All rights reserved.
56 #
57 # The Original Code is: all of this file.
58 #
59 # Contributor(s): Jacques Beaurai, Erwin Coumans
60 #
61 # ***** END GPL LICENSE BLOCK *****
62
63 # NOTE: This file is automatically generated by bundle.sh script
64 #       If you're doing changes in this file, please update template
65 #       in that script too
66
67 set(INC
68         include
69 )
70
71 set(INC_SYS
72 )
73
74 set(SRC
75 ${sources}
76
77 ${headers}
78
79 ${includes}
80 )
81
82 if(WITH_BOOST)
83         if(NOT MSVC)
84                 # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
85                 add_definitions(
86                         -DHAVE_BOOST_UNORDERED_COLLECTIONS
87                 )
88         endif()
89
90         add_definitions(
91                 -DCARVE_SYSTEM_BOOST
92         )
93
94         list(APPEND INC
95                 \${BOOST_INCLUDE_DIR}
96         )
97 endif()
98
99 blender_add_lib(extern_carve "\${SRC}" "\${INC}" "\${INC_SYS}")
100 EOF
101
102 cat > SConscript << EOF
103 #!/usr/bin/python
104
105 # NOTE: This file is automatically generated by bundle.sh script
106 #       If you're doing changes in this file, please update template
107 #       in that script too
108
109 Import ('env')
110
111 sources = env.Glob('lib/*.cpp')
112
113 defs = []
114 incs = ['include']
115
116 if env['WITH_BF_BOOST']:
117     if env['OURPLATFORM'] not in ('win32-vc', 'win64-vc'):
118         # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
119         if env['OURPLATFORM'] not in ('win32-mingw', 'win64-mingw'):
120             defs.append('HAVE_BOOST_UNORDERED_COLLECTIONS')
121
122     defs.append('CARVE_SYSTEM_BOOST')
123     incs.append(env['BF_BOOST_INC'])
124
125 env.BlenderLib ('extern_carve', Split(sources), incs, defs, libtype=['extern'], priority=[40] )
126 EOF