Booleans: Boost is no longer a dependency for Carve
[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 mkdir -p include/carve/random
35 cp patches/files/random.h include/carve/random/random.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         carve-capi.cc
76         carve-util.cc
77 ${sources}
78
79         carve-capi.h
80         carve-util.h
81 ${headers}
82
83 ${includes}
84 )
85
86 if(WITH_BOOST)
87         if(NOT MSVC)
88                 # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
89                 add_definitions(
90                         -DHAVE_BOOST_UNORDERED_COLLECTIONS
91                 )
92         endif()
93
94         add_definitions(
95                 -DCARVE_SYSTEM_BOOST
96                 -DHAVE_BOOST_LIBRARY
97         )
98
99         list(APPEND INC_SYS
100                 \${BOOST_INCLUDE_DIR}
101         )
102 endif()
103
104 blender_add_lib(extern_carve "\${SRC}" "\${INC}" "\${INC_SYS}")
105 EOF
106
107 cat > SConscript << EOF
108 #!/usr/bin/python
109
110 # NOTE: This file is automatically generated by bundle.sh script
111 #       If you're doing changes in this file, please update template
112 #       in that script too
113
114 Import ('env')
115
116 sources = env.Glob('lib/*.cpp')
117 sources += env.Glob('*.cc')
118
119 defs = []
120 incs = ['include']
121
122 if env['WITH_BF_BOOST']:
123     if env['OURPLATFORM'] not in ('win32-vc', 'win64-vc'):
124         # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
125         if env['OURPLATFORM'] not in ('win32-mingw', 'win64-mingw'):
126             defs.append('HAVE_BOOST_UNORDERED_COLLECTIONS')
127
128     defs.append('CARVE_SYSTEM_BOOST')
129     defs.append('HAVE_BOOST_LIBRARY')
130     incs.append(env['BF_BOOST_INC'])
131
132 env.BlenderLib ('extern_carve', Split(sources), incs, defs, libtype=['extern'], priority=[40] )
133 EOF