Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arbitrary attribute for curves #135

Merged
merged 13 commits into from
Apr 19, 2021
Merged
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "tests/doctest"]
path = tests/doctest
url = https://github.com/onqtam/doctest.git
15 changes: 15 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ project(hdCycles CXX C)
option(USE_HOUDINI_USD "" OFF)
option(USE_CXX11_ABI "" ON)

# Options debug
option(USE_TESTS "" OFF)
option(USE_ASAN "" OFF)

# Global Settings
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
Expand All @@ -49,4 +53,15 @@ endif()
find_package(Cycles REQUIRED)
include(cmake/FindUsd.cmake)

# Linux only
if(${USE_TESTS} AND ${USE_ASAN})
add_compile_definitions(USE_ASAN)
add_compile_options(-fno-omit-frame-pointer -fsanitize=address)
add_link_options(-fno-omit-frame-pointer -fsanitize=address)
endif()

add_subdirectory(plugin)

if(${USE_TESTS})
add_subdirectory(tests)
endif()
85 changes: 42 additions & 43 deletions cmake/FindHoudiniUsd.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,35 +24,34 @@ endif()
find_package(Houdini REQUIRED PATHS ${HOUDINI_ROOT}/toolkit/cmake)
target_link_libraries(UsdInterface INTERFACE Houdini)

# Find hboost
# DSO
target_compile_definitions(UsdInterface
INTERFACE
USE_HBOOST
BOOST_NS=hboost
)

find_library(_houdini_hboost_python
NAMES
hboost_python27-mt-x64
hboost_python-mt-x64
PATHS
${HOUDINI_ROOT}/dsolib
${HOUDINI_ROOT}/custom/houdini/dsolib/
REQUIRED
)
set(_houdini_libs OpenImageIO_sidefx;hboost_filesystem-mt-x64;hboost_iostreams-mt-x64;hboost_system-mt-x64;hboost_regex-mt-x64)
foreach(_houdini_lib ${_houdini_libs})
find_library(${_houdini_lib}_path
NAMES
${_houdini_lib}
PATHS
${HOUDINI_ROOT}/dsolib
${HOUDINI_ROOT}/custom/houdini/dsolib/
REQUIRED
)

find_library(_houdini_hboost_filesystem
NAMES
hboost_filesystem-mt-x64
PATHS
${HOUDINI_ROOT}/dsolib
${HOUDINI_ROOT}/custom/houdini/dsolib/
REQUIRED
)
message(STATUS "Found ${_houdini_lib}: ${${_houdini_lib}_path}")

target_link_libraries(UsdInterface
INTERFACE
${${_houdini_lib}_path}
)

target_link_libraries(Houdini INTERFACE ${_houdini_hboost_python} ${_houdini_hboost_filesystem})
endforeach()

# Find Python
# Python
find_library(_houdini_python_lib
NAMES
python27
Expand All @@ -64,35 +63,35 @@ find_library(_houdini_python_lib
${HOUDINI_ROOT}/python/lib
REQUIRED
)
target_link_libraries(Houdini INTERFACE ${_houdini_python_lib})

# Find OpenImageIO_sidefx
find_library(_houdini_oiio_lib
NAMES
OpenImageIO_sidefx
PATHS
${HOUDINI_ROOT}/dsolib
${HOUDINI_ROOT}/custom/houdini/dsolib/
REQUIRED
)
target_link_libraries(UsdInterface INTERFACE ${_houdini_oiio_lib})

# Find Usd
list(APPEND CMAKE_FIND_LIBRARY_PREFIXES lib) # append lib prefix to have same behaviour on win and lin
set(_houdini_pxr_libs pxr_ar;pxr_arch;pxr_cameraUtil;pxr_garch;pxr_gf;pxr_glf;pxr_hd;pxr_hdSt;pxr_hdx;pxr_hf;pxr_hgi;pxr_hgiGL;pxr_hgiInterop;pxr_hio;pxr_js;pxr_kind;pxr_ndr;pxr_pcp;pxr_plug;pxr_pxOsd;pxr_sdf;pxr_sdr;pxr_tf;pxr_trace;pxr_usd;pxr_usdAppUtils;pxr_usdGeom;pxr_usdHydra;pxr_usdImaging;pxr_usdImagingGL;pxr_usdLux;pxr_usdMedia;pxr_usdRender;pxr_usdRi;pxr_usdRiImaging;pxr_usdShade;pxr_usdSkel;pxr_usdSkelImaging;pxr_usdUI;pxr_usdUtils;pxr_usdviewq;pxr_usdVol;pxr_usdVolImaging;pxr_vt;pxr_work;)
foreach(_pxr_lib ${_houdini_pxr_libs})
find_library(${_pxr_lib}_path
find_library(_houdini_hboost_python
NAMES
${_pxr_lib}
hboost_python27-mt-x64
hboost_python-mt-x64
PATHS
${HOUDINI_ROOT}/dsolib
${HOUDINI_ROOT}/custom/houdini/dsolib/
REQUIRED
)
)

target_link_libraries(Houdini INTERFACE ${_houdini_python_lib} ${_houdini_hboost_python})

# Usd
list(APPEND CMAKE_FIND_LIBRARY_PREFIXES lib) # append lib prefix to have same behaviour on win and lin
set(_houdini_pxr_libs pxr_ar;pxr_arch;pxr_cameraUtil;pxr_garch;pxr_gf;pxr_glf;pxr_hd;pxr_hdSt;pxr_hdx;pxr_hf;pxr_hgi;pxr_hgiGL;pxr_hgiInterop;pxr_hio;pxr_js;pxr_kind;pxr_ndr;pxr_pcp;pxr_plug;pxr_pxOsd;pxr_sdf;pxr_sdr;pxr_tf;pxr_trace;pxr_usd;pxr_usdAppUtils;pxr_usdGeom;pxr_usdHydra;pxr_usdImaging;pxr_usdImagingGL;pxr_usdLux;pxr_usdMedia;pxr_usdRender;pxr_usdRi;pxr_usdRiImaging;pxr_usdShade;pxr_usdSkel;pxr_usdSkelImaging;pxr_usdUI;pxr_usdUtils;pxr_usdviewq;pxr_usdVol;pxr_usdVolImaging;pxr_vt;pxr_work;)
foreach(_pxr_lib ${_houdini_pxr_libs})
find_library(${_pxr_lib}_path
NAMES
${_pxr_lib}
PATHS
${HOUDINI_ROOT}/dsolib
${HOUDINI_ROOT}/custom/houdini/dsolib/
REQUIRED
)

target_link_libraries(UsdInterface
INTERFACE
${${_pxr_lib}_path}
)
INTERFACE
${${_pxr_lib}_path}
)

endforeach()
endforeach()
6 changes: 6 additions & 0 deletions plugin/hdCycles/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@ add_library(hdCycles SHARED
utils.h
volume.cpp
volume.h
resourceRegistry.cpp
resourceRegistry.h
objectSource.cpp
objectSource.h
attributeSource.cpp
attributeSource.h
)

target_include_directories(hdCycles
Expand Down
Loading