Files
test/source/blender/modifiers/CMakeLists.txt
Jesse Yurkovich 0240a1f32f Cleanup: CMake: Modernize bf_intern_openvdb dependencies
This follows the other CMake "modernization" commits, this time for
`bf_intern_openvdb` and the OpenVDB dependency itself.

The difference with this one is that `intern/openvdb` becomes an
"optional" dependency itself. This is because downstream consumers often
want to include this dependency rather than openvdb directly, so this
target must also be optional. Optional, in this case, means the target
always exists but may be entirely empty.

Summary
- If you are using BKE APIs to access openvdb features, then use the
  `bf::blenkernel` target
- If you are only using `intern/openvdb` APIs then use the
  `bf::intern::optional::openvdb` target (rare)
- For all other cases, use the `bf::dependencies::optional::openvdb`
  target (rare)

context: https://devtalk.blender.org/t/cmake-cleanup/30260
Pull Request: https://projects.blender.org/blender/blender/pulls/137071
2025-08-12 21:26:38 +02:00

235 lines
5.2 KiB
CMake

# SPDX-FileCopyrightText: 2006 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
set(INC
.
intern
intern/lineart
../editors/include
../makesrna
../../../intern/eigen
# RNA_prototypes.hh
${CMAKE_BINARY_DIR}/source/blender/makesrna
)
set(INC_SYS
${ZLIB_INCLUDE_DIRS}
)
set(SRC
intern/MOD_armature.cc
intern/MOD_array.cc
intern/MOD_bevel.cc
intern/MOD_boolean.cc
intern/MOD_build.cc
intern/MOD_cast.cc
intern/MOD_cloth.cc
intern/MOD_collision.cc
intern/MOD_correctivesmooth.cc
intern/MOD_curve.cc
intern/MOD_datatransfer.cc
intern/MOD_decimate.cc
intern/MOD_displace.cc
intern/MOD_dynamicpaint.cc
intern/MOD_edgesplit.cc
intern/MOD_explode.cc
intern/MOD_fluid.cc
intern/MOD_grease_pencil_armature.cc
intern/MOD_grease_pencil_array.cc
intern/MOD_grease_pencil_build.cc
intern/MOD_grease_pencil_color.cc
intern/MOD_grease_pencil_dash.cc
intern/MOD_grease_pencil_envelope.cc
intern/MOD_grease_pencil_hook.cc
intern/MOD_grease_pencil_lattice.cc
intern/MOD_grease_pencil_length.cc
intern/MOD_grease_pencil_mirror.cc
intern/MOD_grease_pencil_multiply.cc
intern/MOD_grease_pencil_noise.cc
intern/MOD_grease_pencil_offset.cc
intern/MOD_grease_pencil_opacity.cc
intern/MOD_grease_pencil_outline.cc
intern/MOD_grease_pencil_shrinkwrap.cc
intern/MOD_grease_pencil_simplify.cc
intern/MOD_grease_pencil_smooth.cc
intern/MOD_grease_pencil_subdiv.cc
intern/MOD_grease_pencil_texture.cc
intern/MOD_grease_pencil_thickness.cc
intern/MOD_grease_pencil_time.cc
intern/MOD_grease_pencil_tint.cc
intern/MOD_grease_pencil_util.cc
intern/MOD_grease_pencil_weight_angle.cc
intern/MOD_grease_pencil_weight_proximity.cc
intern/MOD_hook.cc
intern/MOD_laplaciandeform.cc
intern/MOD_laplaciansmooth.cc
intern/MOD_lattice.cc
intern/MOD_lineart.cc
intern/MOD_mask.cc
intern/MOD_mesh_to_volume.cc
intern/MOD_meshcache.cc
intern/MOD_meshcache_mdd.cc
intern/MOD_meshcache_pc2.cc
intern/MOD_meshcache_util.cc
intern/MOD_meshdeform.cc
intern/MOD_meshsequencecache.cc
intern/MOD_mirror.cc
intern/MOD_multires.cc
intern/MOD_nodes.cc
intern/MOD_none.cc
intern/MOD_normal_edit.cc
intern/MOD_ocean.cc
intern/MOD_particleinstance.cc
intern/MOD_particlesystem.cc
intern/MOD_remesh.cc
intern/MOD_screw.cc
intern/MOD_shapekey.cc
intern/MOD_shrinkwrap.cc
intern/MOD_simpledeform.cc
intern/MOD_skin.cc
intern/MOD_smooth.cc
intern/MOD_softbody.cc
intern/MOD_solidify.cc
intern/MOD_solidify_extrude.cc
intern/MOD_solidify_nonmanifold.cc
intern/MOD_subsurf.cc
intern/MOD_surface.cc
intern/MOD_surfacedeform.cc
intern/MOD_triangulate.cc
intern/MOD_ui_common.cc
intern/MOD_util.cc
intern/MOD_uvproject.cc
intern/MOD_uvwarp.cc
intern/MOD_volume_displace.cc
intern/MOD_volume_to_mesh.cc
intern/MOD_warp.cc
intern/MOD_wave.cc
intern/MOD_weighted_normal.cc
intern/MOD_weightvg_util.cc
intern/MOD_weightvgedit.cc
intern/MOD_weightvgmix.cc
intern/MOD_weightvgproximity.cc
intern/MOD_weld.cc
intern/MOD_wireframe.cc
intern/lineart/lineart_chain.cc
intern/lineart/lineart_cpu.cc
intern/lineart/lineart_shadow.cc
intern/lineart/lineart_util.cc
MOD_modifiertypes.hh
MOD_nodes.hh
intern/MOD_grease_pencil_util.hh
intern/MOD_meshcache_util.hh
intern/MOD_solidify_util.hh
intern/MOD_ui_common.hh
intern/MOD_util.hh
intern/MOD_weightvg_util.hh
intern/lineart/MOD_lineart.hh
intern/lineart/lineart_intern.hh
)
set(LIB
PRIVATE bf::blenfont
PRIVATE bf::blenkernel
PRIVATE bf::blenlib
PRIVATE bf::blenloader
PRIVATE bf::blentranslation
PRIVATE bf::bmesh
PRIVATE bf::depsgraph
PUBLIC bf::dna
PRIVATE bf::functions
PRIVATE bf::geometry
PRIVATE bf::intern::guardedalloc
PRIVATE bf::extern::fmtlib
PRIVATE bf::nodes
PRIVATE bf::render
PRIVATE bf::windowmanager
)
if(WITH_ALEMBIC)
add_definitions(-DWITH_ALEMBIC)
list(APPEND INC
../io/alembic
)
list(APPEND LIB
bf_io_alembic
)
endif()
if(WITH_USD)
add_definitions(-DWITH_USD)
list(APPEND INC
../io/usd
)
list(APPEND LIB
bf_io_usd
)
endif()
if(WITH_MOD_REMESH)
list(APPEND INC
../../../intern/dualcon
)
list(APPEND LIB
bf_intern_dualcon
)
add_definitions(-DWITH_MOD_REMESH)
endif()
if(WITH_MOD_FLUID)
add_definitions(-DWITH_FLUID)
endif()
if(WITH_MOD_OCEANSIM)
add_definitions(-DWITH_OCEANSIM)
endif()
if(WITH_OPENSUBDIV)
add_definitions(-DWITH_OPENSUBDIV)
endif()
if(WITH_BULLET)
list(APPEND LIB
${BULLET_LIBRARIES}
)
add_definitions(-DWITH_BULLET)
endif()
# To disable adaptive subdivision test in subsurf UI without cycles
if(WITH_CYCLES)
add_definitions(-DWITH_CYCLES)
endif()
if(WITH_GMP)
add_definitions(-DWITH_GMP)
list(APPEND INC_SYS
${GMP_INCLUDE_DIRS}
)
list(APPEND LIB
${GMP_LIBRARIES}
)
endif()
if(WITH_TBB)
if(WIN32)
# TBB includes Windows.h which will define min/max macros
# that will collide with the STL versions.
add_definitions(-DNOMINMAX)
endif()
endif()
if(WITH_EXPERIMENTAL_FEATURES)
add_definitions(-DWITH_SIMULATION_DATABLOCK)
endif()
# So we can have special tricks in modifier system.
blender_add_lib(bf_modifiers "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
# RNA_prototypes.hh
add_dependencies(bf_modifiers bf_rna)