[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50497] trunk/blender: Cleanup for OSL linking in cmake: Move cmake OSL library search and path definition from the cycles macro file to the top-level CMakeLists .txt.

Lukas Toenne lukas.toenne at googlemail.com
Mon Sep 10 08:18:21 CEST 2012


Revision: 50497
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50497
Author:   lukastoenne
Date:     2012-09-10 06:18:20 +0000 (Mon, 10 Sep 2012)
Log Message:
-----------
Cleanup for OSL linking in cmake: Move cmake OSL library search and path definition from the cycles macro file to the top-level CMakeLists.txt. This makes the OSL_LIBRARIES and other variables accessible throughout Blender cmake scripts and especially in the creator module for linking libraries.

Modified Paths:
--------------
    trunk/blender/CMakeLists.txt
    trunk/blender/build_files/cmake/macros.cmake
    trunk/blender/intern/cycles/cmake/external_libs.cmake
    trunk/blender/intern/cycles/kernel/osl/CMakeLists.txt
    trunk/blender/source/creator/CMakeLists.txt

Modified: trunk/blender/CMakeLists.txt
===================================================================
--- trunk/blender/CMakeLists.txt	2012-09-10 06:10:43 UTC (rev 50496)
+++ trunk/blender/CMakeLists.txt	2012-09-10 06:18:20 UTC (rev 50497)
@@ -672,6 +672,31 @@
 		endif()
 	endif()
 
+	if(WITH_CYCLES_OSL)
+		set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
+	
+		message(STATUS "CYCLES_OSL = ${CYCLES_OSL}")
+	
+		find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib ${CYCLES_OSL}/dist)
+		find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib ${CYCLES_OSL}/dist)
+		find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib ${CYCLES_OSL}/dist)
+		# WARNING! depends on correct order of OSL libs linking
+		list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
+		find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include ${CYCLES_OSL}/dist)
+		find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin ${CYCLES_OSL}/dist)
+	
+		if(OSL_INCLUDES AND OSL_LIBRARIES AND OSL_COMPILER)
+			set(OSL_FOUND TRUE)
+			message(STATUS "OSL includes = ${OSL_INCLUDES}")
+			message(STATUS "OSL library = ${OSL_LIBRARIES}")
+			message(STATUS "OSL compiler = ${OSL_COMPILER}")
+		else()
+			message(STATUS "OSL not found")
+		endif()
+	
+		include_directories(${OSL_INCLUDES} ${OSL_INCLUDES}/OSL ${OSL_INCLUDES}/../../../src/liboslexec)
+	endif()
+
 	# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
 	set(PLATFORM_LINKLIBS "-lutil -lc -lm -lpthread -lstdc++")
 

Modified: trunk/blender/build_files/cmake/macros.cmake
===================================================================
--- trunk/blender/build_files/cmake/macros.cmake	2012-09-10 06:10:43 UTC (rev 50496)
+++ trunk/blender/build_files/cmake/macros.cmake	2012-09-10 06:18:20 UTC (rev 50497)
@@ -367,6 +367,9 @@
 	if(WITH_MOD_CLOTH_ELTOPO)
 		target_link_libraries(${target} ${LAPACK_LIBRARIES})
 	endif()
+	if(WITH_CYCLES_OSL)
+		target_link_libraries(${target} ${OSL_LIBRARIES})
+	endif()
 	if(WIN32 AND NOT UNIX)
 		target_link_libraries(${target} ${PTHREADS_LIBRARIES})
 	endif()

Modified: trunk/blender/intern/cycles/cmake/external_libs.cmake
===================================================================
--- trunk/blender/intern/cycles/cmake/external_libs.cmake	2012-09-10 06:10:43 UTC (rev 50496)
+++ trunk/blender/intern/cycles/cmake/external_libs.cmake	2012-09-10 06:18:20 UTC (rev 50497)
@@ -18,32 +18,6 @@
 endif()
 
 ###########################################################################
-# OpenShadingLanguage
-
-if(WITH_CYCLES_OSL)
-
-	set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
-
-	message(STATUS "CYCLES_OSL = ${CYCLES_OSL}")
-
-	find_library(OSL_LIBRARIES NAMES oslexec oslcomp oslquery PATHS ${CYCLES_OSL}/lib ${CYCLES_OSL}/dist)
-	find_path(OSL_INCLUDES OSL/oslclosure.h PATHS ${CYCLES_OSL}/include ${CYCLES_OSL}/dist)
-	find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin ${CYCLES_OSL}/dist)
-
-	if(OSL_INCLUDES AND OSL_LIBRARIES AND OSL_COMPILER)
-		set(OSL_FOUND TRUE)
-		message(STATUS "OSL includes = ${OSL_INCLUDES}")
-		message(STATUS "OSL library = ${OSL_LIBRARIES}")
-		message(STATUS "OSL compiler = ${OSL_COMPILER}")
-	else()
-		message(STATUS "OSL not found")
-	endif()
-
-	include_directories(${OSL_INCLUDES} ${OSL_INCLUDES}/OSL ${OSL_INCLUDES}/../../../src/liboslexec)
-
-endif()
-
-###########################################################################
 # Partio
 
 if(WITH_CYCLES_PARTIO)

Modified: trunk/blender/intern/cycles/kernel/osl/CMakeLists.txt
===================================================================
--- trunk/blender/intern/cycles/kernel/osl/CMakeLists.txt	2012-09-10 06:10:43 UTC (rev 50496)
+++ trunk/blender/intern/cycles/kernel/osl/CMakeLists.txt	2012-09-10 06:18:20 UTC (rev 50497)
@@ -43,7 +43,3 @@
 add_library(cycles_kernel_osl ${SRC} ${HEADER_SRC})
 
 add_subdirectory(nodes)
-
-if(WITH_CYCLES_OSL)
-	target_link_libraries(cycles_kernel_osl ${OSL_LIBRARIES})
-endif()

Modified: trunk/blender/source/creator/CMakeLists.txt
===================================================================
--- trunk/blender/source/creator/CMakeLists.txt	2012-09-10 06:10:43 UTC (rev 50496)
+++ trunk/blender/source/creator/CMakeLists.txt	2012-09-10 06:18:20 UTC (rev 50497)
@@ -790,7 +790,6 @@
 		cycles_kernel
 		cycles_util
 		cycles_subd)
-	
 	if(WITH_CYCLES_OSL)
 		list(APPEND BLENDER_LINK_LIBS cycles_kernel_osl)
 	endif()




More information about the Bf-blender-cvs mailing list