Files
test/source/blender/editors/datafiles/CMakeLists.txt
Cartesian Caramel 8f41d46d74 Constraint: Geometry Attribute
Add a new constraint called "Geometry Attribute", which directly
samples vector, quaternion, or 4x4 matrix attributes from geometry and
applies these to an object's or bone's transform.

This can be used to transfer data generated by geometry nodes to the
object or bone level. By default the constraint will sample a vector
on the vertex domain. The default attribute is `position` for
simplicity, but the attribute value does not have to have anything to
do with neither the transform of the geometry object nor the geometry
itself.

Pull Request: https://projects.blender.org/blender/blender/pulls/136477
2025-10-07 15:14:22 +02:00

1073 lines
22 KiB
CMake

# SPDX-FileCopyrightText: 2023 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
set(INC
PUBLIC ${CMAKE_CURRENT_BINARY_DIR}
../include
)
set(INC_SYS
)
# Part of the `blender` binary (sources for data-files are appended).
set(SRC
)
set(LIB
PRIVATE bf::blenlib
)
# This section is maintained by the updating script, keep BEGIN/END comments.
# See: `make icons_geom` and the script `./release/datafiles/blender_icons_geom_update.py`.
set_property(GLOBAL PROPERTY ICON_GEOM_NAMES
# BEGIN ICON_GEOM_NAMES
brush.generic
brush.gpencil_draw.erase
brush.gpencil_draw.fill
brush.paint_texture.clone
brush.paint_texture.soften
brush.paint_texture.smear
brush.paint_texture.fill
brush.paint_texture.mask
brush.paint_vertex.average
brush.paint_vertex.blur
brush.paint_vertex.replace
brush.paint_vertex.smear
brush.paint_weight.average
brush.paint_weight.blur
brush.paint_weight.smear
brush.particle.add
brush.particle.comb
brush.particle.cut
brush.particle.length
brush.particle.puff
brush.particle.smooth
brush.particle.weight
brush.sculpt.displacement_eraser
brush.sculpt.displacement_smear
brush.sculpt.draw_face_sets
brush.sculpt.mask
brush.sculpt.paint
brush.sculpt.simplify
brush.uv_sculpt.grab
brush.uv_sculpt.pinch
brush.uv_sculpt.relax
none
ops.armature.bone.roll
ops.armature.extrude_cursor
ops.armature.extrude_move
ops.curve.draw
ops.curve.extrude_cursor
ops.curve.extrude_move
ops.curve.pen
ops.curve.radius
ops.curve.vertex_random
ops.curves.sculpt_add
ops.curves.sculpt_delete
ops.curves.sculpt_density
ops.generic.cursor
ops.generic.select
ops.generic.select_box
ops.generic.select_circle
ops.generic.select_lasso
ops.generic.select_paint
ops.gpencil.draw
ops.gpencil.draw.eraser
ops.gpencil.draw.line
ops.gpencil.draw.poly
ops.gpencil.edit_bend
ops.gpencil.edit_mirror
ops.gpencil.edit_shear
ops.gpencil.edit_to_sphere
ops.gpencil.extrude_move
ops.gpencil.primitive_arc
ops.gpencil.primitive_box
ops.gpencil.primitive_circle
ops.gpencil.primitive_curve
ops.gpencil.primitive_line
ops.gpencil.primitive_polyline
ops.gpencil.radius
ops.gpencil.sculpt_average
ops.gpencil.sculpt_blur
ops.gpencil.sculpt_clone
ops.gpencil.sculpt_smear
ops.gpencil.stroke_trim
ops.gpencil.transform_fill
ops.mesh.bevel
ops.mesh.bisect
ops.mesh.dupli_extrude_cursor
ops.mesh.extrude_faces_move
ops.mesh.extrude_manifold
ops.mesh.extrude_region_move
ops.mesh.extrude_region_shrink_fatten
ops.mesh.inset
ops.mesh.knife_tool
ops.mesh.loopcut_slide
ops.mesh.offset_edge_loops_slide
ops.mesh.polybuild_hover
ops.mesh.primitive_cone_add_gizmo
ops.mesh.primitive_cube_add_gizmo
ops.mesh.primitive_cylinder_add_gizmo
ops.mesh.primitive_grid_add_gizmo
ops.mesh.primitive_sphere_add_gizmo
ops.mesh.primitive_torus_add_gizmo
ops.mesh.rip
ops.mesh.rip_edge
ops.mesh.spin
ops.mesh.vertices_smooth
ops.node.add_reroute
ops.node.links_cut
ops.node.links_mute
ops.paint.eyedropper_add
ops.paint.vertex_color_fill
ops.paint.weight_fill
ops.paint.weight_gradient
ops.paint.weight_sample
ops.paint.weight_sample_group
ops.pose.breakdowner
ops.pose.push
ops.pose.relax
ops.sculpt.border_face_set
ops.sculpt.border_hide
ops.sculpt.border_mask
ops.sculpt.box_trim
ops.sculpt.cloth_filter
ops.sculpt.color_filter
ops.sculpt.face_set_edit
ops.sculpt.lasso_face_set
ops.sculpt.lasso_hide
ops.sculpt.lasso_mask
ops.sculpt.lasso_trim
ops.sculpt.line_face_set
ops.sculpt.line_hide
ops.sculpt.line_mask
ops.sculpt.line_project
ops.sculpt.line_trim
ops.sculpt.mask_by_color
ops.sculpt.mesh_filter
ops.sculpt.polyline_face_set
ops.sculpt.polyline_hide
ops.sculpt.polyline_mask
ops.sculpt.polyline_trim
ops.sequencer.blade
ops.sequencer.retime
ops.sequencer.slip
ops.transform.bone_envelope
ops.transform.bone_size
ops.transform.edge_slide
ops.transform.push_pull
ops.transform.resize.cage
ops.transform.resize
ops.transform.rotate
ops.transform.shear
ops.transform.shrink_fatten
ops.transform.tilt
ops.transform.tosphere
ops.transform.transform
ops.transform.translate
ops.transform.vert_slide
ops.transform.vertex_random
ops.view3d.ruler
# END ICON_GEOM_NAMES
)
data_to_c_simple(../../../../release/datafiles/bfont.pfb SRC)
if(WITH_BLENDER)
# Blender only (not Cycles stand-alone).
if(NOT WITH_HEADLESS)
# Blender UI only.
set(SVG_FILENAMES_NOEXT
action
action_slot
action_tweak
add
aliased
align_bottom
align_center
align_flush
align_justify
align_left
align_middle
align_right
align_top
anchor_bottom
anchor_center
anchor_left
anchor_right
anchor_top
anim
anim_data
antialiased
append_blend
area_dock
area_join
area_join_down
area_join_left
area_join_up
area_swap
armature_data
arrow_leftright
asset_manager
auto
automerge_off
automerge_on
axis_front
axis_side
axis_top
back
blank1
blender
blender_logo_large
boids
bold
bone_data
bookmarks
bordermove
brushes_all
brush_data
camera_data
camera_stereo
cancel
cancel_large
center_only
char_notdef
char_replacement
checkbox_dehlt
checkbox_hlt
checkmark
clipuv_dehlt
clipuv_hlt
collapsemenu
collection_color_01
collection_color_02
collection_color_03
collection_color_04
collection_color_05
collection_color_06
collection_color_07
collection_color_08
collection_new
color
color_blue
color_green
color_red
community
cone
console
constraint
constraint_bone
con_action
con_armature
con_camerasolver
con_childof
con_clampto
con_distlimit
con_floor
con_followpath
con_followtrack
con_geometryattribute
con_kinematic
con_locktrack
con_loclike
con_loclimit
con_objectsolver
con_pivot
con_rotlike
con_rotlimit
con_samevol
con_shrinkwrap
con_sizelike
con_sizelimit
con_splineik
con_stretchto
con_trackto
con_transform
con_transform_cache
con_translike
copydown
copy_id
cube
current_file
cursor
curves
curves_data
curve_bezcircle
curve_bezcurve
curve_data
curve_ncircle
curve_ncurve
curve_path
decorate
decorate_animate
decorate_driver
decorate_keyframe
decorate_library_override
decorate_linked
decorate_locked
decorate_override
decorate_unlocked
desktop
disc
disc_large
disclosure_tri_down
disclosure_tri_right
disk_drive
disk_drive_large
documents
dot
downarrow_hlt
driver
driver_distance
driver_rotational_difference
driver_transform
duplicate
edgesel
edge_bevel
edge_crease
edge_seam
edge_sharp
editmode_hlt
empty_arrows
empty_axis
empty_data
empty_single_arrow
error
experimental
export
external_drive
external_drive_large
eyedropper
facesel
face_corner
face_maps
fake_user_off
fake_user_on
fcurve
fcurve_snapshot
ff
file
file_large
filebrowser
file_3d
file_alias
file_archive
file_backup
file_blank
file_blend
file_cache
file_folder
file_folder_large
file_font
file_hidden
file_image
file_movie
file_new
file_parent
file_parent_large
file_refresh
file_script
file_sound
file_text
file_tick
file_volume
filter
fixed_size
folder_redirect
fontpreview
font_data
force_boid
force_charge
force_curve
force_drag
force_fluidflow
force_force
force_harmonic
force_lennardjones
force_magnetic
force_texture
force_turbulence
force_vortex
force_wind
forward
frame_next
frame_prev
freeze
fullscreen_enter
fullscreen_exit
fund
geometry_nodes
geometry_set
gesture_pan
gesture_rotate
gesture_zoom
ghost_disabled
ghost_enabled
gizmo
gp_caps_flat
gp_caps_round
gp_multiframe_editing
gp_only_selected
gp_select_between_strokes
gp_select_points
gp_select_strokes
graph
greasepencil
greasepencil_layer_group
grid
grip
grip_v
group
group_bone
group_uvs
group_vcol
group_vertex
hand
handle_aligned
handle_auto
handle_autoclamped
handle_free
handle_vector
heart
help
hide_off
hide_on
holdout_off
holdout_on
home
hook
image
image_alpha
image_background
image_data
image_plane
image_reference
image_rgb
image_rgb_alpha
image_zdepth
imgdisplay
import
indirect_only_off
indirect_only_on
info
info_large
internet
internet_offline
inversesquarecurve
ipo_back
ipo_bezier
ipo_bounce
ipo_circ
ipo_constant
ipo_cubic
ipo_ease_in
ipo_ease_in_out
ipo_ease_out
ipo_elastic
ipo_expo
ipo_linear
ipo_quad
ipo_quart
ipo_quint
ipo_sine
italic
keyframe
keyframe_hlt
keyingset
key_backspace
key_backspace_filled
key_command
key_command_filled
key_control
key_control_filled
key_dehlt
key_empty1
key_empty1_filled
key_empty2
key_empty2_filled
key_empty3
key_empty3_filled
key_hlt
key_menu
key_menu_filled
key_option
key_option_filled
key_return
key_return_filled
key_ring
key_ring_filled
key_shift
key_shift_filled
key_tab
key_tab_filled
key_windows
key_windows_filled
lattice_data
layer_active
layer_used
library_data_broken
library_data_direct
library_data_override
light
lightprobe_plane
lightprobe_sphere
lightprobe_volume
light_area
light_data
light_hemi
light_point
light_spot
light_sun
lincurve
linenumbers_off
linenumbers_on
line_data
linked
link_blend
locked
lockview_off
lockview_on
longdisplay
loop_back
loop_forwards
marker
marker_hlt
matcloth
matcube
material
material_data
matfluid
matplane
matshaderball
matsphere
mat_sphere_sky
memory
menu_panel
mesh_capsule
mesh_circle
mesh_cone
mesh_cube
mesh_cylinder
mesh_data
mesh_grid
mesh_icosphere
mesh_monkey
mesh_plane
mesh_torus
mesh_uvsphere
meta_ball
meta_capsule
meta_cube
meta_data
meta_ellipsoid
meta_plane
modifier
modifier_data
modifier_off
modifier_on
mod_armature
mod_array
mod_bevel
mod_boolean
mod_brightness_contrast
mod_build
mod_cast
mod_cloth
mod_color_balance
mod_curve
mod_curve_to_tube
mod_curves
mod_dash
mod_data_transfer
mod_decim
mod_displace
mod_dynamicpaint
mod_edgesplit
mod_envelope
mod_explode
mod_fluid
mod_fluidsim
mod_hue_correct
mod_hue_saturation
mod_instance
mod_lattice
mod_length
mod_lineart
mod_mask
mod_meshdeform
mod_mirror
mod_multires
mod_noise
mod_normaledit
mod_ocean
mod_offset
mod_opacity
mod_outline
mod_particles
mod_particle_instance
mod_physics
mod_remesh
mod_scatter_on_surface
mod_screw
mod_shrinkwrap
mod_simpledeform
mod_simplify
mod_skin
mod_smooth
mod_soft
mod_solidify
mod_subsurf
mod_thickness
mod_time
mod_tint
mod_tonemap
mod_triangulate
mod_uvproject
mod_vertex_weight
mod_warp
mod_wave
mod_white_balance
mod_wireframe
monkey
mouse_lmb
mouse_lmb_2x
mouse_lmb_drag
mouse_mmb
mouse_mmb_drag
mouse_mmb_scroll
mouse_move
mouse_rmb
mouse_rmb_drag
mute_ipo_off
mute_ipo_on
network_drive
network_drive_large
newfolder
next_keyframe
nla
nla_pushdown
nocurve
node
nodetree
node_compositing
node_corner
node_insert_off
node_insert_on
node_material
node_sel
node_side
node_texture
node_top
none
normalize_fcurves
normals_face
normals_vertex
normals_vertex_face
not_found
object_data
object_datamode
object_hidden
object_origin
onionskin_off
onionskin_on
options
orientation_cursor
orientation_gimbal
orientation_global
orientation_local
orientation_normal
orientation_parent
orientation_view
orphan_data
outliner
outliner_collection
outliner_data_armature
outliner_data_camera
outliner_data_curve
outliner_data_curves
outliner_data_empty
outliner_data_font
outliner_data_gp_layer
outliner_data_greasepencil
outliner_data_lattice
outliner_data_light
outliner_data_lightprobe
outliner_data_mesh
outliner_data_meta
outliner_data_pointcloud
outliner_data_speaker
outliner_data_surface
outliner_data_volume
outliner_ob_armature
outliner_ob_camera
outliner_ob_curve
outliner_ob_curves
outliner_ob_empty
outliner_ob_font
outliner_ob_force_field
outliner_ob_greasepencil
outliner_ob_group_instance
outliner_ob_image
outliner_ob_lattice
outliner_ob_light
outliner_ob_lightprobe
outliner_ob_mesh
outliner_ob_meta
outliner_ob_pointcloud
outliner_ob_speaker
outliner_ob_surface
outliner_ob_volume
output
overlay
package
panel_close
particlemode
particles
particle_data
particle_path
particle_point
particle_tip
pastedown
pasteflipdown
pasteflipup
pause
physics
pinned
pivot_active
pivot_boundbox
pivot_cursor
pivot_individual
pivot_median
play
play_reverse
play_sound
playhead_snap_off
playhead_snap_on
plugin
plus
pmarker
pmarker_act
pmarker_sel
pointcloud_data
pointcloud_point
pose_hlt
preferences
preset
preset_new
preview_loading
preview_range
prev_keyframe
properties
prop_con
prop_off
prop_on
prop_projected
question
question_large
quit
radiobut_off
radiobut_on
rec
record_off
record_on
recover_last
remove
renderlayers
render_animation
render_result
render_still
restrict_color_off
restrict_color_on
restrict_instanced_off
restrict_instanced_on
restrict_render_off
restrict_render_on
restrict_select_off
restrict_select_on
restrict_view_off
restrict_view_on
rew
rightarrow
rightarrow_thin
rigid_body
rigid_body_constraint
rna
rndcurve
rootcurve
scene
scene_data
screen_back
script
scriptplugins
sculptmode_hlt
select_difference
select_extend
select_intersect
select_set
select_subtract
sequence
seq_chroma_scope
seq_histogram
seq_luma_waveform
seq_preview
seq_sequencer
seq_splitview
seq_strip_duplicate
seq_strip_meta
seq_strip_modifier
settings
shaderfx
shading_bbox
shading_rendered
shading_solid
shading_texture
shading_wire
shapekey_data
sharpcurve
shortdisplay
small_caps
smoothcurve
snap_edge
snap_face
snap_face_center
snap_face_nearest
snap_grid
snap_increment
snap_midpoint
snap_normal
snap_off
snap_on
snap_peel_object
snap_perpendicular
snap_vertex
snap_volume
solo_off
solo_on
sortalpha
sortbyext
sortsize
sorttime
sort_asc
sort_desc
sound
speaker
sphere
spherecurve
split_horizontal
split_vertical
spreadsheet
statusbar
sticky_uvs_disable
sticky_uvs_loc
sticky_uvs_vert
strands
stroke
stylus_pressure
surface_data
surface_ncircle
surface_ncurve
surface_ncylinder
surface_nsphere
surface_nsurface
surface_ntorus
syntax_off
syntax_on
system
tag
temp
text
texture
texture_data
three_dots
time
tool_settings
topbar
tpaint_hlt
tracker
tracker_data
tracking
tracking_backwards
tracking_backwards_single
tracking_clear_backwards
tracking_clear_forwards
tracking_forwards
tracking_forwards_single
tracking_refine_backwards
tracking_refine_forwards
transform_origins
trash
tria_down
tria_down_bar
tria_left
tria_left_bar
tria_right
tria_right_bar
tria_up
tria_up_bar
uglypackage
underline
unlinked
unlocked
unpinned
url
user
uv
uv_data
uv_edgesel
uv_facesel
uv_islandsel
uv_sync_select
uv_vertexsel
vertexsel
vertex_crease
view3d
viewzoom
view_camera
view_camera_unselected
view_locked
view_ortho
view_pan
view_perspective
view_unlocked
view_zoom
vis_sel_00
vis_sel_01
vis_sel_10
vis_sel_11
volume_data
vpaint_hlt
warning_large
window
wordwrap_off
wordwrap_on
workspace
world
world_data
wpaint_hlt
x
xray
zoom_all
zoom_in
zoom_out
zoom_previous
zoom_selected
)
set(SVG_CURSORS_FILENAMES_NOEXT
cursor_blade
cursor_both_handles
cursor_crossc
cursor_crosshair
cursor_dot
cursor_e_arrow
cursor_eraser
cursor_ew_scroll
cursor_eyedropper
cursor_hand
cursor_hand_closed
cursor_hand_point
cursor_h_split
cursor_knife
cursor_left_handle
cursor_mute
cursor_n_arrow
cursor_nsew_scroll
cursor_ns_scroll
cursor_paint
cursor_pencil
cursor_pick_area
cursor_pointer
cursor_right_handle
cursor_s_arrow
cursor_slip
cursor_stop
cursor_swap_area
cursor_text_edit
cursor_v_split
cursor_vertex_loop
cursor_wait
cursor_w_arrow
cursor_x_move
cursor_y_move
cursor_zoom_in
cursor_zoom_out
)
set(SVG_CONTENTS_H)
set(SVG_CONTENTS_C)
foreach(svg ${SVG_FILENAMES_NOEXT})
data_to_c_simple(../../../../release/datafiles/icons_svg/${svg}.svg SRC)
string(TOUPPER ${svg} svg_name_upper)
list(APPEND SVG_CONTENTS_H
"extern const char datatoc_${svg}_svg[]\;\n"
)
list(APPEND SVG_CONTENTS_C
"case ICON_${svg_name_upper}: return datatoc_${svg}_svg\;\n"
)
endforeach()
unset(svg_name_upper)
list(JOIN SVG_CONTENTS_C "" SVG_CONTENTS_C)
list(JOIN SVG_CONTENTS_H "" SVG_CONTENTS_H)
configure_file(
"svg_icons.h.in"
"${CMAKE_CURRENT_BINARY_DIR}/svg_icons.h"
ESCAPE_QUOTES
@ONLY
)
configure_file(
"svg_icons.cc.in"
"${CMAKE_CURRENT_BINARY_DIR}/svg_icons.cc"
ESCAPE_QUOTES
@ONLY
)
list(APPEND SRC ${CMAKE_CURRENT_BINARY_DIR}/svg_icons.h)
list(APPEND SRC ${CMAKE_CURRENT_BINARY_DIR}/svg_icons.cc)
set(SVG_CURSORS_CONTENTS_H)
foreach(svg ${SVG_CURSORS_FILENAMES_NOEXT})
data_to_c_simple(../../../../release/datafiles/cursors/${svg}.svg SRC)
list(APPEND SVG_CURSORS_CONTENTS_H
"extern const char datatoc_${svg}_svg[]\;\n"
)
endforeach()
list(APPEND SRC ${CMAKE_CURRENT_BINARY_DIR}/svg_cursors.h)
list(JOIN SVG_CURSORS_CONTENTS_H "" SVG_CURSORS_CONTENTS_H)
configure_file(
"svg_cursors.h.in"
"${CMAKE_CURRENT_BINARY_DIR}/svg_cursors.h"
ESCAPE_QUOTES
@ONLY
)
unset(SVG_CURSORS_CONTENTS_H)
# Blend files.
data_to_c_simple(../../../../release/datafiles/preview.blend SRC)
data_to_c_simple(../../../../release/datafiles/preview_grease_pencil.blend SRC)
# Images.
data_to_c_simple(../../../../release/datafiles/splash.png SRC)
unset(SVG_CONTENTS_H)
unset(SVG_CONTENTS_C)
unset(SVG_FILENAMES_NOEXT)
endif()
data_to_c_simple(../../../../release/datafiles/startup.blend SRC)
endif()
unset(ICON_NAMES)
blender_add_lib(bf_editor_datafiles "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
add_library(bf::editor::datafiles ALIAS bf_editor_datafiles)