diff --git a/graphics/openshadinglanguage/Makefile b/graphics/openshadinglanguage/Makefile index 6ef13eaebc19..48ff06c875f2 100644 --- a/graphics/openshadinglanguage/Makefile +++ b/graphics/openshadinglanguage/Makefile @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= openshadinglanguage -PORTVERSION= 1.3.3 -PORTREVISION= 3 +PORTVERSION= 1.4.0 CATEGORIES= graphics devel MAINTAINER= FreeBSD@Shaneware.biz @@ -22,9 +21,7 @@ USE_GITHUB= yes GH_ACCOUNT= imageworks GH_PROJECT= OpenShadingLanguage GH_TAGNAME= Release-${PORTVERSION} -GH_COMMIT= 18671dc - -WRKSRC= ${WRKDIR}/imageworks-OpenShadingLanguage-${GH_COMMIT}/src +GH_COMMIT= fb85664 CMAKE_ARGS= -DLLVM_CONFIG:STRING="${LOCALBASE}/bin/llvm-config33" USE_LDCONFIG= yes @@ -32,10 +29,6 @@ USES= bison cmake:outsource .include -.if ${ARCH} == i386 && ! ${MACHINE_CPU:Mi586} -IGNORE= CPUTYPE must be i586 or higher in /etc/make.conf -.endif - .if ${OSVERSION} < 1000033 BUILD_DEPENDS+= flex>=2.5.37:${PORTSDIR}/textproc/flex CMAKE_ARGS+= -DFLEX_EXECUTABLE:STRING=${LOCALBASE}/bin/flex @@ -44,7 +37,7 @@ CXXFLAGS+= -I${LOCALBASE}/include/flex post-patch: @${REINPLACE_CMD} -e 's,/bin/bash,/bin/sh,' \ - ${WRKSRC}/liboslexec/serialize-bc.bash + ${WRKSRC}/src/liboslexec/serialize-bc.bash post-install: .for LNAME in oslcomp oslexec oslquery testshade diff --git a/graphics/openshadinglanguage/distinfo b/graphics/openshadinglanguage/distinfo index 6fab5006c1db..167f4ca4ea2e 100644 --- a/graphics/openshadinglanguage/distinfo +++ b/graphics/openshadinglanguage/distinfo @@ -1,2 +1,2 @@ -SHA256 (openshadinglanguage-1.3.3.tar.gz) = 55c62a3eeedbf7dea5a672e0bdd73cc0fbf9c60e89d72d77bff5eb9cccca7578 -SIZE (openshadinglanguage-1.3.3.tar.gz) = 10316937 +SHA256 (openshadinglanguage-1.4.0.tar.gz) = 866bddfcaed7938a5ca61a7477e60ce7ae899b33d207a5faa7fd46cc72055f69 +SIZE (openshadinglanguage-1.4.0.tar.gz) = 11513652 diff --git a/graphics/openshadinglanguage/files/patch-CMakeLists.txt b/graphics/openshadinglanguage/files/patch-CMakeLists.txt index 4964a159b8c3..1fd64720610c 100644 --- a/graphics/openshadinglanguage/files/patch-CMakeLists.txt +++ b/graphics/openshadinglanguage/files/patch-CMakeLists.txt @@ -1,6 +1,6 @@ ---- CMakeLists.txt.orig 2013-07-12 01:01:18.000000000 +0200 -+++ CMakeLists.txt 2013-11-05 21:12:26.000000000 +0100 -@@ -9,10 +9,8 @@ +--- ./CMakeLists.txt.orig 2013-11-26 05:11:29.000000000 +1030 ++++ ./CMakeLists.txt 2013-11-28 23:52:39.202491493 +1030 +@@ -10,10 +10,8 @@ set (OSO_FILE_VERSION_MAJOR 1) set (OSO_FILE_VERSION_MINOR 0) @@ -13,7 +13,7 @@ set (CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE) message (STATUS "Project source dir = ${PROJECT_SOURCE_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!") endif () @@ -22,57 +22,46 @@ if (NOT CMAKE_BUILD_TYPE) set (CMAKE_BUILD_TYPE "Release") endif () -@@ -42,12 +42,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 @@ +@@ -124,12 +124,11 @@ 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 +# 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") -@@ -129,12 +132,16 @@ - "Use an externally built shared library version of the pugixml library") - set (PUGIXML_HOME "" CACHE STRING "Hint about where to find external PugiXML library") - 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 (MSVC) +@@ -232,6 +234,13 @@ + add_subdirectory (src/include) + add_subdirectory (src/doc) +if (USE_BOOST_WAVE) + add_definitions ("-DUSE_BOOST_WAVE") @@ -82,5 +71,5 @@ + message (STATUS "Using libc++") +endif () - set (CMAKE_MODULE_PATH - "${PROJECT_SOURCE_DIR}/cmake/modules" + + ######################################################################### diff --git a/graphics/openshadinglanguage/files/patch-doc__CMakeLists.txt b/graphics/openshadinglanguage/files/patch-doc__CMakeLists.txt index 2de9a82bae5e..a3bf1ea8855f 100644 --- a/graphics/openshadinglanguage/files/patch-doc__CMakeLists.txt +++ b/graphics/openshadinglanguage/files/patch-doc__CMakeLists.txt @@ -1,5 +1,5 @@ ---- ./doc/CMakeLists.txt.orig 2013-02-15 11:22:42.000000000 +1030 -+++ ./doc/CMakeLists.txt 2013-02-17 07:11:28.270631151 +1030 +--- ./src/doc/CMakeLists.txt.orig 2013-11-26 05:11:29.000000000 +1030 ++++ ./src/doc/CMakeLists.txt 2013-11-28 23:57:11.961491397 +1030 @@ -1,11 +1,11 @@ set (public_docs osl-languagespec.pdf) # Some day: CLA-INDIVIDUAL CLA-CORPORATE @@ -7,10 +7,10 @@ -install (FILES ${public_docs} DESTINATION doc COMPONENT documentation) +install (FILES ${public_docs} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/openshadinglanguage COMPONENT documentation) - install ( FILES ${PROJECT_SOURCE_DIR}/../LICENSE - ${PROJECT_SOURCE_DIR}/../INSTALL - ${PROJECT_SOURCE_DIR}/../CHANGES - ${PROJECT_SOURCE_DIR}/../README.md + install ( FILES "${PROJECT_SOURCE_DIR}/LICENSE" + "${PROJECT_SOURCE_DIR}/INSTALL" + "${PROJECT_SOURCE_DIR}/CHANGES" + "${PROJECT_SOURCE_DIR}/README.md" - DESTINATION . ) + DESTINATION ${CMAKE_INSTALL_PREFIX}/share/openshadinglanguage ) diff --git a/graphics/openshadinglanguage/files/patch-liboslcomp__CMakeLists.txt b/graphics/openshadinglanguage/files/patch-liboslcomp__CMakeLists.txt deleted file mode 100644 index 23352762a228..000000000000 --- a/graphics/openshadinglanguage/files/patch-liboslcomp__CMakeLists.txt +++ /dev/null @@ -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 () diff --git a/graphics/openshadinglanguage/files/patch-liboslcomp__oslcomp.cpp b/graphics/openshadinglanguage/files/patch-liboslcomp__oslcomp.cpp deleted file mode 100644 index b055de1aad37..000000000000 --- a/graphics/openshadinglanguage/files/patch-liboslcomp__oslcomp.cpp +++ /dev/null @@ -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 - #include - #include --#ifdef __GNUC__ -+#if defined(__GNUC__) && !defined(_LIBCPP_VERSION) && !defined(USE_BOOST_WAVE) - # include - #endif - #include -@@ -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 fb (cpppipe, std::ios::in); - #else - std::filebuf fb (cpppipe); diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__constfold.cpp b/graphics/openshadinglanguage/files/patch-liboslexec__constfold.cpp deleted file mode 100644 index 32257b5a57f8..000000000000 --- a/graphics/openshadinglanguage/files/patch-liboslexec__constfold.cpp +++ /dev/null @@ -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 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; - } diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__dictionary.cpp b/graphics/openshadinglanguage/files/patch-liboslexec__dictionary.cpp deleted file mode 100644 index 140cff69b567..000000000000 --- a/graphics/openshadinglanguage/files/patch-liboslexec__dictionary.cpp +++ /dev/null @@ -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 - diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__llvm_gen.cpp b/graphics/openshadinglanguage/files/patch-liboslexec__llvm_gen.cpp deleted file mode 100644 index fded2ed86124..000000000000 --- a/graphics/openshadinglanguage/files/patch-liboslexec__llvm_gen.cpp +++ /dev/null @@ -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); diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__llvm_instance.cpp b/graphics/openshadinglanguage/files/patch-liboslexec__llvm_instance.cpp deleted file mode 100644 index 3808fd86d4d6..000000000000 --- a/graphics/openshadinglanguage/files/patch-liboslexec__llvm_instance.cpp +++ /dev/null @@ -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(m_llvm_module->getOrInsertFunction(unique_layer_name, - llvm_type_void(), llvm_type_sg_ptr(), diff --git a/graphics/openshadinglanguage/files/patch-liboslexec__runtimeoptimize.h b/graphics/openshadinglanguage/files/patch-liboslexec__runtimeoptimize.h deleted file mode 100644 index a67b1b2d4494..000000000000 --- a/graphics/openshadinglanguage/files/patch-liboslexec__runtimeoptimize.h +++ /dev/null @@ -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 m_local_messages_sent; ///< Messages set in this inst - std::vector m_bblockids; ///< Basic block IDs for each op -- std::vector m_in_conditional; ///< Whether each op is in a cond -- std::vector m_in_loop; ///< Whether each op is in a loop -+ std::vector m_in_conditional; ///< Whether each op is in a cond -+ std::vector m_in_loop; ///< Whether each op is in a loop - std::vector m_layer_remap; ///< Remapping of layer ordering - std::set m_layers_already_run; ///< List of layers run - int m_num_used_layers; ///< Number of layers actually used diff --git a/graphics/openshadinglanguage/files/patch-shaders__CMakeLists.txt b/graphics/openshadinglanguage/files/patch-shaders__CMakeLists.txt index d59a214ad597..b691cec1b1e7 100644 --- a/graphics/openshadinglanguage/files/patch-shaders__CMakeLists.txt +++ b/graphics/openshadinglanguage/files/patch-shaders__CMakeLists.txt @@ -1,5 +1,5 @@ ---- ./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.orig 2013-02-15 11:22:42.000000000 +1030 ++++ ./src/shaders/CMakeLists.txt 2013-02-17 07:11:28.389609929 +1030 @@ -42,5 +42,5 @@ SOURCES ${shader_source} ${shader_headers})