1PKG_CONFIG ?= pkg-config 2BUILDDIR = build 3PROGS = $(addprefix $(BUILDDIR)/horizon-,imp eda) 4 5all: $(PROGS) 6pymodule: $(BUILDDIR)/horizon.so 7 8.PHONY: all pymodule install install-man 9 10SRC_COMMON = \ 11 src/util/uuid.cpp \ 12 src/util/uuid_path.cpp\ 13 src/util/sqlite.cpp\ 14 src/util/str_util.cpp\ 15 src/pool/pool_manager.cpp \ 16 src/pool/unit.cpp \ 17 src/pool/symbol.cpp \ 18 src/pool/part.cpp\ 19 src/common/common.cpp \ 20 src/common/junction.cpp \ 21 src/common/junction_util.cpp \ 22 src/common/line.cpp \ 23 src/common/arc.cpp \ 24 src/common/layer_provider.cpp \ 25 src/pool/gate.cpp\ 26 src/block/net.cpp\ 27 src/block/bus.cpp\ 28 src/block/block.cpp\ 29 src/pool/entity.cpp\ 30 src/block/component.cpp\ 31 src/block/bom.cpp\ 32 src/block/bom_export_settings.cpp\ 33 src/schematic/schematic.cpp\ 34 src/schematic/sheet.cpp\ 35 src/common/text.cpp\ 36 src/schematic/schematic_junction.cpp\ 37 src/schematic/line_net.cpp\ 38 src/schematic/net_label.cpp\ 39 src/schematic/bus_label.cpp\ 40 src/schematic/bus_ripper.cpp\ 41 src/schematic/schematic_symbol.cpp\ 42 src/schematic/power_symbol.cpp\ 43 src/schematic/schematic_rules.cpp\ 44 src/schematic/rule_single_pin_net.cpp\ 45 src/common/pdf_export_settings.cpp\ 46 src/pool/padstack.cpp\ 47 src/common/polygon.cpp\ 48 src/common/hole.cpp\ 49 src/common/shape.cpp\ 50 src/common/patch_type_names.cpp\ 51 src/pool/package.cpp\ 52 src/package/pad.cpp\ 53 src/package/package_rules.cpp\ 54 src/package/rule_package_checks.cpp\ 55 src/package/rule_clearance_package.cpp\ 56 src/board/board.cpp\ 57 src/board/board_package.cpp\ 58 src/board/track.cpp\ 59 src/board/airwire.cpp\ 60 src/board/via.cpp\ 61 src/board/plane.cpp\ 62 src/board/board_rules.cpp\ 63 src/board/rule_hole_size.cpp\ 64 src/board/rule_clearance_silk_exp_copper.cpp\ 65 src/board/rule_track_width.cpp\ 66 src/board/rule_clearance_copper.cpp\ 67 src/board/rule_parameters.cpp\ 68 src/board/rule_via.cpp\ 69 src/board/rule_clearance_copper_other.cpp\ 70 src/board/rule_plane.cpp\ 71 src/board/rule_diffpair.cpp\ 72 src/board/rule_preflight_checks.cpp\ 73 src/board/rule_clearance_copper_keepout.cpp\ 74 src/board/rule_layer_pair.cpp\ 75 src/board/rule_clearance_same_net.cpp\ 76 3rd_party/delaunator/delaunator.cpp\ 77 src/board/airwires.cpp\ 78 src/board/fab_output_settings.cpp\ 79 src/board/board_hole.cpp\ 80 src/board/connection_line.cpp\ 81 src/board/step_export_settings.cpp\ 82 src/board/pnp_export_settings.cpp\ 83 src/board/pnp.cpp\ 84 src/board/board_decal.cpp\ 85 src/pool/pool.cpp \ 86 src/pool/ipool.cpp \ 87 src/pool/pool_info.cpp \ 88 src/util/placement.cpp\ 89 src/util/util.cpp\ 90 src/util/geom_util.cpp\ 91 src/util/csv.cpp\ 92 src/common/object_descr.cpp\ 93 src/block/net_class.cpp\ 94 src/project/project.cpp\ 95 src/util/version.cpp\ 96 src/rules/rules.cpp\ 97 src/rules/rule.cpp\ 98 src/rules/rule_descr.cpp\ 99 src/rules/rule_match.cpp\ 100 src/rules/rule_match_keepout.cpp\ 101 src/rules/rules_import_export.cpp\ 102 src/parameter/program.cpp\ 103 src/parameter/set.cpp\ 104 3rd_party/clipper/clipper.cpp\ 105 src/common/dimension.cpp\ 106 src/logger/logger.cpp\ 107 src/parameter/program_polygon.cpp\ 108 src/frame/frame.cpp\ 109 src/common/keepout.cpp\ 110 src/board/board_layers.cpp\ 111 src/pool/pool_parametric.cpp \ 112 src/board/included_board.cpp \ 113 src/board/board_panel.cpp \ 114 src/common/picture.cpp\ 115 src/util/picture_data.cpp\ 116 src/util/picture_load.cpp\ 117 src/pool/decal.cpp\ 118 src/symbol/symbol_rules.cpp\ 119 src/symbol/rule_symbol_checks.cpp\ 120 src/util/file_version.cpp\ 121 src/pool/project_pool.cpp\ 122 src/util/fs_util.cpp\ 123 src/common/grid_settings.cpp\ 124 125 126ifeq ($(OS),Windows_NT) 127 SRC_COMMON += src/util/uuid_win32.cpp 128endif 129SRC_COMMON_GEN += $(GENDIR)/resources.cpp 130SRC_COMMON_GEN += $(GENDIR)/version_gen.cpp 131SRC_COMMON_GEN += $(GENDIR)/help_texts.cpp 132 133SRC_POOL_UPDATE = \ 134 src/pool-update/pool-update.cpp\ 135 src/pool-update/pool-update_parametric.cpp\ 136 src/pool-update/pool-update_pool.cpp\ 137 src/pool-update/pool_updater.cpp\ 138 src/pool-update/pool_updater_frame.cpp\ 139 src/pool-update/pool_updater_decal.cpp\ 140 src/pool-update/pool_updater_unit.cpp\ 141 src/pool-update/pool_updater_entity.cpp\ 142 src/pool-update/pool_updater_padstack.cpp\ 143 src/pool-update/pool_updater_package.cpp\ 144 src/pool-update/pool_updater_part.cpp\ 145 src/pool-update/pool_updater_symbol.cpp\ 146 src/pool-update/graph.cpp\ 147 148SRC_CANVAS = \ 149 src/canvas/canvas.cpp \ 150 src/canvas/canvas_gl.cpp \ 151 src/canvas/grid.cpp \ 152 src/canvas/gl_util.cpp \ 153 src/canvas/pan.cpp \ 154 src/canvas/render.cpp \ 155 src/canvas/draw.cpp \ 156 src/canvas/text.cpp \ 157 src/canvas/hershey_fonts.cpp \ 158 src/canvas/drag_selection.cpp \ 159 src/canvas/selectables.cpp \ 160 src/canvas/selectables_renderer.cpp \ 161 src/canvas/hover_prelight.cpp\ 162 src/canvas/triangle_renderer.cpp\ 163 src/canvas/image.cpp\ 164 src/canvas/selection_filter.cpp\ 165 3rd_party/polypartition/polypartition.cpp\ 166 src/canvas/marker.cpp\ 167 src/canvas/annotation.cpp \ 168 src/canvas/fragment_cache.cpp \ 169 src/util/text_data.cpp \ 170 3rd_party/poly2tri/common/shapes.cpp\ 171 3rd_party/poly2tri/sweep/cdt.cpp\ 172 3rd_party/poly2tri/sweep/sweep.cpp\ 173 3rd_party/poly2tri/sweep/sweep_context.cpp\ 174 3rd_party/poly2tri/sweep/advancing_front.cpp\ 175 src/util/msd.cpp\ 176 src/util/msd_animator.cpp\ 177 src/canvas/appearance.cpp\ 178 src/canvas/bitmap_font_util.cpp\ 179 src/canvas/picture_renderer.cpp\ 180 src/util/polygon_arc_removal_proxy.cpp\ 181 src/util/warp_cursor.cpp\ 182 183SRC_IMP = \ 184 src/imp/imp_main.cpp \ 185 src/imp/main_window.cpp \ 186 src/imp/imp.cpp \ 187 src/imp/imp_search.cpp \ 188 src/imp/imp_key.cpp \ 189 src/imp/imp_hud.cpp \ 190 src/imp/imp_action.cpp \ 191 src/imp/imp_layer.cpp\ 192 src/imp/imp_symbol.cpp\ 193 src/imp/imp_schematic.cpp\ 194 src/imp/imp_padstack.cpp\ 195 src/imp/imp_package.cpp\ 196 src/imp/3d/imp_package_3d.cpp\ 197 src/imp/3d/model_editor.cpp\ 198 src/imp/3d/place_model_box.cpp\ 199 src/imp/imp_board.cpp\ 200 src/imp/imp_frame.cpp\ 201 src/imp/imp_decal.cpp\ 202 src/imp/tool_popover.cpp\ 203 src/imp/selection_filter_dialog.cpp\ 204 src/imp/action.cpp\ 205 src/imp/action_catalog.cpp\ 206 src/imp/in_tool_action_catalog.cpp\ 207 src/imp/clipboard_handler.cpp\ 208 $(SRC_CANVAS) \ 209 src/document/document.cpp \ 210 src/document/document_board.cpp \ 211 src/core/core.cpp \ 212 src/core/tool.cpp \ 213 src/core/create_tool.cpp \ 214 src/core/core_properties.cpp\ 215 src/core/tools/tool_move.cpp\ 216 src/core/tools/tool_place_junction.cpp\ 217 src/core/tools/tool_place_junction_schematic.cpp\ 218 src/core/tools/tool_draw_line.cpp\ 219 src/core/tools/tool_delete.cpp\ 220 src/core/tools/tool_draw_arc.cpp\ 221 src/core/tools/tool_map_pin.cpp\ 222 src/core/tools/tool_map_symbol.cpp\ 223 src/core/tools/tool_draw_line_net.cpp\ 224 src/core/tools/tool_place_text.cpp\ 225 src/core/tools/tool_place_net_label.cpp\ 226 src/core/tools/tool_disconnect.cpp\ 227 src/core/tools/tool_bend_line_net.cpp\ 228 src/core/tools/tool_move_net_segment.cpp\ 229 src/core/tools/tool_place_power_symbol.cpp\ 230 src/core/tools/tool_edit_symbol_pin_names.cpp\ 231 src/core/tools/tool_place_bus_label.cpp\ 232 src/core/tools/tool_place_bus_ripper.cpp\ 233 src/core/tools/tool_manage_buses.cpp\ 234 src/core/tools/tool_draw_polygon.cpp\ 235 src/core/tools/tool_draw_plane.cpp\ 236 src/core/tools/tool_enter_datum.cpp\ 237 src/core/tools/tool_place_hole.cpp\ 238 src/core/tools/tool_place_pad.cpp\ 239 src/core/tools/tool_paste.cpp\ 240 src/core/tools/tool_assign_part.cpp\ 241 src/core/tools/tool_map_package.cpp\ 242 src/core/tools/tool_draw_track.cpp\ 243 src/core/tools/tool_place_via.cpp\ 244 src/core/tools/tool_drag_keep_slope.cpp\ 245 src/core/tools/tool_add_part.cpp\ 246 src/core/tools/tool_smash.cpp\ 247 src/core/tools/tool_place_shape.cpp\ 248 src/core/tools/tool_edit_shape.cpp\ 249 src/core/tools/tool_import_dxf.cpp\ 250 src/core/tools/tool_edit_pad_parameter_set.cpp\ 251 src/core/tools/tool_draw_polygon_rectangle.cpp\ 252 src/core/tools/tool_draw_line_rectangle.cpp\ 253 src/core/tools/tool_edit_line_rectangle.cpp\ 254 src/core/tools/tool_draw_line_circle.cpp\ 255 src/core/tools/tool_helper_map_symbol.cpp\ 256 src/core/tools/tool_helper_move.cpp\ 257 src/core/tools/tool_helper_merge.cpp\ 258 src/core/tools/tool_helper_collect_nets.cpp\ 259 src/core/tools/tool_helper_plane.cpp\ 260 src/core/tools/tool_edit_via.cpp\ 261 src/core/tools/tool_rotate_arbitrary.cpp\ 262 src/core/tools/tool_edit_plane.cpp\ 263 src/core/tools/tool_update_all_planes.cpp\ 264 src/core/tools/tool_draw_dimension.cpp\ 265 src/core/tools/tool_set_diffpair.cpp\ 266 src/core/tools/tool_set_via_net.cpp\ 267 src/core/tools/tool_lock.cpp\ 268 src/core/tools/tool_add_vertex.cpp\ 269 src/core/tools/tool_place_board_hole.cpp\ 270 src/core/tools/tool_edit_board_hole.cpp\ 271 src/core/tools/tool_generate_courtyard.cpp\ 272 src/core/tools/tool_generate_silkscreen.cpp\ 273 src/core/tools/tool_set_group.cpp\ 274 src/core/tools/tool_copy_placement.cpp\ 275 src/core/tools/tool_copy_tracks.cpp\ 276 src/core/tools/tool_swap_nets.cpp\ 277 src/core/tools/tool_line_loop_to_polygon.cpp\ 278 src/core/tools/tool_change_unit.cpp\ 279 src/core/tools/tool_helper_line_width_setting.cpp\ 280 src/core/tools/tool_set_nc_all.cpp\ 281 src/core/tools/tool_set_nc.cpp\ 282 src/core/tools/tool_add_keepout.cpp\ 283 src/core/tools/tool_helper_draw_net_setting.cpp\ 284 src/core/tools/tool_helper_get_symbol.cpp\ 285 src/core/tools/tool_change_symbol.cpp\ 286 src/core/tools/tool_place_refdes_and_value.cpp\ 287 src/core/tools/tool_helper_restrict.cpp\ 288 src/core/tools/tool_draw_polygon_circle.cpp\ 289 src/core/tools/tool_draw_connection_line.cpp\ 290 src/core/tools/tool_backannotate_connection_lines.cpp\ 291 src/core/tools/tool_import_kicad_package.cpp\ 292 src/core/tools/tool_smash_silkscreen_graphics.cpp\ 293 src/core/tools/tool_renumber_pads.cpp\ 294 src/core/tools/tool_fix.cpp\ 295 src/core/tools/tool_nopopulate.cpp\ 296 src/core/tools/tool_polygon_to_line_loop.cpp\ 297 src/core/tools/tool_place_board_panel.cpp\ 298 src/core/tools/tool_smash_panel_outline.cpp\ 299 src/core/tools/tool_smash_package_outline.cpp\ 300 src/core/tools/tool_resize_symbol.cpp\ 301 src/core/tools/tool_round_off_vertex.cpp\ 302 src/core/tools/tool_swap_gates.cpp\ 303 src/core/tools/tool_place_picture.cpp\ 304 src/core/tools/tool_place_decal.cpp\ 305 src/core/tools/tool_drag_polygon_edge.cpp\ 306 src/core/tools/tool_measure.cpp\ 307 src/core/tools/tool_edit_custom_value.cpp\ 308 src/core/tools/tool_place_dot.cpp\ 309 src/core/tools/tool_set_track_width.cpp\ 310 src/core/tools/tool_settings_rectangle_mode.cpp\ 311 src/document/documents.cpp\ 312 src/core/clipboard/clipboard.cpp\ 313 src/core/clipboard/clipboard_padstack.cpp\ 314 src/core/clipboard/clipboard_package.cpp\ 315 src/core/clipboard/clipboard_schematic.cpp\ 316 src/core/clipboard/clipboard_board.cpp\ 317 src/dialogs/map_pin.cpp\ 318 src/dialogs/map_symbol.cpp\ 319 src/dialogs/map_package.cpp\ 320 src/dialogs/ask_net_merge.cpp\ 321 src/dialogs/select_net.cpp\ 322 src/dialogs/symbol_pin_names_window.cpp\ 323 src/dialogs/manage_buses.cpp\ 324 src/dialogs/ask_datum.cpp\ 325 src/dialogs/ask_datum_string.cpp\ 326 src/widgets/text_editor.cpp\ 327 src/dialogs/dialogs.cpp\ 328 src/dialogs/annotate.cpp\ 329 src/dialogs/edit_shape.cpp\ 330 src/dialogs/manage_net_classes.cpp\ 331 src/dialogs/manage_power_nets.cpp\ 332 src/dialogs/pad_parameter_set_window.cpp\ 333 src/dialogs/edit_via.cpp\ 334 src/dialogs/pool_browser_dialog.cpp\ 335 src/dialogs/schematic_properties.cpp\ 336 src/dialogs/edit_plane.cpp\ 337 src/dialogs/edit_stackup.cpp\ 338 src/dialogs/edit_board_hole.cpp\ 339 src/dialogs/edit_frame.cpp\ 340 src/dialogs/edit_keepout.cpp\ 341 src/dialogs/select_group_tag.cpp\ 342 src/dialogs/ask_datum_angle.cpp\ 343 src/dialogs/tool_window.cpp\ 344 src/dialogs/renumber_pads_window.cpp\ 345 src/dialogs/generate_silkscreen_window.cpp\ 346 src/dialogs/select_included_board.cpp\ 347 src/dialogs/manage_included_boards.cpp\ 348 src/dialogs/enter_datum_window.cpp\ 349 src/dialogs/enter_datum_angle_window.cpp\ 350 src/dialogs/enter_datum_scale_window.cpp\ 351 src/dialogs/router_settings_window.cpp\ 352 src/dialogs/edit_custom_value.cpp\ 353 src/util/sort_controller.cpp\ 354 src/core/core_symbol.cpp\ 355 src/core/core_schematic.cpp\ 356 src/core/core_padstack.cpp\ 357 src/core/core_package.cpp\ 358 src/core/core_board.cpp\ 359 src/core/core_frame.cpp\ 360 src/core/core_decal.cpp\ 361 src/property_panels/property_panels.cpp\ 362 src/property_panels/property_panel.cpp\ 363 src/property_panels/property_editor.cpp\ 364 src/widgets/warnings_box.cpp\ 365 src/widgets/net_selector.cpp\ 366 src/widgets/sheet_box.cpp \ 367 src/widgets/net_button.cpp\ 368 src/widgets/layer_box.cpp\ 369 src/widgets/spin_button_dim.cpp\ 370 src/widgets/cell_renderer_color_box.cpp\ 371 src/widgets/net_class_button.cpp\ 372 src/widgets/parameter_set_editor.cpp\ 373 src/widgets/pool_browser.cpp\ 374 src/widgets/pool_selector.cpp\ 375 src/widgets/component_selector.cpp\ 376 src/widgets/component_button.cpp\ 377 src/widgets/preview_canvas.cpp\ 378 src/widgets/about_dialog.cpp\ 379 src/widgets/project_meta_editor.cpp\ 380 src/export_pdf/canvas_pdf.cpp\ 381 src/export_pdf/export_pdf.cpp\ 382 src/export_pdf/export_pdf_board.cpp\ 383 src/export_pdf/export_pdf_util.cpp\ 384 src/imp/keyseq_dialog.cpp\ 385 src/canvas/canvas_patch.cpp\ 386 src/export_gerber/gerber_writer.cpp\ 387 src/export_gerber/excellon_writer.cpp\ 388 src/export_gerber/gerber_export.cpp\ 389 src/export_gerber/canvas_gerber.cpp\ 390 src/export_gerber/hash.cpp\ 391 src/imp/footprint_generator/footprint_generator_window.cpp\ 392 src/imp/footprint_generator/footprint_generator_base.cpp\ 393 src/imp/footprint_generator/footprint_generator_dual.cpp\ 394 src/imp/footprint_generator/footprint_generator_single.cpp\ 395 src/imp/footprint_generator/footprint_generator_quad.cpp\ 396 src/imp/footprint_generator/footprint_generator_grid.cpp\ 397 src/imp/footprint_generator/svg_overlay.cpp\ 398 src/imp/footprint_generator/footprint_generator_footag.cpp\ 399 src/imp/footprint_generator/footag/display.cpp\ 400 src/imp/imp_interface.cpp\ 401 src/imp/parameter_window.cpp\ 402 src/widgets/pool_browser_part.cpp\ 403 src/widgets/pool_browser_entity.cpp\ 404 src/widgets/pool_browser_padstack.cpp\ 405 src/widgets/pool_browser_package.cpp\ 406 src/widgets/pool_browser_padstack.cpp\ 407 src/widgets/pool_browser_unit.cpp\ 408 src/widgets/pool_browser_symbol.cpp\ 409 src/widgets/pool_browser_frame.cpp\ 410 src/widgets/pool_browser_decal.cpp\ 411 src/widgets/pool_browser_stockinfo.cpp\ 412 src/widgets/plane_editor.cpp\ 413 src/widgets/title_block_values_editor.cpp\ 414 3rd_party/dxflib/dl_dxf.cpp\ 415 3rd_party/dxflib/dl_writer_ascii.cpp\ 416 src/import_dxf/dxf_importer.cpp\ 417 src/imp/rules/rules_window.cpp\ 418 src/imp/rules/rule_editor.cpp\ 419 src/imp/rules/rule_match_editor.cpp\ 420 src/imp/rules/rule_match_keepout_editor.cpp\ 421 src/imp/rules/rule_editor_hole_size.cpp\ 422 src/imp/rules/rule_editor_clearance_silk_exp_copper.cpp\ 423 src/imp/rules/rule_editor_track_width.cpp\ 424 src/imp/rules/rule_editor_clearance_copper.cpp\ 425 src/imp/rules/rule_editor_single_pin_net.cpp\ 426 src/imp/rules/rule_editor_via.cpp\ 427 src/imp/rules/rule_editor_clearance_copper_other.cpp\ 428 src/imp/rules/rule_editor_plane.cpp\ 429 src/imp/rules/rule_editor_diffpair.cpp\ 430 src/imp/rules/rule_editor_package_checks.cpp\ 431 src/imp/rules/rule_editor_clearance_copper_keepout.cpp\ 432 src/imp/rules/rule_editor_layer_pair.cpp\ 433 src/imp/rules/rule_editor_clearance_same_net.cpp\ 434 src/imp/rules/import.cpp\ 435 src/imp/rules/export.cpp\ 436 src/widgets/location_entry.cpp\ 437 src/rules/rules_with_core.cpp\ 438 src/rules/cache.cpp\ 439 src/board/board_rules_check.cpp\ 440 src/board/board_rules_import.cpp\ 441 src/schematic/schematic_rules_check.cpp\ 442 src/package/package_rules_check.cpp\ 443 src/symbol/symbol_rules_check.cpp\ 444 src/board/plane_update.cpp\ 445 src/imp/symbol_preview/symbol_preview_window.cpp\ 446 src/imp/symbol_preview/symbol_preview_expand_window.cpp\ 447 src/imp/symbol_preview/preview_box.cpp\ 448 src/util/gtk_util.cpp\ 449 src/imp/fab_output_window.cpp\ 450 src/imp/bom_export_window.cpp\ 451 src/imp/pdf_export_window.cpp\ 452 src/imp/3d/3d_view.cpp\ 453 src/imp/3d/axes_lollipop.cpp\ 454 src/imp/step_export_window.cpp\ 455 src/imp/tuning_window.cpp\ 456 src/canvas3d/canvas_mesh.cpp\ 457 src/canvas3d/canvas3d.cpp\ 458 src/canvas3d/canvas3d_base.cpp\ 459 src/canvas3d/cover_renderer.cpp\ 460 src/canvas3d/wall_renderer.cpp\ 461 src/canvas3d/face_renderer.cpp\ 462 src/canvas3d/point_renderer.cpp\ 463 src/canvas3d/background_renderer.cpp\ 464 src/imp/header_button.cpp\ 465 src/preferences/preferences.cpp\ 466 src/canvas/canvas_pads.cpp\ 467 src/util/window_state_store.cpp\ 468 src/widgets/board_display_options.cpp\ 469 src/widgets/log_window.cpp\ 470 src/widgets/log_view.cpp\ 471 src/util/selection_util.cpp\ 472 src/util/pool_completion.cpp\ 473 src/export_bom/export_bom.cpp\ 474 src/widgets/unplaced_box.cpp\ 475 src/widgets/tag_entry.cpp\ 476 src/widgets/layer_help_box.cpp\ 477 src/preferences/preferences_util.cpp\ 478 src/preferences/preferences_provider.cpp\ 479 src/widgets/spin_button_angle.cpp\ 480 src/util/exception_util.cpp\ 481 src/util/status_dispatcher.cpp\ 482 src/util/export_file_chooser.cpp\ 483 3rd_party/sexpr/sexpr_parser.cpp\ 484 3rd_party/sexpr/sexpr.cpp\ 485 src/util/kicad_package_parser.cpp\ 486 src/widgets/pool_browser_button.cpp\ 487 src/widgets/pool_browser_parametric.cpp\ 488 src/util/stock_info_provider.cpp\ 489 src/util/stock_info_provider_partinfo.cpp\ 490 src/util/stock_info_provider_digikey.cpp\ 491 src/util/http_client.cpp\ 492 src/widgets/column_chooser.cpp\ 493 src/util/csv_util.cpp\ 494 src/imp/pnp_export_window.cpp\ 495 src/export_pnp/export_pnp.cpp\ 496 src/imp/airwire_filter_window.cpp\ 497 src/imp/search/searcher.cpp\ 498 src/imp/search/searcher_symbol.cpp\ 499 src/imp/search/searcher_schematic.cpp\ 500 src/imp/search/searcher_package.cpp\ 501 src/imp/search/searcher_board.cpp\ 502 src/util/clipper_util.cpp\ 503 src/widgets/action_button.cpp\ 504 src/util/picture_util.cpp\ 505 src/imp/grid_controller.cpp\ 506 src/imp/parts_window.cpp\ 507 src/util/zmq_helper.cpp\ 508 src/widgets/help_button.cpp\ 509 src/util/keep_slope_util.cpp\ 510 src/imp/view_angle_window.cpp\ 511 src/imp/action_icon.cpp\ 512 src/util/automatic_prefs.cpp\ 513 src/util/treeview_state_store.cpp\ 514 src/widgets/layer_combo_box.cpp\ 515 src/widgets/color_box.cpp\ 516 src/imp/grids_window.cpp\ 517 src/util/action_label.cpp\ 518 519SRC_IMPC = \ 520 3rd_party/footag/wiz.c\ 521 3rd_party/footag/wiz_setref.c\ 522 3rd_party/footag/hint.c\ 523 3rd_party/footag/chip.c\ 524 3rd_party/footag/chiparray.c\ 525 3rd_party/footag/molded.c\ 526 3rd_party/footag/capae.c\ 527 3rd_party/footag/soic.c\ 528 3rd_party/footag/sod.c\ 529 3rd_party/footag/soj.c\ 530 3rd_party/footag/qfp.c\ 531 3rd_party/footag/son.c\ 532 3rd_party/footag/qfn.c\ 533 3rd_party/footag/pson.c\ 534 3rd_party/footag/pqfn.c\ 535 3rd_party/footag/bga.c\ 536 3rd_party/footag/sot223.c\ 537 3rd_party/footag/sot23.c\ 538 3rd_party/footag/dip.c\ 539 3rd_party/footag/sip.c\ 540 3rd_party/footag/pga.c\ 541 3rd_party/footag/ipc7351b/ipc7351b.c\ 542 3rd_party/footag/ipc7351b/table.c\ 543 3rd_party/footag/ipc7251draft1/ipc7251draft1.c\ 544 545SRC_ROUTER = \ 546 3rd_party/router/router/pns_router.cpp \ 547 3rd_party/router/router/pns_item.cpp \ 548 3rd_party/router/router/pns_node.cpp \ 549 3rd_party/router/router/pns_solid.cpp \ 550 3rd_party/router/router/pns_optimizer.cpp \ 551 3rd_party/router/router/pns_topology.cpp \ 552 3rd_party/router/router/pns_walkaround.cpp \ 553 3rd_party/router/router/pns_utils.cpp \ 554 3rd_party/router/router/pns_algo_base.cpp \ 555 3rd_party/router/router/pns_diff_pair_placer.cpp \ 556 3rd_party/router/router/pns_diff_pair.cpp \ 557 3rd_party/router/router/pns_dp_meander_placer.cpp\ 558 3rd_party/router/router/pns_dragger.cpp\ 559 3rd_party/router/router/pns_itemset.cpp \ 560 3rd_party/router/router/pns_line_placer.cpp \ 561 3rd_party/router/router/pns_line.cpp \ 562 3rd_party/router/router/pns_via.cpp \ 563 3rd_party/router/router/pns_logger.cpp \ 564 3rd_party/router/router/pns_meander_placer_base.cpp\ 565 3rd_party/router/router/pns_meander_placer.cpp\ 566 3rd_party/router/router/pns_meander_skew_placer.cpp\ 567 3rd_party/router/router/pns_meander.cpp\ 568 3rd_party/router/router/pns_shove.cpp \ 569 3rd_party/router/router/pns_index.cpp \ 570 3rd_party/router/router/time_limit.cpp \ 571 3rd_party/router/router/pns_routing_settings.cpp \ 572 3rd_party/router/router/pns_sizes_settings.cpp \ 573 3rd_party/router/common/geometry/shape_line_chain.cpp\ 574 3rd_party/router/common/geometry/shape_arc.cpp\ 575 3rd_party/router/common/geometry/shape.cpp \ 576 3rd_party/router/common/geometry/shape_collisions.cpp\ 577 3rd_party/router/common/geometry/seg.cpp\ 578 3rd_party/router/common/geometry/geometry_utils.cpp\ 579 3rd_party/router/common/math/math_util.cpp\ 580 3rd_party/router/wx_compat.cpp\ 581 src/router/pns_horizon_iface.cpp\ 582 src/core/tools/tool_route_track_interactive.cpp\ 583 584 585SRC_POOL_UTIL = \ 586 src/pool-util/util_main.cpp\ 587 $(SRC_POOL_UPDATE) 588 589SRC_PRJ_UTIL = \ 590 src/prj-util/util_main.cpp 591 592SRC_POOL_PRJ_MGR = \ 593 src/pool-prj-mgr/pool-prj-mgr-main.cpp\ 594 src/pool-prj-mgr/pool-prj-mgr-app.cpp\ 595 src/pool-prj-mgr/pool-prj-mgr-app_win.cpp\ 596 src/pool-prj-mgr/pool-prj-mgr-process.cpp\ 597 src/pool-prj-mgr/pool-mgr/pool_notebook.cpp\ 598 src/pool-prj-mgr/pool-mgr/pool_notebook_units.cpp\ 599 src/pool-prj-mgr/pool-mgr/pool_notebook_symbols.cpp\ 600 src/pool-prj-mgr/pool-mgr/pool_notebook_entities.cpp\ 601 src/pool-prj-mgr/pool-mgr/pool_notebook_padstacks.cpp\ 602 src/pool-prj-mgr/pool-mgr/pool_notebook_packages.cpp\ 603 src/pool-prj-mgr/pool-mgr/pool_notebook_parts.cpp\ 604 src/pool-prj-mgr/pool-mgr/pool_notebook_frames.cpp\ 605 src/pool-prj-mgr/pool-mgr/pool_notebook_decals.cpp\ 606 src/pool-prj-mgr/pool-mgr/pool_notebook_parametric.cpp\ 607 src/pool-prj-mgr/pool-mgr/editors/unit_editor.cpp\ 608 src/pool-prj-mgr/pool-mgr/editors/part_editor.cpp\ 609 src/pool-prj-mgr/pool-mgr/editors/parametric.cpp\ 610 src/pool-prj-mgr/pool-mgr/editors/entity_editor.cpp\ 611 src/pool-prj-mgr/pool-mgr/editors/editor_window.cpp\ 612 src/pool-prj-mgr/pool-mgr/create_part_dialog.cpp\ 613 src/pool-prj-mgr/pool-mgr/part_wizard/part_wizard.cpp\ 614 src/pool-prj-mgr/pool-mgr/part_wizard/pad_editor.cpp\ 615 src/pool-prj-mgr/pool-mgr/part_wizard/gate_editor.cpp\ 616 src/widgets/location_entry.cpp\ 617 src/pool-prj-mgr/pool-mgr/duplicate/duplicate_unit.cpp\ 618 src/pool-prj-mgr/pool-mgr/duplicate/duplicate_entity.cpp\ 619 src/pool-prj-mgr/pool-mgr/duplicate/duplicate_part.cpp\ 620 src/pool-prj-mgr/pool-mgr/duplicate/duplicate_window.cpp\ 621 src/pool-prj-mgr/pool-mgr/pool_remote_box.cpp\ 622 src/pool-prj-mgr/pool-mgr/pool_settings_box.cpp\ 623 src/pool-prj-mgr/pool-mgr/pool_cache_box.cpp\ 624 src/pool-prj-mgr/pool_update_error_dialog.cpp\ 625 src/pool-prj-mgr/pool-mgr/pool_git_box.cpp\ 626 src/pool-prj-mgr/forced_pool_update_dialog.cpp\ 627 src/widgets/pool_browser.cpp\ 628 src/widgets/pool_selector.cpp\ 629 src/widgets/pool_browser_unit.cpp\ 630 src/widgets/pool_browser_symbol.cpp\ 631 src/widgets/pool_browser_entity.cpp\ 632 src/widgets/pool_browser_padstack.cpp\ 633 src/widgets/pool_browser_part.cpp\ 634 src/widgets/pool_browser_package.cpp\ 635 src/widgets/pool_browser_frame.cpp\ 636 src/widgets/pool_browser_decal.cpp\ 637 src/widgets/pool_browser_parametric.cpp\ 638 src/dialogs/pool_browser_dialog.cpp\ 639 src/widgets/pool_browser_stockinfo.cpp\ 640 src/widgets/cell_renderer_color_box.cpp\ 641 src/widgets/where_used_box.cpp\ 642 src/widgets/project_meta_editor.cpp\ 643 src/util/sort_controller.cpp\ 644 src/util/editor_process.cpp\ 645 $(SRC_CANVAS)\ 646 $(SRC_POOL_UPDATE)\ 647 src/util/gtk_util.cpp\ 648 src/util/window_state_store.cpp\ 649 src/util/http_client.cpp\ 650 src/util/github_client.cpp\ 651 src/widgets/recent_item_box.cpp\ 652 src/util/recent_util.cpp\ 653 src/widgets/part_preview.cpp\ 654 src/widgets/entity_preview.cpp\ 655 src/widgets/preview_canvas.cpp\ 656 src/widgets/preview_base.cpp\ 657 src/widgets/unit_preview.cpp\ 658 src/widgets/symbol_preview.cpp\ 659 src/util/pool_completion.cpp\ 660 src/pool/pool_cache_status.cpp\ 661 src/pool-prj-mgr/prj-mgr/prj-mgr_views.cpp\ 662 src/pool-prj-mgr/prj-mgr/part_browser/part_browser_window.cpp\ 663 src/pool-prj-mgr/close_utils.cpp\ 664 src/pool-prj-mgr/prj-mgr/pool_cache_cleanup_dialog.cpp\ 665 src/pool-prj-mgr/pool-mgr/view_create_pool.cpp\ 666 src/preferences/preferences.cpp\ 667 src/preferences/preferences_provider.cpp\ 668 src/preferences/preferences_util.cpp\ 669 src/pool-prj-mgr/preferences/preferences_window.cpp\ 670 src/pool-prj-mgr/preferences/preferences_window_keys.cpp\ 671 src/pool-prj-mgr/preferences/preferences_window_in_tool_keys.cpp\ 672 src/pool-prj-mgr/preferences/preferences_window_canvas.cpp\ 673 src/pool-prj-mgr/preferences/preferences_window_stock_info.cpp\ 674 src/pool-prj-mgr/preferences/preferences_window_stock_info_partinfo.cpp\ 675 src/pool-prj-mgr/preferences/preferences_window_stock_info_digikey.cpp\ 676 src/pool-prj-mgr/preferences/digikey_auth_window.cpp\ 677 src/pool-prj-mgr/preferences/preferences_window_misc.cpp\ 678 src/pool-prj-mgr/preferences/action_editor.cpp\ 679 src/imp/action.cpp\ 680 src/imp/action_catalog.cpp\ 681 src/imp/in_tool_action_catalog.cpp\ 682 src/widgets/unit_info_box.cpp\ 683 src/widgets/entity_info_box.cpp\ 684 src/widgets/padstack_preview.cpp\ 685 src/widgets/tag_entry.cpp\ 686 src/widgets/about_dialog.cpp\ 687 src/util/status_dispatcher.cpp\ 688 src/util/exception_util.cpp\ 689 src/widgets/package_info_box.cpp\ 690 src/widgets/pool_browser_button.cpp\ 691 src/pool-prj-mgr/welcome_window.cpp\ 692 src/pool-prj-mgr/output_window.cpp\ 693 src/pool-prj-mgr/autosave_recovery_dialog.cpp\ 694 src/util/stock_info_provider.cpp\ 695 src/util/stock_info_provider_partinfo.cpp\ 696 src/util/stock_info_provider_digikey.cpp\ 697 src/widgets/help_button.cpp\ 698 src/pool-prj-mgr/pool-mgr/kicad_symbol_import_wizard/kicad_symbol_import_wizard.cpp\ 699 src/pool-prj-mgr/pool-mgr/kicad_symbol_import_wizard/gate_editor.cpp\ 700 src/util/kicad_lib_parser.cpp\ 701 src/widgets/capture_dialog.cpp\ 702 src/widgets/color_box.cpp\ 703 src/checks/check_util.cpp\ 704 src/checks/check_entity.cpp\ 705 src/checks/check_unit.cpp\ 706 src/checks/check_part.cpp\ 707 src/checks/check_item.cpp\ 708 src/symbol/symbol_rules_check.cpp\ 709 src/package/package_rules_check.cpp\ 710 src/canvas/canvas_patch.cpp\ 711 src/util/clipper_util.cpp\ 712 src/pool-prj-mgr/pool-mgr/check_column.cpp\ 713 src/pool-prj-mgr/pool-mgr/github_login_window.cpp\ 714 src/widgets/log_view.cpp\ 715 src/widgets/log_window.cpp\ 716 src/logger/log_dispatcher.cpp\ 717 src/util/zmq_helper.cpp\ 718 src/pool-prj-mgr/pool-mgr/import_kicad_package_window.cpp\ 719 3rd_party/sexpr/sexpr_parser.cpp\ 720 3rd_party/sexpr/sexpr.cpp\ 721 src/util/kicad_package_parser.cpp\ 722 src/util/automatic_prefs.cpp\ 723 src/util/treeview_state_store.cpp\ 724 src/util/paned_state_store.cpp\ 725 src/pool-prj-mgr/pools_window/pools_window.cpp\ 726 src/pool-prj-mgr/pools_window/pools_window_available.cpp\ 727 src/pool-prj-mgr/pools_window/pool_index.cpp\ 728 src/pool-prj-mgr/pools_window/pool_status_provider.cpp\ 729 src/pool-prj-mgr/pools_window/pool_merge_box.cpp\ 730 src/pool-prj-mgr/pools_window/pool_download_window.cpp\ 731 src/pool-prj-mgr/pool-mgr/move_window.cpp\ 732 733SRC_PGM_TEST = \ 734 src/pgm-test/pgm-test.cpp 735 736SRC_GEN_PKG = \ 737 src/gen-pkg/gen-pkg.cpp 738 739SRC_PR_REVIEW = \ 740 src/pr-review/pr-review.cpp\ 741 src/pr-review/canvas_cairo2.cpp\ 742 $(SRC_POOL_UPDATE)\ 743 src/canvas/canvas.cpp \ 744 src/canvas/appearance.cpp \ 745 src/canvas/render.cpp \ 746 src/canvas/draw.cpp \ 747 src/canvas/text.cpp \ 748 src/canvas/hershey_fonts.cpp \ 749 src/canvas/image.cpp\ 750 src/canvas/selectables.cpp\ 751 src/canvas/fragment_cache.cpp\ 752 src/canvas/canvas_patch.cpp\ 753 src/util/polygon_arc_removal_proxy.cpp\ 754 src/util/text_data.cpp \ 755 3rd_party/polypartition/polypartition.cpp\ 756 3rd_party/poly2tri/common/shapes.cpp\ 757 3rd_party/poly2tri/sweep/cdt.cpp\ 758 3rd_party/poly2tri/sweep/sweep.cpp\ 759 3rd_party/poly2tri/sweep/sweep_context.cpp\ 760 3rd_party/poly2tri/sweep/advancing_front.cpp\ 761 src/package/package_rules_check.cpp\ 762 src/symbol/symbol_rules_check.cpp\ 763 src/import_step/step_importer.cpp\ 764 src/util/clipper_util.cpp\ 765 src/checks/check_util.cpp\ 766 src/checks/check_entity.cpp\ 767 src/checks/check_unit.cpp\ 768 src/checks/check_part.cpp\ 769 src/checks/check_item.cpp\ 770 771SRC_OCE = \ 772 src/import_step/step_importer.cpp\ 773 src/export_step/export_step.cpp\ 774 src/imp/3d/imp_package_3d_occt.cpp\ 775 776SRC_PYTHON = \ 777 src/python_module/horizonmodule.cpp \ 778 src/python_module/util.cpp \ 779 src/python_module/schematic.cpp \ 780 src/python_module/project.cpp \ 781 src/python_module/board.cpp \ 782 src/python_module/pool_manager.cpp \ 783 src/python_module/pool.cpp \ 784 src/python_module/3d_image_exporter.cpp \ 785 src/python_module/version.cpp \ 786 787SRC_OCE_EXPORT = \ 788 src/export_step/export_step.cpp\ 789 src/import_step/step_importer.cpp\ 790 791SRC_ALL = $(sort $(SRC_COMMON) $(SRC_IMP) $(SRC_POOL_UTIL) $(SRC_PRJ_UTIL) $(SRC_PGM_TEST) $(SRC_POOL_PRJ_MGR) $(SRC_GEN_PKG) $(SRC_PR_REVIEW)) 792 793INC = -Isrc -isystem 3rd_party -I$(BUILDDIR)/gen 794 795DEFINES = -D_USE_MATH_DEFINES -DGLM_ENABLE_EXPERIMENTAL 796 797LIBS_COMMON = sqlite3 libzip 798ifneq ($(OS),Windows_NT) 799 LIBS_COMMON += uuid 800endif 801LIBS_ALL = $(LIBS_COMMON) gtkmm-3.0 epoxy cairomm-pdf-1.0 librsvg-2.0 libzmq libgit2 libcurl glm libpng 802 803OPTIMIZE = -fdata-sections -ffunction-sections -O3 804DEBUGFLAGS = -g3 805WARNFLAGS = -Wall -Wshadow 806PKG_CONFIG_LIBS := $(shell $(PKG_CONFIG) --cflags $(LIBS_ALL)) 807CXXFLAGS += $(DEBUGFLAGS) $(DEFINES) $(OPTIMIZE) $(PKG_CONFIG_LIBS) -MP -MD -pthread $(WARNFLAGS) -std=c++17 808CFLAGS = $(filter-out -Wsuggest-override, $(filter-out -std=%,$(CXXFLAGS))) -std=c99 809LDFLAGS += -lm -lpthread -lstdc++ 810GLIB_COMPILE_RESOURCES := $(shell $(PKG_CONFIG) --variable=glib_compile_resources gio-2.0) 811 812ifeq ($(DEBUG),1) 813 CXXFLAGS += -DUUID_PTR_CHECK -DCONNECTION_CHECK 814endif 815 816 817ifeq ($(OS),Windows_NT) 818 LDFLAGS += -lrpcrt4 819 DEFINES += -DWIN32_UUID 820 LDFLAGS_GUI = -Wl,-subsystem,windows 821else 822 UNAME := $(shell uname) 823 ifeq ($(UNAME), FreeBSD) 824 CXXFLAGS += -D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR 825 else 826 LDFLAGS += -lstdc++fs 827 endif 828 ifeq ($(UNAME), Darwin) 829 # do nothing on mac os 830 else 831 # allow ld.gold to be overriden by command line 832 GOLD = -fuse-ld=gold 833 LDFLAGS += $(GOLD) 834 endif 835endif 836 837SRC_SHARED_3D = \ 838 src/export_3d_image/export_3d_image.cpp\ 839 src/canvas3d/canvas3d_base.cpp\ 840 src/canvas3d/canvas_mesh.cpp\ 841 src/canvas3d/background_renderer.cpp\ 842 src/canvas3d/wall_renderer.cpp\ 843 src/canvas3d/cover_renderer.cpp\ 844 src/canvas3d/face_renderer.cpp\ 845 src/canvas3d/point_renderer.cpp\ 846 src/canvas/gl_util.cpp\ 847 848SRC_SHARED = $(SRC_COMMON) \ 849 src/export_pdf/canvas_pdf.cpp \ 850 src/export_pdf/export_pdf.cpp \ 851 src/export_pdf/export_pdf_board.cpp \ 852 src/export_pdf/export_pdf_util.cpp\ 853 src/export_pnp/export_pnp.cpp \ 854 src/canvas/canvas.cpp \ 855 src/canvas/appearance.cpp \ 856 src/canvas/render.cpp \ 857 src/canvas/draw.cpp \ 858 src/canvas/text.cpp \ 859 src/canvas/hershey_fonts.cpp \ 860 src/canvas/image.cpp\ 861 src/canvas/selectables.cpp\ 862 src/canvas/fragment_cache.cpp\ 863 src/util/text_data.cpp \ 864 src/util/polygon_arc_removal_proxy.cpp\ 865 3rd_party/polypartition/polypartition.cpp\ 866 3rd_party/poly2tri/common/shapes.cpp\ 867 3rd_party/poly2tri/sweep/cdt.cpp\ 868 3rd_party/poly2tri/sweep/sweep.cpp\ 869 3rd_party/poly2tri/sweep/sweep_context.cpp\ 870 3rd_party/poly2tri/sweep/advancing_front.cpp\ 871 src/export_bom/export_bom.cpp\ 872 src/export_gerber/gerber_writer.cpp\ 873 src/export_gerber/excellon_writer.cpp\ 874 src/export_gerber/gerber_export.cpp\ 875 src/export_gerber/canvas_gerber.cpp\ 876 src/export_gerber/hash.cpp\ 877 src/board/plane_update.cpp\ 878 src/canvas/canvas_pads.cpp\ 879 src/canvas/canvas_patch.cpp\ 880 src/util/csv_util.cpp\ 881 src/util/clipper_util.cpp\ 882 src/document/document.cpp \ 883 src/document/document_board.cpp \ 884 src/rules/cache.cpp \ 885 src/board/board_rules_check.cpp \ 886 $(SRC_POOL_UPDATE)\ 887 $(SRC_SHARED_3D) 888 889SRC_SHARED_GEN = $(SRC_COMMON_GEN) 890 891OBJDIR = $(BUILDDIR)/obj 892PICOBJDIR = $(BUILDDIR)/picobj 893GENDIR = $(BUILDDIR)/gen 894MKDIR = mkdir -p 895QUIET = @ 896ECHO = @echo 897 898# Object files 899OBJ_ALL = $(addprefix $(OBJDIR)/,$(SRC_ALL:.cpp=.o)) 900OBJ_ALL += $(addprefix $(OBJDIR)/,$(SRC_IMPC:.c=.o)) 901OBJ_ROUTER = $(addprefix $(OBJDIR)/,$(SRC_ROUTER:.cpp=.o)) 902OBJ_COMMON = $(addprefix $(OBJDIR)/,$(SRC_COMMON:.cpp=.o)) 903OBJ_COMMON += $(addprefix $(OBJDIR)/,$(SRC_COMMON_GEN:.cpp=.o)) 904OBJ_OCE = $(addprefix $(OBJDIR)/,$(SRC_OCE:.cpp=.o)) 905OBJ_PYTHON = $(addprefix $(PICOBJDIR)/,$(SRC_PYTHON:.cpp=.o)) 906OBJ_SHARED = $(addprefix $(PICOBJDIR)/,$(SRC_SHARED:.cpp=.o)) 907OBJ_SHARED += $(addprefix $(PICOBJDIR)/,$(SRC_SHARED_GEN:.cpp=.o)) 908OBJ_SHARED_OCE = $(addprefix $(PICOBJDIR)/,$(SRC_OCE_EXPORT:.cpp=.o)) 909OBJ_SHARED_3D = $(addprefix $(PICOBJDIR)/,$(SRC_SHARED_3D:.cpp=.o)) 910 911 912OBJ_IMP = $(addprefix $(OBJDIR)/,$(SRC_IMP:.cpp=.o)) 913OBJ_IMP += $(addprefix $(OBJDIR)/,$(SRC_IMPC:.c=.o)) 914OBJ_POOL_UTIL = $(addprefix $(OBJDIR)/,$(SRC_POOL_UTIL:.cpp=.o)) 915OBJ_PRJ_UTIL = $(addprefix $(OBJDIR)/,$(SRC_PRJ_UTIL:.cpp=.o)) 916OBJ_POOL_PRJ_MGR = $(addprefix $(OBJDIR)/,$(SRC_POOL_PRJ_MGR:.cpp=.o)) $(OBJ_RES) 917OBJ_PGM_TEST = $(addprefix $(OBJDIR)/,$(SRC_PGM_TEST:.cpp=.o)) 918OBJ_GEN_PKG = $(addprefix $(OBJDIR)/,$(SRC_GEN_PKG:.cpp=.o)) 919OBJ_PR_REVIEW = $(addprefix $(OBJDIR)/,$(SRC_PR_REVIEW:.cpp=.o)) 920 921 922 923INC_ROUTER = -I3rd_party/router/include/ -I3rd_party/router -isystem 3rd_party 924INC_OCE ?= -isystem /opt/opencascade/inc/ -isystem /mingw64/include/oce/ -isystem /usr/include/oce -isystem /usr/include/opencascade -isystem ${CASROOT}/include/opencascade -isystem ${CASROOT}/include/oce -isystem /usr/local/include/OpenCASCADE 925INC_PYTHON = $(shell $(PKG_CONFIG) --cflags python3 py3cairo) 926OCE_LIBDIRS = -L/opt/opencascade/lib/ -L${CASROOT}/lib 927LDFLAGS_OCE = $(OCE_LIBDIRS) -lTKSTEP -lTKernel -lTKXCAF -lTKXSBase -lTKBRep -lTKCDF -lTKXDESTEP -lTKLCAF -lTKMath -lTKMesh -lTKTopAlgo -lTKPrim -lTKBO -lTKShHealing -lTKBRep -lTKG3d 928ifeq ($(OS),Windows_NT) 929 LDFLAGS_OCE += -lTKV3d 930endif 931 932OBJ_RES = 933ifeq ($(OS),Windows_NT) 934 SRC_RES = src/horizon-pool-prj-mgr.rc 935 OBJ_RES = $(addprefix $(OBJDIR)/,$(SRC_RES:.rc=.res)) 936endif 937 938PREFIX ?= /usr/local 939BINDIR = ${PREFIX}/bin/ 940ICONDIR = ${PREFIX}/share/icons/hicolor/ 941APPSDIR = ${PREFIX}/share/applications/ 942METADIR = ${PREFIX}/share/metainfo/ 943MANDIR = ${PREFIX}/share/man/man1 944INSTALL = /usr/bin/install 945 946src/preferences/color_presets.json: $(wildcard src/preferences/color_presets/*) 947 python3 scripts/make_color_presets.py $^ > $@ 948 949$(BUILDDIR)/gen/resources.cpp: imp.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies imp.gresource.xml | while read line; do echo "src/$$line"; done) 950 $(QUIET)$(MKDIR) $(dir $@) 951 $(ECHO) " $@" 952 $(QUIET)$(GLIB_COMPILE_RESOURCES) imp.gresource.xml --target=$@ --sourcedir=src --generate-source 953 954$(BUILDDIR)/gen/version_gen.cpp: $(wildcard .git/HEAD .git/index) version.py make_version.py 955 $(QUIET)$(MKDIR) $(dir $@) 956 $(ECHO) " $@" 957 $(QUIET)python3 make_version.py $@ 958 959$(BUILDDIR)/gen/help_texts.cpp: scripts/make_help.py src/help_texts.txt $(BUILDDIR)/gen/help_texts.hpp 960 $(QUIET)$(MKDIR) $(dir $@) 961 $(ECHO) " $@" 962 $(QUIET)python3 scripts/make_help.py c src/help_texts.txt > $@ 963 964$(BUILDDIR)/gen/help_texts.hpp: scripts/make_help.py src/help_texts.txt 965 $(QUIET)$(MKDIR) $(dir $@) 966 $(ECHO) " $@" 967 $(QUIET)python3 scripts/make_help.py h src/help_texts.txt > $@ 968 969$(BUILDDIR)/horizon-imp: $(OBJ_COMMON) $(OBJ_ROUTER) $(OBJ_OCE) $(OBJ_IMP) 970 $(ECHO) " $@" 971 $(QUIET)$(CXX) $^ $(LDFLAGS) $(LDFLAGS_GUI) $(LDFLAGS_OCE) $(shell $(PKG_CONFIG) --libs $(LIBS_COMMON) gtkmm-3.0 epoxy cairomm-pdf-1.0 librsvg-2.0 libzmq libcurl libpng) -lpodofo -lTKHLR -lTKGeomBase -o $@ 972 973$(BUILDDIR)/horizon-pool: $(OBJ_COMMON) $(OBJ_POOL_UTIL) 974 $(ECHO) " $@" 975 $(QUIET)$(CXX) $^ $(LDFLAGS) $(shell $(PKG_CONFIG) --libs $(LIBS_COMMON) gtkmm-3.0) -o $@ 976 977$(BUILDDIR)/horizon-prj: $(OBJ_COMMON) $(OBJ_PRJ_UTIL) 978 $(ECHO) " $@" 979 $(QUIET)$(CXX) $^ $(LDFLAGS) $(shell $(PKG_CONFIG) --libs $(LIBS_COMMON) glibmm-2.4 giomm-2.4) -o $@ 980 981$(BUILDDIR)/horizon-eda: $(OBJ_COMMON) $(OBJ_POOL_PRJ_MGR) $(OBJ_RES) 982 $(ECHO) " $@" 983 $(QUIET)$(CXX) $^ $(LDFLAGS) $(LDFLAGS_GUI) $(shell $(PKG_CONFIG) --libs $(LIBS_COMMON) gtkmm-3.0 epoxy libzmq libcurl libgit2 libpng) -o $@ 984 985$(BUILDDIR)/horizon-pgm-test: $(OBJ_COMMON) $(OBJ_PGM_TEST) 986 $(ECHO) " $@" 987 $(QUIET)$(CXX) $^ $(LDFLAGS) $(LDFLAGS_GUI) $(shell $(PKG_CONFIG) --libs $(LIBS_COMMON) glibmm-2.4 giomm-2.4) -o $@ 988 989$(BUILDDIR)/horizon-gen-pkg: $(OBJ_COMMON) $(OBJ_GEN_PKG) 990 $(ECHO) " $@" 991 $(QUIET)$(CXX) $^ $(LDFLAGS) $(INC) $(CXXFLAGS) $(shell $(PKG_CONFIG) --libs $(LIBS_COMMON) glibmm-2.4 giomm-2.4) -o $@ 992 993$(BUILDDIR)/horizon-pr-review: $(OBJ_COMMON) $(OBJ_PR_REVIEW) $(OBJ_SHARED_3D) 994 $(ECHO) " $@" 995 $(QUIET)$(CXX) $^ $(LDFLAGS) $(INC) $(CXXFLAGS) $(shell $(PKG_CONFIG) --libs $(LIBS_COMMON) glibmm-2.4 giomm-2.4 cairomm-1.0 libgit2 libpng) -lOSMesa $(LDFLAGS_OCE) -o $@ 996 997$(BUILDDIR)/horizon.so: $(OBJ_PYTHON) $(OBJ_SHARED) $(OBJ_SHARED_OCE) 998 $(ECHO) " $@" 999 $(QUIET)$(CXX) $^ $(LDFLAGS) $(INC) $(CXXFLAGS) $(shell $(PKG_CONFIG) --libs $(LIBS_COMMON) python3 glibmm-2.4 giomm-2.4 cairomm-1.0 py3cairo libpng) -lpodofo $(OCE_LIBDIRS) -lTKXDESTEP -lOSMesa -shared -o $@ 1000 1001$(OBJDIR)/%.o: %.c 1002 $(QUIET)$(MKDIR) $(dir $@) 1003 $(ECHO) " $@" 1004 $(QUIET)$(CC) -c $(INC) $(CFLAGS) $< -o $@ 1005 1006$(OBJDIR)/%.o: %.cpp 1007 $(QUIET)$(MKDIR) $(dir $@) 1008 $(ECHO) " $@" 1009 $(QUIET)$(CXX) -c $(INC) $(CXXFLAGS) $< -o $@ 1010 1011$(OBJ_ROUTER): INC += $(INC_ROUTER) 1012 1013$(OBJ_OCE): INC += $(INC_OCE) 1014$(OBJ_SHARED_OCE): INC += $(INC_OCE) 1015 1016$(PICOBJDIR)/%.o: %.cpp 1017 $(QUIET)$(MKDIR) $(dir $@) 1018 $(ECHO) " $@" 1019 $(QUIET)$(CXX) -c $(INC) $(CXXFLAGS) -fPIC -DOFFSCREEN=1 $< -o $@ 1020 1021$(OBJ_PYTHON): INC += $(INC_PYTHON) 1022 1023$(OBJ_RES): $(OBJDIR)/%.res: %.rc 1024 $(QUIET)$(MKDIR) $(dir $@) 1025 windres $< -O coff -o $@ 1026 1027install: $(BUILDDIR)/horizon-imp $(BUILDDIR)/horizon-eda 1028 mkdir -p $(DESTDIR)$(BINDIR) 1029 $(INSTALL) -m755 $(BUILDDIR)/horizon-imp $(DESTDIR)$(BINDIR) 1030 $(INSTALL) -m755 $(BUILDDIR)/horizon-eda $(DESTDIR)$(BINDIR) 1031 mkdir -p $(DESTDIR)$(ICONDIR)/scalable/apps 1032 $(INSTALL) -m644 src/icons/scalable/apps/horizon-eda.svg $(DESTDIR)$(ICONDIR)/scalable/apps/org.horizon_eda.HorizonEDA.svg 1033 mkdir -p $(DESTDIR)$(ICONDIR)/16x16/apps 1034 $(INSTALL) -m644 src/icons/16x16/apps/horizon-eda.png $(DESTDIR)$(ICONDIR)/16x16/apps/org.horizon_eda.HorizonEDA.png 1035 mkdir -p $(DESTDIR)$(ICONDIR)/32x32/apps 1036 $(INSTALL) -m644 src/icons/32x32/apps/horizon-eda.png $(DESTDIR)$(ICONDIR)/32x32/apps/org.horizon_eda.HorizonEDA.png 1037 mkdir -p $(DESTDIR)$(ICONDIR)/64x64/apps 1038 $(INSTALL) -m644 src/icons/64x64/apps/horizon-eda.png $(DESTDIR)$(ICONDIR)/64x64/apps/org.horizon_eda.HorizonEDA.png 1039 mkdir -p $(DESTDIR)$(ICONDIR)/256x256/apps 1040 $(INSTALL) -m644 src/icons/256x256/apps/horizon-eda.png $(DESTDIR)$(ICONDIR)/256x256/apps/org.horizon_eda.HorizonEDA.png 1041 mkdir -p $(DESTDIR)$(APPSDIR) 1042 $(INSTALL) -m644 org.horizon_eda.HorizonEDA.desktop $(DESTDIR)$(APPSDIR) 1043 mkdir -p $(DESTDIR)$(METADIR) 1044 $(INSTALL) -m644 org.horizon_eda.HorizonEDA.metainfo.xml $(DESTDIR)$(METADIR) 1045 1046install-man: 1047 mkdir -p $(DESTDIR)$(MANDIR) 1048 $(INSTALL) -m 644 man/horizon-eda.1 $(DESTDIR)$(MANDIR)/horizon-eda.1 1049 $(INSTALL) -m 644 man/horizon-imp.1 $(DESTDIR)$(MANDIR)/horizon-imp.1 1050 1051clean: clean_router clean_oce clean_res 1052 $(RM) $(OBJ_ALL) $(BUILDDIR)/horizon-imp $(BUILDDIR)/horizon-pool $(BUILDDIR)/horizon-prj $(BUILDDIR)/horizon-pool-mgr $(BUILDDIR)/horizon-prj-mgr $(BUILDDIR)/horizon-pgm-test $(BUILDDIR)/horizon-gen-pkg $(BUILDDIR)/horizon-eda $(OBJ_ALL:.o=.d) $(GENDIR)/resources.cpp $(GENDIR)/version_gen.cpp $(OBJ_COMMON) $(OBJ_COMMON:.o=.d) 1053 $(RM) $(BUILDDIR)/horizon.so 1054 $(RM) $(GENDIR)/help_texts.hpp 1055 $(RM) $(GENDIR)/help_texts.cpp 1056 $(RM) $(OBJ_SHARED) $(OBJ_PYTHON) $(OBJ_SHARED:.o=.d) $(OBJ_PYTHON:.o=.d) 1057 $(RM) -r __pycache__ 1058 1059clean_router: 1060 $(RM) $(OBJ_ROUTER) $(OBJ_ROUTER:.o=.d) 1061 1062clean_oce: 1063 $(RM) $(OBJ_OCE) $(OBJ_OCE:.o=.d) $(OBJ_SHARED_OCE) $(OBJ_SHARED_OCE:.o=.d) 1064 1065clean_res: 1066 $(RM) $(OBJ_RES) 1067 1068-include $(OBJ_ALL:.o=.d) 1069-include $(OBJ_ROUTER:.o=.d) 1070-include $(OBJ_OCE:.o=.d) 1071-include $(OBJ_SHARED:.o=.d) 1072-include $(OBJ_SHARED_OCE:.o=.d) 1073-include $(OBJ_PYTHON:.o=.d) 1074 1075.PHONY: clean clean_router clean_oce clean_res install 1076