Merged changes in the trunk up to revision 45619.
[blender.git] / intern / boolop / CMakeLists.txt
1 # ***** BEGIN GPL LICENSE BLOCK *****
2 #
3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software Foundation,
15 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 #
17 # The Original Code is Copyright (C) 2006, Blender Foundation
18 # All rights reserved.
19 #
20 # The Original Code is: all of this file.
21 #
22 # Contributor(s): Jacques Beaurain.
23 #
24 # ***** END GPL LICENSE BLOCK *****
25
26 remove_strict_flags()
27
28 set(INC 
29         .
30         extern
31         intern
32         ../container
33         ../guardedalloc
34         ../memutil
35         ../moto/include
36         ../../source/blender/blenlib
37         ../../source/blender/makesdna
38 )
39
40 set(INC_SYS
41
42 )
43
44 if(NOT WITH_CARVE)
45         set(SRC
46                 intern/BOP_BBox.cpp
47                 intern/BOP_BSPNode.cpp
48                 intern/BOP_BSPTree.cpp
49                 intern/BOP_Edge.cpp
50                 intern/BOP_Face.cpp
51                 intern/BOP_Face2Face.cpp
52                 intern/BOP_Interface.cpp
53                 intern/BOP_MathUtils.cpp
54                 intern/BOP_Merge.cpp
55                 intern/BOP_Merge2.cpp
56                 intern/BOP_Mesh.cpp
57                 intern/BOP_Segment.cpp
58                 intern/BOP_Splitter.cpp
59                 intern/BOP_Tag.cpp
60                 intern/BOP_Triangulator.cpp
61                 intern/BOP_Vertex.cpp
62
63                 extern/BOP_Interface.h
64                 intern/BOP_BBox.h
65                 intern/BOP_BSPNode.h
66                 intern/BOP_BSPTree.h
67                 intern/BOP_Chrono.h
68                 intern/BOP_Edge.h
69                 intern/BOP_Face.h
70                 intern/BOP_Face2Face.h
71                 intern/BOP_Indexs.h
72                 intern/BOP_MathUtils.h
73                 intern/BOP_Merge.h
74                 intern/BOP_Merge2.h
75                 intern/BOP_Mesh.h
76                 intern/BOP_Misc.h
77                 intern/BOP_Segment.h
78                 intern/BOP_Splitter.h
79                 intern/BOP_Tag.h
80                 intern/BOP_Triangulator.h
81                 intern/BOP_Vertex.h
82         )
83 else()
84         set(SRC
85                 intern/BOP_CarveInterface.cpp
86                 extern/BOP_Interface.h
87         )
88
89         list(APPEND INC
90                 ../../extern/carve/include
91         )
92
93         if(WITH_BOOST)
94                 if(NOT MSVC)
95                         # Boost is setting as preferred collections library in the Carve code when using MSVC compiler
96                         add_definitions(
97                                 -DHAVE_BOOST_UNORDERED_COLLECTIONS
98                         )
99                 endif()
100
101                 add_definitions(
102                         -DCARVE_SYSTEM_BOOST
103                 )
104
105                 list(APPEND INC
106                         ${BOOST_INCLUDE_DIR}
107                 )
108         endif()
109 endif()
110
111 blender_add_lib(bf_intern_bop "${SRC}" "${INC}" "${INC_SYS}")