2007-10-16 20:53:12 +00:00
|
|
|
#
|
|
|
|
# Try to find NVIDIA's Cg compiler, runtime libraries, and include path.
|
|
|
|
# Once done this will define
|
|
|
|
#
|
|
|
|
# CG_FOUND =system has NVIDIA Cg and it can be used.
|
|
|
|
# CG_INCLUDE_PATH = directory where cg.h resides
|
|
|
|
# CG_LIBRARY = full path to libCg.so (Cg.DLL on win32)
|
|
|
|
# CG_GL_LIBRARY = full path to libCgGL.so (CgGL.dll on win32)
|
|
|
|
# CG_COMPILER = full path to cgc (cgc.exe on win32)
|
|
|
|
#
|
|
|
|
|
|
|
|
# On OSX default to using the framework version of Cg.
|
|
|
|
|
|
|
|
IF (APPLE)
|
|
|
|
INCLUDE(${CMAKE_ROOT}/Modules/CMakeFindFrameworks.cmake)
|
|
|
|
SET(CG_FRAMEWORK_INCLUDES)
|
|
|
|
CMAKE_FIND_FRAMEWORKS(Cg)
|
|
|
|
IF (Cg_FRAMEWORKS)
|
|
|
|
FOREACH(dir ${Cg_FRAMEWORKS})
|
|
|
|
SET(CG_FRAMEWORK_INCLUDES ${CG_FRAMEWORK_INCLUDES}
|
|
|
|
${dir}/Headers ${dir}/PrivateHeaders)
|
|
|
|
ENDFOREACH(dir)
|
|
|
|
|
|
|
|
# Find the include dir
|
|
|
|
FIND_PATH(CG_INCLUDE_PATH cg.h
|
|
|
|
${CG_FRAMEWORK_INCLUDES}
|
|
|
|
)
|
|
|
|
|
|
|
|
# Since we are using Cg framework, we must link to it.
|
|
|
|
# Note, we use weak linking, so that it works even when Cg is not available.
|
|
|
|
SET(CG_LIBRARY "-weak_framework Cg" CACHE STRING "Cg library")
|
|
|
|
SET(CG_GL_LIBRARY "-weak_framework Cg" CACHE STRING "Cg GL library")
|
|
|
|
ENDIF (Cg_FRAMEWORKS)
|
|
|
|
FIND_PROGRAM(CG_COMPILER cgc
|
|
|
|
/usr/bin
|
|
|
|
/usr/local/bin
|
|
|
|
DOC "The Cg compiler"
|
|
|
|
)
|
|
|
|
ELSE (APPLE)
|
|
|
|
IF (WIN32)
|
|
|
|
FIND_PROGRAM( CG_COMPILER cgc
|
|
|
|
$ENV{CG_BIN_PATH}
|
|
|
|
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/bin
|
|
|
|
$ENV{PROGRAMFILES}/Cg
|
|
|
|
${PROJECT_SOURCE_DIR}/../Cg
|
|
|
|
DOC "The Cg Compiler"
|
|
|
|
)
|
|
|
|
IF (CG_COMPILER)
|
|
|
|
GET_FILENAME_COMPONENT(CG_COMPILER_DIR ${CG_COMPILER} PATH)
|
|
|
|
GET_FILENAME_COMPONENT(CG_COMPILER_SUPER_DIR ${CG_COMPILER_DIR} PATH)
|
|
|
|
ELSE (CG_COMPILER)
|
|
|
|
SET (CG_COMPILER_DIR .)
|
|
|
|
SET (CG_COMPILER_SUPER_DIR ..)
|
|
|
|
ENDIF (CG_COMPILER)
|
|
|
|
FIND_PATH( CG_INCLUDE_PATH Cg/cg.h
|
|
|
|
$ENV{CG_INC_PATH}
|
|
|
|
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/include
|
|
|
|
$ENV{PROGRAMFILES}/Cg
|
|
|
|
${PROJECT_SOURCE_DIR}/../Cg
|
|
|
|
${CG_COMPILER_SUPER_DIR}/include
|
|
|
|
${CG_COMPILER_DIR}
|
|
|
|
DOC "The directory where Cg/cg.h resides"
|
|
|
|
)
|
|
|
|
FIND_LIBRARY( CG_LIBRARY
|
|
|
|
NAMES Cg
|
|
|
|
PATHS
|
|
|
|
$ENV{CG_LIB_PATH}
|
|
|
|
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib
|
|
|
|
$ENV{PROGRAMFILES}/Cg
|
|
|
|
${PROJECT_SOURCE_DIR}/../Cg
|
|
|
|
${CG_COMPILER_SUPER_DIR}/lib
|
|
|
|
${CG_COMPILER_DIR}
|
|
|
|
DOC "The Cg runtime library"
|
|
|
|
)
|
|
|
|
FIND_LIBRARY( CG_GL_LIBRARY
|
|
|
|
NAMES CgGL
|
|
|
|
PATHS
|
|
|
|
$ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib
|
|
|
|
$ENV{PROGRAMFILES}/Cg
|
|
|
|
${PROJECT_SOURCE_DIR}/../Cg
|
|
|
|
${CG_COMPILER_SUPER_DIR}/lib
|
|
|
|
${CG_COMPILER_DIR}
|
|
|
|
DOC "The Cg runtime library"
|
|
|
|
)
|
|
|
|
ELSE (WIN32)
|
|
|
|
FIND_PROGRAM( CG_COMPILER cgc
|
|
|
|
/usr/bin
|
|
|
|
/usr/local/bin
|
|
|
|
DOC "The Cg Compiler"
|
|
|
|
)
|
|
|
|
GET_FILENAME_COMPONENT(CG_COMPILER_DIR "${CG_COMPILER}" PATH)
|
|
|
|
GET_FILENAME_COMPONENT(CG_COMPILER_SUPER_DIR "${CG_COMPILER_DIR}" PATH)
|
|
|
|
FIND_PATH( CG_INCLUDE_PATH Cg/cg.h
|
|
|
|
/usr/include
|
|
|
|
/usr/local/include
|
|
|
|
${CG_COMPILER_SUPER_DIR}/include
|
|
|
|
DOC "The directory where Cg/cg.h resides"
|
|
|
|
)
|
|
|
|
FIND_LIBRARY( CG_LIBRARY Cg
|
|
|
|
PATHS
|
|
|
|
/usr/lib64
|
|
|
|
/usr/lib
|
|
|
|
/usr/local/lib64
|
|
|
|
/usr/local/lib
|
|
|
|
${CG_COMPILER_SUPER_DIR}/lib64
|
|
|
|
${CG_COMPILER_SUPER_DIR}/lib
|
|
|
|
DOC "The Cg runtime library"
|
|
|
|
)
|
|
|
|
SET(CG_LIBRARY ${CG_LIBRARY} -lpthread)
|
|
|
|
FIND_LIBRARY( CG_GL_LIBRARY CgGL
|
|
|
|
PATHS
|
|
|
|
/usr/lib64
|
|
|
|
/usr/lib
|
|
|
|
/usr/local/lib64
|
|
|
|
/usr/local/lib
|
|
|
|
${CG_COMPILER_SUPER_DIR}/lib64
|
|
|
|
${CG_COMPILER_SUPER_DIR}/lib
|
|
|
|
DOC "The Cg runtime library"
|
|
|
|
)
|
|
|
|
ENDIF (WIN32)
|
|
|
|
ENDIF (APPLE)
|
|
|
|
|
|
|
|
IF (CG_INCLUDE_PATH)
|
|
|
|
SET( CG_FOUND 1 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
|
|
|
|
ELSE (CG_INCLUDE_PATH)
|
|
|
|
SET( CG_FOUND 0 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
|
|
|
|
ENDIF (CG_INCLUDE_PATH)
|
|
|
|
|
|
|
|
MARK_AS_ADVANCED( CG_FOUND )
|