FindCg.cmake 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. # Filename: FindCg.cmake
  2. # Author: kestred (8 Dec, 2013)
  3. #
  4. # Usage:
  5. # find_package(Cg [REQUIRED] [QUIET])
  6. #
  7. # Once done this will define:
  8. # CG_FOUND - system has NvidiaCg
  9. # CG_INCLUDE_DIR - the NvidiaCg include directory
  10. # CG_INCLUDE_DIRS - directories for all NvidiaCg components
  11. # CG_LIBRARY_DIR - the NvidiaCg library directory
  12. # CG_LIBRARY - the path to the library binary
  13. # CG_LIBRARIES - the paths to the Cg library and each library below.
  14. #
  15. # CGGL_FOUND - system has CgGL
  16. # CGGL_INCLUDE_DIR - the CgGL include directory
  17. # CGGL_LIBRARY_DIR - the CgGL library directory
  18. # CGGL_LIBRARY - the path to the library binary
  19. #
  20. ### Define macros to find each sublibrary ###
  21. # Find Cg for OpenGL
  22. macro(find_cggl)
  23. if(APPLE)
  24. # GL support is built-in on Apple
  25. set(CGGL_LIBRARY "${CG_LIBRARY}")
  26. set(CGGL_LIBRARY_DIR "${CG_LIBRARY_DIR}")
  27. set(CGGL_INCLUDE_DIR "${CG_INCLUDE_DIR}")
  28. endif()
  29. if(Cg_FIND_QUIETLY)
  30. set(CgGL_FIND_QUIETLY TRUE)
  31. endif()
  32. if(NOT CGGL_LIBRARY_DIR OR NOT CGGL_INCLUDE_DIR)
  33. # Find the include directory
  34. find_path(CGGL_INCLUDE_DIR
  35. NAMES "cgGL.h"
  36. PATHS "C:/Program Files/Cg"
  37. "C:/Program Files/NVIDIA Corporation/Cg/include"
  38. "/usr/include"
  39. "/usr/local/include"
  40. "/opt/Cg"
  41. "/opt/nvidia-cg-toolkit/include" # Gentoo
  42. PATH_SUFFIXES "" "Cg" "cg"
  43. DOC "The path to NvidiaCgGL's include directory."
  44. )
  45. # Find the library directory
  46. find_library(CGGL_LIBRARY
  47. NAMES "CgGL" "libCgGL"
  48. PATHS "C:/Program Files/Cg"
  49. "C:/Program Files/NVIDIA Corporation/Cg"
  50. "/usr"
  51. "/usr/lib/x86_64-linux-gnu"
  52. "/usr/local"
  53. "/opt/Cg"
  54. "/opt/nvidia-cg-toolkit" # Gentoo
  55. PATH_SUFFIXES "" "lib" "lib32" "lib64"
  56. DOC "The filepath to NvidiaCgGL's libary binary."
  57. )
  58. get_filename_component(CGGL_LIBRARY_DIR "${CGGL_LIBRARY}" PATH)
  59. set(CGGL_LIBRARY_DIR "${CGGL_LIBRARY_DIR}" CACHE PATH "The path to the CgGL library directory.") # Library path
  60. mark_as_advanced(CGGL_INCLUDE_DIR)
  61. mark_as_advanced(CGGL_LIBRARY_DIR)
  62. mark_as_advanced(CGGL_LIBRARY)
  63. endif()
  64. find_package_handle_standard_args(CgGL DEFAULT_MSG CGGL_LIBRARY CGGL_INCLUDE_DIR CGGL_LIBRARY_DIR)
  65. endmacro()
  66. # Find Cg for Direct3D 9
  67. macro(find_cgd3d9)
  68. if(Cg_FIND_QUIETLY)
  69. set(CgD3D9_FIND_QUIETLY TRUE)
  70. endif()
  71. if(NOT CGD3D9_LIBRARY_DIR OR NOT CGD3D9_INCLUDE_DIR)
  72. # Find the include directory
  73. find_path(CGD3D9_INCLUDE_DIR
  74. NAMES "cgD3D9.h"
  75. PATHS "C:/Program Files/Cg"
  76. "C:/Program Files/NVIDIA Corporation/Cg/include"
  77. "/usr/include"
  78. "/usr/local/include"
  79. "/opt/Cg"
  80. "/opt/nvidia-cg-toolkit/include" # Gentoo
  81. PATH_SUFFIXES "" "Cg" "cg"
  82. DOC "The path to NvidiaCgD3D9's include directory."
  83. )
  84. # Find the library directory
  85. find_library(CGD3D9_LIBRARY
  86. NAMES "CgD3D9" "libCgD3D9"
  87. PATHS "C:/Program Files/Cg"
  88. "C:/Program Files/NVIDIA Corporation/Cg"
  89. "/usr"
  90. "/usr/lib/x86_64-linux-gnu"
  91. "/usr/local"
  92. "/opt/Cg"
  93. "/opt/nvidia-cg-toolkit" # Gentoo
  94. PATH_SUFFIXES "" "lib" "lib32" "lib64"
  95. DOC "The filepath to NvidiaCgD3D9's libary binary."
  96. )
  97. get_filename_component(CGD3D9_LIBRARY_DIR "${CGD3D9_LIBRARY}" PATH)
  98. set(CGD3D9_LIBRARY_DIR "${CGD3D9_LIBRARY_DIR}" CACHE PATH "The path to the CgD3D9 library directory.") # Library path
  99. mark_as_advanced(CGD3D9_INCLUDE_DIR)
  100. mark_as_advanced(CGD3D9_LIBRARY_DIR)
  101. mark_as_advanced(CGD3D9_LIBRARY)
  102. endif()
  103. find_package_handle_standard_args(CgD3D9 DEFAULT_MSG CGD3D9_LIBRARY CGD3D9_INCLUDE_DIR CGD3D9_LIBRARY_DIR)
  104. endmacro()
  105. # Find base Nvidia Cg
  106. if(NOT CG_LIBRARY_DIR OR NOT CG_INCLUDE_DIRS)
  107. # Find the include directory
  108. find_path(CG_INCLUDE_DIR
  109. NAMES "Cg/cg.h"
  110. PATHS "C:/Program Files/Cg"
  111. "C:/Program Files/NVIDIA Corporation/Cg/include"
  112. "/usr/include"
  113. "/usr/local/include"
  114. "/opt/Cg"
  115. "/opt/nvidia-cg-toolkit/include" # Gentoo
  116. PATH_SUFFIXES "" "Cg" "cg"
  117. DOC "The path to NvidiaCg's include directory."
  118. )
  119. # Find the library directory
  120. find_library(CG_LIBRARY
  121. NAMES "Cg" "libCg"
  122. PATHS "C:/Program Files/Cg"
  123. "C:/Program Files/NVIDIA Corporation/Cg"
  124. "/usr"
  125. "/usr/lib/x86_64-linux-gnu"
  126. "/usr/local"
  127. "/opt/Cg"
  128. "/opt/nvidia-cg-toolkit" # Gentoo
  129. PATH_SUFFIXES "" "lib" "lib32" "lib64"
  130. )
  131. get_filename_component(CG_LIBRARY_DIR "${CG_LIBRARY}" PATH)
  132. set(CG_LIBRARY_DIR "${CG_LIBRARY_DIR}" CACHE PATH "The path to NvidiaCG's library directory.") # Library path
  133. string(REGEX REPLACE "/Cg$" "" CG_BASE_INCLUDE_DIR "${CG_INCLUDE_DIR}")
  134. set(CG_INCLUDE_DIRS ${CG_BASE_INCLUDE_DIR} ${CG_INCLUDE_DIR})
  135. mark_as_advanced(CG_INCLUDE_DIRS)
  136. mark_as_advanced(CG_INCLUDE_DIR)
  137. mark_as_advanced(CG_LIBRARY_DIR)
  138. mark_as_advanced(CG_LIBRARY)
  139. endif()
  140. include(FindPackageHandleStandardArgs)
  141. find_package_handle_standard_args(Cg DEFAULT_MSG CG_LIBRARY CG_INCLUDE_DIRS CG_LIBRARY_DIR)
  142. if(CG_INCLUDE_DIR AND CG_LIBRARY_DIR)
  143. find_cggl()
  144. find_cgd3d9()
  145. set(CG_LIBRARIES ${CG_LIBRARY})
  146. if(CGGL_LIBRARY)
  147. list(APPEND CG_LIBRARIES "${CGGL_LIBRARY}")
  148. endif()
  149. if(CGD3D9_LIBRARY)
  150. list(APPEND CG_LIBRARIES "${CGD3D9_LIBRARY}")
  151. endif()
  152. endif()