"Fossies" - the Fresh Open Source Software Archive 
Member "pfstools-2.2.0/CMakeLists.txt" (12 Aug 2021, 9138 Bytes) of package /linux/privat/pfstools-2.2.0.tgz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 cmake_minimum_required (VERSION 2.8.8)
2 project(pfstools)
3
4 set(CPACK_GENERATOR TGZ)
5 set(CPACK_SOURCE_GENERATOR TGZ)
6 # CPack version numbers for release tarball name.
7 set(CPACK_PACKAGE_VERSION_MAJOR 2)
8 set(CPACK_PACKAGE_VERSION_MINOR 1)
9 set(CPACK_PACKAGE_VERSION_PATCH 0)
10 set(CPACK_SOURCE_IGNORE_FILES
11 "~$"
12 "\\\\.cvsignore$"
13 "^${PROJECT_SOURCE_DIR}.*/CVS/"
14 "^${PROJECT_SOURCE_DIR}/debian/"
15 "^${PROJECT_SOURCE_DIR}/old/"
16 )
17 include( CPack )
18
19 #cmake_policy(SET CMP0074 NEW)
20
21 # This gets rid of some warning messages in MSVC
22 add_definitions(-D_CRT_SECURE_NO_WARNINGS)
23
24 #SET(ZLIB_DIR "C:/Users/manti/Documents/projects/vs2019_libs")
25 #SET(CMAKE_INCLUDE_PATH ${ZLIB_DIR}/include ${CMAKE_INCLUDE_PATH})
26 #SET(CMAKE_LIBRARY_PATH ${ZLIB_DIR}/ ${ZLIB_DIR}/lib ${CMAKE_LIBRARY_PATH})
27 #set(CMAKE_PREFIX_PATH "C:\\Qt\\5.15.2\\msvc2019_64")
28
29 if( "${CYGWIN}" STREQUAL "" )
30 set(CYGWIN 0)
31 endif( "${CYGWIN}" STREQUAL "" )
32
33 set (pfstools_VERSION_MAJOR ${CPACK_PACKAGE_VERSION_MAJOR})
34 set (pfstools_VERSION_MINOR ${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
35 set (pfslib_version 1.2)
36 set(CMAKE_LEGACY_CYGWIN_WIN32 0)
37
38 set (MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man/man1" CACHE PATH "The directory where the man pages are")
39
40 include( CheckCXXSourceCompiles )
41
42
43 # ======== Check for OpenMP =======
44
45 find_package(OpenMP)
46 if( OPENMP_FOUND )
47 set( HAVE_OpenMP 1 )
48 else( OPENMP_FOUND )
49 set( HAVE_OpenMP 0 )
50 endif( OPENMP_FOUND )
51
52
53 # ======== Has branch prediction =======
54
55 check_cxx_source_compiles( "int main() { int x = 0; if( __builtin_expect((x),0) ) x = 1; return 0; }" HAS_BRANCH_PEDICTION )
56
57 if( HAS_BRANCH_PREDICTION )
58 set( BRANCH_PREDICTION 1 )
59 else( HAS_BRANCH_PREDICTION )
60 set( BRANCH_PREDICTION 0 )
61 endif( HAS_BRANCH_PREDICTION )
62
63 # ======== Find bash =======
64
65 # TODO: What if the check fails
66 find_program (BASH_EXECUTABLE bash)
67 message( "Using bash: ${BASH_EXECUTABLE}" )
68
69 # ======== Find perl =======
70
71 find_program (PERL_EXECUTABLE perl)
72 if( PERL_EXECUTABLE )
73 message( "Using perl: ${PERL_EXECUTABLE}" )
74 else( PERL_EXECUTABLE )
75 message( "Perl interpreter not found. Reading multiple exposures (pfsinhdrgen, pfsinme) will not work" )
76 endif( PERL_EXECUTABLE )
77
78 # ======== Build static or dynamic libraries =======
79
80 OPTION (BUILD_SHARED_LIBS "Build pfs as a shared library" OFF)
81 # TODO: Shared libs do not work with VS. Add declspec as explained at: http://www.cmake.org/Wiki/BuildingWinDLL
82 # Set the LIB_TYPE variable to STATIC
83 SET (LIB_TYPE STATIC)
84 IF (BUILD_SHARED_LIBS)
85 SET (LIB_TYPE SHARED)
86 ENDIF (BUILD_SHARED_LIBS)
87
88 # ======== Check for getopt, which is missing on Windows ========
89
90 check_cxx_source_compiles( "#include \"getopt.h\" \n int main() { return 0; }" HAS_GETOPT )
91 if( NOT HAS_GETOPT )
92 MESSAGE( STATUS "getopt not found, a replacement needs to be compiled. " )
93 set( GETOPT_INCLUDE "${PROJECT_SOURCE_DIR}/src/getopt" )
94 set( GETOPT_OBJECT "$<TARGET_OBJECTS:getopt>" )
95 else( NOT HAS_GETOPT )
96 MESSAGE( STATUS "getopt found. " )
97 set( GETOPT_INCLUDE ".") # work around, cannot pass empty string
98 set( GETOPT_OBJECT )
99 endif( NOT HAS_GETOPT )
100
101 set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake )
102
103 # ======== OpenEXR ===========
104
105 OPTION(WITH_OpenEXR "Compile with OpenEXR library" ON)
106
107 if( WITH_OpenEXR )
108
109 find_package (OpenEXR)
110 if( NOT OPENEXR_FOUND )
111 MESSAGE( STATUS "OpenEXR not found. The following command will not be
112 compiled: pfsinexr pfsoutexr. " )
113 endif( NOT OPENEXR_FOUND )
114
115 endif( WITH_OpenEXR )
116
117 # ======== Image Magick ===========
118
119 OPTION(WITH_ImageMagick "Use ImageMagick library" ON)
120
121 if( WITH_ImageMagick )
122
123 find_package(ImageMagick COMPONENTS Magick++ MagickCore)
124 if( NOT ImageMagick_FOUND )
125 MESSAGE( STATUS "ImageMagick not found. The following commands will not be
126 compiled: pfsinimgmagick pfsoutimgmagick pfsouthdrhtml. " )
127 endif( NOT ImageMagick_FOUND )
128
129 else( WITH_ImageMagick )
130
131 set( ImageMagick_FOUND OFF )
132
133 endif( WITH_ImageMagick )
134
135 message( "ImageMagick CFLAGS: " ${ImageMagick_INCLUDE_DIRS} )
136
137 # ======== NetPBM ===========
138
139 #include( ${PROJECT_SRC_DIR}/cmake/FindNETPBM.cmake )
140
141 OPTION(WITH_NetPBM "Use NetPBM library" ON)
142
143 if( WITH_NetPBM )
144
145 find_package(NETPBM)
146 if( NOT NETPBM_FOUND )
147 MESSAGE( STATUS "NetPBM not found. The following commands will
148 not be compiled: pfsinppm pfsoutppm. " )
149 endif( NOT NETPBM_FOUND )
150
151 else( WITH_NetPBM )
152
153 set( NETPBM_FOUND OFF )
154
155 endif( WITH_NetPBM )
156
157 # ======== TIFF ===========
158
159 #include( ${PROJECT_SRC_DIR}/cmake/FindTIDD.cmake )
160
161 OPTION(WITH_TIFF "Use TIFF library" ON)
162
163 if( WITH_TIFF )
164
165 find_package(TIFF)
166 if( NOT TIFF_FOUND )
167 MESSAGE( STATUS "TIFF not found. The following commands will
168 not be compiled: pfsintiff pfsouttiff. " )
169 endif( NOT TIFF_FOUND )
170
171 else( WITH_TIFF )
172
173 set( NETPBM_FOUND OFF )
174
175 endif( WITH_TIFF )
176
177 # ======== QT ===========
178
179 OPTION(WITH_QT "Use QT library" ON)
180
181 if( WITH_QT )
182
183 find_package(Qt5 COMPONENTS Widgets)
184 if( NOT Qt5Widgets_FOUND)
185 MESSAGE( STATUS "Qt5 library not found. The following commands
186 will not be compiled: pfsview. " )
187 else( NOT Qt5Widgets_FOUND )
188 MESSAGE( STATUS "Qt5 found" )
189 endif( NOT Qt5Widgets_FOUND )
190
191 else( WITH_QT )
192
193 set( QT_FOUND OFF )
194
195 endif( WITH_QT )
196
197 # ======== Matlab ===========
198
199 OPTION(WITH_MATLAB "Compile Matlab MEX files" ON)
200
201 SET (MATLAB_DEST_DIR "${CMAKE_INSTALL_PREFIX}/share/pfstools/pfstools_matlab"
202 CACHE PATH "Copy matlab functions to this directory")
203
204 SET (MEXGCC ""
205 CACHE PATH "gcc compiler to use with MEX, for example MEXGCC=/usr/bin/gcc-4.7")
206
207 if( WITH_MATLAB )
208 find_package(MATLAB)
209
210 if( MATLAB_FOUND )
211 message(STATUS "matlab found. mex command: ${MATLAB_MEX}")
212 elseif( MATLAB_FOUND )
213 message( STATUS "Matlab or mex compiler not found. Matlab integration will not be compiled." )
214 endif( MATLAB_FOUND )
215
216 endif( WITH_MATLAB )
217
218
219 #include( FindPkgConfig.cmake )
220
221 # ======== OpenGL ===========
222
223 set(OpenGL_GL_PREFERENCE GLVND)
224
225 OPTION(WITH_pfsglview "Compile pfsglview, requires OpenGL and GLUT" ON)
226
227 if( WITH_pfsglview )
228
229 find_path(OPENGL_INCLUDE_DIR GL/gl.h )
230
231 find_package(OpenGL )
232 find_package(GLUT )
233
234 if( NOT OPENGL_FOUND )
235 MESSAGE( STATUS "OpenGL not found. The following command will not be
236 compiled: pfsglview. " )
237 endif( NOT OPENGL_FOUND )
238
239 if( NOT GLUT_FOUND )
240 MESSAGE( STATUS "GLUT not found. The following command will not be
241 compiled: pfsglview. " )
242 endif( NOT GLUT_FOUND )
243
244 endif( WITH_pfsglview )
245
246 # ========= FFTW ===========
247
248 OPTION(WITH_FFTW "Use fftw to speed up some operations" ON)
249
250 if( WITH_FFTW )
251
252 find_package (FFTW)
253
254 if( NOT FFTW_FOUND )
255 MESSAGE( STATUS "FFTW library not found. Acceleration for pfstmo_durand02 disabled. " )
256 set( HAVE_FFTW3F 0 )
257 set( HAVE_FFTW3 0 )
258 else( NOT FFTW_FOUND )
259 set( HAVE_FFTW3F 1 )
260 set( HAVE_FFTW3 1 )
261 endif( NOT FFTW_FOUND )
262
263 else( WITH_FFTW )
264 set( HAVE_FFTW3F 0 )
265 set( HAVE_FFTW3 0 )
266 endif( WITH_FFTW )
267
268
269 # ========= GSL ===========
270
271 OPTION(WITH_GSL "Use Gnu Scientific Libarary required for some TMOs" ON)
272
273 if( WITH_GSL )
274
275 find_package (GSL)
276
277 if( NOT GSL_FOUND )
278 MESSAGE( STATUS "GSL library not found. pfstmo_mantiuk08 will not be compiled." )
279 endif( NOT GSL_FOUND )
280
281 endif( WITH_GSL )
282
283
284 # ======== HDRVC ===========
285 # This is an experimental implementation of HDR-MPEG codec, not included in the official release.
286 OPTION(WITH_HDRVC "Compile HDRVC (internal release only)" OFF)
287
288 # ======== MKOCTFILE/OCTAVE ===========
289
290 OPTION(WITH_Octave "Compile Octave files" ON)
291
292 SET (OCTAVE_DEST_DIR "" CACHE PATH "Install octave .m and .oct files in this directory")
293
294 if( OCTAVE_DEST_DIR )
295 set( OCTAVE_OCT_DIR ${OCTAVE_DEST_DIR} )
296 set( OCTAVE_M_DIR ${OCTAVE_DEST_DIR} )
297 else( OCTAVE_DEST_DIR )
298 execute_process(COMMAND octave-config --oct-site-dir OUTPUT_VARIABLE OCTAVE_OCT_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
299 set( OCTAVE_OCT_DIR "${OCTAVE_OCT_DIR}/pfstools" )
300 execute_process(COMMAND octave-config --m-site-dir OUTPUT_VARIABLE OCTAVE_M_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)
301 set( OCTAVE_M_DIR "${OCTAVE_M_DIR}/pfstools" )
302 endif( OCTAVE_DEST_DIR )
303
304 if( WITH_Octave )
305
306 find_program(MKOCTFILE mkoctfile)
307 if(NOT MKOCTFILE)
308 message(STATUS "Failed to find mkoctfile. Maybe liboctave-dev is not installed.")
309 endif()
310 if(MKOCTFILE)
311 message(STATUS "mkoctfile found.")
312 endif()
313
314 endif( WITH_Octave )
315
316 # ======== OpenCV ===========
317
318 OPTION(WITH_OpenCV "Use OpenCV library requires for pfsalign" ON)
319
320 if( WITH_OpenCV )
321
322 find_package( OpenCV )
323
324 if( NOT OpenCV_FOUND )
325 message( "OpenCV library not found. 'pfsalign' will not be compiled" )
326 else( NOT OpenCV_FOUND )
327 message(STATUS "OpenCV library found.")
328 endif( NOT OpenCV_FOUND )
329
330 endif( WITH_OpenCV )
331
332 # ======== libexif ==========
333
334 find_package(EXIF)
335 if( NOT EXIF_FOUND )
336 message( "EXIF library (libexif) not found. 'pfsalign' will not be compiled" )
337 else( NOT EXIF_FOUND )
338 message(STATUS "libexif library found.")
339 endif( NOT EXIF_FOUND )
340
341 # ======== Config and sub dirs ===========
342
343 set(PKG_DATADIR "${CMAKE_INSTALL_PREFIX}/share/pfstools")
344 configure_file (
345 "${PROJECT_SOURCE_DIR}/cmake_config.h.in"
346 "${PROJECT_BINARY_DIR}/config.h"
347 )
348
349 add_subdirectory (src)