OSL/cmake: the non-intrusive parts, so other os-maintainers can take code over
This commit is contained in:
@@ -647,7 +647,7 @@ if(UNIX AND NOT APPLE)
|
|||||||
else()
|
else()
|
||||||
set(Boost_USE_MULTITHREADED ON)
|
set(Boost_USE_MULTITHREADED ON)
|
||||||
endif()
|
endif()
|
||||||
find_package(Boost 1.34 COMPONENTS filesystem regex system thread)
|
find_package(Boost 1.34 COMPONENTS filesystem python3 regex system thread)
|
||||||
mark_as_advanced(Boost_DIR) # why doesnt boost do this?
|
mark_as_advanced(Boost_DIR) # why doesnt boost do this?
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -1079,9 +1079,11 @@ elseif(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
set(BOOST_LIBRARIES
|
set(BOOST_LIBRARIES
|
||||||
optimized libboost_date_time-${BOOST_POSTFIX} optimized libboost_filesystem-${BOOST_POSTFIX}
|
optimized libboost_date_time-${BOOST_POSTFIX} optimized libboost_filesystem-${BOOST_POSTFIX}
|
||||||
optimized libboost_regex-${BOOST_POSTFIX} optimized libboost_system-${BOOST_POSTFIX} optimized libboost_thread-${BOOST_POSTFIX}
|
optimized libboost_python3-${BOOST_POSTFIX} optimized libboost_regex-${BOOST_POSTFIX}
|
||||||
|
optimized libboost_system-${BOOST_POSTFIX} optimized libboost_thread-${BOOST_POSTFIX}
|
||||||
debug libboost_date_time-${BOOST_DEBUG_POSTFIX} debug libboost_filesystem-${BOOST_DEBUG_POSTFIX}
|
debug libboost_date_time-${BOOST_DEBUG_POSTFIX} debug libboost_filesystem-${BOOST_DEBUG_POSTFIX}
|
||||||
debug libboost_regex-${BOOST_DEBUG_POSTFIX} debug libboost_system-${BOOST_DEBUG_POSTFIX} debug libboost_thread-${BOOST_DEBUG_POSTFIX})
|
debug libboost_python3-${BOOST_DEBUG_POSTFIX} debug libboost_regex-${BOOST_DEBUG_POSTFIX}
|
||||||
|
debug libboost_system-${BOOST_DEBUG_POSTFIX} debug libboost_thread-${BOOST_DEBUG_POSTFIX})
|
||||||
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
|
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -1257,9 +1259,11 @@ elseif(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
set(BOOST_LIBRARIES
|
set(BOOST_LIBRARIES
|
||||||
optimized boost_date_time-${BOOST_POSTFIX} boost_filesystem-${BOOST_POSTFIX}
|
optimized boost_date_time-${BOOST_POSTFIX} boost_filesystem-${BOOST_POSTFIX}
|
||||||
boost_regex-${BOOST_POSTFIX} boost_system-${BOOST_POSTFIX} boost_thread-${BOOST_POSTFIX}
|
boost_python3-${BOOST_POSTFIX} boost_regex-${BOOST_POSTFIX}
|
||||||
|
boost_system-${BOOST_POSTFIX} boost_thread-${BOOST_POSTFIX}
|
||||||
debug boost_date_time-${BOOST_DEBUG_POSTFIX} boost_filesystem-${BOOST_DEBUG_POSTFIX}
|
debug boost_date_time-${BOOST_DEBUG_POSTFIX} boost_filesystem-${BOOST_DEBUG_POSTFIX}
|
||||||
boost_regex-${BOOST_DEBUG_POSTFIX} boost_system-${BOOST_DEBUG_POSTFIX} boost_thread-${BOOST_DEBUG_POSTFIX})
|
boost_python3-${BOOST_POSTFIX} boost_regex-${BOOST_DEBUG_POSTFIX}
|
||||||
|
boost_system-${BOOST_DEBUG_POSTFIX} boost_thread-${BOOST_DEBUG_POSTFIX})
|
||||||
set(BOOST_LIBPATH ${BOOST}/lib)
|
set(BOOST_LIBPATH ${BOOST}/lib)
|
||||||
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB -DBOOST_THREAD_USE_LIB ")
|
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB -DBOOST_THREAD_USE_LIB ")
|
||||||
endif()
|
endif()
|
||||||
@@ -1513,7 +1517,7 @@ elseif(APPLE)
|
|||||||
if(WITH_BOOST)
|
if(WITH_BOOST)
|
||||||
set(BOOST ${LIBDIR}/boost)
|
set(BOOST ${LIBDIR}/boost)
|
||||||
set(BOOST_INCLUDE_DIR ${BOOST}/include)
|
set(BOOST_INCLUDE_DIR ${BOOST}/include)
|
||||||
set(BOOST_LIBRARIES boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt)
|
set(BOOST_LIBRARIES boost_date_time-mt boost_filesystem-mt boost_python3-mt boost_regex-mt boost_system-mt boost_thread-mt)
|
||||||
set(BOOST_LIBPATH ${BOOST}/lib)
|
set(BOOST_LIBPATH ${BOOST}/lib)
|
||||||
set(BOOST_DEFINITIONS)
|
set(BOOST_DEFINITIONS)
|
||||||
endif()
|
endif()
|
||||||
@@ -1521,7 +1525,7 @@ elseif(APPLE)
|
|||||||
if(WITH_OPENIMAGEIO)
|
if(WITH_OPENIMAGEIO)
|
||||||
set(OPENIMAGEIO ${LIBDIR}/openimageio)
|
set(OPENIMAGEIO ${LIBDIR}/openimageio)
|
||||||
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
|
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
|
||||||
set(OPENIMAGEIO_LIBRARIES OpenImageIO ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES})
|
set(OPENIMAGEIO_LIBRARIES -force_load ${OPENIMAGEIO}/lib/libOpenImageIO.a ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARY} ${OPENEXR_LIBRARIES} ${ZLIB_LIBRARIES})
|
||||||
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib ${JPEG_LIBPATH} ${PNG_LIBPATH} ${TIFF_LIBPATH} ${OPENEXR_LIBPATH} ${ZLIB_LIBPATH})
|
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib ${JPEG_LIBPATH} ${PNG_LIBPATH} ${TIFF_LIBPATH} ${OPENEXR_LIBPATH} ${ZLIB_LIBPATH})
|
||||||
set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD")
|
set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD")
|
||||||
endif()
|
endif()
|
||||||
@@ -1543,7 +1547,7 @@ elseif(APPLE)
|
|||||||
find_library(OSL_LIB_COMP NAMES oslcomp 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)
|
find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
|
||||||
# WARNING! depends on correct order of OSL libs linking
|
# WARNING! depends on correct order of OSL libs linking
|
||||||
list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
|
list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -force_load ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
|
||||||
find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
|
find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
|
||||||
find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
|
find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
|
||||||
|
|
||||||
@@ -1557,6 +1561,66 @@ elseif(APPLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(${OSL_INCLUDES})
|
include_directories(${OSL_INCLUDES})
|
||||||
|
|
||||||
|
|
||||||
|
# LLVM library setup, needed for osl
|
||||||
|
|
||||||
|
set(LLVM_DIRECTORY "${LIBDIR}/llvm")
|
||||||
|
set(LLVM_STATIC YES)
|
||||||
|
if (LLVM_DIRECTORY)
|
||||||
|
set (LLVM_CONFIG "${LLVM_DIRECTORY}/bin/llvm-config")
|
||||||
|
else ()
|
||||||
|
set (LLVM_CONFIG llvm-config)
|
||||||
|
endif ()
|
||||||
|
execute_process (COMMAND ${LLVM_CONFIG} --version
|
||||||
|
OUTPUT_VARIABLE LLVM_VERSION
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process (COMMAND ${LLVM_CONFIG} --prefix
|
||||||
|
OUTPUT_VARIABLE LLVM_DIRECTORY
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process (COMMAND ${LLVM_CONFIG} --libdir
|
||||||
|
OUTPUT_VARIABLE LLVM_LIB_DIR
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
execute_process (COMMAND ${LLVM_CONFIG} --includedir
|
||||||
|
OUTPUT_VARIABLE LLVM_INCLUDES
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
find_library ( LLVM_LIBRARY
|
||||||
|
NAMES libLLVMAnalysis.a # first of a whole bunch of libs to get
|
||||||
|
PATHS ${LLVM_LIB_DIR})
|
||||||
|
message (STATUS "LLVM version = ${LLVM_VERSION}")
|
||||||
|
message (STATUS "LLVM dir = ${LLVM_DIRECTORY}")
|
||||||
|
message (STATUS "LLVM includes = ${LLVM_INCLUDES}")
|
||||||
|
message (STATUS "LLVM lib dir = ${LLVM_LIB_DIR}")
|
||||||
|
|
||||||
|
if (LLVM_LIBRARY AND LLVM_INCLUDES 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 static LLVM libraries were requested, use llvm-config to generate
|
||||||
|
# the list of what libraries we need, and substitute that in the right
|
||||||
|
# way for LLVM_LIBRARY.
|
||||||
|
set (LLVM_LIBRARY "")
|
||||||
|
execute_process (COMMAND ${LLVM_CONFIG} --libs
|
||||||
|
OUTPUT_VARIABLE llvm_library_list
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
string (REPLACE "-l" "" llvm_library_list ${llvm_library_list})
|
||||||
|
string (REPLACE " " ";" llvm_library_list ${llvm_library_list})
|
||||||
|
foreach (f ${llvm_library_list})
|
||||||
|
list (APPEND LLVM_LIBRARY "${LLVM_LIB_DIR}/lib${f}.a")
|
||||||
|
endforeach ()
|
||||||
|
endif ()
|
||||||
|
string (REPLACE ";" " " LLVM_LIBRARY "${LLVM_LIBRARY}")
|
||||||
|
message (STATUS "LLVM library = ${LLVM_LIBRARY}")
|
||||||
|
else ()
|
||||||
|
message (FATAL_ERROR "LLVM not found.")
|
||||||
|
endif ()
|
||||||
|
set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} ${LLVM_LIBRARY}")
|
||||||
|
|
||||||
|
# end LLVM library setup
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(EXETYPE MACOSX_BUNDLE)
|
set(EXETYPE MACOSX_BUNDLE)
|
||||||
|
@@ -59,7 +59,8 @@ include_directories(
|
|||||||
SYSTEM
|
SYSTEM
|
||||||
${BOOST_INCLUDE_DIR}
|
${BOOST_INCLUDE_DIR}
|
||||||
${OPENIMAGEIO_INCLUDE_DIRS}
|
${OPENIMAGEIO_INCLUDE_DIRS}
|
||||||
${OPENIMAGEIO_INCLUDE_DIRS}/OpenImageIO)
|
${OPENIMAGEIO_INCLUDE_DIRS}/OpenImageIO
|
||||||
|
${OPENEXR}/include)
|
||||||
|
|
||||||
# Subdirectories
|
# Subdirectories
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user