File: FindCg.cmake

package info (click to toggle)
nvidia-texture-tools 2.1.0-git20160229%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 4,024 kB
  • sloc: cpp: 43,200; ansic: 22,635; sh: 67; makefile: 14
file content (172 lines) | stat: -rw-r--r-- 5,546 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#
# 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_DIR = 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_DIR 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)
 
    # When compiling 64-bit programs, the binaries and libs are in bin.x64 and lib.x64 directories,
	
	# This will have only effect for 64bit versions of cmake, when running the default 32bit version
	# both ProgramFiles and ProgramFiles(x86) point to the same place in Win64
	SET(PFx86_VARNAME "ProgramFiles(x86)")
    SET(PFx86 $ENV{${PFx86_VARNAME}})
	
	# Let's play safe in case we are cross compiling to 64 bit: for cgc it doesn't really matter
	FIND_PROGRAM( CG_COMPILER cgc
      $ENV{CG_BIN64_PATH}
	  $ENV{CG_BIN_PATH}
      $ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/bin
	  $ENV{PFx86}/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_DIR 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"
      )
	
	IF (NV_SYSTEM_PROCESSOR STREQUAL "x86_64")
      FIND_LIBRARY( CG_LIBRARY
        NAMES Cg
        PATHS
        $ENV{CG_LIB64_PATH}
        $ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib.x64
		$ENV{PFx86}/NVIDIA\ Corporation/Cg/lib.x64
        $ENV{PROGRAMFILES}/Cg
        $ENV{PFx86}/Cg
        ${PROJECT_SOURCE_DIR}/../Cg
        ${CG_COMPILER_SUPER_DIR}/lib.x64
        ${CG_COMPILER_DIR}
        DOC "The Cg runtime library (64-bit)"
        )
      FIND_LIBRARY( CG_GL_LIBRARY
        NAMES CgGL
        PATHS
		$ENV{CG_LIB64_PATH}
        $ENV{PROGRAMFILES}/NVIDIA\ Corporation/Cg/lib.x64
		$ENV{PFx86}/NVIDIA\ Corporation/Cg/lib.x64
        $ENV{PROGRAMFILES}/Cg
		$ENV{PFx86}/Cg
        ${PROJECT_SOURCE_DIR}/../Cg
        ${CG_COMPILER_SUPER_DIR}/lib.x64
        ${CG_COMPILER_DIR}
        DOC "The Cg GL runtime library (64-bit)"
        )
	ELSE(NV_SYSTEM_PROCESSOR STREQUAL "x86_64")
      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{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 GL runtime library"
        )
	ENDIF(NV_SYSTEM_PROCESSOR STREQUAL "x86_64")

  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_DIR 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_DIR)
  SET( CG_FOUND 1 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
ELSE (CG_INCLUDE_DIR)
  SET( CG_FOUND 0 CACHE STRING "Set to 1 if CG is found, 0 otherwise")
ENDIF (CG_INCLUDE_DIR)

MARK_AS_ADVANCED( CG_FOUND )