Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

262 lines
5.9 KiB

PROJECT (VTKFTGL)
#
# Dependency mask
#
INCLUDE_REGULAR_EXPRESSION(".*")
#
# Include path
#
INCLUDE_DIRECTORIES (
${VTKFTGL_SOURCE_DIR}/src
${VTKFTGL_BINARY_DIR}
)
#
# Collect the required libs
#
SET (VTKFTGL_LIBS "")
#
# Do not use the STL (portability issue)
#
SET (VTKFTGL_DO_NOT_USE_STL 1)
#
# Source files
#
SET (FTGL_SRCS
src/FTBitmapGlyph.cpp
src/FTBitmapGlyphRenderOpenGL.cpp
src/FTCharmap.cpp
src/FTFace.cpp
src/FTFont.cpp
src/FTGLBitmapFont.cpp
src/FTGLBitmapFontRenderOpenGL.cpp
src/FTGLPixmapFont.cpp
src/FTGLPixmapFontRenderOpenGL.cpp
src/FTGlyph.cpp
src/FTGlyphContainer.cpp
src/FTLibrary.cpp
src/FTPixmapGlyph.cpp
src/FTPixmapGlyphRenderOpenGL.cpp
src/FTSize.cpp
)
#
# Do not use texture fonts (crash on Type1 fonts)
#
SET (VTKFTGL_DO_NOT_USE_TEXTURE_FONT 1)
IF (NOT VTKFTGL_DO_NOT_USE_TEXTURE_FONT)
SET (FTGL_SRCS ${FTGL_SRCS}
src/FTGLTextureFont.cpp
src/FTTextureGlyph.cpp
)
ENDIF (NOT VTKFTGL_DO_NOT_USE_TEXTURE_FONT)
#
# Do not use vector fonts (we only need pixmap and bitmaps and vector fonts
# needs glu). Might be an option at some point, but set it to 'true' for now.
#
SET (VTKFTGL_DO_NOT_USE_VECTORISER 1)
IF (NOT VTKFTGL_DO_NOT_USE_VECTORISER)
SET (FTGL_SRCS ${FTGL_SRCS}
src/FTExtrdGlyph.cpp
src/FTGLExtrdFont.cpp
src/FTGLOutlineFont.cpp
src/FTGLPolygonFont.cpp
src/FTOutlineGlyph.cpp
src/FTPolyGlyph.cpp
)
ENDIF (NOT VTKFTGL_DO_NOT_USE_VECTORISER)
#
# Support Mangle Mesa
#
IF (VTK_USE_MANGLED_MESA)
SET (FTGL_SUPPORT_MANGLE_MESA 1)
IF (FTGL_SUPPORT_MANGLE_MESA)
SET (FTGL_SRCS ${FTGL_SRCS}
src/FTBitmapGlyphRenderMesa.cpp
src/FTGLBitmapFontRenderMesa.cpp
src/FTGLPixmapFontRenderMesa.cpp
src/FTPixmapGlyphRenderMesa.cpp
)
ENDIF (FTGL_SUPPORT_MANGLE_MESA)
ENDIF (VTK_USE_MANGLED_MESA)
#
# Shared/static lib settings)
#
IF (BUILD_SHARED_LIBS)
SET (VTKFTGL_DLL 1)
ELSE (BUILD_SHARED_LIBS)
SET (VTKFTGL_STATIC 1)
ENDIF (BUILD_SHARED_LIBS)
#
# Win32 flags (and shared/static lib settings)
#
IF (WIN32)
# This will add -DUSE_STD_NAMESPACE and -DWIN32
SET (VTKFTGL_WIN32_FLAGS 1)
ENDIF (WIN32)
#
# Unix flags
#
IF (UNIX)
IF(CMAKE_SYSTEM MATCHES "HP-UX.*")
SET (VTKFTGL_HPUX_SOURCE 1)
ENDIF(CMAKE_SYSTEM MATCHES "HP-UX.*")
ENDIF (UNIX)
#
# Apple flags
#
IF (APPLE)
IF(CMAKE_COMPILER_IS_GNUCXX)
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -fpascal-strings")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
ENDIF (APPLE)
#
# We need OpenGL
#
# Use GL library provided by parent VTK if possible.
#
IF(NOT OPENGL_FOUND)
FIND_PACKAGE(OpenGL)
IF (OPENGL_INCLUDE_PATH)
INCLUDE_DIRECTORIES (${OPENGL_INCLUDE_PATH})
ENDIF (OPENGL_INCLUDE_PATH)
ENDIF(NOT OPENGL_FOUND)
SET (VTKFTGL_LIBS "${VTKFTGL_LIBS};${OPENGL_gl_LIBRARY}")
#
# We obviously need FreeType
#
SET (VTKFTGL_LIBS "${VTKFTGL_LIBS};${VTK_FREETYPE_LIBRARIES}")
#
# Define the library (and install it)
#
ADD_LIBRARY (vtkftgl ${FTGL_SRCS})
TARGET_LINK_LIBRARIES(vtkftgl ${VTKFTGL_LIBS})
# Apply user-defined properties to the library target.
IF(VTK_LIBRARY_PROPERTIES)
SET_TARGET_PROPERTIES(vtkftgl PROPERTIES ${VTK_LIBRARY_PROPERTIES})
ENDIF(VTK_LIBRARY_PROPERTIES)
IF(NOT VTK_INSTALL_NO_LIBRARIES)
INSTALL_TARGETS (${VTK_INSTALL_LIB_DIR} vtkftgl)
ENDIF(NOT VTK_INSTALL_NO_LIBRARIES)
#
# Do not cover this lib
#
CONFIGURE_FILE (${VTKFTGL_SOURCE_DIR}/.NoDartCoverage
${VTKFTGL_BINARY_DIR}/.NoDartCoverage)
#
# Create the configuration file
#
ADD_DEFINITIONS (-DVTKFTGL)
CONFIGURE_FILE(${VTKFTGL_SOURCE_DIR}/vtkftglConfig.h.in
${VTKFTGL_BINARY_DIR}/vtkftglConfig.h)
#
# Build examples (testing purposes)
# (Warning, they use Glut)
#
#OPTION (FTGL_BUILD_EXAMPLES "Build FTGL examples (warning: you need Glut)" OFF)
#MARK_AS_ADVANCED (FTGL_BUILD_EXAMPLES)
SET(FTGL_BUILD_EXAMPLES 0)
IF (FTGL_BUILD_EXAMPLES)
#
# Need GLU and GLUT
#
FIND_PACKAGE(GLU)
FIND_PACKAGE(GLUT)
IF (GLU_LIBRARY AND GLUT_LIBRARY)
SET (VTKFTGL_EXAMPLES_LIBS "${VTKFTGL_LIBS}")
IF (GLUT_INCLUDE_PATH)
INCLUDE_DIRECTORIES (${GLUT_INCLUDE_PATH})
ENDIF (GLUT_INCLUDE_PATH)
SET (VTKFTGL_EXAMPLES_LIBS "${VTKFTGL_EXAMPLES_LIBS};${GLUT_LIBRARY}")
IF (GLU_INCLUDE_PATH)
INCLUDE_DIRECTORIES (${GLU_INCLUDE_PATH})
ENDIF (GLU_INCLUDE_PATH)
SET (VTKFTGL_EXAMPLES_LIBS "${VTKFTGL_EXAMPLES_LIBS};${GLU_LIBRARY}")
#
# Do we need X ?
#
IF (VTK_USE_X)
SET (VTKFTGL_EXAMPLES_LIBS "${VTKFTGL_EXAMPLES_LIBS};-lXt")
FIND_LIBRARY (XMU_LIBRARY Xmu
/usr/lib
/usr/local/lib
/opt/graphics/OpenGL/lib
/usr/openwin/lib
/usr/X11R6/lib
/usr/contrib/X11R6/lib
)
MARK_AS_ADVANCED (XMU_LIBRARY)
IF (XMU_LIBRARY)
SET (VTKFTGL_EXAMPLES_LIBS "${VTKFTGL_EXAMPLES_LIBS};${XMU_LIBRARY}")
ENDIF (XMU_LIBRARY)
SET (VTKFTGL_EXAMPLES_LIBS "${VTKFTGL_EXAMPLES_LIBS};${CMAKE_X_LIBS}")
ENDIF (VTK_USE_X)
#
# Win32 flags
#
IF (WIN32)
# - Avoid the glutCreateMenu_ATEXIT_HACK pb.
# - Sort-of a hack to avoid the bug in glut.h to avoid
# ambiguity between 'std::exit(int)' and 'std::exit(int)' in function
ADD_DEFINITIONS (-DGLUT_DISABLE_ATEXIT_HACK)
ADD_DEFINITIONS (-DGLUT_BUILDING_LIB)
ENDIF (WIN32)
#
# Apple libraries.
#
IF (APPLE)
SET (VTKFTGL_EXAMPLES_LIBS "-framework Cocoa" ${VTKFTGL_EXAMPLES_LIBS})
ENDIF (APPLE)
#
# Link examples to FTGL and Freetype
#
SET (VTKFTGL_EXAMPLES_LIBS "${VTKFTGL_EXAMPLES_LIBS};vtkftgl;${VTK_FREETYPE_LIBRARIES}")
#
# Example 1
#
SET(FTGL_DEMO_SRCS
demo/tb.c
demo/trackball.c
demo/FTGLDemo.cpp
)
ADD_EXECUTABLE (ftgl_demo ${FTGL_DEMO_SRCS})
TARGET_LINK_LIBRARIES(ftgl_demo ${VTKFTGL_EXAMPLES_LIBS})
#
# Example 2
#
ADD_EXECUTABLE (ftgl_demo2 demo/demo.cpp)
TARGET_LINK_LIBRARIES(ftgl_demo2 ${VTKFTGL_EXAMPLES_LIBS})
ENDIF (GLU_LIBRARY AND GLUT_LIBRARY)
ENDIF (FTGL_BUILD_EXAMPLES)