diff options
Diffstat (limited to 'intern/opensubdiv/CMakeLists.txt')
-rw-r--r-- | intern/opensubdiv/CMakeLists.txt | 132 |
1 files changed, 82 insertions, 50 deletions
diff --git a/intern/opensubdiv/CMakeLists.txt b/intern/opensubdiv/CMakeLists.txt index 876b5c0181f..66ed4d174a0 100644 --- a/intern/opensubdiv/CMakeLists.txt +++ b/intern/opensubdiv/CMakeLists.txt @@ -16,11 +16,6 @@ # # The Original Code is Copyright (C) 2013, Blender Foundation # All rights reserved. -# -# The Original Code is: all of this file. -# -# Contributor(s): Sergey Sharybin. -# # ***** END GPL LICENSE BLOCK ***** set(INC @@ -29,65 +24,102 @@ set(INC ) set(INC_SYS - ${OPENSUBDIV_INCLUDE_DIR} - ${GLEW_INCLUDE_PATH} ) set(SRC - opensubdiv_capi.cc - opensubdiv_converter.cc - opensubdiv_device_context_cuda.cc - opensubdiv_device_context_opencl.cc - opensubdiv_evaluator_capi.cc - opensubdiv_gpu_capi.cc - opensubdiv_utils_capi.cc - opensubdiv_capi.h + opensubdiv_capi_type.h opensubdiv_converter_capi.h - opensubdiv_device_context_cuda.h - opensubdiv_device_context_opencl.h - opensubdiv_intern.h - opensubdiv_topology_refiner.h + opensubdiv_evaluator_capi.h + opensubdiv_gl_mesh_capi.h + opensubdiv_topology_refiner_capi.h ) -macro(OPENSUBDIV_DEFINE_COMPONENT component) - if(${${component}}) - add_definitions(-D${component}) - endif() -endmacro() +if(WITH_OPENSUBDIV) + macro(OPENSUBDIV_DEFINE_COMPONENT component) + if(${${component}}) + add_definitions(-D${component}) + endif() + endmacro() -OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_OPENMP) -# TODO(sergey): OpenCL is not tested and totally unstable atm. -# OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_OPENCL) -# TODO(sergey): CUDA stays disabled for util it's ported to drievr API. -# OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_CUDA) -OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK) -OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_GLSL_COMPUTE) + list(APPEND INC_SYS + ${OPENSUBDIV_INCLUDE_DIR} + ${GLEW_INCLUDE_PATH} + ) -data_to_c_simple(gpu_shader_opensubdiv_vertex.glsl SRC) -data_to_c_simple(gpu_shader_opensubdiv_geometry.glsl SRC) -data_to_c_simple(gpu_shader_opensubdiv_fragment.glsl SRC) + list(APPEND SRC + internal/opensubdiv.cc + internal/opensubdiv_converter_factory.cc + internal/opensubdiv_converter_internal.cc + internal/opensubdiv_converter_orient.cc + internal/opensubdiv_device_context_cuda.cc + internal/opensubdiv_device_context_opencl.cc + internal/opensubdiv_evaluator.cc + internal/opensubdiv_evaluator_internal.cc + internal/opensubdiv_gl_mesh.cc + internal/opensubdiv_gl_mesh_draw.cc + internal/opensubdiv_gl_mesh_fvar.cc + internal/opensubdiv_gl_mesh_internal.cc + internal/opensubdiv_topology_refiner.cc + internal/opensubdiv_topology_refiner_internal.cc + internal/opensubdiv_util.cc -add_definitions(-DGLEW_STATIC) + internal/opensubdiv_converter_factory.h + internal/opensubdiv_converter_internal.h + internal/opensubdiv_converter_orient.h + internal/opensubdiv_converter_orient_impl.h + internal/opensubdiv_device_context_cuda.h + internal/opensubdiv_device_context_opencl.h + internal/opensubdiv_edge_map.h + internal/opensubdiv_evaluator_internal.h + internal/opensubdiv_gl_mesh_draw.h + internal/opensubdiv_gl_mesh_fvar.h + internal/opensubdiv_gl_mesh_internal.h + internal/opensubdiv_internal.h + internal/opensubdiv_topology_refiner_internal.h + internal/opensubdiv_util.h + ) -if(WIN32) - add_definitions(-DNOMINMAX) - add_definitions(-D_USE_MATH_DEFINES) -endif() + OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_OPENMP) + # TODO(sergey): OpenCL is not tested and totally unstable atm. + # OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_OPENCL) + # TODO(sergey): CUDA stays disabled for util it's ported to drievr API. + # OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_CUDA) + OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK) + OPENSUBDIV_DEFINE_COMPONENT(OPENSUBDIV_HAS_GLSL_COMPUTE) + + data_to_c_simple(shader/gpu_shader_opensubdiv_vertex.glsl SRC) + data_to_c_simple(shader/gpu_shader_opensubdiv_geometry.glsl SRC) + data_to_c_simple(shader/gpu_shader_opensubdiv_fragment.glsl SRC) + + add_definitions(-DGLEW_STATIC) -# TODO(sergey): Put CUEW back when CUDA is officially supported by OSD. -#if(OPENSUBDIV_HAS_CUDA) -# list(APPEND INC -# ../../extern/cuew/include -# ) -# add_definitions(-DOPENSUBDIV_HAS_CUEW) -#endif() + if(WIN32) + add_definitions(-DNOMINMAX) + add_definitions(-D_USE_MATH_DEFINES) + endif() + + # TODO(sergey): Put CUEW back when CUDA is officially supported by OSD. + #if(OPENSUBDIV_HAS_CUDA) + # list(APPEND INC + # ../../extern/cuew/include + # ) + # add_definitions(-DOPENSUBDIV_HAS_CUEW) + #endif() -if(OPENSUBDIV_HAS_OPENCL) - list(APPEND INC - ../../extern/clew/include + if(OPENSUBDIV_HAS_OPENCL) + list(APPEND INC + ../../extern/clew/include + ) + add_definitions(-DOPENSUBDIV_HAS_CLEW) + endif() +else() + list(APPEND SRC + stub/opensubdiv_stub.cc + stub/opensubdiv_evaluator_stub.cc + stub/opensubdiv_gl_mesh_stub.cc + stub/opensubdiv_topology_refiner_stub.cc ) - add_definitions(-DOPENSUBDIV_HAS_CLEW) endif() blender_add_lib(bf_intern_opensubdiv "${SRC}" "${INC}" "${INC_SYS}") |