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
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)
|
|
|