453 lines
9.5 KiB
CMake
453 lines
9.5 KiB
CMake
# Generate a static library target named "bitmaps"
|
|
# (with filename libbitmaps.a on Linux)
|
|
|
|
# Copy the *.xpm files to ${XPM_CPP_PATH}/*.cpp, on change only.
|
|
# Compile those *.cpp files and put them into the library, then done.
|
|
|
|
# bitmap file names should be all lowercase and basename thereof should also
|
|
# be a valid C++ identifier name. This means no leading number, or embedded - or +
|
|
|
|
set(BITMAP_SRCS
|
|
add_arc.xpm
|
|
add_bus2bus.xpm
|
|
add_bus.xpm
|
|
add_circle.xpm
|
|
add_component.xpm
|
|
add_corner.xpm
|
|
add_dashed_line.xpm
|
|
add_dimension.xpm
|
|
add_entry.xpm
|
|
add_glabel.xpm
|
|
add_hierarchical_label.xpm
|
|
add_hierar_pin.xpm
|
|
add_hierar_subsheet.xpm
|
|
add_junction.xpm
|
|
add_line2bus.xpm
|
|
add_line_label.xpm
|
|
add_line.xpm
|
|
add_mires.xpm
|
|
add_polygon.xpm
|
|
add_power.xpm
|
|
add_rectangle.xpm
|
|
add_text.xpm
|
|
add_tracks.xpm
|
|
add_zone_cutout.xpm
|
|
add_zone.xpm
|
|
anchor.xpm
|
|
annotate_down_right.xpm
|
|
annotate_right_down.xpm
|
|
annotate.xpm
|
|
apply.xpm
|
|
auto_associe.xpm
|
|
auto_delete_track.xpm
|
|
auto_track_width.xpm
|
|
axis3d_back.xpm
|
|
axis3d_bottom.xpm
|
|
axis3d_front.xpm
|
|
axis3d_left.xpm
|
|
axis3d_right.xpm
|
|
axis3d_top.xpm
|
|
axis3d.xpm
|
|
book.xpm
|
|
break_bus.xpm
|
|
break_line.xpm
|
|
browse_files.xpm
|
|
cancel_tool.xpm
|
|
cancel.xpm
|
|
create_cmp_file.xpm
|
|
checked_ok.xpm
|
|
component_select_unit.xpm
|
|
component_select_alternate_shape.xpm
|
|
config.xpm
|
|
copyblock.xpm
|
|
copycomponent.xmp
|
|
copy_button.xpm
|
|
copper_layers_setup.cpp
|
|
cursor_shape.xpm
|
|
cursor.xpm
|
|
cut_button.xpm
|
|
cvpcb.xpm
|
|
dashline.xpm
|
|
datasheet.xpm
|
|
delete_body.xpm
|
|
delete_arc.xpm
|
|
delete_association.xpm
|
|
delete_bus.xpm
|
|
delete_circle.xpm
|
|
delete_connection.xpm
|
|
delete_cotation.xpm
|
|
delete_field.xpm
|
|
delete_glabel.xpm
|
|
delete_line.xpm
|
|
delete_module.xpm
|
|
delete_net.xpm
|
|
delete_node.xpm
|
|
delete_pad.xpm
|
|
delete_pinsheet.xpm
|
|
delete_pin.xpm
|
|
delete_polygon.xpm
|
|
delete_rectangle.xpm
|
|
delete_segment.xpm
|
|
delete_sheet.xpm
|
|
delete_text.xpm
|
|
delete_track.xpm
|
|
delete.xpm
|
|
directory.xpm
|
|
display_options.xpm
|
|
down.xpm
|
|
drag_module.xpm
|
|
drag_outline_segment.xpm
|
|
drag_pad.xpm
|
|
drag_segment_withslope.xpm
|
|
drag_track_segment.xpm
|
|
drc_off.xpm
|
|
drc.xpm
|
|
edges_sketch.xpm
|
|
edit_comp_footprint.xpm
|
|
edit_component.xpm
|
|
edit_comp_ref.xpm
|
|
edit_comp_value.xpm
|
|
edit_module.xpm
|
|
editor.xpm
|
|
edit_part.xpm
|
|
edit_sheet.xpm
|
|
edit_text.xpm
|
|
edit.xpm
|
|
eeschema.xpm
|
|
enter_sheet.xpm
|
|
ercerr.xpm
|
|
ercgreen.xpm
|
|
ercwarn.xpm
|
|
erc.xpm
|
|
exit.xpm
|
|
export_footprint_names.xpm
|
|
export_module.xpm
|
|
export_options_pad.xpm
|
|
export.xpm
|
|
fabrication.xpm
|
|
file_footprint.xpm
|
|
fill_zone.xpm
|
|
find_xpm.xpm
|
|
flag.xpm
|
|
fonts.xpmr
|
|
footprint_text.xpm
|
|
gbr_select_mode0.xpm
|
|
gbr_select_mode1.xpm
|
|
gbr_select_mode2.xpm
|
|
gerber_file.xpm
|
|
gerber_recent_files.xpm
|
|
gerbview_drill_file.xpm
|
|
gerbview_clear_layers.xpm
|
|
gerber_open_dcode_file.xpm
|
|
general_deletions.xpm
|
|
general_ratsnet.xpm
|
|
glabel2label.xpm
|
|
glabel2text.xpm
|
|
gl_change.xpm
|
|
global_options_pad.xpm
|
|
green.xpm
|
|
grid_select.xpm
|
|
grid_select_axis.xpm
|
|
grid.xpm
|
|
hammer.xpm
|
|
help.xpm
|
|
hidden_pin.xpm
|
|
hierarchy_cursor.xpm
|
|
hierarchy_nav.xpm
|
|
hotkeys.xpm
|
|
icon_3d.xpm
|
|
icon_cvpcb_small.xpm
|
|
icon_cvpcb.xpm
|
|
icon_eeschema.xpm
|
|
icon_gerbview_small.xpm
|
|
icon_gerbview.xpm
|
|
icon_kicad.xpm
|
|
icon_modedit.xpm
|
|
icon_pcbnew.xpm
|
|
icon_txt.xpm
|
|
import3d.xpm
|
|
import_cmp_from_lib.xpm
|
|
import_footprint_names.xpm
|
|
import_hierarchical_label.xpm
|
|
import_module.xpm
|
|
import.xpm
|
|
info.xpm
|
|
insert_module_board.xpm
|
|
invert_module.xpm
|
|
invisible_text.xpm
|
|
jigsaw.xpm
|
|
kicad_icon_small.xpm
|
|
label2glabel.xpm
|
|
label2text.xpm
|
|
label.xpm
|
|
lang_catalan.xpm
|
|
lang_chinese.xpm
|
|
lang_cs.xpm
|
|
lang_default.xpm
|
|
lang_de.xpm
|
|
lang_en.xpm
|
|
lang_es.xpm
|
|
lang_fr.xpm
|
|
lang_fi.xpm
|
|
lang_gr.xpm
|
|
lang_hu.xpm
|
|
lang_it.xpm
|
|
lang_jp.xpm
|
|
lang_ko.xpm
|
|
lang_nl.xpm
|
|
lang_pl.xpm
|
|
lang_pt.xpm
|
|
lang_ru.xpm
|
|
lang_sl.xpm
|
|
language.xpm
|
|
layers_manager.xpm
|
|
leave_sheet.xpm
|
|
left.xpm
|
|
libedit_icon.xpm
|
|
libedit.xpm
|
|
libedprt.xpm
|
|
lib_next.xpm
|
|
lib_previous.xpm
|
|
library_browse.xpm
|
|
library_update.xpm
|
|
library.xpm
|
|
libsavem.xpm
|
|
libview.xpm
|
|
lines90.xpm
|
|
load_module_board.xpm
|
|
load_module_lib.xpm
|
|
local_ratsnet.xpm
|
|
locked.xpm
|
|
mirepcb.xpm
|
|
mirror_h.xpm
|
|
mirror_v.xpm
|
|
modedit.xpm
|
|
mode_module.xpm
|
|
mode_track.xpm
|
|
modratsnest.xpm
|
|
module_check.xpm
|
|
modul_edit.xpm
|
|
module_filtered_list.xpm
|
|
module_full_list.xpm
|
|
module_options.xpm
|
|
module_ratsnet.xpm
|
|
module.xpm
|
|
morgan1.xpm
|
|
morgan2.xpm
|
|
move_arc.xpm
|
|
move_circle.xpm
|
|
move_field.xpm
|
|
move_glabel.xpm
|
|
move_line.xpm
|
|
move_module.xpm
|
|
move_pad.xpm
|
|
move_pinsheet.xpm
|
|
move_pin.xpm
|
|
move_polygon.xpm
|
|
move_rectangle.xpm
|
|
move_sheet.xpm
|
|
move_text.xpm
|
|
move_track_segment.xpm
|
|
move_track.xpm
|
|
move.xpm
|
|
mw_add_gap.xpm
|
|
mw_add_line.xpm
|
|
mw_add_shape.xpm
|
|
mw_add_stub_arc.xpm
|
|
mw_add_stub.xpm
|
|
mw_toolbar.xpm
|
|
net_highlight.xpm
|
|
netlist.xpm
|
|
net_locked.xpm
|
|
net_unlocked.xpm
|
|
new_component.xpm
|
|
new_cvpcb.xpm
|
|
new_footprint.xpm
|
|
new_library.xpm
|
|
new_module.xpm
|
|
new_pcb.xpm
|
|
new_project.xpm
|
|
new_sch.xpm
|
|
new_txt.xpm
|
|
new.xpm
|
|
noconn.xpm
|
|
normal.xpm
|
|
online_help.xpm
|
|
open_library.xpm
|
|
open_project.xpm
|
|
open_document.xpm
|
|
options_all_tracks_and_vias.xpm
|
|
options_all_tracks.xpm
|
|
options_all_vias.xpm
|
|
options_arc.xpm
|
|
options_circle.xpm
|
|
options_module.xpm
|
|
options_new_pad.xpm
|
|
options_pad.xpm
|
|
options_pinsheet.xpm
|
|
options_pin.xpm
|
|
options_rectangle.xpm
|
|
options_segment.xpm
|
|
options_text.xpm
|
|
options_tracks.xpm
|
|
options_track.xpm
|
|
options_vias.xpm
|
|
opt_show_polygon.xpm
|
|
orient.xpm
|
|
ortho.xpm
|
|
pad_sketch.xpm
|
|
pad.xpm
|
|
pads_mask_layers.xpm
|
|
palette.xpm
|
|
part_properties.xpm
|
|
paste.xpm
|
|
pcbnew.xpm
|
|
pcboffset.xpm
|
|
pin2pin.xpm
|
|
pin_name_to.xpm
|
|
pin_number_to.xpm
|
|
pin_size_to.xpm
|
|
pinorient_right.xpm
|
|
pinorient_left.xpm
|
|
pinorient_up.xpm
|
|
pinorient_down.xpm
|
|
pinshape_normal.xpm
|
|
pinshape_invert.xpm
|
|
pinshape_clock_normal.xpm
|
|
pinshape_clock_invert.xpm
|
|
pinshape_active_low_input.xpm
|
|
pinshape_clock_active_low.xpm
|
|
pinshape_active_low_output.xpm
|
|
pinshape_clock_fall.xpm
|
|
pinshape_nonlogic.xpm
|
|
pintype_input.xpm
|
|
pintype_output.xpm
|
|
pintype_bidi.xpm
|
|
pintype_3states.xpm
|
|
pintype_passive.xpm
|
|
pintype_notspecif.xpm
|
|
pintype_powerinput.xpm
|
|
pintype_poweroutput.xpm
|
|
pintype_opencoll.xpm
|
|
pintype_openemit.xpm
|
|
pintype_noconnect.xpm
|
|
pin_to.xpm
|
|
pin.xpm
|
|
plot_hpg.xpm
|
|
plot_ps.xpm
|
|
plot_xpm.xpm
|
|
polar.xpm
|
|
post_compo.xpm
|
|
post_drill.xpm
|
|
post_module.xpm
|
|
preference.xpm
|
|
print_button.xpm
|
|
ratsnest.xpm
|
|
read_setup.xpm
|
|
redo.xpm
|
|
red.xpm
|
|
reload2.xpm
|
|
reload.xpm
|
|
reset_text.xpm
|
|
resize_sheet.xpm
|
|
right.xpm
|
|
rotate_field.xpm
|
|
rotate_glabel.xpm
|
|
rotate_module_neg.xpm
|
|
rotate_module_pos.xpm
|
|
rotate_pin.xpm
|
|
rotate_ccw.xpm
|
|
rotate_cw.xpm
|
|
rotate_neg_x.xpm
|
|
rotate_pos_x.xpm
|
|
rotate_neg_y.xpm
|
|
rotate_pos_y.xpm
|
|
rotate_neg_z.xpm
|
|
rotate_pos_z.xpm
|
|
save_as.xpm
|
|
save_library.xpm
|
|
save_netlist.xpm
|
|
save_project.xpm
|
|
save_setup.xpm
|
|
save.xpm
|
|
schematic.xpm
|
|
select_grid.xpm
|
|
select_layer_pair.xpm
|
|
select_w_layer.xpm
|
|
shape_3d.xpm
|
|
sheetset.xpm
|
|
showdcode.xpm
|
|
show_footprint.xpm
|
|
showmodedge.xpm
|
|
showtrack.xpm
|
|
show_zone.xpm
|
|
show_zone_disable.xpm
|
|
show_zone_outline_only.xpm
|
|
swap_layer.xpm
|
|
text_sketch.xpm
|
|
three_d.xpm
|
|
tool_ratsnet.xpm
|
|
tools.xpm
|
|
track_locked.xpm
|
|
track_sketch.xpm
|
|
track_unlocked.xpm
|
|
transistor.xpm
|
|
treensel.xpm
|
|
treesel.xpm
|
|
undelete.xpm
|
|
undo.xpm
|
|
unit_inch.xpm
|
|
unit_mm.xpm
|
|
unknown.xpm
|
|
unlocked.xpm
|
|
unzip.xpm
|
|
update_module_board.xpm
|
|
up.xpm
|
|
via_sketch.xpm
|
|
viewlibs_icon.xpm
|
|
web_support.xpm
|
|
width_net.xpm
|
|
width_segment.xpm
|
|
width_track_via.xpm
|
|
width_track.xpm
|
|
width_vias.xpm
|
|
window_close.xpm
|
|
zip_tool.xpm
|
|
zip.xpm
|
|
zoom.xpm
|
|
zoom_area.xpm
|
|
zoom_fit_in_page.xpm
|
|
zoom_center_on_screen.xpm
|
|
zoom_in.xpm
|
|
zoomoins3d.xpm
|
|
zoom_out.xpm
|
|
zoompage3d.xpm
|
|
zoomplus3d.xpm
|
|
zoom_redraw.xpm
|
|
zoomrefr3d.xpm
|
|
zoom_selection.xpm
|
|
)
|
|
|
|
|
|
# Get the path of the *.xpm files into "PATH"
|
|
set(PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
|
#message("PATH = ${PATH}")
|
|
|
|
# The name of the directory to put the copied and renamed *.xpm files into.
|
|
# As files are copied they are renamed to *.cpp.
|
|
set(XPM_CPP_PATH "${CMAKE_BINARY_DIR}/bitmaps/auto_renamed_to_cpp"
|
|
CACHE PATH "path to store renamed .xpm files for compilation")
|
|
|
|
foreach(LOOP_VAR ${BITMAP_SRCS})
|
|
get_filename_component(BASENAME ${LOOP_VAR} NAME_WE)
|
|
set(CPP_BITMAP "${XPM_CPP_PATH}/${BASENAME}.cpp")
|
|
add_custom_command(
|
|
OUTPUT ${CPP_BITMAP}
|
|
COMMAND "${CMAKE_COMMAND}" -E copy "${PATH}/${BASENAME}.xpm" "${CPP_BITMAP}"
|
|
DEPENDS ${BASENAME}.xpm)
|
|
list(APPEND CPP_BITMAPS ${CPP_BITMAP})
|
|
set_source_files_properties(${CPP_BITMAP} PROPERTIES COMPILE_FLAGS -DXPMMAIN)
|
|
endforeach(LOOP_VAR)
|
|
|
|
add_library(bitmaps ${CPP_BITMAPS})
|