CMakeLists.txt 20.5 KB
Newer Older
1
2
3
4
5
#
# This is a CMake makefile.  You can find the cmake utility and
# information about it at http://www.cmake.org
#

6
cmake_minimum_required(VERSION 2.8.4)
7

8
9
10
# default to a Release build (except if CMAKE_BUILD_TYPE is set)
include(release_build_by_default)

11
12
13
project(dlib)

set(CPACK_PACKAGE_VERSION_MAJOR "18")
Davis King's avatar
Davis King committed
14
set(CPACK_PACKAGE_VERSION_MINOR "18")
15
set(CPACK_PACKAGE_VERSION_PATCH "99")
16
set(VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
17
set(DLIB_VERSION ${VERSION} PARENT_SCOPE)
18

19
# Suppress cmake warnings about changes in new versions.
20
21
if(COMMAND cmake_policy) 
   cmake_policy(SET CMP0003 NEW) 
22
23
24
   if (POLICY CMP0054)
      cmake_policy(SET CMP0054 NEW)
   endif()
25
endif()
26

27
include(add_global_compiler_switch.cmake)
28
29
30
31
32
33
34
35
36


# Make sure ENABLE_ASSERTS is defined for debug builds
if (NOT CMAKE_CXX_FLAGS_DEBUG MATCHES "-DENABLE_ASSERTS")
   set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DENABLE_ASSERTS" 
      CACHE STRING "Flags used by the compiler during C++ debug builds." 
      FORCE)
endif ()

37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Don't try to call add_library(dlib) and setup dlib's stuff if it has already
# been done by some other part of the current cmake project.  We do this
# because it avoids getting warnings/errors about cmake policy CMP0002.  This
# happens when a project tries to call add_subdirectory() on dlib more than
# once.  This most often happens when the top level of a project depends on two
# or more other things which both depend on dlib. 
if (NOT TARGET dlib)

   set (DLIB_ISO_CPP_ONLY_STR 
   "Enable this if you don't want to compile any non-ISO C++ code (i.e. you don't use any of the API Wrappers)" )
   set (DLIB_NO_GUI_SUPPORT_STR 
   "Enable this if you don't want to compile any of the dlib GUI code" )
   set (DLIB_ENABLE_STACK_TRACE_STR 
   "Enable this if you want to turn on the DLIB_STACK_TRACE macros" )
   set (DLIB_ENABLE_ASSERTS_STR 
   "Enable this if you want to turn on the DLIB_ASSERT macro" )
   set (DLIB_USE_BLAS_STR
   "Disable this if you don't want to use a BLAS library" )
   set (DLIB_USE_LAPACK_STR
   "Disable this if you don't want to use a LAPACK library" )
57
   set (DLIB_PNG_SUPPORT_STR
58
   "Disable this if you don't want to link against libpng" )
59
   set (DLIB_JPEG_SUPPORT_STR
60
61
62
   "Disable this if you don't want to link against libjpeg" )
   set (DLIB_LINK_WITH_SQLITE3_STR
   "Disable this if you don't want to link against sqlite3" )
63
   #set (DLIB_USE_FFTW_STR "Disable this if you don't want to link against fftw" )
64
65
66
67

   option(DLIB_ISO_CPP_ONLY ${DLIB_ISO_CPP_ONLY_STR} OFF)
   option(DLIB_NO_GUI_SUPPORT ${DLIB_NO_GUI_SUPPORT_STR} OFF)
   option(DLIB_ENABLE_STACK_TRACE ${DLIB_ENABLE_STACK_TRACE_STR} OFF)
68

69
70
71
72
73
74
75
   option(DLIB_ENABLE_ASSERTS ${DLIB_ENABLE_ASSERTS_STR} OFF)

   if(DLIB_ENABLE_ASSERTS)
       set (DLIB_DISABLE_ASSERTS false)
       set (ENABLE_ASSERTS true) # we need the CMake variable to properly configure config.h.in
   else()
       set (DLIB_DISABLE_ASSERTS true)
76
77
   endif()

78
79
   option(DLIB_USE_BLAS ${DLIB_USE_BLAS_STR} ON)
   option(DLIB_USE_LAPACK ${DLIB_USE_LAPACK_STR} ON)
80
81
   option(DLIB_PNG_SUPPORT ${DLIB_PNG_SUPPORT_STR} ON)
   option(DLIB_JPEG_SUPPORT ${DLIB_JPEG_SUPPORT_STR} ON)
82
   option(DLIB_LINK_WITH_SQLITE3 ${DLIB_LINK_WITH_SQLITE3_STR} ON)
83
   #option(DLIB_USE_FFTW ${DLIB_USE_FFTW_STR} ON)
84

85
86
87
88
89
90
91
92
93
94
95
96
97
   set(source_files 
         base64/base64_kernel_1.cpp
         bigint/bigint_kernel_1.cpp
         bigint/bigint_kernel_2.cpp
         bit_stream/bit_stream_kernel_1.cpp
         entropy_decoder/entropy_decoder_kernel_1.cpp
         entropy_decoder/entropy_decoder_kernel_2.cpp
         entropy_encoder/entropy_encoder_kernel_1.cpp
         entropy_encoder/entropy_encoder_kernel_2.cpp
         md5/md5_kernel_1.cpp
         tokenizer/tokenizer_kernel_1.cpp
         unicode/unicode.cpp
         data_io/image_dataset_metadata.cpp)
98

99
   if (DLIB_ISO_CPP_ONLY)
100
       add_library(dlib STATIC ${source_files} )
101
       if (UNIX AND NOT DLIB_IN_PROJECT_BUILD)
102
           add_library(dlib-shared SHARED ${source_files} )
103
       endif()
104
   else()
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134

      set(source_files ${source_files}
         sockets/sockets_kernel_1.cpp
         bsp/bsp.cpp
         dir_nav/dir_nav_kernel_1.cpp
         dir_nav/dir_nav_kernel_2.cpp
         dir_nav/dir_nav_extensions.cpp
         linker/linker_kernel_1.cpp
         logger/extra_logger_headers.cpp
         logger/logger_kernel_1.cpp
         logger/logger_config_file.cpp
         misc_api/misc_api_kernel_1.cpp
         misc_api/misc_api_kernel_2.cpp
         sockets/sockets_extensions.cpp
         sockets/sockets_kernel_2.cpp
         sockstreambuf/sockstreambuf.cpp
         sockstreambuf/sockstreambuf_unbuffered.cpp
         server/server_kernel.cpp
         server/server_iostream.cpp
         server/server_http.cpp
         threads/multithreaded_object_extension.cpp
         threads/threaded_object_extension.cpp
         threads/threads_kernel_1.cpp
         threads/threads_kernel_2.cpp
         threads/threads_kernel_shared.cpp
         threads/thread_pool_extension.cpp
         timer/timer.cpp
         stack_trace.cpp
         )

135
136
137
      # we want to link to the right stuff depending on our platform.  
      if (WIN32 AND NOT CYGWIN) ###############################################################################
         if (DLIB_NO_GUI_SUPPORT)
138
            set (dlib_needed_libraries ws2_32 winmm)
139
         else()
140
            set (dlib_needed_libraries ws2_32 winmm comctl32 gdi32 imm32)
141
142
143
144
145
146
         endif()
      elseif(APPLE) ############################################################################
         find_library(pthreadlib pthread)
         set (dlib_needed_libraries ${pthreadlib})

         if (NOT DLIB_NO_GUI_SUPPORT)
147
148
149
150
            find_package(X11 QUIET)
            if (X11_FOUND)
               include_directories(${X11_INCLUDE_DIR})
               set (dlib_needed_libraries ${dlib_needed_libraries} ${X11_LIBRARIES})
151
            else()
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
               find_library(xlib X11)
               # Make sure X11 is in the include path.  Note that we look for
               # Xlocale.h rather than Xlib.h because it avoids finding a partial
               # copy of the X11 headers on systems with anaconda installed.
               find_path(xlib_path Xlocale.h
                  PATHS 
                  /Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include
                  /opt/local/include
                  PATH_SUFFIXES X11
                  )
               if (xlib AND xlib_path)
                  get_filename_component(x11_path ${xlib_path} PATH CACHE)
                  include_directories(${x11_path})
                  set(dlib_needed_libraries ${dlib_needed_libraries} ${xlib} )
                  set(X11_FOUND 1)
               endif()
            endif()
            if (NOT X11_FOUND)
170
171
               message(" *****************************************************************************")
               message(" *** DLIB GUI SUPPORT DISABLED BECAUSE X11 DEVELOPMENT LIBRARIES NOT FOUND ***")
172
173
               message(" *** Make sure XQuartz is installed if you want GUI support.               ***")
               message(" *** You can download XQuartz from: http://xquartz.macosforge.org/landing/ ***")
174
               message(" *****************************************************************************")
175
176
               set(DLIB_NO_GUI_SUPPORT ON CACHE STRING ${DLIB_NO_GUI_SUPPORT_STR} FORCE )
            endif()
177
178
         endif()

179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
         mark_as_advanced(pthreadlib xlib xlib_path x11_path)
      else () ##################################################################################
         find_library(pthreadlib pthread)
         set (dlib_needed_libraries ${pthreadlib})

         # link to the nsl library if it exists.  this is something you need sometimes 
         find_library(nsllib nsl)
         if (nsllib)
            set (dlib_needed_libraries ${dlib_needed_libraries} ${nsllib})
         endif ()

         # link to the socket library if it exists.  this is something you need on solaris
         find_library(socketlib socket)
         if (socketlib)
            set (dlib_needed_libraries ${dlib_needed_libraries} ${socketlib})
         endif ()

         if (NOT DLIB_NO_GUI_SUPPORT)
            include(FindX11)
            if (X11_FOUND)
               include_directories(${X11_INCLUDE_DIR})
               set (dlib_needed_libraries ${dlib_needed_libraries} ${X11_LIBRARIES})
            else()
202
203
               message(" *****************************************************************************")
               message(" *** DLIB GUI SUPPORT DISABLED BECAUSE X11 DEVELOPMENT LIBRARIES NOT FOUND ***")
204
205
               message(" *** Make sure libx11-dev is installed if you want GUI support.            ***")
               message(" *** On Ubuntu run: sudo apt-get install libx11-dev                        ***")
206
               message(" *****************************************************************************")
207
208
               set(DLIB_NO_GUI_SUPPORT ON CACHE STRING ${DLIB_NO_GUI_SUPPORT_STR} FORCE )
            endif()
209
210
         endif()

211
212
         mark_as_advanced(nsllib pthreadlib socketlib)
      endif () ##################################################################################
213

214
215
216
217
218
219
220
221
222
223
224
225
      if (NOT DLIB_NO_GUI_SUPPORT)
         set(source_files ${source_files}
            gui_widgets/fonts.cpp
            gui_widgets/widgets.cpp
            gui_widgets/drawable.cpp
            gui_widgets/canvas_drawing.cpp
            gui_widgets/style.cpp
            gui_widgets/base_widgets.cpp
            gui_core/gui_core_kernel_1.cpp
            gui_core/gui_core_kernel_2.cpp
            )
      endif()
226

227
      INCLUDE (CheckFunctionExists)
228

229
      if (DLIB_PNG_SUPPORT)
230
         # try to find libpng 
Davis King's avatar
Davis King committed
231
         find_package(PNG QUIET)
232
233
         # Make sure there isn't something wrong with the version of LIBPNG
         # installed on this system.  
234
235
236
237
         if (PNG_FOUND)
            set(CMAKE_REQUIRED_LIBRARIES ${PNG_LIBRARY})
            CHECK_FUNCTION_EXISTS(png_create_read_struct LIBPNG_IS_GOOD)
         endif()
238
         if (PNG_FOUND AND LIBPNG_IS_GOOD)
239
240
241
            include_directories(${PNG_INCLUDE_DIR})
            set (dlib_needed_libraries ${dlib_needed_libraries} ${PNG_LIBRARY})
         else()
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
            # If we can't find libpng then statically compile it in.
            include_directories(external/libpng external/zlib)
            set(source_files ${source_files}
               external/libpng/png.c
               external/libpng/pngerror.c
               external/libpng/pngget.c
               external/libpng/pngmem.c
               external/libpng/pngpread.c
               external/libpng/pngread.c
               external/libpng/pngrio.c
               external/libpng/pngrtran.c
               external/libpng/pngrutil.c
               external/libpng/pngset.c
               external/libpng/pngtrans.c
               external/libpng/pngwio.c
               external/libpng/pngwrite.c
               external/libpng/pngwtran.c
               external/libpng/pngwutil.c
               external/zlib/adler32.c
               external/zlib/compress.c
               external/zlib/crc32.c
               external/zlib/deflate.c
               external/zlib/gzclose.c
               external/zlib/gzlib.c
               external/zlib/gzread.c
               external/zlib/gzwrite.c
               external/zlib/infback.c
               external/zlib/inffast.c
               external/zlib/inflate.c
               external/zlib/inftrees.c
               external/zlib/trees.c
               external/zlib/uncompr.c
               external/zlib/zutil.c
               )
276
         endif()
277
278
279
280
         set(source_files ${source_files}
            image_loader/png_loader.cpp
            image_saver/save_png.cpp
            )
281
      endif()
282

283
      if (DLIB_JPEG_SUPPORT)
284
         # try to find libjpeg 
285
         find_package(JPEG QUIET)
286
         # Make sure there isn't something wrong with the version of libjpeg 
287
288
         # installed on this system.  Also don't use the installed libjpeg
         # if this is an APPLE system because apparently it's broken (as of 2015/01/01).
289
290
291
292
         if (JPEG_FOUND)
            set(CMAKE_REQUIRED_LIBRARIES ${JPEG_LIBRARY})
            CHECK_FUNCTION_EXISTS(jpeg_read_header LIBJPEG_IS_GOOD)
         endif()
293
         if (JPEG_FOUND AND LIBJPEG_IS_GOOD AND NOT APPLE)
294
295
296
            include_directories(${JPEG_INCLUDE_DIR})
            set (dlib_needed_libraries ${dlib_needed_libraries} ${JPEG_LIBRARY})
         else()
297
            # If we can't find libjpeg then statically compile it in.
298
            add_definitions(-DDLIB_JPEG_STATIC)
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
            set(source_files ${source_files}
                  external/libjpeg/jcomapi.cpp
                  external/libjpeg/jdapimin.cpp
                  external/libjpeg/jdapistd.cpp
                  external/libjpeg/jdatasrc.cpp
                  external/libjpeg/jdcoefct.cpp
                  external/libjpeg/jdcolor.cpp
                  external/libjpeg/jddctmgr.cpp
                  external/libjpeg/jdhuff.cpp
                  external/libjpeg/jdinput.cpp
                  external/libjpeg/jdmainct.cpp
                  external/libjpeg/jdmarker.cpp
                  external/libjpeg/jdmaster.cpp
                  external/libjpeg/jdmerge.cpp
                  external/libjpeg/jdphuff.cpp
                  external/libjpeg/jdpostct.cpp
                  external/libjpeg/jdsample.cpp
                  external/libjpeg/jerror.cpp
                  external/libjpeg/jidctflt.cpp
                  external/libjpeg/jidctfst.cpp
                  external/libjpeg/jidctint.cpp
                  external/libjpeg/jidctred.cpp
                  external/libjpeg/jmemmgr.cpp
                  external/libjpeg/jmemnobs.cpp
                  external/libjpeg/jquant1.cpp
                  external/libjpeg/jquant2.cpp
Davis King's avatar
Davis King committed
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
                  external/libjpeg/jutils.cpp  
                  external/libjpeg/jcapimin.cpp
                  external/libjpeg/jdatadst.cpp
                  external/libjpeg/jcparam.cpp
                  external/libjpeg/jcapistd.cpp
                  external/libjpeg/jcmarker.cpp
                  external/libjpeg/jcinit.cpp
                  external/libjpeg/jcmaster.cpp
                  external/libjpeg/jcdctmgr.cpp
                  external/libjpeg/jccoefct.cpp  
                  external/libjpeg/jccolor.cpp  
                  external/libjpeg/jchuff.cpp  
                  external/libjpeg/jcmainct.cpp  
                  external/libjpeg/jcphuff.cpp  
                  external/libjpeg/jcprepct.cpp  
                  external/libjpeg/jcsample.cpp
                  external/libjpeg/jfdctint.cpp
                  external/libjpeg/jfdctflt.cpp
                  external/libjpeg/jfdctfst.cpp
                  )
345
         endif()
346
347
         set(source_files ${source_files}
            image_loader/jpeg_loader.cpp
Davis King's avatar
Davis King committed
348
            image_saver/save_jpeg.cpp
349
            )
350
351
      endif()

352

353
354
355
      if (DLIB_USE_BLAS OR DLIB_USE_LAPACK)
         # Try to find BLAS and LAPACK 
         include(cmake_find_blas.txt)
356

357
358
359
360
361
362
         if (DLIB_USE_BLAS)
            if (blas_found)
               set (dlib_needed_libraries ${dlib_needed_libraries} ${blas_libraries})
            else()
               set(DLIB_USE_BLAS OFF CACHE STRING ${DLIB_USE_BLAS_STR} FORCE )
            endif()
363
364
         endif()

365
366
367
368
369
370
         if (DLIB_USE_LAPACK)
            if (lapack_found)
               set (dlib_needed_libraries ${dlib_needed_libraries} ${lapack_libraries})
            else()
               set(DLIB_USE_LAPACK OFF CACHE STRING ${DLIB_USE_LAPACK_STR} FORCE )
            endif()
371
         endif()
372
373
374
      endif()


375

376
377
378
379
380
381
382
383
384
385
386
387
      if (DLIB_LINK_WITH_SQLITE3)
         find_library(sqlite sqlite3)
         # make sure sqlite3.h is in the include path
         find_path(sqlite_path sqlite3.h)
         if (sqlite AND sqlite_path)
            get_filename_component(sqlite_path2 ${sqlite_path} PATH CACHE)
            include_directories(${sqlite_path2})
            set(dlib_needed_libraries ${dlib_needed_libraries} ${sqlite} )
         else()
            set(DLIB_LINK_WITH_SQLITE3 OFF CACHE STRING ${DLIB_LINK_WITH_SQLITE3_STR} FORCE )
         endif()
         mark_as_advanced(sqlite sqlite_path sqlite_path2)
388
389
390
      endif()


391

392
      if (DLIB_USE_FFTW)
393
394
395
396
         find_library(fftw fftw3)
         # make sure fftw3.h is in the include path
         find_path(fftw_path fftw3.h)
         if (fftw AND fftw_path)
397
            include_directories(${fftw_path})
398
399
            set(dlib_needed_libraries ${dlib_needed_libraries} ${fftw} )
         else()
400
            set(DLIB_USE_FFTW OFF CACHE STRING ${DLIB_LINK_WITH_SQLITE3_STR} FORCE )
401
         endif()
402
         mark_as_advanced(fftw fftw_path)
403
404
      endif()

405
406
407
      add_library(dlib STATIC ${source_files} )
      target_link_libraries(dlib ${dlib_needed_libraries} )

408
      if (UNIX AND NOT DLIB_IN_PROJECT_BUILD)
409
410
          add_library(dlib-shared SHARED ${source_files} )
          target_link_libraries(dlib-shared ${dlib_needed_libraries} )
411
      endif()
412

413
   endif ()  ##### end of if NOT DLIB_ISO_CPP_ONLY ##########################################################
414

415
   # Install the library
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
   if (NOT DLIB_IN_PROJECT_BUILD)
       if(UNIX)
           set_target_properties(dlib-shared PROPERTIES
                                        OUTPUT_NAME dlib 
                                        VERSION ${VERSION})
           install(TARGETS dlib dlib-shared
                   EXPORT dlib 
                   RUNTIME DESTINATION bin # Windows (including cygwin) considers .dll to be runtime artifacts
                   LIBRARY DESTINATION lib
                   ARCHIVE DESTINATION lib)
       else()
           install(TARGETS dlib
                   EXPORT dlib 
                   RUNTIME DESTINATION bin # Windows considers .dll to be runtime artifacts
                   LIBRARY DESTINATION lib
                   ARCHIVE DESTINATION lib)
       endif()
433
434
435
436
437

       install(DIRECTORY ${CMAKE_SOURCE_DIR}/ DESTINATION include/dlib
               FILES_MATCHING PATTERN "*.h"
               REGEX "${CMAKE_CURRENT_BINARY_DIR}" EXCLUDE)

438

Davis King's avatar
Davis King committed
439
       configure_file(${PROJECT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
440
441
442
       # overwrite config.h with the configured one
       install(FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h DESTINATION include/dlib)

443
       configure_file(${PROJECT_SOURCE_DIR}/revision.h.in ${CMAKE_CURRENT_BINARY_DIR}/revision.h)
444
445
       install(FILES ${CMAKE_CURRENT_BINARY_DIR}/revision.h DESTINATION include/dlib)

446
       install(FILES "LICENSE.txt" DESTINATION share/doc/dlib)
447

448
449
450
451
452
453
454
455
       ## Config.cmake generation and installation

       set(ConfigPackageLocation lib/cmake/dlib)
       install(EXPORT dlib
            NAMESPACE dlib::
            DESTINATION ${ConfigPackageLocation})

       set(CONF_INSTALL_PATH "\${dlib_CMAKE_DIR}/../../../")
456
       configure_file(dlibConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/config/dlibConfig.cmake" @ONLY)
457
458
459

       include(CMakePackageConfigHelpers)
       write_basic_package_version_file(
460
           "${CMAKE_CURRENT_BINARY_DIR}/config/dlibConfigVersion.cmake"
461
462
463
464
465
           VERSION ${VERSION}
           COMPATIBILITY AnyNewerVersion
           )

       install(FILES 
466
467
                    "${CMAKE_CURRENT_BINARY_DIR}/config/dlibConfig.cmake" 
                    "${CMAKE_CURRENT_BINARY_DIR}/config/dlibConfigVersion.cmake" 
468
               DESTINATION ${ConfigPackageLocation})
469
470
   endif()

471

472
473
474
   #test for some things that really should be true about the compiler
   include(TestForSTDNamespace)
   include(TestForANSIStreamHeaders)
475
476


477
   if (DLIB_PNG_SUPPORT AND NOT DLIB_ISO_CPP_ONLY)
478
479
480
481
      add_global_define(DLIB_PNG_SUPPORT)
   else()
      remove_global_define(DLIB_PNG_SUPPORT)
   endif()
482

483
   if (DLIB_JPEG_SUPPORT AND NOT DLIB_ISO_CPP_ONLY)
484
485
486
487
      add_global_define(DLIB_JPEG_SUPPORT)
   else()
      remove_global_define(DLIB_JPEG_SUPPORT)
   endif()
488

489
   if (DLIB_USE_FFTW AND NOT DLIB_ISO_CPP_ONLY)
490
491
492
493
494
      add_global_define(DLIB_USE_FFTW)
   else()
      remove_global_define(DLIB_USE_FFTW)
   endif()

495

496
497
498
499
500
   if (DLIB_USE_BLAS AND blas_found)
      add_global_define(DLIB_USE_BLAS)
   else()
      remove_global_define(DLIB_USE_BLAS)
   endif()
501

502
503
504
505
506
   if (DLIB_USE_LAPACK AND lapack_found)
      add_global_define(DLIB_USE_LAPACK)
   else()
      remove_global_define(DLIB_USE_LAPACK)
   endif()
507

508

509
510
511
512
513
   if (DLIB_ISO_CPP_ONLY)
      add_global_define(DLIB_ISO_CPP_ONLY)
   else()
      remove_global_define(DLIB_ISO_CPP_ONLY)
   endif()
514
515


516
517
518
519
520
   if (DLIB_NO_GUI_SUPPORT)
      add_global_define(DLIB_NO_GUI_SUPPORT)
   else()
      remove_global_define(DLIB_NO_GUI_SUPPORT)
   endif()
521

522
523
524
525
526
   if (DLIB_ENABLE_STACK_TRACE)
      add_global_define(DLIB_ENABLE_STACK_TRACE)
   else()
      remove_global_define(DLIB_ENABLE_STACK_TRACE)
   endif()
527
528


529
530
531
532
533
   if (DLIB_ENABLE_ASSERTS)
      add_global_define(ENABLE_ASSERTS)
   else()
      remove_global_define(ENABLE_ASSERTS)
   endif()
534

535
536

endif()