From 8d60e6fa387891dd3879183b502e636e1e86b594 Mon Sep 17 00:00:00 2001 From: Ray Molenkamp Date: Mon, 17 Feb 2020 10:28:12 -0700 Subject: Fix: T73830 OSL not finding stdosl.h on linux This extends FindOpenShadingLanguage.cmake to also look for the location of stdosl.h and adds the path to the invocation of oslc to deal with the headers being in different locations a little better. Differential Revision: https://developer.blender.org/D6865 Reviewers: brecht --- build_files/cmake/Modules/FindOpenShadingLanguage.cmake | 16 ++++++++++++++++ build_files/cmake/platform/platform_win32.cmake | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'build_files') diff --git a/build_files/cmake/Modules/FindOpenShadingLanguage.cmake b/build_files/cmake/Modules/FindOpenShadingLanguage.cmake index 01ed72051f7..07ed2c86e19 100644 --- a/build_files/cmake/Modules/FindOpenShadingLanguage.cmake +++ b/build_files/cmake/Modules/FindOpenShadingLanguage.cmake @@ -66,6 +66,22 @@ FIND_PROGRAM(OSL_COMPILER oslc HINTS ${_osl_SEARCH_DIRS} PATH_SUFFIXES bin) +get_filename_component(OSL_SHADER_HINT ${OSL_COMPILER} DIRECTORY) +get_filename_component(OSL_SHADER_HINT ${OSL_SHADER_DIR}/../ ABSOLUTE) + +FIND_PATH(OSL_SHADER_DIR + NAMES + stdosl.h + HINTS + ${OSL_ROOT_DIR} + ${OSL_SHADER_HINT} + $ENV{OSLHOME} + /usr/share/OSL/ + /usr/include/OSL/ + PATH_SUFFIXES + shaders +) + # handle the QUIETLY and REQUIRED arguments and set OSL_FOUND to TRUE if # all listed variables are TRUE INCLUDE(FindPackageHandleStandardArgs) diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index cfa4f1c9bf7..0c1374af348 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -607,7 +607,7 @@ endif() if(WITH_CYCLES_OSL) set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation") - + set(OSL_SHADER_DIR ${CYCLES_OSL}/shaders) find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib) find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib) -- cgit v1.2.3