From Philip Lowman, "Here's the promised cleanup of the OSG's CMakeLists.txt files for the src/ folder. I'll submit the others separately.
Also, there was also a small bug in osgDB's CMakeLists.txt that was causing an error when I tested with CMake 2.4.4.
IF(${OSG_DEFAULT_IMAGE_PLUGIN_FOR_OSX} STREQUAL "quicktime")
was changed to
IF(OSG_DEFAULT_IMAGE_PLUGIN_FOR_OSX STREQUAL "quicktime")
"
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
|
||||
# FIXME: For OS X, need flag for Framework or dylib
|
||||
IF (DYNAMIC_OPENSCENEGRAPH)
|
||||
IF(DYNAMIC_OPENSCENEGRAPH)
|
||||
ADD_DEFINITIONS(-DOSGVIEWER_LIBRARY)
|
||||
ELSE (DYNAMIC_OPENSCENEGRAPH)
|
||||
ELSE()
|
||||
ADD_DEFINITIONS(-DOSG_LIBRARY_STATIC)
|
||||
ENDIF(DYNAMIC_OPENSCENEGRAPH)
|
||||
ENDIF()
|
||||
|
||||
SET(LIB_NAME osgViewer)
|
||||
|
||||
@@ -40,7 +40,6 @@ SET(LIB_COMMON_FILES
|
||||
SET(LIB_EXTRA_LIBS)
|
||||
|
||||
IF(WIN32)
|
||||
|
||||
#
|
||||
# Enable workaround for OpenGL driver issues when used in multithreaded/multiscreen with NVidia drivers on Windows XP
|
||||
# For example: osgviewer dumptruck.osg was showing total garbage (screen looked like shattered, splashed hedgehog)
|
||||
@@ -51,7 +50,7 @@ IF(WIN32)
|
||||
MARK_AS_ADVANCED(OSG_MULTIMONITOR_MULTITHREAD_WIN32_NVIDIA_WORKAROUND)
|
||||
IF(OSG_MULTIMONITOR_MULTITHREAD_WIN32_NVIDIA_WORKAROUND)
|
||||
ADD_DEFINITIONS(-DOSG_MULTIMONITOR_MULTITHREAD_WIN32_NVIDIA_WORKAROUND)
|
||||
ENDIF(OSG_MULTIMONITOR_MULTITHREAD_WIN32_NVIDIA_WORKAROUND)
|
||||
ENDIF()
|
||||
|
||||
SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS}
|
||||
${HEADER_PATH}/api/Win32/GraphicsWindowWin32
|
||||
@@ -62,17 +61,15 @@ IF(WIN32)
|
||||
GraphicsWindowWin32.cpp
|
||||
PixelBufferWin32.cpp
|
||||
)
|
||||
|
||||
ELSE(WIN32)
|
||||
|
||||
ELSE()
|
||||
IF(APPLE)
|
||||
SET(OSG_WINDOWING_SYSTEM "Carbon" CACHE STRING "Windowing system type for graphics window creation, options Carbon, Cocoa or X11.")
|
||||
ELSE(APPLE)
|
||||
ELSE()
|
||||
SET(OSG_WINDOWING_SYSTEM "X11" CACHE STRING "Windowing system type for graphics window creation. options only X11")
|
||||
ENDIF(APPLE)
|
||||
ENDIF()
|
||||
|
||||
IF(${OSG_WINDOWING_SYSTEM} STREQUAL "Cocoa")
|
||||
ADD_DEFINITIONS(-DUSE_DARWIN_COCOA_IMPLEMENTATION)
|
||||
ADD_DEFINITIONS(-DUSE_DARWIN_COCOA_IMPLEMENTATION)
|
||||
SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS}
|
||||
${HEADER_PATH}/api/Cocoa/GraphicsWindowCocoa
|
||||
${HEADER_PATH}/api/Cocoa/PixelBufferCocoa
|
||||
@@ -83,88 +80,72 @@ ELSE(WIN32)
|
||||
DarwinUtils.mm
|
||||
PixelBufferCocoa.mm
|
||||
)
|
||||
|
||||
SET(LIB_EXTRA_LIBS ${COCOA_LIBRARY} ${LIB_EXTRA_LIBS})
|
||||
|
||||
ELSE(${OSG_WINDOWING_SYSTEM} STREQUAL "Cocoa")
|
||||
IF(${OSG_WINDOWING_SYSTEM} STREQUAL "Carbon")
|
||||
ADD_DEFINITIONS(-DUSE_DARWIN_CARBON_IMPLEMENTATION)
|
||||
SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS}
|
||||
${HEADER_PATH}/api/Carbon/GraphicsWindowCarbon
|
||||
${HEADER_PATH}/api/Carbon/PixelBufferCarbon
|
||||
)
|
||||
SET(LIB_COMMON_FILES ${LIB_COMMON_FILES}
|
||||
GraphicsWindowCarbon.cpp
|
||||
DarwinUtils.h
|
||||
DarwinUtils.mm
|
||||
PixelBufferCarbon.cpp
|
||||
)
|
||||
SET(LIB_EXTRA_LIBS ${COCOA_LIBRARY} ${LIB_EXTRA_LIBS})
|
||||
|
||||
ELSE(${OSG_WINDOWING_SYSTEM} STREQUAL "Carbon")
|
||||
|
||||
# X11 for everybody else
|
||||
|
||||
|
||||
INCLUDE(FindPkgConfig OPTIONAL)
|
||||
IF (PKG_CONFIG_FOUND)
|
||||
|
||||
PKG_CHECK_MODULES(XRANDR xrandr)
|
||||
|
||||
IF (XRANDR_FOUND)
|
||||
OPTION(OSGVIEWER_USE_XRANDR "Set to ON to enable Xrandr support for GraphicsWindowX11." ON)
|
||||
ELSE(XRANDR_FOUND)
|
||||
SET(OSGVIEWER_USE_XRANDR OFF)
|
||||
ENDIF (XRANDR_FOUND)
|
||||
ELSE(PKG_CONFIG_FOUND)
|
||||
SET(LIB_EXTRA_LIBS ${COCOA_LIBRARY} ${LIB_EXTRA_LIBS})
|
||||
ELSEIF(${OSG_WINDOWING_SYSTEM} STREQUAL "Carbon")
|
||||
ADD_DEFINITIONS(-DUSE_DARWIN_CARBON_IMPLEMENTATION)
|
||||
SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS}
|
||||
${HEADER_PATH}/api/Carbon/GraphicsWindowCarbon
|
||||
${HEADER_PATH}/api/Carbon/PixelBufferCarbon
|
||||
)
|
||||
SET(LIB_COMMON_FILES ${LIB_COMMON_FILES}
|
||||
GraphicsWindowCarbon.cpp
|
||||
DarwinUtils.h
|
||||
DarwinUtils.mm
|
||||
PixelBufferCarbon.cpp
|
||||
)
|
||||
SET(LIB_EXTRA_LIBS ${COCOA_LIBRARY} ${LIB_EXTRA_LIBS})
|
||||
ELSE()
|
||||
# X11 for everybody else
|
||||
INCLUDE(FindPkgConfig OPTIONAL)
|
||||
IF(PKG_CONFIG_FOUND)
|
||||
PKG_CHECK_MODULES(XRANDR xrandr)
|
||||
IF(XRANDR_FOUND)
|
||||
OPTION(OSGVIEWER_USE_XRANDR "Set to ON to enable Xrandr support for GraphicsWindowX11." ON)
|
||||
ELSE()
|
||||
SET(OSGVIEWER_USE_XRANDR OFF)
|
||||
ENDIF(PKG_CONFIG_FOUND)
|
||||
ENDIF()
|
||||
ELSE()
|
||||
SET(OSGVIEWER_USE_XRANDR OFF)
|
||||
ENDIF()
|
||||
|
||||
SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS}
|
||||
${HEADER_PATH}/api/X11/GraphicsWindowX11
|
||||
${HEADER_PATH}/api/X11/PixelBufferX11
|
||||
)
|
||||
|
||||
SET(LIB_PUBLIC_HEADERS ${LIB_PUBLIC_HEADERS}
|
||||
${HEADER_PATH}/api/X11/GraphicsWindowX11
|
||||
${HEADER_PATH}/api/X11/PixelBufferX11
|
||||
)
|
||||
SET(LIB_COMMON_FILES ${LIB_COMMON_FILES}
|
||||
GraphicsWindowX11.cpp
|
||||
PixelBufferX11.cpp
|
||||
)
|
||||
|
||||
IF(OSGVIEWER_USE_XRANDR)
|
||||
ADD_DEFINITIONS(-DOSGVIEWER_USE_XRANDR)
|
||||
SET(LIB_PRIVATE_HEADERS ${LIB_PRIVATE_HEADERS} ${XRANDR_INCLUDE_DIRS} )
|
||||
|
||||
IF(X11_Xrandr_LIB)
|
||||
SET(LIB_EXTRA_LIBS ${X11_Xrandr_LIB} ${LIB_EXTRA_LIBS})
|
||||
ELSE()
|
||||
SET(LIB_EXTRA_LIBS ${XRANDR_LIBRARIES} ${LIB_EXTRA_LIBS})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
SET(LIB_COMMON_FILES ${LIB_COMMON_FILES}
|
||||
GraphicsWindowX11.cpp
|
||||
PixelBufferX11.cpp
|
||||
)
|
||||
|
||||
IF(OSGVIEWER_USE_XRANDR)
|
||||
|
||||
ADD_DEFINITIONS(-DOSGVIEWER_USE_XRANDR)
|
||||
SET(LIB_PRIVATE_HEADERS ${LIB_PRIVATE_HEADERS} ${XRANDR_INCLUDE_DIRS} )
|
||||
# X11 on Apple requires X11 library plus OpenGL linking hack on Leopard
|
||||
IF(APPLE)
|
||||
# Find GL/glx.h
|
||||
IF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11/include/GL/glx.h)
|
||||
SET(OPENGL_INCLUDE_DIR /usr/X11/include)
|
||||
SET(OPENGL_LIBRARIES /usr/X11/lib/libGL.dylib)
|
||||
ELSEIF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11R6/include/GL/glx.h)
|
||||
SET(OPENGL_INCLUDE_DIR /usr/X11R6/include)
|
||||
SET(OPENGL_LIBRARIES /usr/X11R6/lib/libGL.dylib)
|
||||
ENDIF()
|
||||
INCLUDE_DIRECTORIES(BEFORE SYSTEM ${OPENGL_INCLUDE_DIR})
|
||||
|
||||
IF (X11_Xrandr_LIB)
|
||||
SET(LIB_EXTRA_LIBS ${X11_Xrandr_LIB} ${LIB_EXTRA_LIBS})
|
||||
ELSE(X11_Xrandr_LIB)
|
||||
SET(LIB_EXTRA_LIBS ${XRANDR_LIBRARIES} ${LIB_EXTRA_LIBS})
|
||||
ENDIF(X11_Xrandr_LIB)
|
||||
|
||||
ENDIF(OSGVIEWER_USE_XRANDR)
|
||||
|
||||
# X11 on Apple requires X11 library plus OpenGL linking hack on Leopard
|
||||
IF(APPLE)
|
||||
# Find GL/glx.h
|
||||
IF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11/include/GL/glx.h)
|
||||
SET(OPENGL_INCLUDE_DIR /usr/X11/include)
|
||||
SET(OPENGL_LIBRARIES /usr/X11/lib/libGL.dylib)
|
||||
ELSEIF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11R6/include/GL/glx.h)
|
||||
SET(OPENGL_INCLUDE_DIR /usr/X11R6/include)
|
||||
SET(OPENGL_LIBRARIES /usr/X11R6/lib/libGL.dylib)
|
||||
ENDIF(EXISTS ${CMAKE_OSX_SYSROOT}/usr/X11/include/GL/glx.h)
|
||||
INCLUDE_DIRECTORIES(BEFORE SYSTEM ${OPENGL_INCLUDE_DIR})
|
||||
|
||||
SET(LIB_EXTRA_LIBS ${X11_X11_LIB} ${OPENGL_LIBRARIES} ${LIB_EXTRA_LIBS})
|
||||
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:${CMAKE_OSX_SYSROOT}/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib")
|
||||
ENDIF(APPLE)
|
||||
|
||||
|
||||
ENDIF(${OSG_WINDOWING_SYSTEM} STREQUAL "Carbon")
|
||||
ENDIF(${OSG_WINDOWING_SYSTEM} STREQUAL "Cocoa")
|
||||
ENDIF(WIN32)
|
||||
SET(LIB_EXTRA_LIBS ${X11_X11_LIB} ${OPENGL_LIBRARIES} ${LIB_EXTRA_LIBS})
|
||||
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:${CMAKE_OSX_SYSROOT}/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib")
|
||||
ENDIF(APPLE)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
ADD_LIBRARY(${LIB_NAME}
|
||||
@@ -189,11 +170,11 @@ LINK_CORELIB_DEFAULT(${LIB_NAME})
|
||||
|
||||
IF(MINGW OR CYGWIN)
|
||||
LINK_EXTERNAL(${LIB_NAME} gdi32 )
|
||||
ENDIF(MINGW OR CYGWIN)
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(ModuleInstall OPTIONAL)
|
||||
|
||||
FOREACH( INCLUDEFILE ${LIB_PUBLIC_HEADERS} )
|
||||
FOREACH(INCLUDEFILE ${LIB_PUBLIC_HEADERS} )
|
||||
FILE(RELATIVE_PATH REL_INCLUDEFILE ${HEADER_PATH} ${INCLUDEFILE})
|
||||
GET_FILENAME_COMPONENT(REL_INCLUDE_PATH ${REL_INCLUDEFILE} PATH)
|
||||
INSTALL(
|
||||
@@ -201,4 +182,4 @@ FOREACH( INCLUDEFILE ${LIB_PUBLIC_HEADERS} )
|
||||
DESTINATION ${INSTALL_INCDIR}/${LIB_NAME}/${REL_INCLUDE_PATH}
|
||||
COMPONENT libopenscenegraph-dev
|
||||
)
|
||||
ENDFOREACH( INCLUDEFILE)
|
||||
ENDFOREACH()
|
||||
|
||||
Reference in New Issue
Block a user