CMake: store icon names
authorCampbell Barton <ideasman42@gmail.com>
Wed, 24 Jan 2018 00:29:29 +0000 (11:29 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 24 Jan 2018 00:32:58 +0000 (11:32 +1100)
Without this, adding/removing icons wouldn't force cmake to re-run
making builds fail.

This is the same issue with globbing source code.

build_files/cmake/macros.cmake
release/datafiles/prvicons.png
source/blender/editors/datafiles/CMakeLists.txt

index f8350b9ab7f0159757ef76b5372db929bb538782..406f50eb4f40adf37d7397c7ccfa7ba5e937fa31 100644 (file)
@@ -1372,7 +1372,7 @@ endfunction()
 
 # macro for converting pixmap directory to a png and then a c file
 function(data_to_c_simple_icons
-       path_from
+       path_from icon_prefix icon_names
        list_to_add
        )
 
@@ -1390,8 +1390,11 @@ function(data_to_c_simple_icons
 
        get_filename_component(_file_to_path ${_file_to} PATH)
 
-       # ideally we wouldn't glob, but storing all names for all pixmaps is a bit heavy
-       file(GLOB _icon_files "${path_from}/*.dat")
+       # Construct a list of absolute paths from input
+       set(_icon_files)
+       foreach(_var ${icon_names})
+               list(APPEND _icon_files "${_path_from_abs}/${icon_prefix}${_var}.dat")
+       endforeach()
 
        add_custom_command(
                OUTPUT  ${_file_from} ${_file_to}
index ccd47438da64d3a8d2d9b7caef98ddd6f1d5ee8a..d86d54f4599b64f11209a92e64f2638f9efc1dc6 100644 (file)
Binary files a/release/datafiles/prvicons.png and b/release/datafiles/prvicons.png differ
index 2a84ca7f2973aa59c3bac0602f599469fbbdb216..3f6de14180a7ce7c21ce89f2199b481eee85cbae 100644 (file)
@@ -31,6 +31,495 @@ set(SRC
 
 )
 
+# Order matches "UI_icons.h", final name will be formatted: "icons{size}_{name}.dat"
+set(ICON_NAMES
+       question
+       error
+       cancel
+       tria_right
+       tria_down
+       tria_left
+       tria_up
+       arrow_leftright
+       plus
+       disclosure_tri_down
+       disclosure_tri_right
+       radiobut_off
+       radiobut_on
+       menu_panel
+       blender
+       grip
+       dot
+       collapsemenu
+       x
+       go_left
+       plug
+       ui
+       node
+       node_sel
+       fullscreen
+       splitscreen
+       rightarrow_thin
+       bordermove
+       viewzoom
+       zoomin
+       zoomout
+       panel_close
+       copy_id
+       eyedropper
+       link_area
+       auto
+       checkbox_dehlt
+       checkbox_hlt
+       unlocked
+       locked
+       unpinned
+       pinned
+       screen_back
+       rightarrow
+       downarrow_hlt
+       dotsup
+       dotsdown
+       link
+       inlink
+       plugin
+       help
+       ghost_enabled
+       color
+       linked
+       unlinked
+       hand
+       zoom_all
+       zoom_selected
+       zoom_previous
+       zoom_in
+       zoom_out
+       render_region
+       border_rect
+       border_lasso
+       freeze
+       stylus_pressure
+       ghost_disabled
+       new
+       file_tick
+       quit
+       url
+       recover_last
+       fullscreen_enter
+       fullscreen_exit
+       lamp
+       material
+       texture
+       anim
+       world
+       scene
+       edit
+       game
+       radio
+       script
+       particles
+       physics
+       speaker
+       texture_shaded
+       view3d
+       ipo
+       oops
+       buts
+       filesel
+       image_col
+       info
+       sequence
+       text
+       imasel
+       sound
+       action
+       nla
+       scriptwin
+       time
+       nodetree
+       logic
+       console
+       preferences
+       clip
+       asset_manager
+       object_datamode
+       editmode_hlt
+       facesel_hlt
+       vpaint_hlt
+       tpaint_hlt
+       wpaint_hlt
+       sculptmode_hlt
+       pose_hlt
+       particlemode
+       lightpaint
+       scene_data
+       renderlayers
+       world_data
+       object_data
+       mesh_data
+       curve_data
+       meta_data
+       lattice_data
+       lamp_data
+       material_data
+       texture_data
+       anim_data
+       camera_data
+       particle_data
+       library_data_direct
+       group
+       armature_data
+       pose_data
+       bone_data
+       constraint
+       shapekey_data
+       constraint_bone
+       camera_stereo
+       package
+       uglypackage
+       brush_data
+       image_data
+       file
+       fcurve
+       font_data
+       render_result
+       surface_data
+       empty_data
+       settings
+       render_animation
+       render_still
+       library_data_broken
+       boids
+       strands
+       library_data_indirect
+       greasepencil
+       line_data
+       group_bone
+       group_vertex
+       group_vcol
+       group_uvs
+       rna
+       rna_add
+       outliner_ob_empty
+       outliner_ob_mesh
+       outliner_ob_curve
+       outliner_ob_lattice
+       outliner_ob_meta
+       outliner_ob_lamp
+       outliner_ob_camera
+       outliner_ob_armature
+       outliner_ob_font
+       outliner_ob_surface
+       outliner_ob_speaker
+       outliner_ob_force_field
+       outliner_ob_group_instance
+       restrict_color_off
+       restrict_color_on
+       restrict_view_off
+       restrict_view_on
+       restrict_select_off
+       restrict_select_on
+       restrict_render_off
+       restrict_render_on
+       outliner_data_empty
+       outliner_data_mesh
+       outliner_data_curve
+       outliner_data_lattice
+       outliner_data_meta
+       outliner_data_lamp
+       outliner_data_camera
+       outliner_data_armature
+       outliner_data_font
+       outliner_data_surface
+       outliner_data_speaker
+       outliner_data_pose
+       mesh_plane
+       mesh_cube
+       mesh_circle
+       mesh_uvsphere
+       mesh_icosphere
+       mesh_grid
+       mesh_monkey
+       mesh_cylinder
+       mesh_torus
+       mesh_cone
+       mesh_capsule
+       lamp_point
+       lamp_sun
+       lamp_spot
+       lamp_hemi
+       lamp_area
+       meta_empty
+       meta_plane
+       meta_cube
+       meta_ball
+       meta_ellipsoid
+       meta_capsule
+       surface_ncurve
+       surface_ncircle
+       surface_nsurface
+       surface_ncylinder
+       surface_nsphere
+       surface_ntorus
+       curve_bezcurve
+       curve_bezcircle
+       curve_ncurve
+       curve_ncircle
+       curve_path
+       color_red
+       color_green
+       color_blue
+       tria_right_bar
+       tria_down_bar
+       tria_left_bar
+       tria_up_bar
+       force_force
+       force_wind
+       force_vortex
+       force_magnetic
+       force_harmonic
+       force_charge
+       force_lennardjones
+       force_texture
+       force_curve
+       force_boid
+       force_turbulence
+       force_drag
+       force_smokeflow
+       node_insert_on
+       node_insert_off
+       modifier
+       mod_wave
+       mod_build
+       mod_decim
+       mod_mirror
+       mod_soft
+       mod_subsurf
+       hook
+       mod_physics
+       mod_particles
+       mod_boolean
+       mod_edgesplit
+       mod_array
+       mod_uvproject
+       mod_displace
+       mod_curve
+       mod_lattice
+       constraint_data
+       mod_armature
+       mod_shrinkwrap
+       mod_cast
+       mod_meshdeform
+       mod_bevel
+       mod_smooth
+       mod_simpledeform
+       mod_mask
+       mod_cloth
+       mod_explode
+       mod_fluidsim
+       mod_multires
+       mod_smoke
+       mod_solidify
+       mod_screw
+       mod_vertex_weight
+       mod_dynamicpaint
+       mod_remesh
+       mod_ocean
+       mod_warp
+       mod_skin
+       mod_triangulate
+       mod_wireframe
+       mod_data_transfer
+       mod_normaledit
+       rec
+       play
+       ff
+       rew
+       pause
+       prev_keyframe
+       next_keyframe
+       play_audio
+       play_reverse
+       preview_range
+       action_tweak
+       pmarker_act
+       pmarker_sel
+       pmarker
+       marker_hlt
+       marker
+       space2
+       space3
+       keyingset
+       key_dehlt
+       key_hlt
+       mute_ipo_off
+       mute_ipo_on
+       visible_ipo_off
+       visible_ipo_on
+       driver
+       solo_off
+       solo_on
+       frame_prev
+       frame_next
+       nla_pushdown
+       ipo_constant
+       ipo_linear
+       ipo_bezier
+       ipo_sine
+       ipo_quad
+       ipo_cubic
+       ipo_quart
+       ipo_quint
+       ipo_expo
+       ipo_circ
+       ipo_bounce
+       ipo_elastic
+       ipo_back
+       ipo_ease_in
+       ipo_ease_out
+       ipo_ease_in_out
+       normalize_fcurves
+       vertexsel
+       edgesel
+       facesel
+       loopsel
+       rotate
+       cursor
+       rotatecollection
+       rotatecenter
+       rotactive
+       align
+       smoothcurve
+       spherecurve
+       rootcurve
+       sharpcurve
+       lincurve
+       nocurve
+       rndcurve
+       prop_off
+       prop_on
+       prop_con
+       particle_point
+       particle_tip
+       particle_path
+       man_trans
+       man_rot
+       man_scale
+       manipul
+       snap_off
+       snap_on
+       snap_normal
+       snap_grid
+       snap_vertex
+       snap_edge
+       snap_face
+       snap_volume
+       snap_increment
+       sticky_uvs_loc
+       sticky_uvs_disable
+       sticky_uvs_vert
+       clipuv_dehlt
+       clipuv_hlt
+       snap_peel_object
+       grid
+       pastedown
+       copydown
+       pasteflipup
+       pasteflipdown
+       snap_surface
+       automerge_on
+       automerge_off
+       retopo
+       uv_vertexsel
+       uv_edgesel
+       uv_facesel
+       uv_islandsel
+       uv_sync_select
+       bbox
+       wire
+       solid
+       smooth
+       potato
+       ortho
+       lockview_off
+       lockview_on
+       axis_side
+       axis_front
+       axis_top
+       ndof_dom
+       ndof_turn
+       ndof_fly
+       ndof_trans
+       layer_used
+       layer_active
+       sortalpha
+       sortbyext
+       sorttime
+       sortsize
+       longdisplay
+       shortdisplay
+       ghost
+       imgdisplay
+       save_as
+       save_copy
+       bookmarks
+       fontpreview
+       filter
+       newfolder
+       open_recent
+       file_parent
+       file_refresh
+       file_folder
+       file_blend
+       file_image
+       file_movie
+       file_script
+       file_sound
+       file_font
+       file_text
+       recover_auto
+       save_prefs
+       link_blend
+       append_blend
+       import
+       export
+       external_data
+       load_factory
+       loop_back
+       loop_forwards
+       back
+       forward
+       file_hidden
+       file_backup
+       disk_drive
+       matplane
+       matsphere
+       matcube
+       monkey
+       hair
+       aliased
+       antialiased
+       mat_sphere_sky
+       wordwrap_off
+       wordwrap_on
+       syntax_off
+       syntax_on
+       linenumbers_off
+       linenumbers_on
+       scriptplugins
+       seq_sequencer
+       seq_preview
+       seq_luma_waveform
+       seq_chroma_scope
+       seq_histogram
+       seq_splitview
+       image_rgb
+       image_rgb_alpha
+       image_alpha
+       image_zdepth
+       imagefile
+)
+
 data_to_c_simple(../../../../release/datafiles/bfont.pfb SRC)
 data_to_c_simple(../../../../release/datafiles/bfont.ttf SRC)
 data_to_c_simple(../../../../release/datafiles/bmonofont.ttf SRC)
@@ -53,12 +542,12 @@ if(WITH_BLENDER)
                           #../../../../release/datafiles/blender_icons16.png
                           #90 SRC)
 
-               data_to_c_simple_icons(../../../../release/datafiles/blender_icons16 SRC)
+               data_to_c_simple_icons(../../../../release/datafiles/blender_icons16 "icon16_" "${ICON_NAMES}" SRC)
                #data_to_c_simple(../../../../release/datafiles/blender_icons16.png SRC)
                #svg_to_png(../../../../release/datafiles/blender_icons.svg
                           #../../../../release/datafiles/blender_icons32.png
                           #180 SRC)
-               data_to_c_simple_icons(../../../../release/datafiles/blender_icons32 SRC)
+               data_to_c_simple_icons(../../../../release/datafiles/blender_icons32 "icon32_" "${ICON_NAMES}" SRC)
                #data_to_c_simple(../../../../release/datafiles/blender_icons32.png SRC)
                #svg_to_png(../../../../release/datafiles/prvicons.svg
                           #../../../../release/datafiles/prvicons.png
@@ -130,4 +619,6 @@ if(WITH_BLENDER)
        data_to_c_simple(../../../../release/datafiles/startup.blend SRC)
 endif()
 
+unset(ICON_NAMES)
+
 blender_add_lib(bf_editor_datafiles "${SRC}" "${INC}" "${INC_SYS}")