Changeset 9908
- Timestamp:
- 03/11/09 15:08:43 (4 years ago)
- Files:
-
- 1 modified
-
OpenSceneGraph/trunk/CMakeLists.txt (modified) (42 diffs)
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/CMakeLists.txt
r9867 r9908 1 set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE) 2 1 3 IF(WIN32) 2 4 CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6 FATAL_ERROR) … … 5 7 CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR) 6 8 ELSE(APPLE) 7 CMAKE_MINIMUM_REQUIRED(VERSION 2.4. 0FATAL_ERROR)9 CMAKE_MINIMUM_REQUIRED(VERSION 2.4.4 FATAL_ERROR) 8 10 ENDIF(APPLE) 9 11 ENDIF(WIN32) … … 22 24 if(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4 AND ${CMAKE_PATCH_VERSION} GREATER 0) 23 25 cmake_policy(SET CMP0008 OLD) 24 endif( ${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4 AND ${CMAKE_PATCH_VERSION} GREATER 0)25 endif( COMMAND cmake_policy)26 endif() 27 endif() 26 28 27 29 PROJECT(OpenSceneGraph) … … 44 46 IF (CYGWIN) 45 47 SET(OSG_PLUGIN_PREFIX "cygwin_") 46 ENDIF( CYGWIN)48 ENDIF() 47 49 48 50 IF(MINGW) 49 51 SET(OSG_PLUGIN_PREFIX "mingw_") 50 ENDIF( MINGW)52 ENDIF() 51 53 52 54 … … 77 79 # Erase CMAKE_THREAD_LIBS_INIT and hope it works 78 80 SET(CMAKE_THREAD_LIBS_INIT "" CACHE INTERNAL "") 79 ENDIF( CMAKE_SYSTEM MATCHES IRIX)81 ENDIF() 80 82 81 83 OPTION(OSG_MAINTAINER "Enable OpenSceneGraph maintainer build methods, such as making svn branches, tags, updating ChangeLog." OFF) … … 96 98 IF (OPENSCENEGRAPH_SVN STREQUAL "trunk") 97 99 SET(SVNSOURCEDIR ${SVNTRUNKDIR}) 98 ELSE (OPENSCENEGRAPH_SVN STREQUAL "trunk")100 ELSE() 99 101 SET(SVNSOURCEDIR ${SVNBRANCHDIR}/${OPENSCENEGRAPH_BRANCH}) 100 ENDIF( OPENSCENEGRAPH_SVN STREQUAL "trunk")102 ENDIF() 101 103 102 104 103 105 IF (OPENSCENEGRAPH_RELEASE_CANDIDATE EQUAL 0) 104 106 SET(RELEASE_NAME OpenSceneGraph-${OPENSCENEGRAPH_VERSION}) 105 ELSE (OPENSCENEGRAPH_RELEASE_CANDIDATE EQUAL 0)107 ELSE() 106 108 SET(RELEASE_NAME OpenSceneGraph-${OPENSCENEGRAPH_VERSION}-rc${OPENSCENEGRAPH_RELEASE_CANDIDATE}) 107 ENDIF( OPENSCENEGRAPH_RELEASE_CANDIDATE EQUAL 0)109 ENDIF() 108 110 109 111 … … 143 145 FIND_LIBRARY(CARBON_LIBRARY Carbon) 144 146 FIND_LIBRARY(COCOA_LIBRARY Cocoa) 145 ENDIF( APPLE)147 ENDIF() 146 148 147 149 IF(UNIX) … … 151 153 # Some Unicies need explicit linkage to the Math library or the build fails. 152 154 FIND_LIBRARY(MATH_LIBRARY m) 153 ENDIF( UNIX)155 ENDIF() 154 156 155 157 # Make the headers visible to everything 156 158 IF(NOT ${PROJECT_BINARY_DIR} EQUAL ${PROJECT_SOURCE_DIR}) 157 159 INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/include) 158 ENDIF( NOT ${PROJECT_BINARY_DIR} EQUAL ${PROJECT_SOURCE_DIR})160 ENDIF() 159 161 160 162 INCLUDE_DIRECTORIES( … … 186 188 ADD_DEFINITIONS(-D_SCL_SECURE_NO_WARNINGS) 187 189 ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE) 188 ENDIF( MSVC)190 ENDIF() 189 191 190 192 #needed for net plugin … … 193 195 IF(UNIX) 194 196 ADD_DEFINITIONS(-DNOMINMAX) 195 ENDIF(UNIX) 197 ENDIF() 198 196 199 ######################################################################################################## 197 200 # the following options are MSVC specific, … … 210 213 SET(OSG_MSVC_VERSIONED_DLL OFF) 211 214 SET(OSG_MSVC_DEBUG_INCREMENTAL_LINK ON) 212 ELSE( ${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4 AND ${CMAKE_PATCH_VERSION} LESS 7)215 ELSE() 213 216 OPTION(OSG_MSVC_VERSIONED_DLL "Set to ON to build OpenSceneGraph with versioned dll names" ON) 214 217 MARK_AS_ADVANCED(OSG_MSVC_VERSIONED_DLL) … … 220 223 SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO") 221 224 ENDIF(NOT OSG_MSVC_DEBUG_INCREMENTAL_LINK) 222 ENDIF( ${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4 AND ${CMAKE_PATCH_VERSION} LESS 7)225 ENDIF() 223 226 ENDIF(MSVC) 224 227 ENDIF(WIN32) … … 279 282 CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/PlatformSpecifics/Windows/OpenSceneGraphVersionInfo.rc.in" 280 283 "${OPENSCENEGRAPH_VERSIONINFO_RC}") 281 ENDIF( MSVC)284 ENDIF() 282 285 283 286 ################################################################################ … … 294 297 IF(WIN32) 295 298 INCLUDE(Find3rdPartyDependencies) 296 ENDIF( WIN32)299 ENDIF() 297 300 298 301 # Common to all platforms: … … 326 329 IF(WIN32) 327 330 PKG_CHECK_MODULES(GTKGL gtkglext-win32-1.0) 328 ELSE( WIN32)331 ELSE() 329 332 PKG_CHECK_MODULES(GTKGL gtkglext-x11-1.0) 330 ENDIF( WIN32)333 ENDIF() 331 334 332 335 PKG_CHECK_MODULES(RSVG librsvg-2.0) … … 334 337 PKG_CHECK_MODULES(POPPLER poppler-glib) 335 338 336 ENDIF( PKG_CONFIG_FOUND)339 ENDIF() 337 340 338 341 #optional example related dependencies … … 354 357 IF (DESIRED_QT_VERSION MATCHES 4) 355 358 FIND_PACKAGE(Qt4) 356 ELSE( DESIRED_QT_VERSION MATCHES 4)359 ELSE() 357 360 FIND_PACKAGE(Qt3) 358 ENDIF( DESIRED_QT_VERSION MATCHES 4)359 360 ELSE( DESIRED_QT_VERSION)361 ENDIF() 362 363 ELSE() 361 364 362 365 FIND_PACKAGE(Qt4) … … 364 367 IF (NOT QT4_FOUND) 365 368 FIND_PACKAGE(Qt3) 366 ENDIF( NOT QT4_FOUND)367 368 ENDIF( DESIRED_QT_VERSION)369 ENDIF() 370 371 ENDIF() 369 372 370 373 ENDIF(BUILD_OSG_EXAMPLES) … … 385 388 SET(DEFAULT_GLU_TESS_CALLBACK_TRIPLEDOT false) 386 389 387 ELSE( WIN32 OR CMAKE_SYSTEM_NAME MATCHES "Linux")390 ELSE() 388 391 389 392 # For other platforms perform the check … … 405 408 ${GLU_Tesselator_Needs_Variable_Parameter_Callback_Convention_Failure_Means_No}) 406 409 407 ENDIF( WIN32 OR CMAKE_SYSTEM_NAME MATCHES "Linux")408 ENDIF( NOT DEFAULT_GLU_TESS_CALLBACK_TRIPLEDOT)410 ENDIF() 411 ENDIF() 409 412 410 413 OPTION(OSG_GLU_TESS_CALLBACK_TRIPLEDOT "Set to ON to build with variable parameter (...) version of GLU tesselator callback" ${DEFAULT_GLU_TESS_CALLBACK_TRIPLEDOT}) … … 436 439 IF(WIN32) 437 440 FIND_PACKAGE(QuickTime) 438 ENDIF( WIN32)439 440 ELSE( NOT APPLE)441 ENDIF() 442 443 ELSE() 441 444 FIND_PACKAGE(QuickTime) 442 ENDIF( NOT APPLE)445 ENDIF() 443 446 444 447 ################################################################################ … … 447 450 IF("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") 448 451 FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin ${CMAKE_BINARY_DIR}/lib ${CMAKE_BINARY_DIR}/lib/${OSG_PLUGINS}) 449 ENDIF( "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")452 ENDIF() 450 453 451 454 … … 459 462 IF(CMAKE_BUILD_TYPE STREQUAL "Debug") 460 463 ADD_DEFINITIONS("-D_DEBUG") 461 ENDIF( CMAKE_BUILD_TYPE STREQUAL "Debug")462 ENDIF( UNIX AND NOT WIN32)464 ENDIF() 465 ENDIF() 463 466 464 467 IF(CYGWIN) 465 468 IF(CMAKE_BUILD_TYPE STREQUAL "Debug") 466 469 ADD_DEFINITIONS("-D_DEBUG") 467 ENDIF( CMAKE_BUILD_TYPE STREQUAL "Debug")468 ENDIF( CYGWIN)470 ENDIF() 471 ENDIF() 469 472 470 473 IF(UNIX AND NOT WIN32 AND NOT APPLE) … … 472 475 SET(LIB_POSTFIX "64" CACHE STRING "suffix for 32/64 dir placement") 473 476 MARK_AS_ADVANCED(LIB_POSTFIX) 474 ENDIF( CMAKE_SIZEOF_VOID_P MATCHES "8")475 ENDIF( UNIX AND NOT WIN32 AND NOT APPLE)477 ENDIF() 478 ENDIF() 476 479 IF(NOT DEFINED LIB_POSTFIX) 477 480 SET(LIB_POSTFIX "") 478 ENDIF( NOT DEFINED LIB_POSTFIX)481 ENDIF() 479 482 480 483 # Here we apparantly do some funky stuff with making the bin/ and lib/ … … 501 504 # CMAKE_ARCHIVE_OUTPUT_DIRECTORY & CMAKE_RUNTIME_OUTPUT_DIRECTORY 502 505 503 IF(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION GREATER 4) 506 IF(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 5) 507 SET(EXECUTABLE_OUTPUT_PATH ${OUTPUT_BINDIR}) 508 SET(LIBRARY_OUTPUT_PATH ${OUTPUT_LIBDIR}) 509 ELSE() 504 510 # If CMake >= 2.6.0 505 511 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR}) … … 510 516 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR}) 511 517 ENDIF(WIN32) 512 ELSE(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION GREATER 4) 513 SET(EXECUTABLE_OUTPUT_PATH ${OUTPUT_BINDIR}) 514 SET(LIBRARY_OUTPUT_PATH ${OUTPUT_LIBDIR}) 515 ENDIF(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION GREATER 4) 518 ENDIF() 516 519 517 520 #SET(INSTALL_BINDIR OpenSceneGraph/bin) … … 563 566 564 567 565 ELSE( CMAKE_COMPILER_IS_GNUCXX)568 ELSE() 566 569 IF(MSVC) 567 570 # FIXME: What are good aggressive warning flags for Visual Studio? … … 571 574 572 575 573 ELSE( MSVC)576 ELSE() 574 577 # CMake lacks an elseif, so other non-gcc, non-VS compilers need 575 578 # to be listed below. If unhandled, OSG_AGGRESSIVE_WARNING_FLAGS should 576 579 # remain unset. 577 ENDIF( MSVC)578 ENDIF( CMAKE_COMPILER_IS_GNUCXX)580 ENDIF() 581 ENDIF() 579 582 580 583 # This part is for the CMake menu option to toggle the warnings on/off. … … 584 587 IF (APPLE) 585 588 SET(DEFAULT_USE_AGGRESSIVE_WARNINGS OFF) 586 ELSE( APPLE)589 ELSE() 587 590 SET(DEFAULT_USE_AGGRESSIVE_WARNINGS ON) 588 ENDIF( APPLE)591 ENDIF() 589 592 590 593 OPTION(OSG_USE_AGGRESSIVE_WARNINGS "Enable to activate aggressive warnings" ${DEFAULT_USE_AGGRESSIVE_WARNINGS}) … … 596 599 IF(NOT CMAKE_CXX_FLAGS MATCHES "${flag}") 597 600 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") 598 ENDIF( NOT CMAKE_CXX_FLAGS MATCHES "${flag}")599 ENDFOREACH( flag)600 ELSE( OSG_USE_AGGRESSIVE_WARNINGS)601 ENDIF() 602 ENDFOREACH() 603 ELSE() 601 604 # Remove all flags considered aggresive 602 605 FOREACH(flag ${OSG_AGGRESSIVE_WARNING_FLAGS}) 603 606 STRING(REGEX REPLACE "${flag}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") 604 ENDFOREACH( flag)605 ENDIF( OSG_USE_AGGRESSIVE_WARNINGS)606 ENDIF( OSG_AGGRESSIVE_WARNING_FLAGS)607 ENDFOREACH() 608 ENDIF() 609 ENDIF() 607 610 608 611 … … 611 614 IF (DYNAMIC_OPENSCENEGRAPH) 612 615 SET(OPENSCENEGRAPH_USER_DEFINED_DYNAMIC_OR_STATIC "SHARED") 613 ELSE ( DYNAMIC_OPENSCENEGRAPH)616 ELSE () 614 617 SET(OPENSCENEGRAPH_USER_DEFINED_DYNAMIC_OR_STATIC "STATIC") 615 ENDIF( DYNAMIC_OPENSCENEGRAPH)618 ENDIF() 616 619 617 620 INCLUDE(OsgMacroUtils) … … 621 624 IF (BUILD_OSG_APPLICATIONS) 622 625 ADD_SUBDIRECTORY(applications) 623 ENDIF( BUILD_OSG_APPLICATIONS)626 ENDIF() 624 627 625 628 IF (BUILD_OSG_EXAMPLES) 626 629 ADD_SUBDIRECTORY(examples) 627 ENDIF( BUILD_OSG_EXAMPLES)630 ENDIF() 628 631 629 632 … … 649 652 SET(CMAKE_OSX_ARCHITECTURES "ppc;i386" CACHE STRING "Build architectures for OSX" FORCE) 650 653 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.5 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE) 651 ELSE(EXISTS /Developer/SDKs/MacOSX10.5.sdk) 652 IF(EXISTS /Developer/SDKs/MacOSX10.4u.sdk) 653 SET(CMAKE_OSX_ARCHITECTURES "ppc;i386" CACHE STRING "Build architectures for OSX" FORCE) 654 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.4 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE) 655 ELSE(EXISTS /Developer/SDKs/MacOSX10.4u.sdk) 656 # No Universal Binary support 657 # Should break down further to set the -mmacosx-version-min, 658 # but the SDK detection is too unreliable here. 659 ENDIF(EXISTS /Developer/SDKs/MacOSX10.4u.sdk) 660 ENDIF(EXISTS /Developer/SDKs/MacOSX10.5.sdk) 654 ELSEIF(EXISTS /Developer/SDKs/MacOSX10.4u.sdk) 655 SET(CMAKE_OSX_ARCHITECTURES "ppc;i386" CACHE STRING "Build architectures for OSX" FORCE) 656 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.4 -ftree-vectorize -fvisibility-inlines-hidden" CACHE STRING "Flags used by the compiler during all build types." FORCE) 657 ELSE() 658 # No Universal Binary support 659 # Should break down further to set the -mmacosx-version-min, 660 # but the SDK detection is too unreliable here. 661 ENDIF() 661 662 ENDIF(NOT OSG_CONFIG_HAS_BEEN_RUN_BEFORE) 662 663 … … 687 688 IF(BUILD_REF_DOCS_SEARCHENGINE) 688 689 SET(SEARCHENGINE YES) 689 ELSE( BUILD_REF_DOCS_SEARCHENGINE)690 ELSE() 690 691 SET(SEARCHENGINE NO) 691 ENDIF( BUILD_REF_DOCS_SEARCHENGINE)692 ENDIF() 692 693 693 694 OPTION(BUILD_REF_DOCS_TAGFILE "Generate a tag file named osg.tag on the documentation web server" OFF) 694 695 IF(BUILD_REF_DOCS_TAGFILE) 695 696 SET(GENERATE_TAGFILE "${OpenSceneGraph_BINARY_DIR}/doc/OpenSceneGraphReferenceDocs/osg.tag") 696 ELSE( BUILD_REF_DOCS_TAGFILE)697 ELSE() 697 698 SET(GENERATE_TAGFILE "") 698 ENDIF( BUILD_REF_DOCS_TAGFILE)699 ENDIF() 699 700 700 701 IF(DOT) 701 702 SET(HAVE_DOT YES) 702 ELSE( DOT)703 ELSE() 703 704 SET(HAVE_DOT NO) 704 ENDIF( DOT)705 ENDIF() 705 706 706 707 # If html help generation was requested. DOCUMENTATION_HTML_HELP is defined by Documentation.cmake … … 711 712 SET(HTML_HELP_COMPILER "" CACHE FILEPATH "Enter location of the HTML help compiler to let doxygen compile html") 712 713 MARK_AS_ADVANCED(HTML_HELP_COMPILER) 713 ENDIF( NOT WIN32)714 ENDIF() 714 715 # this var sets a proper value in .doxygen files when coniguring them below 715 716 SET(GENERATE_HTMLHELP "YES") 716 endif( DOCUMENTATION_HTML_HELP)717 endif() 717 718 718 719 # This processes our doxyfile.cmake and substitutes paths to generate … … 731 732 IF(BUILD_REF_DOCS_TAGFILE) 732 733 SET(GENERATE_TAGFILE "${OpenSceneGraph_BINARY_DIR}/doc/OpenThreadsReferenceDocs/ot.tag") 733 ENDIF( BUILD_REF_DOCS_TAGFILE)734 ENDIF() 734 735 735 736 # This processes our openthreads.doxyfile.cmake and generate a final doxyfile … … 771 772 # viewable here : http://www.cdash.org/CDashPublic/index.php?project=OpenSceneGraph 772 773 INCLUDE(Dart) 773 ENDIF( BUILD_DASHBOARD_REPORTS)774 ENDIF() 774 775 775 776 # present the packaging option only if we have the cpack command defined (effectively >= 2.6.0) … … 778 779 IF(BUILD_OSG_PACKAGES) 779 780 INCLUDE(OsgCPack) 780 ENDIF( BUILD_OSG_PACKAGES)781 ENDIF( CMAKE_CPACK_COMMAND)781 ENDIF() 782 ENDIF() 782 783 783 784 # Generate pkg-config configuration file … … 791 792 792 793 # Run this as late as possible so users can easier spot the message 793 IF ( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local")794 SET(REQUIRES_LIBPATH_MESSAGE ON)795 ENDIF( ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local")794 IF (NOT DEFINED REQUIRES_LIBPATH_MESSAGE AND ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local") 795 SET(REQUIRES_LIBPATH_MESSAGE ON) 796 ENDIF() 796 797 797 798 IF(REQUIRES_LIBPATH_MESSAGE) 798 799 799 IF (NOT OSG_LIBPATH_MESSAGE_HAS_BEEN_RUN_BEFORE) 800 801 800 SET(OSG_LIBPATH_MESSAGE_HAS_BEEN_RUN_BEFORE 1 CACHE INTERNAL "Flag to track whether the libpath message has been reported before") 802 801 … … 819 818 COMMENT "Copying openscenegraph.conf to /etc/ld.so.conf.d and running ldconfig" 820 819 ) 821 ELSE( IS_DIRECTORY /etc/ld.so.conf.d)820 ELSE() 822 821 IF(EXISTS /etc/ld.so.conf) 823 822 MESSAGE("You have an ld.so.conf file in /etc, if you wish to ensure \n" 824 823 "that applications find the installed osg libraries, system wide, you\n" 825 824 "could add ${CMAKE_INSTALL_PREFIX}/lib${LIB_POSTFIX} to it.") 826 ENDIF( EXISTS /etc/ld.so.conf)827 ENDIF( IS_DIRECTORY /etc/ld.so.conf.d)825 ENDIF() 826 ENDIF() 828 827 829 828 # emit a message during installation. … … 832 831 ENDIF(NOT OSG_LIBPATH_MESSAGE_HAS_BEEN_RUN_BEFORE) 833 832 834 ELSE(REQUIRES_LIBPATH_MESSAGE) 835 833 ELSE() 836 834 SET(OSG_LIBPATH_MESSAGE_HAS_BEEN_RUN_BEFORE 0 CACHE INTERNAL "Flag to track whether the libpath message has been reported before") 837 838 ENDIF(REQUIRES_LIBPATH_MESSAGE) 835 ENDIF() 839 836 840 837 … … 843 840 IF(NOT OSG_CONFIG_HAS_BEEN_RUN_BEFORE) 844 841 SET(OSG_CONFIG_HAS_BEEN_RUN_BEFORE 1 CACHE INTERNAL "Flag to track whether this is the first time running CMake or if CMake has been configured before") 845 ENDIF( NOT OSG_CONFIG_HAS_BEEN_RUN_BEFORE)842 ENDIF() 846 843 847 844 #-----------------------------------------------------------------------------
