1#-------------------------------------------------------------------
2# This file is part of the CMake build system for OGRE
3#     (Object-oriented Graphics Rendering Engine)
4# For the latest info, see http://www.ogre3d.org/
5#
6# The contents of this file are placed in the public domain. Feel
7# free to make use of it in any way you like.
8#-------------------------------------------------------------------
9
10# - Try to find Cg
11# Once done, this will define
12#
13#  Cg_FOUND - system has Cg
14#  Cg_INCLUDE_DIRS - the Cg include directories
15#  Cg_LIBRARIES - link these to use Cg
16
17include(FindPkgMacros)
18findpkg_begin(Cg)
19
20# Get path, convert backslashes as ${ENV_${var}}
21getenv_path(Cg_HOME)
22getenv_path(OGRE_SOURCE)
23getenv_path(OGRE_HOME)
24
25# construct search paths
26set(Cg_PREFIX_PATH ${Cg_HOME} ${ENV_Cg_HOME}
27  ${OGRE_SOURCE}/Dependencies
28  ${ENV_OGRE_SOURCE}/Dependencies
29  ${OGRE_HOME} ${ENV_OGRE_HOME}
30  /opt/nvidia-cg-toolkit)
31create_search_paths(Cg)
32# redo search if prefix path changed
33clear_if_changed(Cg_PREFIX_PATH
34  Cg_LIBRARY_FWK
35  Cg_LIBRARY_REL
36  Cg_LIBRARY_DBG
37  Cg_INCLUDE_DIR
38)
39
40set(Cg_LIBRARY_NAMES Cg cg)
41get_debug_names(Cg_LIBRARY_NAMES)
42
43use_pkgconfig(Cg_PKGC Cg)
44
45findpkg_framework(Cg)
46
47find_path(Cg_INCLUDE_DIR NAMES cg.h HINTS ${Cg_FRAMEWORK_INCLUDES} ${Cg_INC_SEARCH_PATH} ${Cg_PKGC_INCLUDE_DIRS} PATH_SUFFIXES Cg)
48
49if (CMAKE_CL_64)
50  set (Cg_LIB_SEARCH_PATH ${Cg_HOME}/lib.x64 ${ENV_Cg_LIB64_PATH}
51    ${ENV_Cg_HOME}/lib.x64 ${Cg_LIB_SEARCH_PATH})
52else()
53  set (Cg_LIB_SEARCH_PATH ${Cg_HOME}/lib ${ENV_Cg_LIB_PATH}
54    ${ENV_Cg_HOME}/lib ${Cg_LIB_SEARCH_PATH})
55endif()
56
57find_library(Cg_LIBRARY_REL NAMES ${Cg_LIBRARY_NAMES} HINTS ${Cg_LIB_SEARCH_PATH} ${Cg_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" Release RelWithDebInfo MinSizeRel)
58find_library(Cg_LIBRARY_DBG NAMES ${Cg_LIBRARY_NAMES_DBG} HINTS ${Cg_LIB_SEARCH_PATH} ${Cg_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" Debug)
59make_library_set(Cg_LIBRARY)
60
61if (WIN32)
62	if (CMAKE_CL_64)
63		set(Cg_BIN_SEARCH_PATH ${OGRE_DEPENDENCIES_DIR}/bin ${CMAKE_SOURCE_DIR}/Dependencies/bin ${Cg_HOME}/bin.x64
64			${ENV_Cg_BIN64_PATH} ${ENV_Cg_HOME}/bin.x64 ${ENV_OGRE_DEPENDENCIES_DIR}/bin
65			${OGRE_SOURCE}/Dependencies/bin ${ENV_OGRE_SOURCE}/Dependencies/bin
66			${OGRE_SDK}/bin ${ENV_OGRE_SDK}/bin
67			${OGRE_HOME}/bin ${ENV_OGRE_HOME}/bin)
68	else()
69		set(Cg_BIN_SEARCH_PATH ${OGRE_DEPENDENCIES_DIR}/bin ${CMAKE_SOURCE_DIR}/Dependencies/bin ${Cg_HOME}/bin
70			${ENV_Cg_BIN_PATH} ${ENV_Cg_HOME}/bin ${ENV_OGRE_DEPENDENCIES_DIR}/bin
71			${OGRE_SOURCE}/Dependencies/bin ${ENV_OGRE_SOURCE}/Dependencies/bin
72			${OGRE_SDK}/bin ${ENV_OGRE_SDK}/bin
73			${OGRE_HOME}/bin ${ENV_OGRE_HOME}/bin)
74	endif()
75	find_file(Cg_BINARY_REL NAMES "cg.dll" HINTS ${Cg_BIN_SEARCH_PATH}
76	  PATH_SUFFIXES "" release relwithdebinfo minsizerel)
77	find_file(Cg_BINARY_DBG NAMES "cg.dll" HINTS ${Cg_BIN_SEARCH_PATH}
78	  PATH_SUFFIXES "" debug )
79endif()
80mark_as_advanced(Cg_BINARY_REL Cg_BINARY_DBG)
81
82findpkg_finish(Cg)
83add_parent_dir(Cg_INCLUDE_DIRS Cg_INCLUDE_DIR)
84