Cycles OSL: some build system tweaks to avoid global includes and definitions,
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Sat, 20 Oct 2012 12:17:45 +0000 (12:17 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Sat, 20 Oct 2012 12:17:45 +0000 (12:17 +0000)
which ensures there is no conflict with other libraries, and avoids full rebuild
when toggling OSL on/off.

CMakeLists.txt
intern/cycles/CMakeLists.txt
intern/cycles/kernel/osl/nodes/CMakeLists.txt

index 38e3c5b2b01436aa19e0e79ca52cd4bcb4c074bb..1903a2ad406954ab6952c8991d904169bcf1b629 100644 (file)
@@ -734,23 +734,14 @@ if(UNIX AND NOT APPLE)
                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_LIBRARY AND LLVM_DIRECTORY AND LLVM_LIB_DIR)
                        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
@@ -788,8 +779,6 @@ if(UNIX AND NOT APPLE)
                else()
                        message(STATUS "OSL not found")
                endif()
-       
-               include_directories(${OSL_INCLUDES})
        endif()
 
        # OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
@@ -957,8 +946,6 @@ elseif(WIN32)
                else()
                        message(STATUS "OSL not found")
                endif()
-       
-               include_directories(${OSL_INCLUDES})
        endif()
 
        if(MSVC)
@@ -1640,23 +1627,14 @@ elseif(APPLE)
                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_LIBRARY AND LLVM_DIRECTORY AND LLVM_LIB_DIR)
                        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
@@ -1693,8 +1671,6 @@ elseif(APPLE)
                else()
                        message(STATUS "OSL not found")
                endif()
-       
-               include_directories(${OSL_INCLUDES})
        endif()
 
        set(EXETYPE MACOSX_BUNDLE)
index 38daf790955724be1498eea22e824be886483706..7562ee0a0a51b91ed4bb241ef3c935691be2d48e 100644 (file)
@@ -41,6 +41,7 @@ endif()
 
 if(WITH_CYCLES_OSL)
        add_definitions(-DWITH_OSL)
+       include_directories(${OSL_INCLUDES})
 endif()
 
 if(WITH_CYCLES_PARTIO)
index 65b8504ce435568223a1d8ad1f063c7678d5aece..faf7941ee5e9244a8a16fa1bae015c843821aa3d 100644 (file)
@@ -88,7 +88,7 @@ foreach(_file ${SRC_OSL})
        unset(_OSO_FILE)
 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
 delayed_install("" "${SRC_OSO}" ${CYCLES_INSTALL_PATH}/shader)