Planar tracking support for motion tracking
[blender.git] / extern / libmv / 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) 2011, Blender Foundation
18 # All rights reserved.
19 #
20 # Contributor(s): Blender Foundation,
21 #                 Sergey Sharybin
22 #
23 # ***** END GPL LICENSE BLOCK *****
24
25 # NOTE: This file is automatically generated by bundle.sh script
26 #       If you're doing changes in this file, please update template
27 #       in that script too
28
29 set(INC
30         .
31         ../Eigen3
32         third_party/ssba
33         third_party/ldl/Include
34         ../colamd/Include
35         third_party/ceres/include
36 )
37
38 set(INC_SYS
39         ${PNG_INCLUDE_DIR}
40         ${ZLIB_INCLUDE_DIRS}
41 )
42
43
44 # XXX - FIXME
45 # this is a momentary hack to find unwind.h in 10.6.sdk
46 if(APPLE)
47         if(${CMAKE_OSX_DEPLOYMENT_TARGET} STREQUAL "10.6")
48                 list(APPEND INC_SYS
49                         ${CMAKE_OSX_SYSROOT}/Developer/usr/llvm-gcc-4.2/lib/gcc/i686-apple-darwin10/4.2.1/include
50                 )
51         endif()
52 endif()
53 # XXX - END
54
55
56 set(SRC
57         libmv-capi.cpp
58         libmv/image/array_nd.cc
59         libmv/image/convolve.cc
60         libmv/multiview/conditioning.cc
61         libmv/multiview/euclidean_resection.cc
62         libmv/multiview/fundamental.cc
63         libmv/multiview/projection.cc
64         libmv/multiview/triangulation.cc
65         libmv/multiview/homography.cc
66         libmv/numeric/numeric.cc
67         libmv/numeric/poly.cc
68         libmv/simple_pipeline/bundle.cc
69         libmv/simple_pipeline/callbacks.cc
70         libmv/simple_pipeline/camera_intrinsics.cc
71         libmv/simple_pipeline/detect.cc
72         libmv/simple_pipeline/initialize_reconstruction.cc
73         libmv/simple_pipeline/intersect.cc
74         libmv/simple_pipeline/modal_solver.cc
75         libmv/simple_pipeline/pipeline.cc
76         libmv/simple_pipeline/reconstruction.cc
77         libmv/simple_pipeline/resect.cc
78         libmv/simple_pipeline/rigid_registration.cc
79         libmv/simple_pipeline/tracks.cc
80         libmv/tracking/brute_region_tracker.cc
81         libmv/tracking/esm_region_tracker.cc
82         libmv/tracking/hybrid_region_tracker.cc
83         libmv/tracking/klt_region_tracker.cc
84         libmv/tracking/lmicklt_region_tracker.cc
85         libmv/tracking/pyramid_region_tracker.cc
86         libmv/tracking/retrack_region_tracker.cc
87         libmv/tracking/trklt_region_tracker.cc
88         libmv/tracking/track_region.cc
89
90         third_party/fast/fast_10.c
91         third_party/fast/fast_11.c
92         third_party/fast/fast_12.c
93         third_party/fast/fast_9.c
94         third_party/fast/fast.c
95         third_party/fast/nonmax.c
96         third_party/gflags/gflags.cc
97         third_party/gflags/gflags_completions.cc
98         third_party/gflags/gflags_reporting.cc
99         third_party/ldl/Source/ldl.c
100         third_party/ssba/Geometry/v3d_metricbundle.cpp
101         third_party/ssba/Math/v3d_optimization.cpp
102
103         libmv-capi.h
104         libmv/base/id_generator.h
105         libmv/base/scoped_ptr.h
106         libmv/base/vector.h
107         libmv/base/vector_utils.h
108         libmv/image/array_nd.h
109         libmv/image/convolve.h
110         libmv/image/correlation.h
111         libmv/image/image.h
112         libmv/image/sample.h
113         libmv/image/tuple.h
114         libmv/logging/logging.h
115         libmv/multiview/conditioning.h
116         libmv/multiview/euclidean_resection.h
117         libmv/multiview/fundamental.h
118         libmv/multiview/nviewtriangulation.h
119         libmv/multiview/projection.h
120         libmv/multiview/resection.h
121         libmv/multiview/triangulation.h
122         libmv/numeric/dogleg.h
123         libmv/numeric/function_derivative.h
124         libmv/numeric/levenberg_marquardt.h
125         libmv/numeric/numeric.h
126         libmv/numeric/poly.h
127         libmv/simple_pipeline/bundle.h
128         libmv/simple_pipeline/callbacks.h
129         libmv/simple_pipeline/camera_intrinsics.h
130         libmv/simple_pipeline/detect.h
131         libmv/simple_pipeline/initialize_reconstruction.h
132         libmv/simple_pipeline/intersect.h
133         libmv/simple_pipeline/modal_solver.h
134         libmv/simple_pipeline/pipeline.h
135         libmv/simple_pipeline/reconstruction.h
136         libmv/simple_pipeline/resect.h
137         libmv/simple_pipeline/rigid_registration.h
138         libmv/simple_pipeline/tracks.h
139         libmv/tracking/brute_region_tracker.h
140         libmv/tracking/esm_region_tracker.h
141         libmv/tracking/hybrid_region_tracker.h
142         libmv/tracking/klt_region_tracker.h
143         libmv/tracking/lmicklt_region_tracker.h
144         libmv/tracking/pyramid_region_tracker.h
145         libmv/tracking/region_tracker.h
146         libmv/tracking/retrack_region_tracker.h
147         libmv/tracking/trklt_region_tracker.h
148
149         third_party/fast/fast.h
150         third_party/gflags/config.h
151         third_party/gflags/gflags/gflags_completions.h
152         third_party/gflags/gflags/gflags_declare.h
153         third_party/gflags/gflags/gflags.h
154         third_party/gflags/mutex.h
155         third_party/gflags/util.h
156         third_party/ldl/Include/ldl.h
157         third_party/msinttypes/inttypes.h
158         third_party/msinttypes/stdint.h
159         third_party/ssba/Geometry/v3d_cameramatrix.h
160         third_party/ssba/Geometry/v3d_distortion.h
161         third_party/ssba/Geometry/v3d_metricbundle.h
162         third_party/ssba/Math/v3d_linear.h
163         third_party/ssba/Math/v3d_linear_utils.h
164         third_party/ssba/Math/v3d_mathutilities.h
165         third_party/ssba/Math/v3d_optimization.h
166 )
167
168 if(WIN32)
169         list(APPEND SRC
170                 third_party/glog/src/logging.cc
171                 third_party/glog/src/raw_logging.cc
172                 third_party/glog/src/utilities.cc
173                 third_party/glog/src/vlog_is_on.cc
174                 third_party/glog/src/windows/port.cc
175
176                 third_party/glog/src/utilities.h
177                 third_party/glog/src/stacktrace_generic-inl.h
178                 third_party/glog/src/stacktrace.h
179                 third_party/glog/src/stacktrace_x86_64-inl.h
180                 third_party/glog/src/base/googleinit.h
181                 third_party/glog/src/base/mutex.h
182                 third_party/glog/src/base/commandlineflags.h
183                 third_party/glog/src/stacktrace_powerpc-inl.h
184                 third_party/glog/src/stacktrace_x86-inl.h
185                 third_party/glog/src/config.h
186                 third_party/glog/src/stacktrace_libunwind-inl.h
187                 third_party/glog/src/windows/glog/raw_logging.h
188                 third_party/glog/src/windows/glog/vlog_is_on.h
189                 third_party/glog/src/windows/glog/logging.h
190                 third_party/glog/src/windows/glog/log_severity.h
191                 third_party/glog/src/windows/port.h
192                 third_party/glog/src/windows/config.h
193         )
194
195         list(APPEND INC
196                 third_party/glog/src/windows
197         )
198
199         if(NOT MINGW)
200                 list(APPEND INC
201                         third_party/msinttypes
202                 )
203         endif()
204
205         if(MSVC)
206                 set(MSVC_OFLAGS O1 O2 Ox)
207                 foreach(FLAG ${MSVC_OFLAGS})
208                         string(REPLACE "${FLAG}" "Od" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
209                         string(REPLACE "${FLAG}" "Od" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
210                 endforeach()
211         endif()
212 else()
213         list(APPEND SRC
214                 third_party/glog/src/demangle.cc
215                 third_party/glog/src/logging.cc
216                 third_party/glog/src/raw_logging.cc
217                 third_party/glog/src/signalhandler.cc
218                 third_party/glog/src/symbolize.cc
219                 third_party/glog/src/utilities.cc
220                 third_party/glog/src/vlog_is_on.cc
221
222                 third_party/glog/src/base/commandlineflags.h
223                 third_party/glog/src/base/googleinit.h
224                 third_party/glog/src/base/mutex.h
225                 third_party/glog/src/config_freebsd.h
226                 third_party/glog/src/config.h
227                 third_party/glog/src/config_hurd.h
228                 third_party/glog/src/config_linux.h
229                 third_party/glog/src/config_mac.h
230                 third_party/glog/src/demangle.h
231                 third_party/glog/src/glog/logging.h
232                 third_party/glog/src/glog/log_severity.h
233                 third_party/glog/src/glog/raw_logging.h
234                 third_party/glog/src/glog/vlog_is_on.h
235                 third_party/glog/src/stacktrace_generic-inl.h
236                 third_party/glog/src/stacktrace.h
237                 third_party/glog/src/stacktrace_libunwind-inl.h
238                 third_party/glog/src/stacktrace_powerpc-inl.h
239                 third_party/glog/src/stacktrace_x86_64-inl.h
240                 third_party/glog/src/stacktrace_x86-inl.h
241                 third_party/glog/src/symbolize.h
242                 third_party/glog/src/utilities.h
243         )
244
245         list(APPEND INC
246                 third_party/glog/src
247         )
248 endif()
249
250 add_definitions(
251         -DV3DLIB_ENABLE_SUITESPARSE
252         -DGOOGLE_GLOG_DLL_DECL=
253 )
254
255 blender_add_lib(extern_libmv "${SRC}" "${INC}" "${INC_SYS}")
256
257 add_subdirectory(third_party)