| 445 | | |
| 446 | | |
| 447 | | |
| 448 | | |
| 449 | | |
| 450 | | # |
| 451 | | # Test to determine if we want the "tripledot" form of the GLU tesselator callback. |
| 452 | | # |
| 453 | | IF(NOT DEFAULT_GLU_TESS_CALLBACK_TRIPLEDOT) |
| 454 | | IF(WIN32 OR CMAKE_SYSTEM_NAME MATCHES "Linux") |
| 455 | | |
| 456 | | # Skip the compile check for platforms that never need the variable |
| 457 | | # form. |
| 458 | | SET(DEFAULT_GLU_TESS_CALLBACK_TRIPLEDOT false) |
| 459 | | |
| 460 | | ELSE() |
| 461 | | |
| 462 | | # For other platforms perform the check |
| 463 | | INCLUDE(CheckCXXSourceCompiles) |
| 464 | | SET(CMAKE_REQUIRED_DEFINITIONS -DGLU_TESS_CALLBACK_TRIPLEDOT) |
| 465 | | SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/include ${GLUT_INCLUDE_DIR} ${GL_INCLUDE_DIR}) |
| 466 | | SET(CMAKE_REQUIRED_LIBRARIES ${GLUT_LIBRARY} ${GL_LIBRARY}) |
| 467 | | CHECK_CXX_SOURCE_COMPILES( |
| 468 | | "#include <osg/GL> |
| 469 | | #include <osg/GLU> |
| 470 | | static void testcb(GLvoid *, void*) { } |
| 471 | | int main() { |
| 472 | | GLUtesselator *t = gluNewTess(); |
| 473 | | gluTessCallback(t, GLU_TESS_VERTEX_DATA, (GLU_TESS_CALLBACK) testcb); |
| 474 | | return 0; |
| 475 | | }" |
| 476 | | GLU_Tesselator_Needs_Variable_Parameter_Callback_Convention_Failure_Means_No) |
| 477 | | SET(DEFAULT_GLU_TESS_CALLBACK_TRIPLEDOT |
| 478 | | ${GLU_Tesselator_Needs_Variable_Parameter_Callback_Convention_Failure_Means_No}) |
| 479 | | |
| 480 | | ENDIF() |
| 481 | | ENDIF() |
| 482 | | |
| 483 | | OPTION(OSG_GLU_TESS_CALLBACK_TRIPLEDOT "Set to ON to build with variable parameter (...) version of GLU tesselator callback" ${DEFAULT_GLU_TESS_CALLBACK_TRIPLEDOT}) |
| 484 | | IF(OSG_GLU_TESS_CALLBACK_TRIPLEDOT) |
| 485 | | ADD_DEFINITIONS(-DGLU_TESS_CALLBACK_TRIPLEDOT) |
| 486 | | ENDIF(OSG_GLU_TESS_CALLBACK_TRIPLEDOT) |