# Looks for the environment variable: # OPTIX_PATH # Sets the variables: # OPTIX_INCLUDE_DIR # OPTIX_LIBRARY_DIR # OPTIX_LIBRARIES # OptiX_FOUND # Mind the spelling! # DAR Note that this script does not include the optixu library # because it is not used in any of my OptiX applications. # The respective parts are commented out below. set(OPTIX_PATH $ENV{OPTIX_PATH}) if ("${OPTIX_PATH}" STREQUAL "") set(OPTIX_PATH "C:/ProgramData/NVIDIA Corporation/OptiX SDK 6.5.0") endif() find_path(OPTIX_INCLUDE_DIR optix.h ${OPTIX_PATH}/include) if ("${OPTIX_INCLUDE_DIR}" STREQUAL "OPTIX_INCLUDE_DIR-NOTFOUND") set(OPTIX_PATH "C:/sdk/OptiX SDK 6.5.0") # My personal SDK installations default. find_path(OPTIX_INCLUDE_DIR optix.h ${OPTIX_PATH}/include) endif() # OptiX SDKs before 5.1.0 named the library optix.1.lib # Linux handles this via symlinks and doesn't need changes to the library name. set(OptiX_version "1") # The OptiX library is named with the major and minor digits since OptiX 5.1.0. # Dynamically find the matching library name by parsing the OptiX_INSTALL_DIR. # This only works if the installation retained the original folder format "OptiX SDK major.minor.micro". # We want the concatenated major and minor numbers if the version is greater or equal to 5.1.0. if(WIN32) if(OPTIX_PATH) string(REPLACE " " ";" OptiX_install_dir_list ${OPTIX_PATH}) list(LENGTH OptiX_install_dir_list OptiX_install_dir_list_length) if(${OptiX_install_dir_list_length} GREATER 0) # Get the last list element, something like "5.1.0". list(GET OptiX_install_dir_list -1 OptiX_version_string) # Component-wise integer version number comparison (version format is major[.minor[.patch[.tweak]]]). # Starting with OptiX 6.0.0, the full version number is used to avoid the Windows DLL hell. if(${OptiX_version_string} VERSION_GREATER_EQUAL "6.0.0") set(OptiX_version ${OptiX_version_string}) elseif(${OptiX_version_string} VERSION_GREATER_EQUAL "5.1.0") set(OptiX_version "") string(REPLACE "." ";" OptiX_major_minor_micro_list ${OptiX_version_string}) foreach(index RANGE 0 1) list(GET OptiX_major_minor_micro_list ${index} number) string(APPEND OptiX_version ${number}) endforeach() endif() endif() endif() endif(WIN32) message("OptiX_version = " "${OptiX_version}") find_path( OPTIX_INCLUDE_DIR optix.h ${OPTIX_PATH}/include ) find_library( OPTIX_LIBRARY NAMES optix.${OptiX_version} liboptix PATHS ${OPTIX_PATH}/lib64 ) # find_library( OPTIX_OPTIXU_LIBRARY NAMES optixu.1 liboptixu PATHS ${OPTIX_PATH}/lib64 ) message("OPTIX_INCLUDE_DIR = " "${OPTIX_INCLUDE_DIR}") message("OPTIX_LIBRARY = " "${OPTIX_LIBRARY}") # message("OPTIX_OPTIXU_LIBRARY = " "${OPTIX_OPTIXU_LIBRARY}") get_filename_component( OPTIX_LIBRARY_DIR "${OPTIX_LIBRARY}" PATH CACHE ) # set( OPTIX_INCLUDE_DIRS ${OPTIX_INCLUDE_DIR} ) # set( OPTIX_LIBRARY_DIRS ${OPTIX_LIBRARY_DIR} ) # set( OPTIX_LIBRARIES ${OPTIX_LIBRARY} ${OPTIX_OPTIXU_LIBRARY} ) set( OPTIX_LIBRARIES ${OPTIX_LIBRARY} ) # message("OPTIX_INCLUDE_DIRS = " "${OPTIX_INCLUDE_DIR}") # message("OPTIX_LIBRARY_DIRS = " "${OPTIX_LIBRARY}") message("OPTIX_LIBRARIES = " "${OPTIX_LIBRARIES}") include(FindPackageHandleStandardArgs) # find_package_handle_standard_args( OptiX DEFAULT_MSG OPTIX_LIBRARY OPTIX_OPTIXU_LIBRARY OPTIX_INCLUDE_DIR ) find_package_handle_standard_args( OptiX DEFAULT_MSG OPTIX_LIBRARY OPTIX_INCLUDE_DIR ) # mark_as_advanced( OPTIX_INCLUDE_DIR OPTIX_LIBRARY_DIR OPTIX_LIBRARY OPTIX_OPTIXU_LIBRARY ) mark_as_advanced( OPTIX_INCLUDE_DIR OPTIX_LIBRARY_DIR OPTIX_LIBRARY ) # message("OptiX_FOUND = " "${OptiX_FOUND}")