CMake: Fix several modules' search behavior

This makes these modules behave better when encountering
the makepanda thirdparty/ directory.
This commit is contained in:
Sam Edwards 2019-08-22 20:19:41 -06:00
parent c62d5fbe35
commit afe7ffb964
5 changed files with 39 additions and 58 deletions

View File

@ -23,6 +23,13 @@
# Find Cg for OpenGL
macro(find_cggl)
if(APPLE)
# GL support is built-in on Apple
set(CGGL_LIBRARY "${CG_LIBRARY}")
set(CGGL_LIBRARY_DIR "${CG_LIBRARY_DIR}")
set(CGGL_INCLUDE_DIR "${CG_INCLUDE_DIR}")
endif()
if(Cg_FIND_QUIETLY)
set(CgGL_FIND_QUIETLY TRUE)
endif()
@ -114,59 +121,33 @@ endmacro()
# Find base Nvidia Cg
if(NOT CG_LIBRARY_DIR OR NOT CG_INCLUDE_DIRS)
# On OSX default to using the framework version of Cg.
if(APPLE)
include(${CMAKE_ROOT}/Modules/CMakeFindFrameworks.cmake)
set(CG_INCLUDES)
# Find the include directory
find_path(CG_INCLUDE_DIR
NAMES "Cg/cg.h"
PATHS "C:/Program Files/Cg"
"C:/Program Files/NVIDIA Corporation/Cg/include"
"/usr/include"
"/usr/local/include"
"/opt/Cg"
"/opt/nvidia-cg-toolkit/include" # Gentoo
PATH_SUFFIXES "" "Cg" "cg"
DOC "The path to NvidiaCg's include directory."
)
cmake_find_frameworks(Cg)
if(Cg_FRAMEWORKS)
foreach(dir ${Cg_FRAMEWORKS})
list(APPEND CG_INCLUDES ${dir}/Headers ${dir}/PrivateHeaders)
endforeach(dir)
unset(Cg_FRAMEWORKS)
# Find the include dir
find_path(CG_INCLUDE_DIR
NAMES "cg.h"
PATHS ${CG_INCLUDES}
DOC "The path to NvidiaCg's include directory."
)
unset(CG_INCLUDES)
# Set the library dir (TODO: Check the correctness on Mac OS X)
set(CG_LIBRARY_DIR "/Library/Frameworks/Cg.framework" CACHE PATH "The path to NvidiaCg's library directory.")
endif()
else()
# Find the include directory
find_path(CG_INCLUDE_DIR
NAMES "cg.h"
PATHS "C:/Program Files/Cg"
"C:/Program Files/NVIDIA Corporation/Cg/include"
"/usr/include"
"/usr/local/include"
"/opt/Cg"
"/opt/nvidia-cg-toolkit/include" # Gentoo
PATH_SUFFIXES "" "Cg" "cg"
DOC "The path to NvidiaCg's include directory."
)
# Find the library directory
find_library(CG_LIBRARY
NAMES "Cg" "libCg"
PATHS "C:/Program Files/Cg"
"C:/Program Files/NVIDIA Corporation/Cg"
"/usr"
"/usr/lib/x86_64-linux-gnu"
"/usr/local"
"/opt/Cg"
"/opt/nvidia-cg-toolkit" # Gentoo
PATH_SUFFIXES "" "lib" "lib32" "lib64"
)
get_filename_component(CG_LIBRARY_DIR "${CG_LIBRARY}" PATH)
set(CG_LIBRARY_DIR "${CG_LIBRARY_DIR}" CACHE PATH "The path to NvidiaCG's library directory.") # Library path
endif()
# Find the library directory
find_library(CG_LIBRARY
NAMES "Cg" "libCg"
PATHS "C:/Program Files/Cg"
"C:/Program Files/NVIDIA Corporation/Cg"
"/usr"
"/usr/lib/x86_64-linux-gnu"
"/usr/local"
"/opt/Cg"
"/opt/nvidia-cg-toolkit" # Gentoo
PATH_SUFFIXES "" "lib" "lib32" "lib64"
)
get_filename_component(CG_LIBRARY_DIR "${CG_LIBRARY}" PATH)
set(CG_LIBRARY_DIR "${CG_LIBRARY_DIR}" CACHE PATH "The path to NvidiaCG's library directory.") # Library path
string(REGEX REPLACE "/Cg$" "" CG_BASE_INCLUDE_DIR "${CG_INCLUDE_DIR}")
set(CG_INCLUDE_DIRS ${CG_BASE_INCLUDE_DIR} ${CG_INCLUDE_DIR})

View File

@ -32,7 +32,7 @@ find_path(FMODEX_INCLUDE_DIR
# Find the 32-bit library
find_library(FMODEX_32_LIBRARY
NAMES "fmodex_vc" "fmodex_bc" "fmodex" "fmodexL" "libfmodex" "libfmodexL"
NAMES "fmodex_vc" "fmodex_bc" "fmodex" "fmodexL" "libfmodex" "libfmodexL" "fmodex_vc" "fmodexL_vc"
PATHS "/usr"
"/usr/local"
"/usr/X11R6"
@ -49,7 +49,7 @@ find_library(FMODEX_32_LIBRARY
# Find the 64-bit library
find_library(FMODEX_64_LIBRARY
NAMES "fmodex64" "libfmodex64" "fmodexL64" "libfmodexL64"
NAMES "fmodex64" "libfmodex64" "fmodexL64" "libfmodexL64" "fmodex64_vc" "fmodexL64_vc"
PATHS "/usr"
"/usr/local"
"/usr/X11R6"

View File

@ -12,7 +12,7 @@
find_path(OGG_INCLUDE_DIR NAMES "ogg/ogg.h")
find_library(OGG_LIBRARY NAMES "ogg")
find_library(OGG_LIBRARY NAMES "ogg" "libogg_static")
mark_as_advanced(OGG_INCLUDE_DIR OGG_LIBRARY)

View File

@ -47,4 +47,4 @@ endif()
mark_as_advanced(SWSCALE_LIBRARY_DIR)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SWSCALE DEFAULT_MSG SWSCALE_LIBRARY SWSCALE_INCLUDE_DIR SWSCALE_LIBRARY_DIR)
find_package_handle_standard_args(SWScale DEFAULT_MSG SWSCALE_LIBRARY SWSCALE_INCLUDE_DIR SWSCALE_LIBRARY_DIR)

View File

@ -16,8 +16,8 @@ find_package(Ogg QUIET)
# Find Vorbis
find_path(VORBIS_INCLUDE_DIR NAMES "vorbis/vorbisfile.h")
find_library(VORBIS_vorbis_LIBRARY NAMES "vorbis")
find_library(VORBIS_vorbisfile_LIBRARY NAMES "vorbisfile")
find_library(VORBIS_vorbis_LIBRARY NAMES "vorbis" "libvorbis_static")
find_library(VORBIS_vorbisfile_LIBRARY NAMES "vorbisfile" "libvorbisfile_static")
mark_as_advanced(VORBIS_INCLUDE_DIR VORBIS_vorbis_LIBRARY VORBIS_vorbisfile_LIBRARY)