IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Systèmes de compilation Discussion :

[cmake] configuration done mais pas de generation de makefile


Sujet :

Systèmes de compilation

  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut [cmake] configuration done mais pas de generation de makefile
    Bonjour tout le monde,

    J'ai un petit soucis avec un cmake, en effet celui-ci s'arrête à configuration done et je n'ai donc pas de makefile créée.

    Voici plus de précision : c'est un cmake utilisé pour une appli 3D, je l'avais déjà installé sans problème auparavant. Puis il y a un mois de ça elle a planté pour je ne sais quelle raison. J'ai donc tout désinstallé et tenté de réinstaller ça ne marchait pas. J'ai ensuite laissé tombé puis hier j'ai retenté d'installer l'appli avec une version légèrement augmentée et j'ai bien un configuration done mais pas de generation done, ce qui m'embête fortement puisque je ne peux pas finir l'installation sans le makefile. Sauriez vous m'aider à régler ce problème ?

    Je n'ai pas vraiment de connaissance de cmake et je suis loin d'être doué avec un linux donc si jamais je comprends pas tout de suite ce que vous voulez dire ne m'en veuillez pas s'il vous plaît.

    Voilà les instructions laissées par les codeurs de l'appli pour l'installation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Installation Instructions
    ==========================
    You can build this package using CMake build system (version 2.6 or higher
    should be installed on your system). CMake can generate different kinds of
    native build files for your system (e.g. Unix Makefiles, Eclipse CDT 4.0 project
    files, Visual Studio project files). You can generate build files using CMake
    command-line or GUI interfaces.
     
    Requirements
    ============
    CMake version 2.6 or higher
    Ruby 1.8
    Boost C++ Libraries
    Open Dynamics Engine (ODE)
    FreeType
    Developer Image Library (DevIL)
    OpenGL
    SDL
     
    The following packages are optional:
    wxWidgets: for inputwx plugin (e.g. required if you want to build rsgedit)
    FMOD: to buid fmod sound system plugin
    Latex (pdflatex): to generate developers manual
    Doxygen: to generate API documentation
     
     
    Basic Installation Using CMake Command-line Interface
    =====================================================
    1. Unpack the distribution and change directory to the top level source tree.
    2. (Recommended) Create a directory to hold your build files (e.g. 'mkdir build')
    3. Change directory to the directory you created in the previous step (for the
    above example, you can use 'cd build')
    4. Run 'cmake ..' to configure the package and generate build files. On Linux,
    it'll generate Makefiles for the package
    5. Optionally, you can run 'ccmake .' to edit the build settings (for example
    the installation directory).
    6. Considering that you've generated Makefiles using cmake, you can run 'make'
    to build the package.
    7. Run 'make install' to install the package. 
     
    Also, you can run 'make uninstall' to uninstall the package.
    Voilà le fichier Cmakelist :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    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
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    cmake_minimum_required(VERSION 2.6)
     
    project(simspark CXX C)
    set(PACKAGE_VERSION "0.2")
     
    ########## check for headerfiles/libraries ##########
    include(CheckIncludeFile) 
    check_include_file("netdb.h" HAVE_NETDB_H)
    check_include_file("resolv.h" HAVE_RESOLV_H)
    check_include_file("sys/socket.h" HAVE_SYS_SOCKET_H)
    check_include_file("netinet/in.h" HAVE_NETINET_IN_H)
    check_include_file("Winsock2.h" HAVE_WINSOCK2_H)
    check_include_file("arpa/nameser.h" HAVE_ARPA_NAMESER_H)
    check_include_file("arpa/inet.h" HAVE_ARPA_INET_H)
    check_include_file("string.h" HAVE_STRING_H)
    check_include_file("float.h" HAVE_FLOAT_H)
    check_include_file("limits.h" HAVE_LIMITS_H)
    check_include_file("malloc.h" HAVE_MALLOC_H)
    check_include_file("memory.h" HAVE_MEMORY_H)
    check_include_file("stdlib.h" HAVE_STDLIB_H)
    check_include_file("execinfo.h" HAVE_EXECINFO_H)
    check_include_file("unistd.h" HAVE_UNISTD_H)
    check_include_file("poll.h" HAVE_POLL_H)
     
    check_include_file("CoreFoundation/CoreFoundation.h"
    	           HAVE_COREFOUNDATION_COREFOUNDATION_H)
     
    if (NOT USE_COREFOUNDATION STREQUAL "OFF")
       if (HAVE_COREFOUNDATION_COREFOUNDATION_H)
          set(USE_COREFOUNDATION ON)		
          message(STATUS "  USE_COREFOUNDATION ON")		
       else (HAVE_COREFOUNDATION_COREFOUNDATION_H)
          set(USE_COREFOUNDATION OFF)		
          message(STATUS "  USE_COREFOUNDATION OFF")		
       endif (HAVE_COREFOUNDATION_COREFOUNDATION_H)
    endif (NOT USE_COREFOUNDATION STREQUAL "OFF")
     
    set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/)
    set(ENV{SDLDIR} $ENV{SDLDIR} C:/library/SDL/ "C:/Program Files/SDL/" "C:/Program Files (x86)/SDL/" C:/SDL/)
     
    find_package(Ruby REQUIRED)
    find_package(Freetype REQUIRED)
    find_package(DevIL REQUIRED)
    find_package(Boost REQUIRED thread COMPONENTS regex)
    find_package(wxWidgets COMPONENTS gl base core)
    find_package(ODE REQUIRED)
    find_package(OpenGL REQUIRED)
    find_package(SDL REQUIRED)
    find_package(FMOD)
    find_package(ZLIB)
    set(HAVE_IL_IL_H 1)
    set(HAVE_KEROSIN_KEROSIN_H 1)
     
    ########## check types/functions ##########
    include(CheckFunctionExists)
    include(CheckTypeSize)
    check_function_exists(strupr HAVE_STRUPR)
    set(CMAKE_REQUIRED_FLAGS "-include sys/socket.h")
    check_type_size(socklen_t SOCKLEN_T)
    set(CMAKE_REQUIRED_FLAGS "")
     
    ########## check for required libraries ##########
    include(CheckLibraryExists)
    check_function_exists(socket FUNC_SOCKET_EXISTS)
    if (NOT FUNC_SOCKET_EXISTS)
      check_library_exists(socket socket "" SOCKET_LIB_REQ)
      if (SOCKET_LIB_REQ)
        set(NET_LIBS ${NET_LIBS} socket)
      endif (SOCKET_LIB_REQ)
    endif (NOT FUNC_SOCKET_EXISTS)
     
    check_function_exists(gethostbyname FUNC_GETHOSTBYNAME_EXISTS)
    if (NOT FUNC_GETHOSTBYNAME_EXISTS)
      check_library_exists(nsl gethostbyname "" NSL_LIB_REQ)
      if (NSL_LIB_REQ)
        set(NET_LIBS ${NET_LIBS} nsl)
      endif (NSL_LIB_REQ)
    endif (NOT FUNC_GETHOSTBYNAME_EXISTS)
     
    check_function_exists(hstrerror FUNC_HSTRERROR_EXISTS)
    if (NOT FUNC_HSTRERROR_EXISTS)
      check_library_exists(resolv hstrerror "" RESOLV_LIB_REQ)
      if (RESOLV_LIB_REQ)
        set(NET_LIBS ${NET_LIBS} resolv)
      endif (RESOLV_LIB_REQ)
    endif (NOT FUNC_HSTRERROR_EXISTS)
     
    if (WIN32)
     set(NET_LIBS ${NET_LIBS} WS2_32.lib)
    endif (WIN32)
     
    ########## add extra flags ########## 
    if(NOT CMAKE_BUILD_TYPE)
      set (CMAKE_BUILD_TYPE Release)
    endif(NOT CMAKE_BUILD_TYPE)
     
    add_definitions(-DHAVE_CONFIG_H ${ODE_CFLAGS})
    include_directories(${CMAKE_BINARY_DIR} ${Boost_INCLUDE_DIRS} ${ODE_INCLUDE_DIR})
    link_directories(${Boost_LIBRARY_DIRS})
     
    if (UNIX)
      set(CMAKE_CXX_FLAGS $ENV{CXXFLAGS} CACHE
            STRING "Common C++ compiler flags" FORCE)
      set(CMAKE_C_FLAGS $ENV{CFLAGS} CACHE
            STRING "Common C compiler flags" FORCE)
      set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -W -Wall -Woverloaded-virtual" CACHE
            STRING "C++ compiler flags for Debug builds" FORCE)
      set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" CACHE
            STRING "C++ compiler flags for Release builds" FORCE)
    endif (UNIX)
     
    set(BINDIR "bin" CACHE PATH "The directory to install binaries into.")
    set(LIBDIR "lib" CACHE PATH "The directory to install libraries into.")
    set(DATADIR "share" CACHE PATH "The directory to install data files into.")
    set(INCLUDEDIR "include" CACHE PATH "The directory to install includes into.")
    set(CMAKE_SHARED_MODULE_PREFIX "")
     
    mark_as_advanced(BINDIR LIBDIR DATADIR INCLUDEDIR)
    set(BUILD_SHARED_LIBS TRUE)
    if (BUILD_SHARED_LIBS)
      set(SHARED_LIB_COMPILE 1)
    endif(BUILD_SHARED_LIBS)
     
    if(WIN32)
        add_definitions(-D_CRT_SECURE_NO_WARNINGS -DBOOST_ALL_DYN_LINK)
        include_directories(${CMAKE_SOURCE_DIR}/windows/include)
        if(MSVC)
          add_definitions(/Gm /Zi /GL)
        endif(MSVC)
    endif(WIN32)
     
    set(SALT_SO_VERSION 0)
    set(SALT_VERSION ${SALT_SO_VERSION}.3.2)
    set(ZEITGEIST_SO_VERSION 3)
    set(ZEITGEIST_VERSION ${ZEITGEIST_SO_VERSION}.1.0)
    set(OXYGEN_SO_VERSION 3)
    set(OXYGEN_VERSION ${OXYGEN_SO_VERSION}.3.0)
    set(KEROSIN_SO_VERSION 1)
    set(KEROSIN_VERSION ${KEROSIN_SO_VERSION}.1.0)
    set(SPARK_SO_VERSION 0)
    set(SPARK_VERSION ${SPARK_SO_VERSION}.0.0)
    set(RCSSNET_SO_VERSION 0)
    set(RCSSNET_VERSION ${RCSSNET_SO_VERSION}.1.0)
     
    ########## additional variables for -config scripts  ##########
    set(prefix ${CMAKE_INSTALL_PREFIX})
    set(exec_prefix ${CMAKE_INSTALL_PREFIX})
    set(spark_version ${SPARK_VERSION})
    set(salt_version ${SALT_VERSION})
    set(zeitgeist_version ${ZEITGEIST_VERSION})
    set(oxygen_version ${OXYGEN_VERSION})
    set(kerosin_version ${KEROSIN_VERSION})
    set(includedir ${CMAKE_INSTALL_PREFIX}/${INCLUDEDIR})
    set(libdir ${CMAKE_INSTALL_PREFIX}/${LIBDIR})
    if (CMAKE_BUILD_TYPE STREQUAL "Debug")
        set(debug "true")
    else (CMAKE_BUILD_TYPE STREQUAL "Debug")
        set(debug "false")
    endif (CMAKE_BUILD_TYPE STREQUAL "Debug")
     
     
    ########## generate configuration file ##########
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/sparkconfig.h.cmake
        ${CMAKE_CURRENT_BINARY_DIR}/sparkconfig.h)
     
    ########## add subdirectories ############
    add_subdirectory(utility)
    add_subdirectory(lib)
    add_subdirectory(plugin)
    add_subdirectory(test)
    add_subdirectory(doc)
    add_subdirectory(spark)
    add_subdirectory(data)
     
     
    ########### install files ###############
    install(FILES  AUTHORS ChangeLog COPYING NEWS README THANKS DESTINATION
        ${DATADIR}/doc/${CMAKE_PROJECT_NAME})
    install(FILES  ${CMAKE_CURRENT_BINARY_DIR}/sparkconfig.h DESTINATION
        ${INCLUDEDIR}/${CMAKE_PROJECT_NAME})
     
    if (WIN32) # try to find and install third-party .dlls to lib/thirdparty directory
           set(THLIBDIR ${LIBDIR}/thirdparty)
     
           string(REGEX REPLACE "(.*)\\.lib" "\\1.dll" ODEDLL "${ODE_LIBRARY}")
           if (EXISTS ${ODEDLL})
                  install(PROGRAMS ${ODEDLL} DESTINATION ${THLIBDIR})
           endif (EXISTS ${ODEDLL})
     
           install(DIRECTORY "${Boost_LIBRARY_DIRS}/" DESTINATION ${THLIBDIR}
                 FILES_MATCHING PATTERN "*.dll")
     
           string(REGEX REPLACE "(.*)\\.lib" "\\1.dll" DevIL_DLL "${DevIL_LIBRARY_IL}")
           if (EXISTS ${DevIL_DLL})
                  install(PROGRAMS ${DevIL_DLL} DESTINATION ${THLIBDIR})
           endif (EXISTS ${DevIL_DLL})
     
           string(REGEX REPLACE "(.*)/ruby.exe" "\\1/" RUBY_BINDIR "${RUBY_EXECUTABLE}")
           install(DIRECTORY "${RUBY_BINDIR}"
            	 DESTINATION ${THLIBDIR} FILES_MATCHING PATTERN "*.dll")
     
           install(DIRECTORY "${FREETYPE_INCLUDE_DIR_ft2build}/../bin/"
            	 DESTINATION ${THLIBDIR} FILES_MATCHING PATTERN "*.dll")
     
           set(SDL_DLL "${SDL_INCLUDE_DIR}/../lib/sdl.dll")
           if (EXISTS ${SDL_DLL})
                  install(PROGRAMS ${SDL_DLL} DESTINATION ${THLIBDIR})
           endif (EXISTS ${SDL_DLL})
    endif (WIN32)
     
    ########### uninstall support ############
    CONFIGURE_FILE(
      "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
      "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
      IMMEDIATE @ONLY)
     
    ADD_CUSTOM_TARGET(uninstall
      "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
     
    ########### CPack section #############
    set(CPACK_SOURCE_GENERATOR TGZ)
    set(CPACK_SOURCE_IGNORE_FILES
        /CVS/ /[.]svn/ /.*[.]o$ /.*[.]o/ /autom4te[.]cache/ /[.].* /bootstrap 
        /RELEASE /styles/ /papers/ /rpm.am /msi.am /codingstyle.txt)
    set(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})
    set(CPACK_SOURCE_PACKAGE_FILE_NAME
        ${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION})
     
    set(CPACK_PACKAGE_VENDOR "RoboCup Soccer Server 3D Maintenance Group")
    set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
    set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A generic physical simulation system")
    set(CPACK_PACKAGE_INSTALL_DIRECTORY "simspark")
    set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
    set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README")
    set(CPACK_NSIS_HELP_LINK "TODO:simspark wiki link")
    set(CPACK_NSIS_URL_INFO_ABOUT "http://simspark.sourceforge.net")
    set(CPACK_NSIS_CONTACT "simspark-devel@lists.sourceforge.net")
    set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "  !include ${CMAKE_SOURCE_DIR}\\\\windows\\\\install_extra.nsi")
    set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "  !include ${CMAKE_SOURCE_DIR}\\\\windows\\\\uninstall_extra.nsi")
     
    include(CPack)
     
    #original Makefile.am contents follow:
     
    #DISTCLEANFILES = $(top_builddir)/macosX/SDLMain.o $(top_builddir)/macosX/libSDLmain.a
    #
    #UPLOAD_BIN =
    #UPLOAD_SRC = upload-gzip upload-bzip2 upload-zip
    #UPLOAD_TARGETS = \
    #{gzip=>@PACKAGE@-@VERSION@.tar.gz} \
    #{bzip2=>@PACKAGE@-@VERSION@.tar.bz2} \
    #{zip=>@PACKAGE@-@VERSION@.zip}
    #include $(top_srcdir)/config.aux/sf.am
    #
    #include $(top_srcdir)/config.aux/cvs.am
    Voilà le fichier findBoost appelé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    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
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    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
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    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
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
    566
    567
    568
    569
    570
    571
    572
    573
    574
    575
    576
    577
    578
    579
    580
    581
    582
    583
    584
    585
    586
    587
    588
    589
    590
    591
    592
    593
    594
    595
    596
    597
    598
    599
    600
    601
    602
    603
    604
    605
    606
    607
    608
    609
    610
    611
    612
    613
    614
    615
    616
    617
    618
    619
    620
    621
    622
    623
    624
    625
    626
    627
    628
    629
    630
    631
    632
    633
    634
    635
    636
    637
    638
    639
    640
    641
    642
    643
    644
    645
    646
    647
    648
    649
    650
    651
    652
    653
    654
    655
    656
    657
    658
    659
    660
    661
    662
    663
    664
    665
    666
    667
    668
    669
    670
    671
    672
    673
    674
    675
    676
    677
    678
    679
    680
    681
    682
    683
    684
    685
    686
    687
    688
    689
    690
    691
    692
    693
    694
    695
    696
    697
    698
    699
    700
    701
    702
    703
    704
    705
    706
    707
    708
    709
    710
    711
    712
    713
    714
    715
    716
    717
    718
    719
    720
    721
    722
    723
    724
    725
    726
    727
    728
    729
    730
    731
    732
    733
    734
    735
    736
    737
    738
    739
    740
    741
    742
    743
    744
    745
    746
    747
    748
    749
    750
    751
    752
    753
    754
    755
    756
    757
    758
    759
    760
    761
    762
    763
    764
    765
    766
    767
    768
    769
    770
    771
    772
    773
    774
    775
    776
    777
    778
    779
    780
    781
    782
    783
    784
    785
    786
    787
    788
    789
    790
    791
    792
    793
    794
    795
    796
    797
    798
    799
    800
    801
    802
    803
    804
    805
    806
    807
    808
    809
    810
    811
    812
    813
    814
    815
    816
    817
    818
    819
    820
    821
    822
    823
    824
    825
    826
    827
    828
    829
    830
    831
    832
    833
    834
    835
    836
    837
    838
    839
    840
    841
    842
    843
    844
    845
    846
    847
    848
    849
    850
    851
    852
    853
    854
    855
    856
    857
    858
    859
    860
    861
    862
    863
    864
    865
    866
    867
    868
    869
    870
    871
    872
    873
    874
    875
    876
    877
    878
    879
    880
    881
    882
    883
    884
    885
    886
    887
    888
    889
    890
    891
    892
    893
    894
    895
    896
    897
    898
    899
    900
    901
    902
    903
    904
    905
    906
    907
    # - Try to find Boost include dirs and libraries
    # Usage of this module as follows:
    #
    # NOTE: Take note of the Boost_ADDITIONAL_VERSIONS variable below.
    # Due to Boost naming conventions and limitations in CMake this find
    # module is NOT future safe with respect to Boost version numbers,
    # and may break.
    #
    # == Using Header-Only libraries from within Boost: ==
    #
    #   find_package( Boost 1.36.0 )
    #   if(Boost_FOUND)
    #      include_directories(${Boost_INCLUDE_DIRS})
    #      add_executable(foo foo.cc)
    #   endif()
    #
    #
    # == Using actual libraries from within Boost: ==
    #
    #   set(Boost_USE_STATIC_LIBS   ON)
    #   set(Boost_USE_MULTITHREADED ON)
    #   find_package( Boost 1.36.0 COMPONENTS date_time filesystem system ... )
    #
    #   if(Boost_FOUND)
    #      include_directories(${Boost_INCLUDE_DIRS})
    #      add_executable(foo foo.cc)
    #      target_link_libraries(foo ${Boost_LIBRARIES})
    #   endif()
    #
    #
    # The components list needs to contain actual names of boost libraries only,
    # such as "date_time" for "libboost_date_time".  If you're using parts of
    # Boost that contain header files only (e.g. foreach) you do not need to
    # specify COMPONENTS.
    #
    # You should provide a minimum version number that should be used. If you provide this 
    # version number and specify the REQUIRED attribute, this module will fail if it
    # can't find the specified or a later version. If you specify a version number this is
    # automatically put into the considered list of version numbers and thus doesn't need
    # to be specified in the Boost_ADDITIONAL_VERSIONS variable (see below).
    #
    # =========== The mess that is Boost_ADDITIONAL_VERSIONS (sorry?) ============
    #
    # OK, so the Boost_ADDITIONAL_VERSIONS variable can be used to specify a list of
    # boost version numbers that should be taken into account when searching
    # for Boost. Unfortunately boost puts the version number into the
    # actual filename for the libraries, so this variable will certainly be needed
    # in the future when new Boost versions are released.
    #
    # Currently this module searches for the following version numbers:
    # 1.33, 1.33.0, 1.33.1, 1.34, 1.34.0, 1.34.1, 1.35, 1.35.0, 1.35.1,
    # 1.36, 1.36.0, 1.36.1, 1.37, 1.37.0, 1.38, 1.38.0, 1.39, 1.39.0,
    # 1.40, 1.40.0, 1.41, 1.41.0
    #
    # NOTE: If you add a new major 1.x version in Boost_ADDITIONAL_VERSIONS you should
    # add both 1.x and 1.x.0 as shown above.  Official Boost include directories
    # omit the 3rd version number from include paths if it is 0 although not all
    # binary Boost releases do so.
    #
    # SET(Boost_ADDITIONAL_VERSIONS "1.78" "1.78.0" "1.79" "1.79.0")
    #
    # ===================================== ============= ========================
    #
    # Variables used by this module, they can change the default behaviour and
    # need to be set before calling find_package:
    #
    #   Boost_USE_MULTITHREADED      Can be set to OFF to use the non-multithreaded
    #                                boost libraries.  If not specified, defaults
    #                                to ON.
    #
    #   Boost_USE_STATIC_LIBS        Can be set to ON to force the use of the static
    #                                boost libraries. Defaults to OFF.
    #
    # Other Variables used by this module which you may want to set.
    #
    #   Boost_ADDITIONAL_VERSIONS    A list of version numbers to use for searching
    #                                the boost include directory.  Please see
    #                                the documentation above regarding this
    #                                annoying, but necessary variable :(
    #
    #   Boost_DEBUG                  Set this to TRUE to enable debugging output
    #                                of FindBoost.cmake if you are having problems.
    #                                Please enable this before filing any bug
    #                                reports.
    #
    #   Boost_DETAILED_FAILURE_MSG   FindBoost doesn't output detailed information
    #                                about why it failed or how to fix the problem
    #                                unless this is set to TRUE or the REQUIRED
    #                                keyword is specified in find_package().
    #                                  [Since CMake 2.8.0]
    # 
    #   Boost_COMPILER               Set this to the compiler suffix used by Boost
    #                                (e.g. "-gcc43") if FindBoost has problems finding
    #                                the proper Boost installation
    #
    # These last three variables are available also as environment variables:
    #
    #   BOOST_ROOT or BOOSTROOT      The preferred installation prefix for searching for
    #                                Boost.  Set this if the module has problems finding
    #                                the proper Boost installation.
    #
    #   BOOST_INCLUDEDIR             Set this to the include directory of Boost, if the
    #                                module has problems finding the proper Boost installation
    #
    #   BOOST_LIBRARYDIR             Set this to the lib directory of Boost, if the
    #                                module has problems finding the proper Boost installation
    #
    # Variables defined by this module:
    #
    #   Boost_FOUND                         System has Boost, this means the include dir was
    #                                       found, as well as all the libraries specified in
    #                                       the COMPONENTS list.
    #
    #   Boost_INCLUDE_DIRS                  Boost include directories: not cached
    #
    #   Boost_INCLUDE_DIR                   This is almost the same as above, but this one is
    #                                       cached and may be modified by advanced users
    #
    #   Boost_LIBRARIES                     Link to these to use the Boost libraries that you
    #                                       specified: not cached
    #
    #   Boost_LIBRARY_DIRS                  The path to where the Boost library files are.
    #
    #   Boost_VERSION                       The version number of the boost libraries that
    #                                       have been found, same as in version.hpp from Boost
    #
    #   Boost_LIB_VERSION                   The version number in filename form as
    #                                       it's appended to the library filenames
    #
    #   Boost_MAJOR_VERSION                 major version number of boost
    #   Boost_MINOR_VERSION                 minor version number of boost
    #   Boost_SUBMINOR_VERSION              subminor version number of boost
    #
    #   Boost_LIB_DIAGNOSTIC_DEFINITIONS    [WIN32 Only] You can call
    #                                       add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS})
    #                                       to have diagnostic information about Boost's
    #                                       automatic linking outputted during compilation time.
    #
    # For each component you specify in find_package(), the following (UPPER-CASE)
    # variables are set.  You can use these variables if you would like to pick and
    # choose components for your targets instead of just using Boost_LIBRARIES.
    #
    #   Boost_${COMPONENT}_FOUND            True IF the Boost library "component" was found.
    #
    #   Boost_${COMPONENT}_LIBRARY          Contains the libraries for the specified Boost
    #                                       "component" (includes debug and optimized keywords
    #                                       when needed).
     
    #=============================================================================
    # Copyright 2006-2009 Kitware, Inc.
    # Copyright 2006-2008 Andreas Schneider <mail@cynapses.org>
    # Copyright 2007      Wengo
    # Copyright 2007      Mike Jackson
    # Copyright 2008      Andreas Pakulat <apaku@gmx.de>
    # Copyright 2008-2009 Philip Lowman <philip@yhbt.com>
    #
    # Distributed under the OSI-approved BSD License (the "License");
    # see accompanying file Copyright.txt for details.
    #
    # This software is distributed WITHOUT ANY WARRANTY; without even the
    # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    # See the License for more information.
    #=============================================================================
    # (To distributed this file outside of CMake, substitute the full
    #  License text for the above reference.)
     
    #-------------------------------------------------------------------------------
    #  FindBoost functions & macros
    #
    ############################################
    #
    # Check the existence of the libraries.
    #
    ############################################
    # This macro was taken directly from the FindQt4.cmake file that is included
    # with the CMake distribution. This is NOT my work. All work was done by the
    # original authors of the FindQt4.cmake file. Only minor modifications were
    # made to remove references to Qt and make this file more generally applicable
    # And ELSE/ENDIF pairs were removed for readability.
    #########################################################################
     
    MACRO (_Boost_ADJUST_LIB_VARS basename)
      IF (Boost_INCLUDE_DIR )
        IF (Boost_${basename}_LIBRARY_DEBUG AND Boost_${basename}_LIBRARY_RELEASE)
          # if the generator supports configuration types then set
          # optimized and debug libraries, or if the CMAKE_BUILD_TYPE has a value
          IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
            SET(Boost_${basename}_LIBRARY optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG})
          ELSE()
            # if there are no configuration types and CMAKE_BUILD_TYPE has no value
            # then just use the release libraries
            SET(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY_RELEASE} )
          ENDIF()
          # FIXME: This probably should be set for both cases
          SET(Boost_${basename}_LIBRARIES optimized ${Boost_${basename}_LIBRARY_RELEASE} debug ${Boost_${basename}_LIBRARY_DEBUG})
        ENDIF()
     
        # if only the release version was found, set the debug variable also to the release version
        IF (Boost_${basename}_LIBRARY_RELEASE AND NOT Boost_${basename}_LIBRARY_DEBUG)
          SET(Boost_${basename}_LIBRARY_DEBUG ${Boost_${basename}_LIBRARY_RELEASE})
          SET(Boost_${basename}_LIBRARY       ${Boost_${basename}_LIBRARY_RELEASE})
          SET(Boost_${basename}_LIBRARIES     ${Boost_${basename}_LIBRARY_RELEASE})
        ENDIF()
     
        # if only the debug version was found, set the release variable also to the debug version
        IF (Boost_${basename}_LIBRARY_DEBUG AND NOT Boost_${basename}_LIBRARY_RELEASE)
          SET(Boost_${basename}_LIBRARY_RELEASE ${Boost_${basename}_LIBRARY_DEBUG})
          SET(Boost_${basename}_LIBRARY         ${Boost_${basename}_LIBRARY_DEBUG})
          SET(Boost_${basename}_LIBRARIES       ${Boost_${basename}_LIBRARY_DEBUG})
        ENDIF()
     
        IF (Boost_${basename}_LIBRARY)
          set(Boost_${basename}_LIBRARY ${Boost_${basename}_LIBRARY} CACHE FILEPATH "The Boost ${basename} library")
     
          # Remove superfluous "debug" / "optimized" keywords from
          # Boost_LIBRARY_DIRS
          FOREACH(_boost_my_lib ${Boost_${basename}_LIBRARY})
            GET_FILENAME_COMPONENT(_boost_my_lib_path "${_boost_my_lib}" PATH)
            LIST(APPEND Boost_LIBRARY_DIRS ${_boost_my_lib_path})
          ENDFOREACH()
          LIST(REMOVE_DUPLICATES Boost_LIBRARY_DIRS)
     
          set(Boost_LIBRARY_DIRS ${Boost_LIBRARY_DIRS} CACHE FILEPATH "Boost library directory")
          SET(Boost_${basename}_FOUND ON CACHE INTERNAL "Whether the Boost ${basename} library found")
        ENDIF(Boost_${basename}_LIBRARY)
     
      ENDIF (Boost_INCLUDE_DIR )
      # Make variables changeble to the advanced user
      MARK_AS_ADVANCED(
          Boost_${basename}_LIBRARY
          Boost_${basename}_LIBRARY_RELEASE
          Boost_${basename}_LIBRARY_DEBUG
      )
    ENDMACRO (_Boost_ADJUST_LIB_VARS)
     
    #-------------------------------------------------------------------------------
     
    #
    # Runs compiler with "-dumpversion" and parses major/minor
    # version with a regex.
    #
    FUNCTION(_Boost_COMPILER_DUMPVERSION _OUTPUT_VERSION)
     
      EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
        ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
        OUTPUT_VARIABLE _boost_COMPILER_VERSION
      )
      STRING(REGEX REPLACE "([0-9])\\.([0-9])(\\.[0-9])?" "\\1\\2"
        _boost_COMPILER_VERSION ${_boost_COMPILER_VERSION})
     
      SET(${_OUTPUT_VERSION} ${_boost_COMPILER_VERSION} PARENT_SCOPE)
    ENDFUNCTION()
     
    #
    # A convenience function for marking desired components
    # as found or not
    #
    function(_Boost_MARK_COMPONENTS_FOUND _yes_or_no)
      foreach(COMPONENT ${Boost_FIND_COMPONENTS})
        string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
        set(Boost_${UPPERCOMPONENT}_FOUND ${_yes_or_no} CACHE INTERNAL "Whether the Boost ${COMPONENT} library found" FORCE)
      endforeach()
    endfunction()
     
    #
    # End functions/macros
    #  
    #-------------------------------------------------------------------------------
     
     
     
     
    IF(NOT DEFINED Boost_USE_MULTITHREADED)
        SET(Boost_USE_MULTITHREADED TRUE)
    ENDIF()
     
    if(Boost_FIND_VERSION_EXACT)
      # The version may appear in a directory with or without the patch
      # level, even when the patch level is non-zero.
      set(_boost_TEST_VERSIONS
        "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}.${Boost_FIND_VERSION_PATCH}"
        "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
    else(Boost_FIND_VERSION_EXACT)
      # The user has not requested an exact version.  Among known
      # versions, find those that are acceptable to the user request.
      set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
        "1.41.0" "1.41" "1.40.0" "1.40" "1.39.0" "1.39" "1.38.0" "1.38" "1.37.0" "1.37"
        "1.36.1" "1.36.0" "1.36" "1.35.1" "1.35.0" "1.35" "1.34.1" "1.34.0"
        "1.34" "1.33.1" "1.33.0" "1.33")
      set(_boost_TEST_VERSIONS)
      if(Boost_FIND_VERSION)
        set(_Boost_FIND_VERSION_SHORT "${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
        # Select acceptable versions.
        foreach(version ${_Boost_KNOWN_VERSIONS})
          if(NOT "${version}" VERSION_LESS "${Boost_FIND_VERSION}")
            # This version is high enough.
            list(APPEND _boost_TEST_VERSIONS "${version}")
          elseif("${version}.99" VERSION_EQUAL "${_Boost_FIND_VERSION_SHORT}.99")
            # This version is a short-form for the requested version with
            # the patch level dropped.
            list(APPEND _boost_TEST_VERSIONS "${version}")
          endif()
        endforeach(version)
      else(Boost_FIND_VERSION)
        # Any version is acceptable.
        set(_boost_TEST_VERSIONS "${_Boost_KNOWN_VERSIONS}")
      endif(Boost_FIND_VERSION)
    endif(Boost_FIND_VERSION_EXACT)
     
    # The reason that we failed to find Boost. This will be set to a
    # user-friendly message when we fail to find some necessary piece of
    # Boost.
    set(Boost_ERROR_REASON)
     
    SET( _boost_IN_CACHE TRUE)
    IF(Boost_INCLUDE_DIR)
     
      # On versions < 1.35, remove the System library from the considered list
      # since it wasn't added until 1.35.
      if(Boost_VERSION AND Boost_FIND_COMPONENTS)
         math(EXPR _boost_maj "${Boost_VERSION} / 100000")
         math(EXPR _boost_min "${Boost_VERSION} / 100 % 1000")
         if(${_boost_maj}.${_boost_min} VERSION_LESS 1.35)
           list(REMOVE_ITEM Boost_FIND_COMPONENTS system)
         endif()
      endif()
     
      FOREACH(COMPONENT ${Boost_FIND_COMPONENTS})
        STRING(TOUPPER ${COMPONENT} COMPONENT)
        IF(NOT Boost_${COMPONENT}_FOUND)
          SET( _boost_IN_CACHE FALSE)
        ENDIF(NOT Boost_${COMPONENT}_FOUND)
      ENDFOREACH(COMPONENT)
    ELSE(Boost_INCLUDE_DIR)
      SET( _boost_IN_CACHE FALSE)
    ENDIF(Boost_INCLUDE_DIR)
     
    IF (_boost_IN_CACHE)
      # in cache already
      SET(Boost_FOUND TRUE)
      FOREACH(COMPONENT ${Boost_FIND_COMPONENTS})
        STRING(TOUPPER ${COMPONENT} COMPONENT)
        _Boost_ADJUST_LIB_VARS( ${COMPONENT} )
        SET(Boost_LIBRARIES ${Boost_LIBRARIES} ${Boost_${COMPONENT}_LIBRARY})
      ENDFOREACH(COMPONENT)
      SET(Boost_INCLUDE_DIRS ${Boost_INCLUDE_DIR})
      IF(Boost_VERSION AND NOT "${Boost_VERSION}" STREQUAL "0")
        MATH(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000")
        MATH(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000")
        MATH(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100")
      ENDIF(Boost_VERSION AND NOT "${Boost_VERSION}" STREQUAL "0")
      if(Boost_DEBUG)
          message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                         "boost ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION} "
                         "is already in the cache.  For debugging messages, please clear the cache.")
      endif()
    ELSE (_boost_IN_CACHE)
      # Need to search for boost
      if(Boost_DEBUG)
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                       "Boost not in cache")
        # Output some of their choices
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                       "_boost_TEST_VERSIONS = ${_boost_TEST_VERSIONS}")
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                       "Boost_USE_MULTITHREADED = ${Boost_USE_MULTITHREADED}")
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                       "Boost_USE_STATIC_LIBS = ${Boost_USE_STATIC_LIBS}")
      endif()
     
      IF(WIN32)
        SET(Boost_LIB_DIAGNOSTIC_DEFINITIONS 
          "-DBOOST_LIB_DIAGNOSTIC" CACHE STRING "Boost diagnostic define")
      ENDIF(WIN32)
     
      SET(_boost_INCLUDE_SEARCH_DIRS
        C:/boost/include
        C:/boost
        C:/library/boost
        "C:/Program Files/boost"
        "C:/Program Files (x86)/boost"
        "$ENV{ProgramFiles}/boost/include"
        "$ENV{ProgramFiles}/boost"
        /sw/local/include
      )
     
      # If BOOST_ROOT was defined in the environment, use it.
      if (NOT BOOST_ROOT AND NOT $ENV{BOOST_ROOT} STREQUAL "")
        set(BOOST_ROOT $ENV{BOOST_ROOT})
      endif(NOT BOOST_ROOT AND NOT $ENV{BOOST_ROOT} STREQUAL "")
     
      # If BOOSTROOT was defined in the environment, use it.
      if (NOT BOOST_ROOT AND NOT $ENV{BOOSTROOT} STREQUAL "")
        set(BOOST_ROOT $ENV{BOOSTROOT})
      endif(NOT BOOST_ROOT AND NOT $ENV{BOOSTROOT} STREQUAL "")
     
      # If BOOST_INCLUDEDIR was defined in the environment, use it.
      IF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" )
        set(BOOST_INCLUDEDIR $ENV{BOOST_INCLUDEDIR})
      ENDIF( NOT $ENV{BOOST_INCLUDEDIR} STREQUAL "" )
     
      # If BOOST_LIBRARYDIR was defined in the environment, use it.
      IF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" )
        set(BOOST_LIBRARYDIR $ENV{BOOST_LIBRARYDIR})
      ENDIF( NOT $ENV{BOOST_LIBRARYDIR} STREQUAL "" )
     
      IF( BOOST_ROOT )
        file(TO_CMAKE_PATH ${BOOST_ROOT} BOOST_ROOT)
      ENDIF( BOOST_ROOT )
     
      if(Boost_DEBUG)
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                       "Declared as CMake or Environmental Variables:")
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                       "  BOOST_ROOT = ${BOOST_ROOT}")
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                       "  BOOST_INCLUDEDIR = ${BOOST_INCLUDEDIR}")
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                       "  BOOST_LIBRARYDIR = ${BOOST_LIBRARYDIR}")
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                       "_boost_TEST_VERSIONS = ${_boost_TEST_VERSIONS}")
      endif()
     
      IF( BOOST_ROOT )
        SET(_boost_INCLUDE_SEARCH_DIRS 
          ${BOOST_ROOT}/include 
          ${BOOST_ROOT}
          ${_boost_INCLUDE_SEARCH_DIRS})
      ENDIF( BOOST_ROOT )
     
      IF( BOOST_INCLUDEDIR )
        file(TO_CMAKE_PATH ${BOOST_INCLUDEDIR} BOOST_INCLUDEDIR)
        SET(_boost_INCLUDE_SEARCH_DIRS 
          ${BOOST_INCLUDEDIR} ${_boost_INCLUDE_SEARCH_DIRS})
      ENDIF( BOOST_INCLUDEDIR )
     
      # ------------------------------------------------------------------------
      #  Search for Boost include DIR 
      # ------------------------------------------------------------------------
      # Try to find Boost by stepping backwards through the Boost versions
      # we know about.
      IF( NOT Boost_INCLUDE_DIR )
        # Build a list of path suffixes for each version.
        SET(_boost_PATH_SUFFIXES)
        FOREACH(_boost_VER ${_boost_TEST_VERSIONS})
          # Add in a path suffix, based on the required version, ideally
          # we could read this from version.hpp, but for that to work we'd
          # need to know the include dir already
          set(_boost_BOOSTIFIED_VERSION)
     
          # Transform 1.35 => 1_35 and 1.36.0 => 1_36_0
          IF(_boost_VER MATCHES "[0-9]+\\.[0-9]+\\.[0-9]+")
              STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1_\\2_\\3" 
                _boost_BOOSTIFIED_VERSION ${_boost_VER})
          ELSEIF(_boost_VER MATCHES "[0-9]+\\.[0-9]+")
              STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)" "\\1_\\2" 
                _boost_BOOSTIFIED_VERSION ${_boost_VER})
          ENDIF()
     
          list(APPEND _boost_PATH_SUFFIXES "boost-${_boost_BOOSTIFIED_VERSION}")
          if(WIN32)
            # For BoostPro's underscores (and others?)
            list(APPEND _boost_PATH_SUFFIXES "boost_${_boost_BOOSTIFIED_VERSION}")
          endif()
     
        ENDFOREACH(_boost_VER)
     
        if(Boost_DEBUG)
          message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                         "Include debugging info:")
          message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                         "  _boost_INCLUDE_SEARCH_DIRS = ${_boost_INCLUDE_SEARCH_DIRS}")
          message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                         "  _boost_PATH_SUFFIXES = ${_boost_PATH_SUFFIXES}")
        endif()
     
        # Look for a standard boost header file.
        FIND_PATH(Boost_INCLUDE_DIR
          NAMES         boost/config.hpp
          HINTS         ${_boost_INCLUDE_SEARCH_DIRS}
          PATH_SUFFIXES ${_boost_PATH_SUFFIXES}
          )
      ENDIF( NOT Boost_INCLUDE_DIR )
     
      # ------------------------------------------------------------------------
      #  Extract version information from version.hpp
      # ------------------------------------------------------------------------
     
      IF(Boost_INCLUDE_DIR)
        # Extract Boost_VERSION and Boost_LIB_VERSION from version.hpp
        # Read the whole file:
        #
        SET(BOOST_VERSION 0)
        SET(BOOST_LIB_VERSION "")
        FILE(READ "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS)
        if(Boost_DEBUG)
          message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                         "location of version.hpp: ${Boost_INCLUDE_DIR}/boost/version.hpp")
        endif()
     
        STRING(REGEX REPLACE ".*#define BOOST_VERSION ([0-9]+).*" "\\1" Boost_VERSION "${_boost_VERSION_HPP_CONTENTS}")
        STRING(REGEX REPLACE ".*#define BOOST_LIB_VERSION \"([0-9_]+)\".*" "\\1" Boost_LIB_VERSION "${_boost_VERSION_HPP_CONTENTS}")
     
        SET(Boost_LIB_VERSION ${Boost_LIB_VERSION} CACHE INTERNAL "The library version string for boost libraries")
        SET(Boost_VERSION ${Boost_VERSION} CACHE INTERNAL "The version number for boost libraries")
     
        IF(NOT "${Boost_VERSION}" STREQUAL "0")
          MATH(EXPR Boost_MAJOR_VERSION "${Boost_VERSION} / 100000")
          MATH(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000")
          MATH(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100")
     
          set(Boost_ERROR_REASON
              "${Boost_ERROR_REASON}Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}\nBoost include path: ${Boost_INCLUDE_DIR}")
        ENDIF(NOT "${Boost_VERSION}" STREQUAL "0")
        if(Boost_DEBUG)
          message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                         "version.hpp reveals boost "
                         "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
        endif()
      ELSE(Boost_INCLUDE_DIR)
        set(Boost_ERROR_REASON
          "${Boost_ERROR_REASON}Unable to find the Boost header files. Please set BOOST_ROOT to the root directory containing Boost or BOOST_INCLUDEDIR to the directory containing Boost's headers.")
      ENDIF(Boost_INCLUDE_DIR)
     
      # ------------------------------------------------------------------------
      #  Suffix initialization and compiler suffix detection.
      # ------------------------------------------------------------------------
     
      # Setting some more suffixes for the library
      SET (Boost_LIB_PREFIX "")
      if ( WIN32 AND Boost_USE_STATIC_LIBS )
        SET (Boost_LIB_PREFIX "lib")
      endif()
     
      if (Boost_COMPILER)
        set(_boost_COMPILER ${Boost_COMPILER})
        if(Boost_DEBUG)
          message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
                         "using user-specified Boost_COMPILER = ${_boost_COMPILER}")
        endif()
      else(Boost_COMPILER)
        # Attempt to guess the compiler suffix
        # NOTE: this is not perfect yet, if you experience any issues
        # please report them and use the Boost_COMPILER variable
        # to work around the problems.
        if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel"
            OR "${CMAKE_CXX_COMPILER}" MATCHES "icl" 
            OR "${CMAKE_CXX_COMPILER}" MATCHES "icpc")
          if(WIN32)
            set (_boost_COMPILER "-iw")
          else()
            set (_boost_COMPILER "-il")
          endif()
        elseif (MSVC90)
          SET (_boost_COMPILER "-vc90")
        elseif (MSVC10)
          SET (_boost_COMPILER "-vc100")
        elseif (MSVC80)
          SET (_boost_COMPILER "-vc80")
        elseif (MSVC71)
          SET (_boost_COMPILER "-vc71")
        elseif (MSVC70) # Good luck!
          SET (_boost_COMPILER "-vc7") # yes, this is correct
        elseif (MSVC60) # Good luck!
          SET (_boost_COMPILER "-vc6") # yes, this is correct
        elseif (BORLAND)
          SET (_boost_COMPILER "-bcb")
        elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "SunPro")
          set(_boost_COMPILER "-sw")
        elseif (MINGW)
          if(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34)
              SET(_boost_COMPILER "-mgw") # no GCC version encoding prior to 1.34
          else()
            _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION)
            SET (_boost_COMPILER "-mgw${_boost_COMPILER_VERSION}")
          endif()
        elseif (UNIX)
          if (CMAKE_COMPILER_IS_GNUCXX)
            if(${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION} VERSION_LESS 1.34)
              SET(_boost_COMPILER "-gcc") # no GCC version encoding prior to 1.34
            else()
              _Boost_COMPILER_DUMPVERSION(_boost_COMPILER_VERSION)
              # Determine which version of GCC we have.
              IF(APPLE)
                IF(Boost_MINOR_VERSION)
                  IF(${Boost_MINOR_VERSION} GREATER 35)
                    # In Boost 1.36.0 and newer, the mangled compiler name used
                    # on Mac OS X/Darwin is "xgcc".
                    SET(_boost_COMPILER "-xgcc${_boost_COMPILER_VERSION}")
                  ELSE(${Boost_MINOR_VERSION} GREATER 35)
                    # In Boost <= 1.35.0, there is no mangled compiler name for
                    # the Mac OS X/Darwin version of GCC.
                    SET(_boost_COMPILER "")
                  ENDIF(${Boost_MINOR_VERSION} GREATER 35)
                ELSE(Boost_MINOR_VERSION)
                  # We don't know the Boost version, so assume it's
                  # pre-1.36.0.
                  SET(_boost_COMPILER "")
                ENDIF(Boost_MINOR_VERSION)
              ELSE()
                SET (_boost_COMPILER "-gcc${_boost_COMPILER_VERSION}")
              ENDIF()
            endif()
          endif (CMAKE_COMPILER_IS_GNUCXX)
        endif()
        if(Boost_DEBUG)
          message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
            "guessed _boost_COMPILER = ${_boost_COMPILER}")
        endif()
      endif(Boost_COMPILER)
     
      SET (_boost_MULTITHREADED "-mt")
      if( NOT Boost_USE_MULTITHREADED )
        set (_boost_MULTITHREADED "")
      endif()
      if(Boost_DEBUG)
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
          "_boost_MULTITHREADED = ${_boost_MULTITHREADED}")
      endif()
     
      SET( _boost_STATIC_TAG "")
      set( _boost_ABI_TAG "")
      IF (WIN32)
        IF(MSVC OR "${CMAKE_CXX_COMPILER}" MATCHES "icl"
                OR "${CMAKE_CXX_COMPILER}" MATCHES "icpc")
          SET (_boost_ABI_TAG "g")
        ENDIF()
        IF( Boost_USE_STATIC_LIBS )
          SET( _boost_STATIC_TAG "-s")
        ENDIF( Boost_USE_STATIC_LIBS )
      ENDIF(WIN32)
      SET (_boost_ABI_TAG "${_boost_ABI_TAG}d")
      if(Boost_DEBUG)
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
          "_boost_STATIC_TAG = ${_boost_STATIC_TAG}")
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
          "_boost_ABI_TAG = ${_boost_ABI_TAG}")
      endif()
     
      # ------------------------------------------------------------------------
      #  Begin finding boost libraries
      # ------------------------------------------------------------------------
     
      SET(_boost_LIBRARIES_SEARCH_DIRS
        ${Boost_INCLUDE_DIR}/lib
        ${Boost_INCLUDE_DIR}/../lib
        C:/boost/lib
        C:/boost
        "$ENV{ProgramFiles}/boost/boost_${Boost_MAJOR_VERSION}_${Boost_MINOR_VERSION}_${Boost_SUBMINOR_VERSION}/lib"
        "$ENV{ProgramFiles}/boost/boost_${Boost_MAJOR_VERSION}_${Boost_MINOR_VERSION}/lib"
        "$ENV{ProgramFiles}/boost/lib"
        C:/library/boost/stage/lib
        "C:/Program Files/boost/stage/lib"
        "C:/Program Files (x86)/boost/stage/lib"
        "$ENV{ProgramFiles}/boost"
        /sw/local/lib
      )
      IF( BOOST_ROOT )
        SET(_boost_LIBRARIES_SEARCH_DIRS 
          ${BOOST_ROOT}/lib 
          ${BOOST_ROOT}/stage/lib 
          ${_boost_LIBRARIES_SEARCH_DIRS})
      ENDIF( BOOST_ROOT )
     
      IF( BOOST_LIBRARYDIR )
        file(TO_CMAKE_PATH ${BOOST_LIBRARYDIR} BOOST_LIBRARYDIR)
        SET(_boost_LIBRARIES_SEARCH_DIRS 
          ${BOOST_LIBRARYDIR} ${_boost_LIBRARIES_SEARCH_DIRS})
      ENDIF( BOOST_LIBRARYDIR )
     
      if(Boost_DEBUG)
        message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
          "_boost_LIBRARIES_SEARCH_DIRS = ${_boost_LIBRARIES_SEARCH_DIRS}")
      endif()
     
      FOREACH(COMPONENT ${Boost_FIND_COMPONENTS})
        STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
        SET( Boost_${UPPERCOMPONENT}_LIBRARY "Boost_${UPPERCOMPONENT}_LIBRARY-NOTFOUND" )
        SET( Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE "Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE-NOTFOUND" )
        SET( Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG "Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG-NOTFOUND")
     
        # Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
        IF( Boost_USE_STATIC_LIBS )
          SET( _boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
          IF(WIN32)
            SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
          ELSE(WIN32)
            SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
          ENDIF(WIN32)
        ENDIF( Boost_USE_STATIC_LIBS )
     
        FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE
            NAMES  ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${Boost_LIB_VERSION}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${Boost_LIB_VERSION}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}-${Boost_LIB_VERSION}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}
            HINTS  ${_boost_LIBRARIES_SEARCH_DIRS}
        )
     
        FIND_LIBRARY(Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG
            NAMES  ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_COMPILER}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG}-${Boost_LIB_VERSION}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}-${Boost_LIB_VERSION}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}-${_boost_ABI_TAG}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}${_boost_MULTITHREADED}${_boost_STATIC_TAG}${_boost_ABI_TAG}
                   ${Boost_LIB_PREFIX}boost_${COMPONENT}-${_boost_ABI_TAG}
            HINTS  ${_boost_LIBRARIES_SEARCH_DIRS}
        )
     
        _Boost_ADJUST_LIB_VARS(${UPPERCOMPONENT})
        IF( Boost_USE_STATIC_LIBS )
          SET(CMAKE_FIND_LIBRARY_SUFFIXES ${_boost_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
        ENDIF( Boost_USE_STATIC_LIBS )
      ENDFOREACH(COMPONENT)
      # ------------------------------------------------------------------------
      #  End finding boost libraries
      # ------------------------------------------------------------------------
     
      SET(Boost_INCLUDE_DIRS
        ${Boost_INCLUDE_DIR}
      )
     
      SET(Boost_FOUND FALSE)
      IF(Boost_INCLUDE_DIR)
        SET( Boost_FOUND TRUE )
     
        # Check the version of Boost against the requested version.
        if (Boost_FIND_VERSION AND NOT Boost_FIND_VERSION_MINOR)
          message(SEND_ERROR "When requesting a specific version of Boost, you must provide at least the major and minor version numbers, e.g., 1.34")
        endif (Boost_FIND_VERSION AND NOT Boost_FIND_VERSION_MINOR)
        if(Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" )
          set( Boost_FOUND FALSE )
          set(_Boost_VERSION_AGE "old")
        elseif(Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" )
          if(Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" )
            set( Boost_FOUND FALSE )
            set(_Boost_VERSION_AGE "old")
          elseif(Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" )
            if( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" )
              set( Boost_FOUND FALSE )
              set(_Boost_VERSION_AGE "old")
            endif( Boost_FIND_VERSION_PATCH AND Boost_SUBMINOR_VERSION LESS "${Boost_FIND_VERSION_PATCH}" )
          endif( Boost_MINOR_VERSION LESS "${Boost_FIND_VERSION_MINOR}" )
        endif( Boost_MAJOR_VERSION LESS "${Boost_FIND_VERSION_MAJOR}" )
     
        if (NOT Boost_FOUND)
          _Boost_MARK_COMPONENTS_FOUND(OFF)
        endif()
     
        if (Boost_FOUND AND Boost_FIND_VERSION_EXACT)
          # If the user requested an exact version of Boost, check
          # that. We already know that the Boost version we have is >= the
          # requested version.
          set(_Boost_VERSION_AGE "new")
     
          # If the user didn't specify a patchlevel, it's 0.
          if (NOT Boost_FIND_VERSION_PATCH)
            set(Boost_FIND_VERSION_PATCH 0)
          endif (NOT Boost_FIND_VERSION_PATCH)
     
          # We'll set Boost_FOUND true again if we have an exact version match.
          set(Boost_FOUND FALSE)
          _Boost_MARK_COMPONENTS_FOUND(OFF)
          if(Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" )
            if(Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" )
              if(Boost_SUBMINOR_VERSION EQUAL "${Boost_FIND_VERSION_PATCH}" )
                set( Boost_FOUND TRUE )
                _Boost_MARK_COMPONENTS_FOUND(ON)
              endif(Boost_SUBMINOR_VERSION EQUAL "${Boost_FIND_VERSION_PATCH}" )
            endif( Boost_MINOR_VERSION EQUAL "${Boost_FIND_VERSION_MINOR}" )
          endif( Boost_MAJOR_VERSION EQUAL "${Boost_FIND_VERSION_MAJOR}" )
        endif (Boost_FOUND AND Boost_FIND_VERSION_EXACT)
     
        if(NOT Boost_FOUND)
          # State that we found a version of Boost that is too new or too old.
          set(Boost_ERROR_REASON
            "${Boost_ERROR_REASON}\nDetected version of Boost is too ${_Boost_VERSION_AGE}. Requested version was ${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
          if (Boost_FIND_VERSION_PATCH)
            set(Boost_ERROR_REASON 
              "${Boost_ERROR_REASON}.${Boost_FIND_VERSION_PATCH}")
          endif (Boost_FIND_VERSION_PATCH)
          if (NOT Boost_FIND_VERSION_EXACT)
            set(Boost_ERROR_REASON "${Boost_ERROR_REASON} (or newer)")
          endif (NOT Boost_FIND_VERSION_EXACT)
          set(Boost_ERROR_REASON "${Boost_ERROR_REASON}.")
        endif (NOT Boost_FOUND)
     
        # Always check for missing components
        set(_boost_CHECKED_COMPONENT FALSE)
        set(_Boost_MISSING_COMPONENTS "")
        foreach(COMPONENT ${Boost_FIND_COMPONENTS})
          string(TOUPPER ${COMPONENT} COMPONENT)
          set(_boost_CHECKED_COMPONENT TRUE)
          if(NOT Boost_${COMPONENT}_FOUND)
            string(TOLOWER ${COMPONENT} COMPONENT)
            list(APPEND _Boost_MISSING_COMPONENTS ${COMPONENT})
            set( Boost_FOUND FALSE)
          endif(NOT Boost_${COMPONENT}_FOUND)
        endforeach(COMPONENT)
     
        if(Boost_DEBUG)
          message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] Boost_FOUND = ${Boost_FOUND}")
        endif()
     
        if (_Boost_MISSING_COMPONENTS)
          # We were unable to find some libraries, so generate a sensible
          # error message that lists the libraries we were unable to find.
          set(Boost_ERROR_REASON
            "${Boost_ERROR_REASON}\nThe following Boost libraries could not be found:\n")
          foreach(COMPONENT ${_Boost_MISSING_COMPONENTS})
            set(Boost_ERROR_REASON
              "${Boost_ERROR_REASON}        boost_${COMPONENT}\n")
          endforeach(COMPONENT)
     
          list(LENGTH Boost_FIND_COMPONENTS Boost_NUM_COMPONENTS_WANTED)
          list(LENGTH _Boost_MISSING_COMPONENTS Boost_NUM_MISSING_COMPONENTS)
          if (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS})
            set(Boost_ERROR_REASON
              "${Boost_ERROR_REASON}No Boost libraries were found. You may need to set Boost_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.")
          else (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS})
            set(Boost_ERROR_REASON
              "${Boost_ERROR_REASON}Some (but not all) of the required Boost libraries were found. You may need to install these additional Boost libraries. Alternatively, set Boost_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.")
          endif (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS})
        endif (_Boost_MISSING_COMPONENTS)
     
        IF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT )
          # Compatibility Code for backwards compatibility with CMake
          # 2.4's FindBoost module.
     
          # Look for the boost library path.
          # Note that the user may not have installed any libraries
          # so it is quite possible the Boost_LIBRARY_PATH may not exist.
          SET(_boost_LIB_DIR ${Boost_INCLUDE_DIR})
     
          IF("${_boost_LIB_DIR}" MATCHES "boost-[0-9]+")
            GET_FILENAME_COMPONENT(_boost_LIB_DIR ${_boost_LIB_DIR} PATH)
          ENDIF ("${_boost_LIB_DIR}" MATCHES "boost-[0-9]+")
     
          IF("${_boost_LIB_DIR}" MATCHES "/include$")
            # Strip off the trailing "/include" in the path.
            GET_FILENAME_COMPONENT(_boost_LIB_DIR ${_boost_LIB_DIR} PATH)
          ENDIF("${_boost_LIB_DIR}" MATCHES "/include$")
     
          IF(EXISTS "${_boost_LIB_DIR}/lib")
            SET (_boost_LIB_DIR ${_boost_LIB_DIR}/lib)
          ELSE(EXISTS "${_boost_LIB_DIR}/lib")
            IF(EXISTS "${_boost_LIB_DIR}/stage/lib")
              SET(_boost_LIB_DIR ${_boost_LIB_DIR}/stage/lib)
            ELSE(EXISTS "${_boost_LIB_DIR}/stage/lib")
              SET(_boost_LIB_DIR "")
            ENDIF(EXISTS "${_boost_LIB_DIR}/stage/lib")
          ENDIF(EXISTS "${_boost_LIB_DIR}/lib")
     
          IF(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}")
            SET(Boost_LIBRARY_DIRS ${_boost_LIB_DIR} CACHE FILEPATH "Boost library directory")
          ENDIF(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}")
     
        ENDIF( NOT Boost_LIBRARY_DIRS AND NOT _boost_CHECKED_COMPONENT )
     
      ELSE(Boost_INCLUDE_DIR)
        SET( Boost_FOUND FALSE)
      ENDIF(Boost_INCLUDE_DIR)
     
      IF (Boost_FOUND)
          IF (NOT Boost_FIND_QUIETLY)
            MESSAGE(STATUS "Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
            if(Boost_FIND_COMPONENTS)
              message(STATUS "Found the following Boost libraries:")
            endif()
          ENDIF(NOT Boost_FIND_QUIETLY)
          FOREACH ( COMPONENT  ${Boost_FIND_COMPONENTS} )
            STRING( TOUPPER ${COMPONENT} UPPERCOMPONENT )
            IF ( Boost_${UPPERCOMPONENT}_FOUND )
              IF (NOT Boost_FIND_QUIETLY)
                MESSAGE (STATUS "  ${COMPONENT}")
              ENDIF(NOT Boost_FIND_QUIETLY)
              SET(Boost_LIBRARIES ${Boost_LIBRARIES} ${Boost_${UPPERCOMPONENT}_LIBRARY})
            ENDIF ( Boost_${UPPERCOMPONENT}_FOUND )
          ENDFOREACH(COMPONENT)
      else()
        if(Boost_FIND_REQUIRED)
          message(SEND_ERROR "Unable to find the requested Boost libraries.\n${Boost_ERROR_REASON}")
        else()
          if(NOT Boost_FIND_QUIETLY)
            # we opt not to automatically output Boost_ERROR_REASON here as
            # it could be quite lengthy and somewhat imposing in it's requests
            # Since Boost is not always a required dependency we'll leave this
            # up to the end-user.
            if(Boost_DEBUG OR Boost_DETAILED_FAILURE_MSG)
              message(STATUS "Could NOT find Boost\n${Boost_ERROR_REASON}")
            else()
              message(STATUS "Could NOT find Boost")
            endif()
          endif()
        endif(Boost_FIND_REQUIRED)
      endif()
     
      # show the Boost_INCLUDE_DIRS AND Boost_LIBRARIES variables only in the advanced view
      MARK_AS_ADVANCED(Boost_INCLUDE_DIR
          Boost_INCLUDE_DIRS
          Boost_LIBRARY_DIRS
      )
    ENDIF(_boost_IN_CACHE)
    Et voilà ce que j'obtiens quand je lance cmake :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    -- The CXX compiler identification is GNU
    -- The C compiler identification is GNU
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working C compiler: /usr/bin/gcc
    -- Check for working C compiler: /usr/bin/gcc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Looking for netdb.h
    -- Looking for netdb.h - found
    -- Looking for resolv.h
    -- Looking for resolv.h - found
    -- Looking for sys/socket.h
    -- Looking for sys/socket.h - found
    -- Looking for netinet/in.h
    -- Looking for netinet/in.h - found
    -- Looking for Winsock2.h
    -- Looking for Winsock2.h - not found
    -- Looking for arpa/nameser.h
    -- Looking for arpa/nameser.h - found
    -- Looking for arpa/inet.h
    -- Looking for arpa/inet.h - found
    -- Looking for string.h
    -- Looking for string.h - found
    -- Looking for float.h
    -- Looking for float.h - found
    -- Looking for limits.h
    -- Looking for limits.h - found
    -- Looking for malloc.h
    -- Looking for malloc.h - found
    -- Looking for memory.h
    -- Looking for memory.h - found
    -- Looking for stdlib.h
    -- Looking for stdlib.h - found
    -- Looking for execinfo.h
    -- Looking for execinfo.h - found
    -- Looking for unistd.h
    -- Looking for unistd.h - found
    -- Looking for poll.h
    -- Looking for poll.h - found
    -- Looking for CoreFoundation/CoreFoundation.h
    -- Looking for CoreFoundation/CoreFoundation.h - not found
    --   USE_COREFOUNDATION OFF
    -- Found Freetype: /usr/lib/libfreetype.so
    CMake Error at cmake/FindBoost.cmake:609 (if):
      if had incorrect arguments: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}
      VERSION_LESS 1.34 (Unknown arguments specified).
    Call Stack (most recent call first):
      CMakeLists.txt:44 (find_package)
     
     
    CMake Error at cmake/FindBoost.cmake:611 (else):
      else An ELSE command was found outside of a proper IF ENDIF structure.  Or
      its arguments did not match the opening IF command.
    Call Stack (most recent call first):
      CMakeLists.txt:44 (find_package)
     
     
    CMake Error at cmake/FindBoost.cmake:633 (endif):
      endif An ENDIF command was found outside of a proper IF ENDIF structure.
      Or its arguments did not match the opening IF command.
    Call Stack (most recent call first):
      CMakeLists.txt:44 (find_package)
     
     
    -- Boost version: 1.39.0
    -- Found the following Boost libraries:
    --   thread
    --   regex
    -- Could NOT find wxWidgets
    -- Found additional flags for ODE: -DdDOUBLE
    -- Found ODE include dir: /usr/include
    -- Found ODE library: /usr/lib/libode.so
    -- Looking for include files CMAKE_HAVE_PTHREAD_H
    -- Looking for include files CMAKE_HAVE_PTHREAD_H - found
    -- Looking for pthread_create in pthreads
    -- Looking for pthread_create in pthreads - not found
    -- Looking for pthread_create in pthread
    -- Looking for pthread_create in pthread - found
    -- checking for one of the modules 'FMOD'
    --  Manually searching for FMOD
    -- FMOD_INCLUDE_DIRS: /usr/local/include/fmodex
    -- fmod not found!
    -- Found ZLIB: /usr/lib/libz.so
    -- Looking for strupr
    -- Looking for strupr - not found
    -- Looking for sys/types.h
    -- Looking for sys/types.h - found
    -- Looking for stdint.h
    -- Looking for stdint.h - found
    -- Looking for stddef.h
    -- Looking for stddef.h - found
    -- Check size of socklen_t
    -- Check size of socklen_t - done
    -- Looking for socket
    -- Looking for socket - found
    -- Looking for gethostbyname
    -- Looking for gethostbyname - found
    -- Looking for hstrerror
    -- Looking for hstrerror - found
    -- Looking for doxygen...
    -- Looking for doxygen... - found /usr/bin/doxygen
    -- Looking for dot tool...
    -- Looking for dot tool... - found /usr/bin/dot
    -- Found Perl: /usr/bin/perl
    -- Configuring done
    Informations systeme :
    Debian Lenny 2.6.30-bpo.1-686
    cmake version 2.6.0
    ruby 1.8
    boost c++ 1.39
    libode 1.1.1
    libfreetype6
    libfreetype6-dev
    freetype1-tools
    libdevil-dev
    libdevil1c2
    cl-sdl-opengl
    libopengl-perl
    libopengl-ruby
    libqt4-opengl
    libqt4-opengl-dev
    python-opengl
    libsdl 1.2
    gcc version 4.3.2 (Debian 4.3.2-1.1)

    Voilà je ne sais pas si c'est suffisant, si jamais il manque des informations n'hésitez pas à me le dire j'ai pu en oublier même en essayant d'être complète.

    Merci beaucoup à tous d'avance.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Tant que l'erreur avec Boost persistera, il n'y aura pas de génération de Makefile. Il faut corriger ce problème avant tout.

    J'ai l'impression que le FindBoost est livré avec le produit en question, ce n'est pas celui de CMake ? Ce qui expliquerait l'erreur suivante...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if had incorrect arguments: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}
      VERSION_LESS 1.34 (Unknown arguments specified).
    De souvenir, l'instruction VERSION_LESS n'est supporté qu'à partir de la version 2.6.2 de CMake. Tu peux télécharger un binaire 2.6 plus récent à http://www.cmake.org/files/v2.6/ ou encore plus récent à http://www.cmake.org/cmake/resources/software.html.

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut
    Aaaaaaaaaaaaaaaaaaaaah

    Merci beaucoup !!!

    J'ai cru que j'allais finir par fracasser mon pc tellement j'en avais marre que ça ne marche pas !

    C'était donc un problème de version, mais pas celui que je pensais XD

    Problème résolu. Encore merci aoyou ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Configuration serveur mail, marche en local mais pas via un client smtp
    Par Trademark dans le forum Administration système
    Réponses: 0
    Dernier message: 15/08/2013, 15h51
  2. Réponses: 4
    Dernier message: 21/10/2010, 18h45
  3. Réponses: 2
    Dernier message: 26/03/2010, 09h55
  4. Configuration SSL pour un VH mais pas un autre
    Par Invité dans le forum Apache
    Réponses: 3
    Dernier message: 18/09/2009, 17h27
  5. "Done with Errors'' sur IE mais pas sur FF
    Par billyrose dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 09/07/2009, 12h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo