Skip to content

Commit

Permalink
Merge release v0.7.4
Browse files Browse the repository at this point in the history
  • Loading branch information
pixar-oss committed Mar 6, 2017
2 parents 11e064f + e1f9ae0 commit 4a3f61e
Show file tree
Hide file tree
Showing 858 changed files with 32,312 additions and 6,663 deletions.
5 changes: 0 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,6 @@ install:
- sudo apt-get install libboost-system1.55.0 libboost-system1.55-dev
- sudo apt-get install libboost-program-options1.55.0 libboost-program-options1.55-dev

### double-conversion
### USD docs currently claim we require 1.1.1, but apt-get gives us 2.0.1 on trusty.
### Building 1.1.1 as a shared library is annoying, so we'll go with this for now.
- sudo apt-get install libdouble-conversion-dev

### Intel TBB v4.3 update 1
- if [ ! -d "$HOME/tbb43_20141023oss/lib" ]; then
wget https://www.threadingbuildingblocks.org/sites/default/files/software_releases/linux/tbb43_20141023oss_lin.tgz -O /tmp/tbb.tgz;
Expand Down
52 changes: 52 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,57 @@
# Change Log

## [0.7.4] - 2017-03-03

USD now supports C++ namespaces. They are disabled by default in this release
to ease transition, but we anticipate enabling them by default in the next
release.

Specify the `PXR_ENABLE_NAMESPACES` CMake option to enable namespaces.
See documentation in [BUILDING.md](BUILDING.md#c-namespace-configuration) for more details.

### Added
- Added GfHalf type to represent half-precision numeric values. This type
is currently an alias to the "half" type supplied by the ilmbase library
USD is built against. This will be changed in an upcoming release to point
to a version of "half" that is included in the USD codebase, which will
allow us to remove the USD core's dependency on ilmbase.
- Added UsdShadeInput class to represent shader or NodeGraph input.
These are encoded as attributes in the "inputs:" namespace. By default,
this encoding will not be written out via UsdShadeConnectableAPI unless
the 'USD_SHADE_WRITE_NEW_ENCODING' environment variable is set.
- Added "Composition" tab to usdview that allows users to inspect the
composition structure of a selected prim.
- Added tests for Hdx. These tests are currently not run as part of the unit
test suite, but are being included for users to try on their platforms and
to serve as example code.
- Added icons for the USD assemblies in Maya.
- Added initial implementation of Katana plugin for reading
UsdGeomPointInstancer locations.

### Changed
- CMake module now additionally looks for the pyside-uic binary under the name
pyside-uic-2.7 to accommodate package managers on OSX.
- Removed GLUT dependency.
- Removed double-conversion dependency.
- Modified all uses of "half" type from ilmbase to use new GfHalf type.
- Renamed UsdShadeSubgraph to UsdShadeNodeGraph to conform with final
MaterialX terminology.
- Numerous changes for in-progress work on refactoring Hydra to support render
delegates.
- Updated UI in usdview to display legends for text coloring in collapsible
panes and to include more information.
- The import UI in the Maya plugin now enables reading of anim data by default.
- Updated API in Maya plugin that referred to "look" to "material".
- Numerous changes for ongoing Mac and Windows porting efforts.

### Fixed
- Fixed several issues when building with C++ namespaces enabled.
- Fixed bug with selection highlighting for instanced prims in usdview.
- Fixed crash that occurred when an invalid color primvar was encountered while
using usdview's "simple" renderer.
- Fixed issue with TF_REGISTRY_DEFINE* macros that caused build failures
for the Maya plugin on OSX. (Issue #162)

## [0.7.3] - 2017-02-05

### Added
Expand Down
31 changes: 31 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -260,3 +260,34 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

============================================================
double-conversion
============================================================

Copyright 2006-2011, the V8 project authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ Dependencies
| [Python](https://python.org) | 2.7.5 |
| [Boost](https://boost.org) | 1.55 (Linux), 1.61.0 (OS X/Windows) |
| [OpenEXR](http://www.openexr.com) | 2.2.0 |
| [DoubleConversion](https://github.com/google/double-conversion) | 1.1.1 |
| [Intel TBB](https://www.threadingbuildingblocks.org/) | 4.3.1 |
| [OpenSubdiv](https://github.com/PixarAnimationStudios/OpenSubdiv) | 3.0.5 |
| [GLEW](http://glew.sourceforge.net/) | 1.10.0 |
Expand Down
3 changes: 0 additions & 3 deletions cmake/defaults/Packages.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@ find_package(Boost
system
REQUIRED
)
# --Double Conversion
find_package(DoubleConversion REQUIRED)

# --TBB
find_package(TBB REQUIRED)
Expand Down Expand Up @@ -115,7 +113,6 @@ endif()

if (PXR_BUILD_MAYA_PLUGIN)
find_package(Maya REQUIRED)
find_package(GLUT REQUIRED)
endif()

if (PXR_BUILD_ALEMBIC_PLUGIN)
Expand Down
33 changes: 29 additions & 4 deletions cmake/macros/Public.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,6 @@ function(pxr_shared_library LIBRARY_NAME)
# Python modules must be suffixed with .pyd on Windows and .so on
# other platforms.
if(WIN32)
add_definitions(-D_BUILDING_PYD=1)
set_target_properties(${LIBRARY_NAME}
PROPERTIES
PREFIX ""
Expand Down Expand Up @@ -787,7 +786,7 @@ function (pxr_create_test_module MODULE_NAME)
set(initPyFile ${tm_SOURCE_DIR}/${MODULE_NAME}__init__.py)
set(plugInfoFile ${tm_SOURCE_DIR}/${MODULE_NAME}_plugInfo.json)

if (EXISTS ${initPyFile})
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${initPyFile}")
install(
FILES
${initPyFile}
Expand All @@ -798,7 +797,7 @@ function (pxr_create_test_module MODULE_NAME)
)
endif()

if (EXISTS ${plugInfoFile})
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${plugInfoFile}")
install(
FILES
${plugInfoFile}
Expand All @@ -814,7 +813,7 @@ endfunction() # pxr_create_test_module
function(pxr_build_test_shared_lib LIBRARY_NAME)
if (PXR_BUILD_TESTS)
cmake_parse_arguments(bt
"" ""
"" "INSTALL_PREFIX;SOURCE_DIR"
"LIBRARIES;CPPFILES"
${ARGN}
)
Expand All @@ -832,6 +831,31 @@ function(pxr_build_test_shared_lib LIBRARY_NAME)
FOLDER "${PXR_PREFIX}/tests/lib"
)

if (NOT bt_SOURCE_DIR)
set(bt_SOURCE_DIR testenv)
endif()
set(testPlugInfoSrcPath ${bt_SOURCE_DIR}/${LIBRARY_NAME}_plugInfo.json)

if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${testPlugInfoSrcPath}")
set(TEST_PLUG_INFO_RESOURCE_PATH "Resources")
set(TEST_PLUG_INFO_ROOT "..")
_get_library_file(${LIBRARY_NAME} LIBRARY_FILE)

set(testPlugInfoLibDir "tests/${bt_INSTALL_PREFIX}/lib/${LIBRARY_NAME}")
set(testPlugInfoResourceDir "${testPlugInfoLibDir}/${TEST_PLUG_INFO_RESOURCE_PATH}")
set(testPlugInfoPath "${CMAKE_BINARY_DIR}/${testPlugInfoResourceDir}/plugInfo.json")

file(RELATIVE_PATH
TEST_PLUG_INFO_LIBRARY_PATH
"${CMAKE_INSTALL_PREFIX}/${testPlugInfoLibDir}"
"${CMAKE_INSTALL_PREFIX}/tests/lib/${LIBRARY_FILE}")

configure_file("${testPlugInfoSrcPath}" "${testPlugInfoPath}")
install(
FILES ${testPlugInfoPath}
DESTINATION ${testPlugInfoResourceDir})
endif()

# We always want this test to build after the package it's under, even if
# it doesn't link directly. This ensures that this test is able to include
# headers from its parent package.
Expand All @@ -846,6 +870,7 @@ function(pxr_build_test_shared_lib LIBRARY_NAME)
install(TARGETS ${LIBRARY_NAME}
LIBRARY DESTINATION "tests/lib"
ARCHIVE DESTINATION "tests/lib"
RUNTIME DESTINATION "tests/lib"
)
endif()
endfunction() # pxr_build_test_shared_lib
Expand Down
44 changes: 0 additions & 44 deletions cmake/modules/FindDoubleConversion.cmake

This file was deleted.

18 changes: 14 additions & 4 deletions cmake/modules/FindPySide.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,13 @@
# language governing permissions and limitations under the Apache License.
#
if (NOT PYTHON_EXECUTABLE)
message(STATUS "Unable to find Python executable - PySide not present")
set(PYSIDE_FOUND False)
return()
endif()

find_program(PYSIDEUICBINARY
NAMES pyside-uic python2-pyside-uic
NAMES pyside-uic python2-pyside-uic pyside-uic-2.7
HINTS ${PYSIDE_BIN_DIR}
)

Expand All @@ -37,7 +39,15 @@ execute_process(
pySideImportResult
)

if (pySideImportResult EQUAL 0 AND EXISTS ${PYSIDEUICBINARY})
message(STATUS "Found PySide: ${PYSIDEUICBINARY}")
set(PYSIDE_FOUND True)
if (pySideImportResult EQUAL 0)
if (EXISTS ${PYSIDEUICBINARY})
message(STATUS "Found PySide: with ${PYTHON_EXECUTABLE}, will use ${PYSIDEUICBINARY} for pyside-uic binary")
set(PYSIDE_FOUND True)
else()
message(STATUS "Found PySide but NOT pyside-uic binary")
set(PYSIDE_FOUND False)
endif()
else()
message(STATUS "Did not find PySide with ${PYTHON_EXECUTABLE}")
set(PYSIDE_FOUND False)
endif()
10 changes: 6 additions & 4 deletions pxr/base/lib/arch/api.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,18 @@

#if defined(ARCH_STATIC)
# define ARCH_API
# define ARCH_API_TEMPLATE_CLASS(...)
# define ARCH_API_TEMPLATE_STRUCT(...)
# define ARCH_LOCAL
#else
# if defined(ARCH_EXPORTS)
# define ARCH_API ARCH_EXPORT
# define ARCH_API_TEMPLATE_CLASS(...)
# define ARCH_API_TEMPLATE_STRUCT(...)
# define ARCH_API_TEMPLATE_CLASS(...) ARCH_EXPORT_TEMPLATE(class, __VA_ARGS__)
# define ARCH_API_TEMPLATE_STRUCT(...) ARCH_EXPORT_TEMPLATE(struct, __VA_ARGS__)
# else
# define ARCH_API ARCH_IMPORT
# define ARCH_API_TEMPLATE_CLASS(...) extern template class ARCH_API __VA_ARGS__
# define ARCH_API_TEMPLATE_STRUCT(...) extern template struct ARCH_API __VA_ARGS__
# define ARCH_API_TEMPLATE_CLASS(...) ARCH_IMPORT_TEMPLATE(class, __VA_ARGS__)
# define ARCH_API_TEMPLATE_STRUCT(...) ARCH_IMPORT_TEMPLATE(struct, __VA_ARGS__)
# endif
# define ARCH_LOCAL ARCH_HIDDEN
#endif
Expand Down
34 changes: 20 additions & 14 deletions pxr/base/lib/arch/attributes.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,11 +117,12 @@ PXR_NAMESPACE_OPEN_SCOPE
/// numbers are run first. It is unspecified if these functions are run
/// before or after dynamic initialization of non-local variables.
///
/// \p _name is the name of the function and the remaining arguments should
/// be types for the signature of the function. The types are only to make
/// the name unique (when mangled); the function will be called with no
/// arguments so the arguments must not be used. If you don't need any
/// arguments you must use void.
/// \p _name is the name of the function and must be unique across all
/// invocations of ARCH_CONSTRUCTOR in the same translation unit.
/// The remaining arguments should be types for the signature of the
/// function. The types are only to make the name unique (when mangled);
/// the function will be called with no arguments so the arguments must
/// not be used. If you don't need any arguments you must use void.
///
/// \hideinitializer
# define ARCH_CONSTRUCTOR(_name, _priority, ...)
Expand All @@ -135,11 +136,12 @@ PXR_NAMESPACE_OPEN_SCOPE
/// numbers are run first. It is unspecified if these functions are run
/// before or after dynamically initialized non-local variables.
///
/// \p _name is the name of the function and the remaining arguments should
/// be types for the signature of the function. The types are only to make
/// the name unique (when mangled); the function will be called with no
/// arguments so the arguments must not be used. If you don't need any
/// arguments you must use void.
/// \p _name is the name of the function and must be unique across all
/// invocations of ARCH_CONSTRUCTOR in the same translation unit.
/// The remaining arguments should be types for the signature of the
/// function. The types are only to make the name unique (when mangled);
/// the function will be called with no arguments so the arguments must
/// not be used. If you don't need any arguments you must use void.
///
/// \hideinitializer
# define ARCH_DESTRUCTOR(_name, _priority, ...)
Expand Down Expand Up @@ -186,10 +188,12 @@ PXR_NAMESPACE_OPEN_SCOPE
unsigned int priority:8; // Priority of function
};

# define _ARCH_CAT(a, b) a ## b

// Emit a Arch_ConstructorEntry in the __Data,pxrctor section.
# define ARCH_CONSTRUCTOR(_name, _priority, ...) \
static void _name(__VA_ARGS__); \
static const Arch_ConstructorEntry arch_ctor_ ## _name \
static const Arch_ConstructorEntry _ARCH_CAT(arch_ctor_, _name) \
__attribute__((used, section("__DATA,pxrctor"))) = { \
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
0u, \
Expand All @@ -200,7 +204,7 @@ PXR_NAMESPACE_OPEN_SCOPE
// Emit a Arch_ConstructorEntry in the __Data,pxrdtor section.
# define ARCH_DESTRUCTOR(_name, _priority, ...) \
static void _name(__VA_ARGS__); \
static const Arch_ConstructorEntry arch_dtor_ ## _name \
static const Arch_ConstructorEntry _ARCH_CAT(arch_dtor_, _name) \
__attribute__((used, section("__DATA,pxrdtor"))) = { \
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
0u, \
Expand All @@ -225,6 +229,8 @@ PXR_NAMESPACE_OPEN_SCOPE
# pragma section(".pxrctor", read)
# pragma section(".pxrdtor", read)

# define _ARCH_CAT(a, b) a ## b

// Emit a Arch_ConstructorEntry in the .pxrctor section. The namespace
// and extern are to convince the compiler and linker to leave the object
// in the final library/executable instead of stripping it out. In
Expand All @@ -233,7 +239,7 @@ PXR_NAMESPACE_OPEN_SCOPE
static void _name(__VA_ARGS__); \
namespace { \
__declspec(allocate(".pxrctor")) \
extern const Arch_ConstructorEntry arch_ctor_ ## _name = { \
extern const Arch_ConstructorEntry _ARCH_CAT(arch_ctor_, _name) = { \
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
0u, \
_priority \
Expand All @@ -246,7 +252,7 @@ PXR_NAMESPACE_OPEN_SCOPE
static void _name(__VA_ARGS__); \
namespace { \
__declspec(allocate(".pxrdtor")) \
extern const Arch_ConstructorEntry arch_dtor_ ## _name = { \
extern const Arch_ConstructorEntry _ARCH_CAT(arch_dtor_, _name) = { \
reinterpret_cast<Arch_ConstructorEntry::Type>(&_name), \
0u, \
_priority \
Expand Down
Loading

0 comments on commit 4a3f61e

Please sign in to comment.