Cycles OSL: some build system tweaks to avoid global includes and definitions,
which ensures there is no conflict with other libraries, and avoids full rebuild when toggling OSL on/off.
This commit is contained in:
@@ -734,23 +734,14 @@ if(UNIX AND NOT APPLE)
|
|||||||
execute_process(COMMAND ${LLVM_CONFIG} --libdir
|
execute_process(COMMAND ${LLVM_CONFIG} --libdir
|
||||||
OUTPUT_VARIABLE LLVM_LIB_DIR
|
OUTPUT_VARIABLE LLVM_LIB_DIR
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
execute_process(COMMAND ${LLVM_CONFIG} --includedir
|
|
||||||
OUTPUT_VARIABLE LLVM_INCLUDES
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
find_library(LLVM_LIBRARY
|
find_library(LLVM_LIBRARY
|
||||||
NAMES libLLVMAnalysis.a # first of a whole bunch of libs to get
|
NAMES libLLVMAnalysis.a # first of a whole bunch of libs to get
|
||||||
PATHS ${LLVM_LIB_DIR})
|
PATHS ${LLVM_LIB_DIR})
|
||||||
message(STATUS "LLVM version = ${LLVM_VERSION}")
|
message(STATUS "LLVM version = ${LLVM_VERSION}")
|
||||||
message(STATUS "LLVM dir = ${LLVM_DIRECTORY}")
|
message(STATUS "LLVM dir = ${LLVM_DIRECTORY}")
|
||||||
message(STATUS "LLVM includes = ${LLVM_INCLUDES}")
|
|
||||||
message(STATUS "LLVM lib dir = ${LLVM_LIB_DIR}")
|
message(STATUS "LLVM lib dir = ${LLVM_LIB_DIR}")
|
||||||
|
|
||||||
if(LLVM_LIBRARY AND LLVM_INCLUDES AND LLVM_DIRECTORY AND LLVM_LIB_DIR)
|
if(LLVM_LIBRARY AND LLVM_DIRECTORY AND LLVM_LIB_DIR)
|
||||||
# ensure include directory is added (in case of non-standard locations
|
|
||||||
include_directories(BEFORE "${LLVM_INCLUDES}")
|
|
||||||
string(REGEX REPLACE "\\." "" OSL_LLVM_VERSION ${LLVM_VERSION})
|
|
||||||
message(STATUS "LLVM OSL_LLVM_VERSION = ${OSL_LLVM_VERSION}")
|
|
||||||
add_definitions("-DOSL_LLVM_VERSION=${OSL_LLVM_VERSION}")
|
|
||||||
if(LLVM_STATIC)
|
if(LLVM_STATIC)
|
||||||
# if static LLVM libraries were requested, use llvm-config to generate
|
# if static LLVM libraries were requested, use llvm-config to generate
|
||||||
# the list of what libraries we need, and substitute that in the right
|
# the list of what libraries we need, and substitute that in the right
|
||||||
@@ -788,8 +779,6 @@ if(UNIX AND NOT APPLE)
|
|||||||
else()
|
else()
|
||||||
message(STATUS "OSL not found")
|
message(STATUS "OSL not found")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(${OSL_INCLUDES})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
|
# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
|
||||||
@@ -957,8 +946,6 @@ elseif(WIN32)
|
|||||||
else()
|
else()
|
||||||
message(STATUS "OSL not found")
|
message(STATUS "OSL not found")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(${OSL_INCLUDES})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
@@ -1640,23 +1627,14 @@ elseif(APPLE)
|
|||||||
execute_process(COMMAND ${LLVM_CONFIG} --libdir
|
execute_process(COMMAND ${LLVM_CONFIG} --libdir
|
||||||
OUTPUT_VARIABLE LLVM_LIB_DIR
|
OUTPUT_VARIABLE LLVM_LIB_DIR
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
execute_process(COMMAND ${LLVM_CONFIG} --includedir
|
|
||||||
OUTPUT_VARIABLE LLVM_INCLUDES
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
find_library(LLVM_LIBRARY
|
find_library(LLVM_LIBRARY
|
||||||
NAMES libLLVMAnalysis.a # first of a whole bunch of libs to get
|
NAMES libLLVMAnalysis.a # first of a whole bunch of libs to get
|
||||||
PATHS ${LLVM_LIB_DIR})
|
PATHS ${LLVM_LIB_DIR})
|
||||||
message(STATUS "LLVM version = ${LLVM_VERSION}")
|
message(STATUS "LLVM version = ${LLVM_VERSION}")
|
||||||
message(STATUS "LLVM dir = ${LLVM_DIRECTORY}")
|
message(STATUS "LLVM dir = ${LLVM_DIRECTORY}")
|
||||||
message(STATUS "LLVM includes = ${LLVM_INCLUDES}")
|
|
||||||
message(STATUS "LLVM lib dir = ${LLVM_LIB_DIR}")
|
message(STATUS "LLVM lib dir = ${LLVM_LIB_DIR}")
|
||||||
|
|
||||||
if(LLVM_LIBRARY AND LLVM_INCLUDES AND LLVM_DIRECTORY AND LLVM_LIB_DIR)
|
if(LLVM_LIBRARY AND LLVM_DIRECTORY AND LLVM_LIB_DIR)
|
||||||
# ensure include directory is added (in case of non-standard locations
|
|
||||||
include_directories(BEFORE "${LLVM_INCLUDES}")
|
|
||||||
string(REGEX REPLACE "\\." "" OSL_LLVM_VERSION ${LLVM_VERSION})
|
|
||||||
message(STATUS "LLVM OSL_LLVM_VERSION = ${OSL_LLVM_VERSION}")
|
|
||||||
add_definitions("-DOSL_LLVM_VERSION=${OSL_LLVM_VERSION}")
|
|
||||||
if(LLVM_STATIC)
|
if(LLVM_STATIC)
|
||||||
# if static LLVM libraries were requested, use llvm-config to generate
|
# if static LLVM libraries were requested, use llvm-config to generate
|
||||||
# the list of what libraries we need, and substitute that in the right
|
# the list of what libraries we need, and substitute that in the right
|
||||||
@@ -1693,8 +1671,6 @@ elseif(APPLE)
|
|||||||
else()
|
else()
|
||||||
message(STATUS "OSL not found")
|
message(STATUS "OSL not found")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(${OSL_INCLUDES})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(EXETYPE MACOSX_BUNDLE)
|
set(EXETYPE MACOSX_BUNDLE)
|
||||||
|
@@ -41,6 +41,7 @@ endif()
|
|||||||
|
|
||||||
if(WITH_CYCLES_OSL)
|
if(WITH_CYCLES_OSL)
|
||||||
add_definitions(-DWITH_OSL)
|
add_definitions(-DWITH_OSL)
|
||||||
|
include_directories(${OSL_INCLUDES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_CYCLES_PARTIO)
|
if(WITH_CYCLES_PARTIO)
|
||||||
|
@@ -88,7 +88,7 @@ foreach(_file ${SRC_OSL})
|
|||||||
unset(_OSO_FILE)
|
unset(_OSO_FILE)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
add_custom_target(shader ALL DEPENDS ${SRC_OSO} ${SRC_OSL_HEADERS})
|
add_custom_target(cycles_osl_shaders ALL DEPENDS ${SRC_OSO} ${SRC_OSL_HEADERS})
|
||||||
|
|
||||||
# CMAKE_CURRENT_SOURCE_DIR is already included in OSO paths
|
# CMAKE_CURRENT_SOURCE_DIR is already included in OSO paths
|
||||||
delayed_install("" "${SRC_OSO}" ${CYCLES_INSTALL_PATH}/shader)
|
delayed_install("" "${SRC_OSO}" ${CYCLES_INSTALL_PATH}/shader)
|
||||||
|
Reference in New Issue
Block a user