tornavis/source/blender/blenkernel/CMakeLists.txt

863 lines
18 KiB
CMake

# SPDX-FileCopyrightText: 2006 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
set(INC
.
../asset_system
../blenfont
../blenloader
../blentranslation
../bmesh
../depsgraph
../draw
../functions
../gpencil_modifiers_legacy
../gpu
../ikplugin
../imbuf
../makesrna
../modifiers
../nodes
../render
../sequencer
../shader_fx
../simulation
../../../intern/eigen
../../../intern/ghost
../../../intern/iksolver/extern
../../../intern/clog
../../../intern/libmv
../../../intern/mantaflow/extern
../../../intern/memutil
../../../intern/mikktspace
../../../intern/opensubdiv
../../../extern/fmtlib/include
# RNA_prototypes.h
${CMAKE_BINARY_DIR}/source/blender/makesrna
)
set(INC_SYS
${ZLIB_INCLUDE_DIRS}
# For `vfontdata_freetype.cc`.
${FREETYPE_INCLUDE_DIRS}
)
set(SRC
${CMAKE_SOURCE_DIR}/release/datafiles/userdef/userdef_default.c
intern/CCGSubSurf.cc
intern/CCGSubSurf_legacy.cc
intern/CCGSubSurf_util.cc
intern/DerivedMesh.cc
intern/action.cc
intern/action_bones.cc
intern/action_mirror.cc
intern/addon.cc
intern/anim_data.cc
intern/anim_path.cc
intern/anim_sys.cc
intern/anim_visualization.cc
intern/anonymous_attribute_id.cc
intern/appdir.cc
intern/armature.cc
intern/armature_deform.cc
intern/armature_pose.cc
intern/armature_selection.cc
intern/armature_update.cc
intern/asset.cc
intern/asset_weak_reference.cc
intern/attribute.cc
intern/attribute_access.cc
intern/attribute_math.cc
intern/autoexec.cc
intern/bake_geometry_nodes_modifier.cc
intern/bake_items.cc
intern/bake_items_paths.cc
intern/bake_items_serialize.cc
intern/bake_items_socket.cc
intern/blender.cc
intern/blender_copybuffer.cc
intern/blender_undo.cc
intern/blender_user_menu.cc
intern/blendfile.cc
intern/blendfile_link_append.cc
intern/boids.cc
intern/bpath.cc
intern/brush.cc
intern/bvhutils.cc
intern/cachefile.cc
intern/callbacks.cc
intern/camera.cc
intern/cdderivedmesh.cc
intern/cloth.cc
intern/collection.cc
intern/collision.cc
intern/colorband.cc
intern/colortools.cc
intern/compute_contexts.cc
intern/constraint.cc
intern/context.cc
intern/cpp_types.cc
intern/crazyspace.cc
intern/cryptomatte.cc
intern/curve.cc
intern/curve_bevel.cc
intern/curve_bezier.cc
intern/curve_catmull_rom.cc
intern/curve_convert.cc
intern/curve_decimate.cc
intern/curve_deform.cc
intern/curve_legacy_convert.cc
intern/curve_nurbs.cc
intern/curve_poly.cc
intern/curve_to_mesh_convert.cc
intern/curveprofile.cc
intern/curves.cc
intern/curves_geometry.cc
intern/curves_utils.cc
intern/customdata.cc
intern/customdata_file.cc
intern/data_transfer.cc
intern/deform.cc
intern/displist.cc
intern/dynamicpaint.cc
intern/editlattice.cc
intern/editmesh.cc
intern/editmesh_bvh.cc
intern/editmesh_cache.cc
intern/editmesh_tangent.cc
intern/effect.cc
intern/fcurve.cc
intern/fcurve_cache.cc
intern/fcurve_driver.cc
intern/fluid.cc
intern/fmodifier.cc
intern/freestyle.cc
intern/geometry_component_curves.cc
intern/geometry_component_edit_data.cc
intern/geometry_component_grease_pencil.cc
intern/geometry_component_instances.cc
intern/geometry_component_mesh.cc
intern/geometry_component_pointcloud.cc
intern/geometry_component_volume.cc
intern/geometry_fields.cc
intern/geometry_set.cc
intern/geometry_set_instances.cc
intern/gpencil_curve_legacy.cc
intern/gpencil_geom_legacy.cc
intern/gpencil_legacy.cc
intern/gpencil_modifier_legacy.cc
intern/gpencil_update_cache_legacy.cc
intern/grease_pencil.cc
intern/grease_pencil_convert_legacy.cc
intern/icons.cc
intern/icons_rasterize.cc
intern/idprop.cc
intern/idprop_create.cc
intern/idprop_serialize.cc
intern/idprop_utils.cc
intern/idtype.cc
intern/image.cc
intern/image_format.cc
intern/image_gen.cc
intern/image_gpu.cc
intern/image_partial_update.cc
intern/image_save.cc
intern/instances.cc
intern/ipo.cc
intern/kelvinlet.cc
intern/key.cc
intern/keyconfig.cc
intern/lattice.cc
intern/lattice_deform.cc
intern/layer.cc
intern/layer_utils.cc
intern/lib_id.cc
intern/lib_id_delete.cc
intern/lib_id_eval.cc
intern/lib_id_remapper.cc
intern/lib_override.cc
intern/lib_override_proxy_conversion.cc
intern/lib_query.cc
intern/lib_remap.cc
intern/library.cc
intern/light.cc
intern/light_linking.cc
intern/lightprobe.cc
intern/linestyle.cc
intern/main.cc
intern/main_idmap.cc
intern/main_namemap.cc
intern/mask.cc
intern/mask_evaluate.cc
intern/mask_rasterize.cc
intern/material.cc
intern/mball.cc
intern/mball_tessellate.cc
intern/mesh.cc
intern/mesh_boolean_convert.cc
intern/mesh_calc_edges.cc
intern/mesh_convert.cc
intern/mesh_debug.cc
intern/mesh_evaluate.cc
intern/mesh_fair.cc
intern/mesh_flip_faces.cc
intern/mesh_iterators.cc
intern/mesh_legacy_convert.cc
intern/mesh_mapping.cc
intern/mesh_merge_customdata.cc
intern/mesh_mirror.cc
intern/mesh_normals.cc
intern/mesh_remap.cc
intern/mesh_remesh_voxel.cc
intern/mesh_runtime.cc
intern/mesh_sample.cc
intern/mesh_tangent.cc
intern/mesh_tessellate.cc
intern/mesh_validate.cc
intern/mesh_wrapper.cc
intern/modifier.cc
intern/movieclip.cc
intern/multires.cc
intern/multires_reshape.cc
intern/multires_reshape_apply_base.cc
intern/multires_reshape_ccg.cc
intern/multires_reshape_smooth.cc
intern/multires_reshape_subdivide.cc
intern/multires_reshape_util.cc
intern/multires_reshape_vertcos.cc
intern/multires_subdiv.cc
intern/multires_unsubdivide.cc
intern/multires_versioning.cc
intern/nla.cc
intern/node.cc
intern/node_runtime.cc
intern/node_tree_anonymous_attributes.cc
intern/node_tree_dot_export.cc
intern/node_tree_field_inferencing.cc
intern/node_tree_interface.cc
intern/node_tree_update.cc
intern/node_tree_zones.cc
intern/object.cc
intern/object_deform.cc
intern/object_dupli.cc
intern/object_update.cc
intern/ocean.cc
intern/ocean_spectrum.cc
intern/outliner_treehash.cc
intern/packedFile.cc
intern/paint.cc
intern/paint_canvas.cc
intern/paint_toolslots.cc
intern/particle.cc
intern/particle_child.cc
intern/particle_distribute.cc
intern/particle_system.cc
intern/pbvh.cc
intern/pbvh_bmesh.cc
intern/pbvh_colors.cc
intern/pbvh_pixels.cc
intern/pbvh_pixels_copy.cc
intern/pbvh_uv_islands.cc
intern/pointcache.cc
intern/pointcloud.cc
intern/pose_backup.cc
intern/preferences.cc
intern/preview_image.cc
intern/report.cc
intern/rigidbody.cc
intern/scene.cc
intern/screen.cc
intern/shader_fx.cc
intern/shrinkwrap.cc
intern/softbody.cc
intern/sound.cc
intern/speaker.cc
intern/studiolight.cc
intern/subdiv.cc
intern/subdiv_ccg.cc
intern/subdiv_ccg_mask.cc
intern/subdiv_ccg_material.cc
intern/subdiv_converter.cc
intern/subdiv_converter_mesh.cc
intern/subdiv_deform.cc
intern/subdiv_displacement.cc
intern/subdiv_displacement_multires.cc
intern/subdiv_eval.cc
intern/subdiv_foreach.cc
intern/subdiv_mesh.cc
intern/subdiv_modifier.cc
intern/subdiv_stats.cc
intern/subdiv_topology.cc
intern/subsurf_ccg.cc
intern/text.cc
intern/text_suggestions.cc
intern/texture.cc
intern/tracking.cc
intern/tracking_auto.cc
intern/tracking_detect.cc
intern/tracking_plane_tracker.cc
intern/tracking_region_tracker.cc
intern/tracking_solver.cc
intern/tracking_stabilize.cc
intern/tracking_util.cc
intern/type_conversions.cc
intern/undo_system.cc
intern/unit.cc
intern/vfont.cc
intern/vfontdata_freetype.cc
intern/viewer_path.cc
intern/volume.cc
intern/volume_render.cc
intern/volume_to_mesh.cc
intern/workspace.cc
intern/world.cc
intern/writeavi.cc
BKE_DerivedMesh.h
BKE_action.h
BKE_action.hh
BKE_addon.h
BKE_anim_data.h
BKE_anim_path.h
BKE_anim_visualization.h
BKE_animsys.h
BKE_anonymous_attribute_id.hh
BKE_appdir.h
BKE_armature.h
BKE_armature.hh
BKE_asset.h
BKE_attribute.h
BKE_attribute.hh
BKE_attribute_math.hh
BKE_autoexec.h
BKE_bake_geometry_nodes_modifier.hh
BKE_bake_items.hh
BKE_bake_items_paths.hh
BKE_bake_items_serialize.hh
BKE_bake_items_socket.hh
BKE_blender.h
BKE_blender_copybuffer.h
BKE_blender_undo.h
BKE_blender_user_menu.h
BKE_blender_version.h
BKE_blendfile.h
BKE_blendfile_link_append.h
BKE_boids.h
BKE_bpath.h
BKE_brush.hh
BKE_bvhutils.h
BKE_cachefile.h
BKE_callbacks.h
BKE_camera.h
BKE_ccg.h
BKE_cdderivedmesh.h
BKE_cloth.hh
BKE_collection.h
BKE_collision.h
BKE_colorband.h
BKE_colortools.h
BKE_compute_contexts.hh
BKE_constraint.h
BKE_context.h
BKE_cpp_types.h
BKE_crazyspace.h
BKE_crazyspace.hh
BKE_cryptomatte.h
BKE_cryptomatte.hh
BKE_curve.h
BKE_curve_legacy_convert.hh
BKE_curve_to_mesh.hh
BKE_curveprofile.h
BKE_curves.h
BKE_curves.hh
BKE_curves_utils.hh
BKE_customdata.h
BKE_customdata_file.h
BKE_data_transfer.h
BKE_deform.h
BKE_displist.h
BKE_duplilist.h
BKE_dynamicpaint.h
BKE_editlattice.h
BKE_editmesh.h
BKE_editmesh_bvh.h
BKE_editmesh_cache.hh
BKE_editmesh_tangent.h
BKE_effect.h
BKE_fcurve.h
BKE_fcurve_driver.h
BKE_fluid.h
BKE_freestyle.h
BKE_geometry_fields.hh
BKE_geometry_set.hh
BKE_geometry_set_instances.hh
BKE_global.h
BKE_gpencil_curve_legacy.h
BKE_gpencil_geom_legacy.h
BKE_gpencil_legacy.h
BKE_gpencil_modifier_legacy.h
BKE_gpencil_update_cache_legacy.h
BKE_grease_pencil.h
BKE_grease_pencil.hh
BKE_icons.h
BKE_idprop.h
BKE_idprop.hh
BKE_idtype.h
BKE_image.h
BKE_image_format.h
BKE_image_partial_update.hh
BKE_image_save.h
BKE_image_wrappers.hh
BKE_instances.hh
BKE_ipo.h
BKE_kelvinlet.h
BKE_key.h
BKE_keyconfig.h
BKE_lattice.h
BKE_layer.h
BKE_lib_id.h
BKE_lib_override.hh
BKE_lib_query.h
BKE_lib_remap.h
BKE_library.h
BKE_light.h
BKE_light_linking.h
BKE_lightprobe.h
BKE_linestyle.h
BKE_main.h
BKE_main_idmap.h
BKE_main_namemap.h
BKE_mask.h
BKE_material.h
BKE_mball.h
BKE_mball_tessellate.h
BKE_mesh.h
BKE_mesh.hh
BKE_mesh_boolean_convert.hh
BKE_mesh_fair.hh
BKE_mesh_iterators.hh
BKE_mesh_legacy_convert.hh
BKE_mesh_mapping.hh
BKE_mesh_mirror.hh
BKE_mesh_remap.hh
BKE_mesh_remesh_voxel.hh
BKE_mesh_runtime.hh
BKE_mesh_sample.hh
BKE_mesh_tangent.hh
BKE_mesh_types.hh
BKE_mesh_wrapper.hh
BKE_modifier.h
BKE_movieclip.h
BKE_multires.hh
BKE_nla.h
BKE_node.h
BKE_node.hh
BKE_node_runtime.hh
BKE_node_tree_anonymous_attributes.hh
BKE_node_tree_dot_export.hh
BKE_node_tree_interface.hh
BKE_node_tree_update.h
BKE_node_tree_zones.hh
BKE_object.hh
BKE_object_deform.h
BKE_ocean.h
BKE_outliner_treehash.hh
BKE_packedFile.h
BKE_paint.hh
BKE_particle.h
BKE_pbvh.h
BKE_pbvh_api.hh
BKE_pbvh_pixels.hh
BKE_pointcache.h
BKE_pointcloud.h
BKE_pose_backup.h
BKE_preferences.h
BKE_preview_image.hh
BKE_report.h
BKE_rigidbody.h
BKE_scene.h
BKE_screen.hh
BKE_sequencer_offscreen.h
BKE_shader_fx.h
BKE_shrinkwrap.h
BKE_softbody.h
BKE_sound.h
BKE_speaker.h
BKE_studiolight.h
BKE_subdiv.hh
BKE_subdiv_ccg.hh
BKE_subdiv_deform.hh
BKE_subdiv_eval.hh
BKE_subdiv_foreach.hh
BKE_subdiv_mesh.hh
BKE_subdiv_modifier.hh
BKE_subdiv_topology.hh
BKE_subsurf.hh
BKE_text.h
BKE_text_suggestions.h
BKE_texture.h
BKE_tracking.h
BKE_type_conversions.hh
BKE_undo_system.h
BKE_unit.h
BKE_vfont.h
BKE_vfontdata.h
BKE_viewer_path.h
BKE_volume.h
BKE_volume_openvdb.hh
BKE_volume_render.h
BKE_volume_to_mesh.hh
BKE_workspace.h
BKE_world.h
BKE_writeavi.h
nla_private.h
particle_private.h
tracking_private.h
intern/CCGSubSurf.h
intern/CCGSubSurf_inline.h
intern/CCGSubSurf_intern.h
intern/attribute_access_intern.hh
intern/data_transfer_intern.h
intern/lib_intern.h
intern/multires_inline.hh
intern/multires_reshape.hh
intern/multires_unsubdivide.hh
intern/ocean_intern.h
intern/pbvh_intern.hh
intern/pbvh_pixels_copy.hh
intern/pbvh_uv_islands.hh
intern/subdiv_converter.hh
intern/subdiv_inline.hh
)
set(LIB
PRIVATE bf::animrig
bf_asset_system
bf_blenfont
PRIVATE bf::blenlib
bf_blenloader
bf_blentranslation
bf_bmesh
bf_depsgraph
PRIVATE bf::dna
bf_draw
PRIVATE bf::extern::curve_fit_nd
bf_functions
bf_gpencil_modifiers_legacy
bf_gpu
bf_ikplugin
bf_imbuf
bf_intern_clog
bf_intern_ghost
PRIVATE bf::intern::guardedalloc
bf_intern_libmv # Uses stub when disabled.
bf_intern_mikktspace
bf_intern_opensubdiv # Uses stub when disabled.
bf_modifiers
bf_nodes
bf_rna
bf_shader_fx
bf_simulation
extern_fmtlib
PRIVATE bf::intern::atomic
# For `vfontdata_freetype.c`.
${FREETYPE_LIBRARIES} ${BROTLI_LIBRARIES}
)
if(WITH_BINRELOC)
list(APPEND INC_SYS
${BINRELOC_INCLUDE_DIRS}
)
list(APPEND LIB
extern_binreloc
)
add_definitions(-DWITH_BINRELOC)
endif()
if(WIN32)
list(APPEND INC
../../../intern/utfconv
)
endif()
if(WITH_AUDASPACE)
list(APPEND INC_SYS
${AUDASPACE_C_INCLUDE_DIRS}
)
if(WITH_SYSTEM_AUDASPACE)
list(APPEND LIB
${AUDASPACE_C_LIBRARIES}
${AUDASPACE_PY_LIBRARIES}
)
endif()
add_definitions(-DWITH_AUDASPACE)
endif()
if(WITH_BULLET)
list(APPEND INC_SYS
${BULLET_INCLUDE_DIRS}
)
list(APPEND INC
../../../intern/rigidbody
)
list(APPEND LIB
bf_intern_rigidbody
${BULLET_LIBRARIES}
)
add_definitions(-DWITH_BULLET)
endif()
if(WITH_IMAGE_OPENEXR)
add_definitions(-DWITH_OPENEXR)
endif()
if(WITH_IMAGE_OPENJPEG)
add_definitions(-DWITH_OPENJPEG)
endif()
if(WITH_IMAGE_CINEON)
add_definitions(-DWITH_CINEON)
endif()
if(WITH_IMAGE_WEBP)
add_definitions(-DWITH_WEBP)
endif()
if(WITH_CODEC_AVI)
list(APPEND INC
../io/avi
)
add_definitions(-DWITH_AVI)
endif()
if(WITH_CODEC_FFMPEG)
list(APPEND SRC
intern/writeffmpeg.c
BKE_writeffmpeg.h
)
list(APPEND INC
../../../intern/ffmpeg
)
list(APPEND INC_SYS
${FFMPEG_INCLUDE_DIRS}
)
list(APPEND LIB
${FFMPEG_LIBRARIES}
)
add_definitions(-DWITH_FFMPEG)
endif()
if(WITH_PYTHON)
list(APPEND INC
../python
)
list(APPEND LIB
bf_python
bf_python_bmesh
)
add_definitions(-DWITH_PYTHON)
if(WITH_PYTHON_MODULE)
add_definitions(-DWITH_PYTHON_MODULE)
endif()
if(WITH_PYTHON_SAFETY)
add_definitions(-DWITH_PYTHON_SAFETY)
endif()
if(WITH_PYTHON_SECURITY)
add_definitions(-DWITH_PYTHON_SECURITY)
endif()
if(PYTHON_EXECUTABLE)
get_filename_component(_python_exe_name ${PYTHON_EXECUTABLE} NAME)
add_definitions(-DPYTHON_EXECUTABLE_NAME=${_python_exe_name})
unset(_python_exe_name)
endif()
endif()
if(WITH_MOD_FLUID)
list(APPEND LIB
bf_intern_mantaflow
)
add_definitions(-DWITH_FLUID)
endif()
if(WITH_MOD_OCEANSIM)
add_definitions(-DWITH_OCEANSIM)
endif()
if(WITH_JACK)
add_definitions(-DWITH_JACK)
endif()
if(WITH_LZO)
if(WITH_SYSTEM_LZO)
list(APPEND INC_SYS
${LZO_INCLUDE_DIR}
)
list(APPEND LIB
${LZO_LIBRARIES}
)
add_definitions(-DWITH_SYSTEM_LZO)
else()
list(APPEND INC_SYS
../../../extern/lzo/minilzo
)
list(APPEND LIB
extern_minilzo
)
endif()
add_definitions(-DWITH_LZO)
endif()
if(WITH_LZMA)
list(APPEND INC_SYS
../../../extern/lzma
)
list(APPEND LIB
extern_lzma
)
add_definitions(-DWITH_LZMA)
endif()
if(WITH_LIBMV)
add_definitions(-DWITH_LIBMV)
endif()
if(WITH_FFTW3)
list(APPEND INC_SYS
${FFTW3_INCLUDE_DIRS}
)
list(APPEND LIB
${FFTW3_LIBRARIES}
)
add_definitions(-DFFTW3=1)
endif()
if(WITH_FREESTYLE)
add_definitions(-DWITH_FREESTYLE)
endif()
if(WITH_ALEMBIC)
list(APPEND INC
../io/alembic
)
add_definitions(-DWITH_ALEMBIC)
endif()
if(WITH_USD)
list(APPEND INC
../io/usd
)
add_definitions(-DWITH_USD)
endif()
if(WITH_OPENSUBDIV)
list(APPEND INC_SYS
${OPENSUBDIV_INCLUDE_DIRS}
)
list(APPEND LIB
${OPENSUBDIV_LIBRARIES}
)
add_definitions(-DWITH_OPENSUBDIV)
endif()
if(WITH_OPENVDB)
list(APPEND INC
../../../intern/openvdb
)
list(APPEND INC_SYS
${OPENVDB_INCLUDE_DIRS}
)
list(APPEND LIB
bf_intern_openvdb
${OPENVDB_LIBRARIES}
)
add_definitions(-DWITH_OPENVDB ${OPENVDB_DEFINITIONS})
endif()
if(WITH_QUADRIFLOW)
list(APPEND INC
../../../intern/quadriflow
)
list(APPEND LIB
bf_intern_quadriflow
)
add_definitions(-DWITH_QUADRIFLOW)
endif()
if(WITH_XR_OPENXR)
add_definitions(-DWITH_XR_OPENXR)
endif()
if(WITH_TBB)
add_definitions(-DWITH_TBB)
list(APPEND INC_SYS
${TBB_INCLUDE_DIRS}
)
list(APPEND LIB
${TBB_LIBRARIES}
)
endif()
if(WITH_GMP)
add_definitions(-DWITH_GMP)
list(APPEND INC_SYS
${GMP_INCLUDE_DIRS}
)
endif()
# # Warnings as errors, this is too strict!
# if(MSVC)
# string(APPEND CMAKE_C_FLAGS " /WX")
# endif()
blender_add_lib(bf_blenkernel "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
# RNA_prototypes.h
add_dependencies(bf_blenkernel bf_rna)
if(WITH_GTESTS)
set(TEST_SRC
intern/action_test.cc
intern/armature_test.cc
intern/asset_metadata_test.cc
intern/bpath_test.cc
intern/cryptomatte_test.cc
intern/curves_geometry_test.cc
intern/fcurve_test.cc
intern/grease_pencil_test.cc
intern/idprop_serialize_test.cc
intern/image_partial_update_test.cc
intern/image_test.cc
intern/lattice_deform_test.cc
intern/layer_test.cc
intern/lib_id_remapper_test.cc
intern/lib_id_test.cc
intern/lib_remap_test.cc
intern/nla_test.cc
intern/tracking_test.cc
)
set(TEST_INC
../editors/include
)
include(GTestTesting)
blender_add_test_lib(bf_blenkernel_tests "${TEST_SRC}" "${INC};${TEST_INC}" "${INC_SYS}" "${LIB}")
# RNA_prototypes.h
add_dependencies(bf_blenkernel_tests bf_rna)
endif()