- Update from 1.3.3 to 1.4.0

PR:		ports/184611
Submitted by:	Shane Ambler <FreeBSD@Shaneware.biz> (maintainer)
This commit is contained in:
Danilo Egea Gondolfo 2013-12-09 16:09:44 +00:00
parent fe0d10b2bf
commit 41bdb17caa
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=336001
12 changed files with 51 additions and 205 deletions

View file

@ -2,8 +2,7 @@
# $FreeBSD$ # $FreeBSD$
PORTNAME= openshadinglanguage PORTNAME= openshadinglanguage
PORTVERSION= 1.3.3 PORTVERSION= 1.4.0
PORTREVISION= 3
CATEGORIES= graphics devel CATEGORIES= graphics devel
MAINTAINER= FreeBSD@Shaneware.biz MAINTAINER= FreeBSD@Shaneware.biz
@ -22,9 +21,7 @@ USE_GITHUB= yes
GH_ACCOUNT= imageworks GH_ACCOUNT= imageworks
GH_PROJECT= OpenShadingLanguage GH_PROJECT= OpenShadingLanguage
GH_TAGNAME= Release-${PORTVERSION} GH_TAGNAME= Release-${PORTVERSION}
GH_COMMIT= 18671dc GH_COMMIT= fb85664
WRKSRC= ${WRKDIR}/imageworks-OpenShadingLanguage-${GH_COMMIT}/src
CMAKE_ARGS= -DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config33" CMAKE_ARGS= -DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config33"
USE_LDCONFIG= yes USE_LDCONFIG= yes
@ -32,10 +29,6 @@ USES= bison cmake:outsource
.include <bsd.port.options.mk> .include <bsd.port.options.mk>
.if ${ARCH} == i386 && ! ${MACHINE_CPU:Mi586}
IGNORE= CPUTYPE must be i586 or higher in /etc/make.conf
.endif
.if ${OSVERSION} < 1000033 .if ${OSVERSION} < 1000033
BUILD_DEPENDS+= flex>=2.5.37:${PORTSDIR}/textproc/flex BUILD_DEPENDS+= flex>=2.5.37:${PORTSDIR}/textproc/flex
CMAKE_ARGS+= -DFLEX_EXECUTABLE:STRING=${LOCALBASE}/bin/flex CMAKE_ARGS+= -DFLEX_EXECUTABLE:STRING=${LOCALBASE}/bin/flex
@ -44,7 +37,7 @@ CXXFLAGS+= -I${LOCALBASE}/include/flex
post-patch: post-patch:
@${REINPLACE_CMD} -e 's,/bin/bash,/bin/sh,' \ @${REINPLACE_CMD} -e 's,/bin/bash,/bin/sh,' \
${WRKSRC}/liboslexec/serialize-bc.bash ${WRKSRC}/src/liboslexec/serialize-bc.bash
post-install: post-install:
.for LNAME in oslcomp oslexec oslquery testshade .for LNAME in oslcomp oslexec oslquery testshade

View file

@ -1,2 +1,2 @@
SHA256 (openshadinglanguage-1.3.3.tar.gz) = 55c62a3eeedbf7dea5a672e0bdd73cc0fbf9c60e89d72d77bff5eb9cccca7578 SHA256 (openshadinglanguage-1.4.0.tar.gz) = 866bddfcaed7938a5ca61a7477e60ce7ae899b33d207a5faa7fd46cc72055f69
SIZE (openshadinglanguage-1.3.3.tar.gz) = 10316937 SIZE (openshadinglanguage-1.4.0.tar.gz) = 11513652

View file

@ -1,6 +1,6 @@
--- CMakeLists.txt.orig 2013-07-12 01:01:18.000000000 +0200 --- ./CMakeLists.txt.orig 2013-11-26 05:11:29.000000000 +1030
+++ CMakeLists.txt 2013-11-05 21:12:26.000000000 +0100 +++ ./CMakeLists.txt 2013-11-28 23:52:39.202491493 +1030
@@ -9,10 +9,8 @@ @@ -10,10 +10,8 @@
set (OSO_FILE_VERSION_MAJOR 1) set (OSO_FILE_VERSION_MAJOR 1)
set (OSO_FILE_VERSION_MINOR 0) set (OSO_FILE_VERSION_MINOR 0)
@ -13,7 +13,7 @@
set (CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE) set (CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE)
message (STATUS "Project source dir = ${PROJECT_SOURCE_DIR}") message (STATUS "Project source dir = ${PROJECT_SOURCE_DIR}")
message (STATUS "Project build dir = ${CMAKE_BINARY_DIR}") message (STATUS "Project build dir = ${CMAKE_BINARY_DIR}")
@@ -21,6 +19,8 @@ @@ -22,6 +20,8 @@
message (FATAL_ERROR "Not allowed to run in-source build!") message (FATAL_ERROR "Not allowed to run in-source build!")
endif () endif ()
@ -22,57 +22,46 @@
if (NOT CMAKE_BUILD_TYPE) if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE "Release") set (CMAKE_BUILD_TYPE "Release")
endif () endif ()
@@ -42,12 +42,11 @@ @@ -124,12 +124,11 @@
OUTPUT_STRIP_TRAILING_WHITESPACE)
message (STATUS "Using gcc ${GCC_VERSION} as the compiler")
endif ()
-if (NOT CMAKE_COMPILER_IS_CLANG)
- string (REGEX MATCH clang CMAKE_COMPILER_IS_CLANG ${CMAKE_CXX_COMPILER})
- if (CMAKE_COMPILER_IS_CLANG)
- set (CMAKE_COMPILER_IS_CLANG 1)
- message (STATUS "Using clang as the compiler")
- endif ()
+
+message (STATUS "CMAKE_CXX_COMPILER_ID is ${CMAKE_CXX_COMPILER_ID}")
+if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ set (CMAKE_COMPILER_IS_CLANG 1)
+ message (STATUS "Using clang as the compiler")
endif ()
## turn on more detailed warnings and consider warnings as errors
@@ -121,6 +120,10 @@
endif () endif ()
endif () endif ()
-# Try to detect if this is an OSX distro new enough that the system library
-# is libc++, in which case we should force use of Boost Wave (because that
-# avoids a nonstandard g++ extension in the other code path).
-if (EXISTS "/usr/lib/libc++.dylib" OR OSL_USE_LIBCPP)
- set (OSL_SYSTEM_HAS_LIBCPP ON)
-endif ()
+# Try to detect libc++, in which case we should force use of Boost
+# Wave (because that avoids a nonstandard g++ extension in the other
+# code path).
+check_cxx_symbol_exists(_LIBCPP_VERSION string OSL_SYSTEM_HAS_LIBCPP)
+
set (VERBOSE OFF CACHE BOOL "Print lots of messages while compiling")
set (BUILDSTATIC OFF CACHE BOOL "Build static library instead of shared")
@@ -167,7 +166,6 @@
if (CMAKE_COMPILER_IS_CLANG AND OSL_USE_LIBCPP)
message (STATUS "Using libc++")
- add_definitions ("-stdlib=libc++")
endif ()
set (CMAKE_MODULE_PATH
@@ -202,6 +200,10 @@
message (STATUS "CMAKE_INSTALL_RPATH = ${CMAKE_INSTALL_RPATH}")
+# Try to detect libc++, in which case we should force use of Boost +# Try to detect libc++, in which case we should force use of Boost
+# Wave (because that avoids a nonstandard g++ extension in the other +# Wave (because that avoids a nonstandard g++ extension in the other
+# code path). +# code path).
+check_cxx_symbol_exists(_LIBCPP_VERSION string OSL_SYSTEM_HAS_LIBCPP) +check_cxx_symbol_exists(_LIBCPP_VERSION string OSL_SYSTEM_HAS_LIBCPP)
set (VERBOSE OFF CACHE BOOL "Print lots of messages while compiling") ###########################################################################
set (BUILDSTATIC OFF CACHE BOOL "Build static library instead of shared") if (MSVC)
@@ -129,12 +132,16 @@ @@ -232,6 +234,13 @@
"Use an externally built shared library version of the pugixml library") add_subdirectory (src/include)
set (PUGIXML_HOME "" CACHE STRING "Hint about where to find external PugiXML library") add_subdirectory (src/doc)
if (WIN32)
- set (USE_BOOST_WAVE ON CACHE BOOL "Use Boost Wave as preprocessor")
set (USE_LLVM_BITCODE OFF CACHE BOOL "Generate embedded LLVM bitcode")
else ()
- set (USE_BOOST_WAVE OFF CACHE BOOL "Use Boost Wave as preprocessor")
set (USE_LLVM_BITCODE ON CACHE BOOL "Generated embedded LLVM bitcode")
endif ()
+if (WIN32 OR OSL_SYSTEM_HAS_LIBCPP)
+ set (USE_BOOST_WAVE ON CACHE BOOL "Use Boost Wave as preprocessor")
+else ()
+ set (USE_BOOST_WAVE OFF CACHE BOOL "Use Boost Wave as preprocessor")
+endif ()
+
set (USE_PARTIO ON CACHE BOOL "Use Partio if found")
if (LLVM_NAMESPACE)
@@ -149,6 +156,13 @@
add_definitions ("${EXTRA_CPP_DEFINITIONS}")
endif()
+if (USE_BOOST_WAVE) +if (USE_BOOST_WAVE)
+ add_definitions ("-DUSE_BOOST_WAVE") + add_definitions ("-DUSE_BOOST_WAVE")
@ -82,5 +71,5 @@
+ message (STATUS "Using libc++") + message (STATUS "Using libc++")
+endif () +endif ()
set (CMAKE_MODULE_PATH
"${PROJECT_SOURCE_DIR}/cmake/modules" #########################################################################

View file

@ -1,5 +1,5 @@
--- ./doc/CMakeLists.txt.orig 2013-02-15 11:22:42.000000000 +1030 --- ./src/doc/CMakeLists.txt.orig 2013-11-26 05:11:29.000000000 +1030
+++ ./doc/CMakeLists.txt 2013-02-17 07:11:28.270631151 +1030 +++ ./src/doc/CMakeLists.txt 2013-11-28 23:57:11.961491397 +1030
@@ -1,11 +1,11 @@ @@ -1,11 +1,11 @@
set (public_docs osl-languagespec.pdf) set (public_docs osl-languagespec.pdf)
# Some day: CLA-INDIVIDUAL CLA-CORPORATE # Some day: CLA-INDIVIDUAL CLA-CORPORATE
@ -7,10 +7,10 @@
-install (FILES ${public_docs} DESTINATION doc COMPONENT documentation) -install (FILES ${public_docs} DESTINATION doc COMPONENT documentation)
+install (FILES ${public_docs} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/openshadinglanguage COMPONENT documentation) +install (FILES ${public_docs} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/openshadinglanguage COMPONENT documentation)
install ( FILES ${PROJECT_SOURCE_DIR}/../LICENSE install ( FILES "${PROJECT_SOURCE_DIR}/LICENSE"
${PROJECT_SOURCE_DIR}/../INSTALL "${PROJECT_SOURCE_DIR}/INSTALL"
${PROJECT_SOURCE_DIR}/../CHANGES "${PROJECT_SOURCE_DIR}/CHANGES"
${PROJECT_SOURCE_DIR}/../README.md "${PROJECT_SOURCE_DIR}/README.md"
- DESTINATION . ) - DESTINATION . )
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/openshadinglanguage ) + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/openshadinglanguage )

View file

@ -1,9 +0,0 @@
--- ./liboslcomp/CMakeLists.txt.orig 2013-07-12 08:31:18.000000000 +0930
+++ ./liboslcomp/CMakeLists.txt 2013-11-03 18:07:25.644118883 +1030
@@ -29,6 +29,3 @@
INSTALL ( TARGETS oslcomp LIBRARY DESTINATION lib )
endif ()
-IF ( USE_BOOST_WAVE )
- ADD_DEFINITIONS ( -DUSE_BOOST_WAVE )
-ENDIF ()

View file

@ -1,20 +0,0 @@
--- ./liboslcomp/oslcomp.cpp.orig 2013-07-12 08:31:18.000000000 +0930
+++ ./liboslcomp/oslcomp.cpp 2013-11-03 18:07:25.646119281 +1030
@@ -32,7 +32,7 @@
#include <fstream>
#include <cstdio>
#include <streambuf>
-#ifdef __GNUC__
+#if defined(__GNUC__) && !defined(_LIBCPP_VERSION) && !defined(USE_BOOST_WAVE)
# include <ext/stdio_filebuf.h>
#endif
#include <cstdio>
@@ -268,7 +268,7 @@
// std::cout << "cpp command:\n>" << cppcommand << "<\n";
FILE *cpppipe = popen (cppcommand.c_str(), "r");
-#ifdef __GNUC__
+#if defined(__GNUC__) && !defined(_LIBCPP_VERSION)
__gnu_cxx::stdio_filebuf<char> fb (cpppipe, std::ios::in);
#else
std::filebuf fb (cpppipe);

View file

@ -1,42 +0,0 @@
--- ./liboslexec/constfold.cpp.orig 2013-07-12 08:31:18.000000000 +0930
+++ ./liboslexec/constfold.cpp 2013-11-03 18:07:25.648118961 +1030
@@ -882,19 +882,22 @@
{
Opcode &op (rop.inst()->ops()[opnum]);
// Symbol &R (*rop.inst()->argsymbol(op.firstarg()+0));
- Symbol &Str (*rop.inst()->argsymbol(op.firstarg()+1));
- Symbol &Results (*rop.inst()->argsymbol(op.firstarg()+2));
- Symbol &Sep (*rop.inst()->argsymbol(op.firstarg()+3));
- Symbol &Maxsplit (*rop.inst()->argsymbol(op.firstarg()+4));
- if (Str.is_constant() && Sep.is_constant() && Maxsplit.is_constant()) {
+ Symbol &Str (*rop.opargsym (op, 1));
+ Symbol &Results (*rop.opargsym (op, 2));
+ Symbol *Sep (rop.opargsym (op, 3));
+ Symbol *Maxsplit (rop.opargsym (op, 4));
+ if (Str.is_constant() && (!Sep || Sep->is_constant()) &&
+ (!Maxsplit || Maxsplit->is_constant())) {
// The split string, separator string, and maxsplit are all constants.
// Compute the results with Strutil::split.
int resultslen = Results.typespec().arraylength();
- int maxsplit = Imath::clamp (*(int *)Maxsplit.data(), 0, resultslen);
+ int maxsplit = Maxsplit ? *(int *)Maxsplit->data() : resultslen;
+ maxsplit = std::min (maxsplit, resultslen);
std::vector<std::string> splits;
+ ustring sep = Sep ? (*(ustring *)Sep->data()) : ustring("");
Strutil::split ((*(ustring *)Str.data()).string(), splits,
- (*(ustring *)Sep.data()).string(), maxsplit);
- int n = std::min (maxsplit, (int)splits.size());
+ sep.string(), maxsplit);
+ int n = std::min (std::max(0,maxsplit), (int)splits.size());
// Temporarily stash the index of the symbol holding results
int resultsarg = rop.inst()->args()[op.firstarg()+2];
// Turn the 'split' into a straight assignment of the return value...
@@ -1337,7 +1340,7 @@
*(const float *)Y.data() == 2.0f) {
// Turn x^2 into x*x, even if x is not constant
static ustring kmul("mul");
- op.reset (kmul, 2);
+ op.reset (kmul, 3);
rop.inst()->args()[op.firstarg()+2] = rop.inst()->args()[op.firstarg()+1];
return 1;
}

View file

@ -1,11 +0,0 @@
--- ./liboslexec/dictionary.cpp.orig 2013-07-12 08:31:18.000000000 +0930
+++ ./liboslexec/dictionary.cpp 2013-11-03 18:07:25.650119434 +1030
@@ -50,7 +50,7 @@
namespace pvt { // OSL::pvt
-#ifndef USE_EXTERNAL_PUGIXML
+#ifdef USING_OIIO_PUGI
namespace pugi = OIIO::pugi;
#endif

View file

@ -1,11 +0,0 @@
--- ./liboslexec/llvm_gen.cpp.orig 2013-07-12 08:31:18.000000000 +0930
+++ ./liboslexec/llvm_gen.cpp 2013-11-03 18:07:25.652119256 +1030
@@ -3310,7 +3310,7 @@
Symbol& Results = *rop.opargsym (op, 2);
DASSERT (R.typespec().is_int() && Str.typespec().is_string() &&
Results.typespec().is_array() &&
- Results.typespec().simpletype() == TypeDesc::TypeString);
+ Results.typespec().is_string_based());
llvm::Value *args[5];
args[0] = rop.llvm_load_value (Str);

View file

@ -1,11 +0,0 @@
--- ./liboslexec/llvm_instance.cpp.orig 2013-07-12 08:31:18.000000000 +0930
+++ ./liboslexec/llvm_instance.cpp 2013-11-03 18:07:25.654119237 +1030
@@ -809,7 +809,7 @@
{
// Make a layer function: void layer_func(ShaderGlobals*, GroupData*)
// Note that the GroupData* is passed as a void*.
- std::string unique_layer_name = Strutil::format ("%s_%d", inst()->layername().c_str(), inst()->id());
+ std::string unique_layer_name = Strutil::format ("%s_%d", inst()->layername(), inst()->id());
m_layer_func = llvm::cast<llvm::Function>(m_llvm_module->getOrInsertFunction(unique_layer_name,
llvm_type_void(), llvm_type_sg_ptr(),

View file

@ -1,32 +0,0 @@
--- ./liboslexec/runtimeoptimize.h.orig 2013-07-12 08:31:18.000000000 +0930
+++ ./liboslexec/runtimeoptimize.h 2013-11-03 18:07:25.656119123 +1030
@@ -345,7 +345,8 @@
/// Helper: return the ptr to the symbol that is the argnum-th
/// argument to the given op.
Symbol *opargsym (const Opcode &op, int argnum) {
- return inst()->argsymbol (op.firstarg()+argnum);
+ return (argnum < op.nargs()) ?
+ inst()->argsymbol (op.firstarg()+argnum) : NULL;
}
/// Create an llvm function for the whole shader group, JIT it,
@@ -826,7 +827,7 @@
///
llvm::BasicBlock *llvm_exit_instance_block () {
if (! m_exit_instance_block) {
- std::string name = Strutil::format ("%s_%d_exit_", inst()->layername().c_str(), inst()->id());
+ std::string name = Strutil::format ("%s_%d_exit_", inst()->layername(), inst()->id());
m_exit_instance_block = llvm_new_basic_block (name);
}
return m_exit_instance_block;
@@ -887,8 +888,8 @@
int m_local_unknown_message_sent; ///< Non-const setmessage in this inst
std::vector<ustring> m_local_messages_sent; ///< Messages set in this inst
std::vector<int> m_bblockids; ///< Basic block IDs for each op
- std::vector<bool> m_in_conditional; ///< Whether each op is in a cond
- std::vector<bool> m_in_loop; ///< Whether each op is in a loop
+ std::vector<char> m_in_conditional; ///< Whether each op is in a cond
+ std::vector<char> m_in_loop; ///< Whether each op is in a loop
std::vector<int> m_layer_remap; ///< Remapping of layer ordering
std::set<int> m_layers_already_run; ///< List of layers run
int m_num_used_layers; ///< Number of layers actually used

View file

@ -1,5 +1,5 @@
--- ./shaders/CMakeLists.txt.orig 2013-02-15 11:22:42.000000000 +1030 --- ./src/shaders/CMakeLists.txt.orig 2013-02-15 11:22:42.000000000 +1030
+++ ./shaders/CMakeLists.txt 2013-02-17 07:11:28.389609929 +1030 +++ ./src/shaders/CMakeLists.txt 2013-02-17 07:11:28.389609929 +1030
@@ -42,5 +42,5 @@ @@ -42,5 +42,5 @@
SOURCES ${shader_source} ${shader_headers}) SOURCES ${shader_source} ${shader_headers})