diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-08-13 13:21:29 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-08-13 13:37:18 +0300 |
commit | f8a499b596b8af46201b86a30c9807ca54363e25 (patch) | |
tree | 8ce53c7fb9c598deda0141f3eecf7d316b8c24b1 /intern/opensubdiv/CMakeLists.txt | |
parent | 33fbc4fbea14a17d71eacf2c152d51518737df35 (diff) |
OpenSubdiv: Add stub implementation of C-API
C-API is way smaller than the rest of the code which uses it.
So better to conditionally compile stub implementation than
to keep adding ifdef everywhere.
Diffstat (limited to 'intern/opensubdiv/CMakeLists.txt')
-rw-r--r-- | intern/opensubdiv/CMakeLists.txt | 136 |
1 files changed, 75 insertions, 61 deletions
diff --git a/intern/opensubdiv/CMakeLists.txt b/intern/opensubdiv/CMakeLists.txt index 887eb399224..f11d9b4613a 100644 --- a/intern/opensubdiv/CMakeLists.txt +++ b/intern/opensubdiv/CMakeLists.txt @@ -29,39 +29,9 @@ set(INC ) set(INC_SYS - ${OPENSUBDIV_INCLUDE_DIR} - ${GLEW_INCLUDE_PATH} ) set(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 - - 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_evaluator_internal.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 - opensubdiv_capi.h opensubdiv_capi_type.h opensubdiv_converter_capi.h @@ -70,44 +40,88 @@ set(SRC 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(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) + 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_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_evaluator_internal.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) -# 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() + 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) -if(OPENSUBDIV_HAS_OPENCL) - list(APPEND INC - ../../extern/clew/include + add_definitions(-DGLEW_STATIC) + + 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 + ) + 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}") |