b80ee13595
The old restore dialog only showed a simple list of snapshots so it was hard to see what each entry contained before restoring. It also had a bug where pressing Restore could close the dialog but not restore anything, because the pre-restore backup step treated no changes to save as a faliure. This change adds a dedicated restore dialog that shows the snapshot time, summary, hash, and changed files. It also updates the restore code to load snapshot details for the dialog and to continue with the restore when the backup step finds no new changes.
1219 lines
35 KiB
CMake
1219 lines
35 KiB
CMake
# Add all the warnings to the files
|
|
if( COMPILER_SUPPORTS_WARNINGS )
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARN_FLAGS_CXX}")
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARN_FLAGS_C}")
|
|
endif()
|
|
|
|
set( INC_AFTER ${INC_AFTER} ${NGSPICE_INCLUDE_DIR} )
|
|
|
|
include_directories( BEFORE ${INC_BEFORE} )
|
|
include_directories(
|
|
./dialogs
|
|
./widgets
|
|
./dialog_about
|
|
${CMAKE_SOURCE_DIR}/libs/sexpr/include
|
|
${CMAKE_SOURCE_DIR}/resources/bitmaps_png
|
|
${CMAKE_SOURCE_DIR}/3d-viewer
|
|
${CMAKE_SOURCE_DIR}/pcbnew
|
|
${CMAKE_SOURCE_DIR}/kicad
|
|
${INC_AFTER}
|
|
)
|
|
|
|
# Get the GAL Target
|
|
add_subdirectory( gal )
|
|
|
|
# Get the netlist reader library
|
|
add_subdirectory( netlist_reader )
|
|
|
|
# Get the shared PADS format support library
|
|
add_subdirectory( io/pads )
|
|
|
|
|
|
|
|
|
|
# The build version string defaults to the value in the KiCadVersion.cmake file.
|
|
# If being built inside a git repository, the git tag and commit hash are used to create
|
|
# a new version string instead. The user can supply an additional string to be appended
|
|
# to the end inside the KICAD_VERSION_EXTRA variable
|
|
set( KICAD_VERSION_EXTRA "" CACHE STRING
|
|
"User defined configuration string to append to KiCad version." )
|
|
|
|
# Generate version header file.
|
|
add_custom_target(
|
|
version_header ALL
|
|
COMMAND ${CMAKE_COMMAND}
|
|
-DKICAD_VERSION_EXTRA=${KICAD_VERSION_EXTRA}
|
|
-DOUTPUT_FILE=${CMAKE_BINARY_DIR}/kicad_build_version.h
|
|
-DTEXT_OUTPUT_FILE=${CMAKE_BINARY_DIR}/kicad_build_version.txt
|
|
-DSRC_PATH=${PROJECT_SOURCE_DIR}
|
|
-DKICAD_CMAKE_MODULE_PATH=${KICAD_CMAKE_MODULE_PATH}
|
|
-P ${KICAD_CMAKE_MODULE_PATH}/BuildSteps/WriteVersionHeader.cmake
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR} BYPRODUCTS ${CMAKE_BINARY_DIR}/kicad_build_version.h
|
|
DEPENDS ${KICAD_CMAKE_MODULE_PATH}/BuildSteps/WriteVersionHeader.cmake
|
|
COMMENT "Generating version string header"
|
|
)
|
|
|
|
add_custom_target(
|
|
banned_functions ALL
|
|
COMMAND ${CMAKE_COMMAND}
|
|
-DBANNED_DIRS="${PROJECT_SOURCE_DIR}/common/io;${PROJECT_SOURCE_DIR}/pcbnew/pcb_io;${PROJECT_SOURCE_DIR}/eeschema/sch_io"
|
|
-P ${KICAD_CMAKE_MODULE_PATH}/CheckBannedFunctions.cmake
|
|
)
|
|
|
|
if( NOT (${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR} ) )
|
|
file( GLOB REMOTE_PROVIDER_SCHEMA_FILES
|
|
${CMAKE_SOURCE_DIR}/resources/schemas/kicad-remote-*.json
|
|
)
|
|
|
|
add_custom_target( remote_provider_schema_build_copy
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/schemas
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
${REMOTE_PROVIDER_SCHEMA_FILES}
|
|
${CMAKE_BINARY_DIR}/schemas
|
|
DEPENDS ${REMOTE_PROVIDER_SCHEMA_FILES}
|
|
COMMENT "Copying remote provider schema files into build directory"
|
|
)
|
|
endif()
|
|
|
|
# A shared library used by multiple *.kiface files and one or two program
|
|
# launchers. Object files can migrate into here over time, but only if they are
|
|
# surely needed and certainly used from more than one place without recompilation.
|
|
# Functions and data all need to use the #include <import_export.h> and be declared
|
|
# as APIEXPORT
|
|
set( KICOMMON_SRCS
|
|
# Fonts
|
|
newstroke_font.cpp
|
|
font/fontconfig.cpp
|
|
font/version_info.cpp
|
|
|
|
# Gal
|
|
gal/color4d.cpp
|
|
|
|
# KiCad GL
|
|
kicad_gl/gl_utils.cpp
|
|
kicad_gl/gl_context_mgr.cpp
|
|
|
|
# Git
|
|
git/git_add_to_index_handler.cpp
|
|
git/git_branch_handler.cpp
|
|
git/git_clone_handler.cpp
|
|
git/git_commit_handler.cpp
|
|
git/git_config_handler.cpp
|
|
git/git_compare_handler.cpp
|
|
git/git_init_handler.cpp
|
|
git/project_git_utils.cpp
|
|
git/git_pull_handler.cpp
|
|
git/git_push_handler.cpp
|
|
git/git_remove_from_index_handler.cpp
|
|
git/git_remove_vcs_handler.cpp
|
|
git/git_resolve_conflict_handler.cpp
|
|
git/git_revert_handler.cpp
|
|
git/git_status_handler.cpp
|
|
git/git_switch_branch_handler.cpp
|
|
git/git_sync_handler.cpp
|
|
git/kicad_git_common.cpp
|
|
git/kicad_git_errors.cpp
|
|
git/git_backend.cpp
|
|
git/libgit_backend.cpp
|
|
|
|
# Jobs
|
|
jobs/job.cpp
|
|
jobs/job_dispatcher.cpp
|
|
jobs/job_registry.cpp
|
|
jobs/jobs_output_archive.cpp
|
|
jobs/jobs_output_folder.cpp
|
|
jobs/job_export_pcb_drill.cpp
|
|
jobs/job_export_pcb_dxf.cpp
|
|
jobs/job_export_pcb_gerber.cpp
|
|
jobs/job_export_pcb_gerbers.cpp
|
|
jobs/job_export_pcb_hpgl.cpp
|
|
jobs/job_export_pcb_ipc2581.cpp
|
|
jobs/job_export_pcb_ipcd356.cpp
|
|
jobs/job_export_pcb_odb.cpp
|
|
jobs/job_export_pcb_pdf.cpp
|
|
jobs/job_export_pcb_stats.cpp
|
|
jobs/job_export_pcb_plot.cpp
|
|
jobs/job_export_pcb_pos.cpp
|
|
jobs/job_export_pcb_ps.cpp
|
|
jobs/job_export_pcb_svg.cpp
|
|
jobs/job_export_pcb_gencad.cpp
|
|
jobs/job_export_pcb_3d.cpp
|
|
jobs/job_export_sch_bom.cpp
|
|
jobs/job_export_sch_netlist.cpp
|
|
jobs/job_export_sch_plot.cpp
|
|
jobs/job_export_sch_pythonbom.cpp
|
|
jobs/job_special_copyfiles.cpp
|
|
jobs/job_special_execute.cpp
|
|
jobs/jobset.cpp
|
|
jobs/job_fp_export_svg.cpp
|
|
jobs/job_fp_upgrade.cpp
|
|
jobs/job_pcb_import.cpp
|
|
jobs/job_pcb_render.cpp
|
|
jobs/job_pcb_drc.cpp
|
|
jobs/job_rc.cpp
|
|
jobs/job_sch_erc.cpp
|
|
jobs/job_sym_export_svg.cpp
|
|
jobs/job_sym_upgrade.cpp
|
|
jobs/job_pcb_upgrade.cpp
|
|
jobs/job_sch_upgrade.cpp
|
|
|
|
local_history.cpp
|
|
history_lock.cpp
|
|
|
|
kicad_curl/kicad_curl.cpp
|
|
kicad_curl/kicad_curl_easy.cpp
|
|
|
|
libraries/library_manager.cpp
|
|
libraries/library_table.cpp
|
|
libraries/library_table_parser.cpp
|
|
|
|
settings/app_settings.cpp
|
|
settings/aui_settings.cpp
|
|
settings/bom_settings.cpp
|
|
settings/color_settings.cpp
|
|
settings/common_settings.cpp
|
|
settings/grid_settings.cpp
|
|
settings/json_settings.cpp
|
|
settings/kicad_settings.cpp
|
|
settings/layer_settings_utils.cpp
|
|
settings/nested_settings.cpp
|
|
settings/parameters.cpp
|
|
settings/settings_manager.cpp
|
|
|
|
project/board_project_settings.cpp
|
|
project/component_class_settings.cpp
|
|
project/net_settings.cpp
|
|
project/project_archiver.cpp
|
|
project/project_file.cpp
|
|
project/project_local_settings.cpp
|
|
project/tuning_profiles.cpp
|
|
|
|
text_eval/text_eval_wrapper.cpp
|
|
text_eval/text_eval_parser.cpp
|
|
text_eval/text_eval_vcs.cpp
|
|
|
|
# This is basically a settings object, but for the toolbar
|
|
tool/ui/toolbar_configuration.cpp
|
|
tool/ui/toolbar_context_menu_registry.cpp
|
|
|
|
dialogs/dialog_rc_job.cpp
|
|
dialogs/dialog_rc_job_base.cpp
|
|
dialogs/dialog_restore_local_history.cpp
|
|
dialogs/dialog_HTML_reporter_base.cpp
|
|
dialogs/panel_startwizard_libraries_base.cpp
|
|
dialogs/panel_startwizard_privacy_base.cpp
|
|
dialogs/panel_startwizard_settings_base.cpp
|
|
|
|
grid_tricks.cpp
|
|
widgets/aui_json_serializer.cpp
|
|
widgets/bitmap_button.cpp
|
|
widgets/grid_combobox.cpp
|
|
widgets/grid_icon_text_helpers.cpp
|
|
widgets/grid_text_button_helpers.cpp
|
|
widgets/grid_text_helpers.cpp
|
|
widgets/html_window.cpp
|
|
widgets/indicator_icon.cpp
|
|
widgets/kistatusbar.cpp
|
|
widgets/number_badge.cpp
|
|
widgets/progress_reporter_base.cpp
|
|
widgets/report_severity.cpp
|
|
widgets/std_bitmap_button.cpp
|
|
widgets/ui_common.cpp
|
|
widgets/up_down_tree.cpp
|
|
widgets/wx_grid.cpp
|
|
widgets/wx_html_report_panel.cpp
|
|
widgets/wx_html_report_panel_base.cpp
|
|
widgets/wx_html_report_box.cpp
|
|
|
|
database/database_lib_settings.cpp
|
|
|
|
design_block.cpp
|
|
design_block_io.cpp
|
|
design_block_library_adapter.cpp
|
|
|
|
advanced_config.cpp
|
|
app_monitor.cpp
|
|
asset_archive.cpp
|
|
array_axis.cpp
|
|
array_options.cpp
|
|
background_jobs_monitor.cpp
|
|
bitmap.cpp
|
|
bitmap_info.cpp
|
|
bitmap_store.cpp
|
|
build_version.cpp
|
|
cli_progress_reporter.cpp
|
|
common.cpp
|
|
config_params.cpp
|
|
confirm.cpp
|
|
dialog_shim.cpp
|
|
dpi_scaling.cpp
|
|
dpi_scaling_common.cpp
|
|
dsnlexer.cpp
|
|
eda_doc.cpp
|
|
eda_pattern_match.cpp
|
|
eda_units.cpp
|
|
embedded_files.cpp
|
|
env_paths.cpp
|
|
env_vars.cpp
|
|
exceptions.cpp
|
|
gestfich.cpp
|
|
increment.cpp
|
|
json_conversions.cpp
|
|
json_schema_validator.cpp
|
|
kidialog.cpp
|
|
kiid.cpp
|
|
kiway.cpp
|
|
kiway_mail.cpp
|
|
kiway_holder.cpp
|
|
launch_ext.cpp
|
|
layer_id.cpp
|
|
lib_id.cpp
|
|
locale_io.cpp
|
|
lseq.cpp
|
|
lset.cpp
|
|
markup_parser.cpp
|
|
netclass.cpp
|
|
notifications_manager.cpp
|
|
page_info.cpp
|
|
oauth/oauth_loopback_server.cpp
|
|
oauth/oauth_pkce.cpp
|
|
oauth/oauth_session.cpp
|
|
oauth/secure_token_store.cpp
|
|
paths.cpp
|
|
project.cpp
|
|
remote_provider_client.cpp
|
|
remote_provider_metadata.cpp
|
|
remote_provider_models.cpp
|
|
remote_provider_settings.cpp
|
|
remote_provider_utils.cpp
|
|
reporter.cpp
|
|
richio.cpp
|
|
scintilla_tricks.cpp
|
|
search_stack.cpp
|
|
searchhelpfilefullpath.cpp
|
|
string_utils.cpp
|
|
systemdirsappend.cpp
|
|
thread_pool.cpp
|
|
ui_events.cpp
|
|
title_block.cpp
|
|
trace_helpers.cpp
|
|
wildcards_and_files_ext.cpp
|
|
wx_filename.cpp
|
|
xnode.cpp
|
|
|
|
singleton.cpp
|
|
pgm_base.cpp
|
|
|
|
../scripting/python_scripting.cpp
|
|
|
|
io/kicad/kicad_io_utils.cpp # needed by richio
|
|
io/io_base.cpp
|
|
io/io_utils.cpp
|
|
|
|
api/serializable.cpp
|
|
api/api_utils.cpp
|
|
|
|
startwizard/startwizard.cpp
|
|
startwizard/startwizard_provider_libraries.cpp
|
|
startwizard/startwizard_provider_privacy.cpp
|
|
startwizard/startwizard_provider_settings.cpp
|
|
)
|
|
|
|
if( UNIX AND NOT APPLE )
|
|
list( APPEND KICOMMON_SRCS
|
|
spacenav/libspnav_driver.cpp
|
|
)
|
|
endif()
|
|
|
|
if( KICAD_IPC_API )
|
|
set( KICOMMON_SRCS
|
|
${KICOMMON_SRCS}
|
|
api/api_handler.cpp
|
|
api/api_plugin.cpp
|
|
api/api_plugin_manager.cpp
|
|
api/api_server.cpp
|
|
|
|
../scripting/python_manager.cpp
|
|
)
|
|
endif()
|
|
|
|
add_library( kicommon SHARED
|
|
${KICOMMON_SRCS}
|
|
)
|
|
|
|
if( KICAD_USE_PCH )
|
|
target_precompile_headers( kicommon
|
|
PRIVATE
|
|
<kicommon.h>
|
|
<algorithm>
|
|
<map>
|
|
<memory>
|
|
<optional>
|
|
<set>
|
|
<string>
|
|
<vector>
|
|
<kiid.h>
|
|
<pgm_base.h>
|
|
<wx/wx.h>
|
|
)
|
|
endif()
|
|
|
|
set_target_properties(kicommon PROPERTIES CXX_VISIBILITY_PRESET hidden)
|
|
|
|
target_link_libraries( kicommon
|
|
core
|
|
kiapi
|
|
kimath
|
|
kiplatform
|
|
nlohmann_json
|
|
nlohmann_json_schema_validator
|
|
FastFloat::fast_float
|
|
fmt::fmt
|
|
CURL::libcurl
|
|
picosha2
|
|
rapidcsv
|
|
sexpr
|
|
glad
|
|
${ZSTD_LIBRARY}
|
|
${wxWidgets_LIBRARIES}
|
|
${LIBGIT2_LIBRARIES}
|
|
${SPNAV_LIBRARIES}
|
|
|
|
# needed by kiid to allow linking for Boost for the UUID against bcrypt (msys2 only)
|
|
${EXTRA_LIBS}
|
|
|
|
# outline font support
|
|
${FREETYPE_LIBRARIES}
|
|
${HarfBuzz_LIBRARIES}
|
|
${Fontconfig_LIBRARIES}
|
|
|
|
# needed because of python_scripting.cpp
|
|
${PYTHON_LIBRARIES}
|
|
)
|
|
|
|
|
|
if( KICAD_USE_SENTRY )
|
|
target_link_libraries( kicommon
|
|
sentry )
|
|
|
|
set_property(SOURCE app_monitor.cpp APPEND PROPERTY COMPILE_DEFINITIONS KICAD_SENTRY_DSN="${KICAD_SENTRY_DSN}")
|
|
endif()
|
|
|
|
if( KICAD_IPC_API )
|
|
target_link_libraries( kicommon
|
|
kinng
|
|
)
|
|
endif()
|
|
|
|
include( ${KICAD_CMAKE_MODULE_PATH}/KiCadVersion.cmake )
|
|
include( ${KICAD_CMAKE_MODULE_PATH}/CreateGitVersionHeader.cmake )
|
|
create_git_version_header(${CMAKE_SOURCE_DIR})
|
|
|
|
# Extract the major and minor build version as a string
|
|
string( REGEX MATCH
|
|
"([0-9]+)\\.([0-9]+)\\.([0-9]+)"
|
|
KICAD_MAJOR_MINOR_PATCH_VERSION
|
|
"${KICAD_VERSION}"
|
|
)
|
|
|
|
set_target_properties( kicommon PROPERTIES
|
|
OUTPUT_NAME kicommon
|
|
SOVERSION ${KICAD_MAJOR_MINOR_PATCH_VERSION}
|
|
)
|
|
|
|
install( TARGETS kicommon
|
|
RUNTIME DESTINATION ${KICAD_LIB}
|
|
LIBRARY DESTINATION ${KICAD_LIB}
|
|
COMPONENT binary
|
|
)
|
|
|
|
if( APPLE )
|
|
# puts library into the main kicad.app bundle in build tree
|
|
set_target_properties( kicommon PROPERTIES
|
|
LIBRARY_OUTPUT_DIRECTORY "${OSX_BUNDLE_BUILD_LIB_DIR}"
|
|
INSTALL_NAME_DIR "${OSX_BUNDLE_BUILD_LIB_DIR}"
|
|
)
|
|
set_target_properties( kicommon PROPERTIES INSTALL_RPATH
|
|
"@executable_path/../Frameworks" )
|
|
set_target_properties( kicommon PROPERTIES BUILD_WITH_INSTALL_RPATH 1 )
|
|
endif()
|
|
|
|
target_compile_definitions( kicommon PRIVATE KICOMMON_DLL=1 )
|
|
|
|
target_include_directories( kicommon
|
|
PUBLIC
|
|
.
|
|
${CMAKE_BINARY_DIR}
|
|
$<TARGET_PROPERTY:dynamic_bitset,INTERFACE_INCLUDE_DIRECTORIES>
|
|
$<TARGET_PROPERTY:magic_enum,INTERFACE_INCLUDE_DIRECTORIES>
|
|
$<TARGET_PROPERTY:pegtl,INTERFACE_INCLUDE_DIRECTORIES>
|
|
$<TARGET_PROPERTY:expected,INTERFACE_INCLUDE_DIRECTORIES>
|
|
$<TARGET_PROPERTY:kiapi,INTERFACE_INCLUDE_DIRECTORIES>
|
|
$<TARGET_PROPERTY:picosha2,INTERFACE_INCLUDE_DIRECTORIES>
|
|
$<TARGET_PROPERTY:nlohmann_json_schema_validator,INTERFACE_INCLUDE_DIRECTORIES>
|
|
$<TARGET_PROPERTY:thread-pool,INTERFACE_INCLUDE_DIRECTORIES>
|
|
)
|
|
|
|
add_dependencies( kicommon pegtl version_header )
|
|
|
|
if( TARGET remote_provider_schema_build_copy )
|
|
add_dependencies( kicommon remote_provider_schema_build_copy )
|
|
endif()
|
|
|
|
if( MSVC )
|
|
target_sources( kicommon PRIVATE ${CMAKE_SOURCE_DIR}/resources/msw/kicommon-dll.rc )
|
|
endif()
|
|
|
|
set( COMMON_ABOUT_DLG_SRCS
|
|
dialog_about/AboutDialog_main.cpp
|
|
dialog_about/dialog_about.cpp
|
|
dialog_about/dialog_about_base.cpp
|
|
)
|
|
|
|
set( COMMON_GIT_DLG_SRCS
|
|
dialogs/git/dialog_git_commit.cpp
|
|
dialogs/git/dialog_git_switch.cpp
|
|
dialogs/git/dialog_git_auth.cpp
|
|
dialogs/git/dialog_git_repository.cpp
|
|
dialogs/git/dialog_git_repository_base.cpp
|
|
dialogs/git/panel_git_repos.cpp
|
|
dialogs/git/panel_git_repos_base.cpp
|
|
|
|
)
|
|
|
|
set( COMMON_DLG_SRCS
|
|
${COMMON_GIT_DLG_SRCS}
|
|
dialogs/dialog_assign_netclass.cpp
|
|
dialogs/dialog_assign_netclass_base.cpp
|
|
dialogs/dialog_book_reporter.cpp
|
|
dialogs/dialog_book_reporter_base.cpp
|
|
dialogs/dialog_color_picker.cpp
|
|
dialogs/dialog_color_picker_base.cpp
|
|
dialogs/dialog_configure_paths.cpp
|
|
dialogs/dialog_configure_paths_base.cpp
|
|
dialogs/dialog_design_block_properties.cpp
|
|
dialogs/dialog_design_block_properties_base.cpp
|
|
dialogs/dialog_display_html_text_base.cpp
|
|
dialogs/dialog_edit_library_tables.cpp
|
|
dialogs/dialog_grid_settings.cpp
|
|
dialogs/dialog_grid_settings_base.cpp
|
|
dialogs/dialog_group_properties.cpp
|
|
dialogs/dialog_group_properties_base.cpp
|
|
dialogs/dialog_hotkey_list.cpp
|
|
dialogs/dialog_import_choose_project.cpp
|
|
dialogs/dialog_import_choose_project_base.cpp
|
|
dialogs/dialog_multi_unit_entry.cpp
|
|
dialogs/dialog_page_settings_base.cpp
|
|
dialogs/dialog_paste_special.cpp
|
|
dialogs/dialog_paste_special_base.cpp
|
|
dialogs/dialog_plugin_options.cpp
|
|
dialogs/dialog_plugin_options_base.cpp
|
|
dialogs/dialog_text_entry_base.cpp
|
|
dialogs/dialog_page_settings.cpp
|
|
dialogs/dialog_print_generic.cpp
|
|
dialogs/dialog_print_generic_base.cpp
|
|
dialogs/dialog_text_entry.cpp
|
|
dialogs/dialog_unit_entry.cpp
|
|
dialogs/dialog_unit_entry_base.cpp
|
|
dialogs/eda_list_dialog.cpp
|
|
dialogs/eda_list_dialog_base.cpp
|
|
dialogs/eda_reorderable_list_dialog.cpp
|
|
dialogs/eda_reorderable_list_dialog_base.cpp
|
|
dialogs/eda_view_switcher.cpp
|
|
dialogs/eda_view_switcher_base.cpp
|
|
dialogs/hotkey_cycle_popup.cpp
|
|
dialogs/html_message_box.cpp
|
|
dialogs/panel_color_settings_base.cpp
|
|
dialogs/panel_color_settings.cpp
|
|
dialogs/panel_common_settings.cpp
|
|
dialogs/panel_common_settings_base.cpp
|
|
dialogs/panel_design_block_lib_table_base.cpp
|
|
dialogs/panel_design_block_lib_table.cpp
|
|
dialogs/panel_embedded_files.cpp
|
|
dialogs/panel_embedded_files_base.cpp
|
|
dialogs/panel_base_display_options.cpp
|
|
dialogs/panel_base_display_options.cpp
|
|
dialogs/panel_hotkeys_editor.cpp
|
|
dialogs/panel_image_editor.cpp
|
|
dialogs/panel_image_editor_base.cpp
|
|
dialogs/panel_gal_options.cpp
|
|
dialogs/panel_gal_options_base.cpp
|
|
dialogs/panel_grid_settings.cpp
|
|
dialogs/panel_grid_settings_base.cpp
|
|
dialogs/panel_maintenance.cpp
|
|
dialogs/panel_maintenance_base.cpp
|
|
dialogs/panel_mouse_settings.cpp
|
|
dialogs/panel_mouse_settings_base.cpp
|
|
dialogs/panel_spacemouse.cpp
|
|
dialogs/panel_spacemouse_base.cpp
|
|
dialogs/panel_packages_and_updates.cpp
|
|
dialogs/panel_packages_and_updates_base.cpp
|
|
dialogs/panel_plugin_settings.cpp
|
|
dialogs/panel_plugin_settings_base.cpp
|
|
dialogs/panel_setup_netclasses.cpp
|
|
dialogs/panel_printer_list.cpp
|
|
dialogs/panel_printer_list_base.cpp
|
|
|
|
dialogs/panel_setup_netclasses_base.cpp
|
|
dialogs/panel_setup_severities.cpp
|
|
dialogs/panel_text_variables.cpp
|
|
dialogs/panel_text_variables_base.cpp
|
|
dialogs/panel_toolbar_customization.cpp
|
|
dialogs/panel_toolbar_customization_base.cpp
|
|
|
|
dialogs/rule_editor_dialog_base.cpp
|
|
|
|
libraries/lib_table_grid_data_model.cpp
|
|
)
|
|
|
|
if( KICAD_USE_SENTRY )
|
|
list( APPEND COMMON_DLG_SRCS
|
|
dialogs/panel_data_collection.cpp
|
|
dialogs/panel_data_collection_base.cpp
|
|
)
|
|
endif()
|
|
|
|
set( COMMON_WIDGET_SRCS
|
|
widgets/app_progress_dialog.cpp
|
|
widgets/wx_bitmap_combobox.cpp
|
|
widgets/bitmap_toggle.cpp
|
|
widgets/button_row_panel.cpp
|
|
widgets/color_swatch.cpp
|
|
widgets/design_block_pane.cpp
|
|
widgets/filter_combobox.cpp
|
|
widgets/font_choice.cpp
|
|
widgets/footprint_choice.cpp
|
|
widgets/footprint_diff_widget.cpp
|
|
widgets/footprint_preview_widget.cpp
|
|
widgets/footprint_select_widget.cpp
|
|
widgets/grid_bitmap_toggle.cpp
|
|
widgets/grid_button.cpp
|
|
widgets/grid_checkbox.cpp
|
|
widgets/grid_color_swatch_helpers.cpp
|
|
widgets/wx_infobar.cpp
|
|
widgets/layer_box_selector.cpp
|
|
widgets/layer_presentation.cpp
|
|
widgets/lib_tree.cpp
|
|
widgets/listbox_tricks.cpp
|
|
widgets/mathplot.cpp
|
|
widgets/msgpanel.cpp
|
|
widgets/paged_dialog.cpp
|
|
widgets/panel_design_block_chooser.cpp
|
|
widgets/properties_panel.cpp
|
|
widgets/search_pane.cpp
|
|
widgets/search_pane_base.cpp
|
|
widgets/search_pane_tab.cpp
|
|
widgets/split_button.cpp
|
|
widgets/stepped_slider.cpp
|
|
widgets/text_ctrl_eval.cpp
|
|
widgets/margin_offset_binder.cpp
|
|
widgets/unit_binder.cpp
|
|
widgets/widget_save_restore.cpp
|
|
widgets/widget_hotkey_list.cpp
|
|
widgets/wx_aui_art_providers.cpp
|
|
widgets/wx_aui_utils.cpp
|
|
widgets/wx_busy_indicator.cpp
|
|
widgets/wx_collapsible_pane.cpp
|
|
widgets/wx_combobox.cpp
|
|
widgets/wx_dataviewctrl.cpp
|
|
widgets/wx_ellipsized_static_text.cpp
|
|
widgets/wx_listbox.cpp
|
|
widgets/wx_panel.cpp
|
|
widgets/wx_progress_reporters.cpp
|
|
widgets/wx_splitter_window.cpp
|
|
widgets/wx_treebook.cpp
|
|
widgets/webview_panel.cpp
|
|
widgets/zoom_correction_ctrl.cpp
|
|
)
|
|
|
|
set( COMMON_DRAWING_SHEET_SRCS
|
|
drawing_sheet/ds_data_item.cpp
|
|
drawing_sheet/ds_data_model.cpp
|
|
drawing_sheet/ds_data_model_io.cpp
|
|
drawing_sheet/drawing_sheet_default_description.cpp
|
|
drawing_sheet/ds_draw_item.cpp
|
|
drawing_sheet/ds_proxy_undo_item.cpp
|
|
drawing_sheet/ds_proxy_view_item.cpp
|
|
drawing_sheet/drawing_sheet_parser.cpp
|
|
)
|
|
|
|
set( COMMON_PREVIEW_ITEMS_SRCS
|
|
preview_items/anchor_debug.cpp
|
|
preview_items/angle_item.cpp
|
|
preview_items/arc_assistant.cpp
|
|
preview_items/arc_geom_manager.cpp
|
|
preview_items/bezier_assistant.cpp
|
|
preview_items/bezier_geom_manager.cpp
|
|
preview_items/centreline_rect_item.cpp
|
|
preview_items/construction_geom.cpp
|
|
preview_items/draw_context.cpp
|
|
preview_items/item_drawing_utils.cpp
|
|
preview_items/polygon_geom_manager.cpp
|
|
preview_items/polygon_item.cpp
|
|
preview_items/preview_utils.cpp
|
|
preview_items/ruler_item.cpp
|
|
preview_items/selection_area.cpp
|
|
preview_items/simple_overlay_item.cpp
|
|
preview_items/snap_indicator.cpp
|
|
preview_items/two_point_assistant.cpp
|
|
)
|
|
|
|
set( PLOTTERS_CONTROL_SRCS
|
|
plotters/plotter.cpp
|
|
plotters/DXF_plotter.cpp
|
|
plotters/GERBER_plotter.cpp
|
|
plotters/PDF_plotter.cpp
|
|
plotters/pdf_stroke_font.cpp
|
|
plotters/pdf_outline_font.cpp
|
|
plotters/PS_plotter.cpp
|
|
plotters/SVG_plotter.cpp
|
|
plotters/common_plot_functions.cpp
|
|
)
|
|
|
|
set( COMMON_IO_SRCS
|
|
|
|
# Altium
|
|
io/altium/altium_binary_parser.cpp
|
|
io/altium/altium_ascii_parser.cpp
|
|
io/altium/altium_parser_utils.cpp
|
|
io/altium/altium_project_variants.cpp
|
|
io/altium/altium_props_utils.cpp
|
|
|
|
# Cadstar
|
|
io/cadstar/cadstar_archive_parser.cpp
|
|
io/cadstar/cadstar_parts_lib_parser.cpp
|
|
|
|
# Eagle
|
|
io/eagle/eagle_parser.cpp
|
|
|
|
# EasyEDA
|
|
io/easyeda/easyeda_parser_base.cpp
|
|
io/easyeda/easyeda_parser_structs.cpp
|
|
|
|
# EasyEDA pro
|
|
io/easyedapro/easyedapro_parser.cpp
|
|
io/easyedapro/easyedapro_import_utils.cpp
|
|
|
|
io/csv.cpp
|
|
)
|
|
|
|
set ( COMMON_TRANSLINE_CALCULATION_SRCS
|
|
transline_calculations/transline_calculation_base.cpp
|
|
transline_calculations/microstrip.cpp
|
|
transline_calculations/coupled_microstrip.cpp
|
|
transline_calculations/stripline.cpp
|
|
transline_calculations/coupled_stripline.cpp
|
|
)
|
|
|
|
set( COMMON_IMPORT_GFX_SRCS
|
|
import_gfx/graphics_import_mgr.cpp
|
|
import_gfx/graphics_importer.cpp
|
|
import_gfx/graphics_importer_buffer.cpp
|
|
import_gfx/dxf_import_plugin.cpp
|
|
import_gfx/svg_import_plugin.cpp
|
|
)
|
|
|
|
|
|
set( COMMON_SRCS
|
|
${LIB_KICAD_SRCS}
|
|
${COMMON_ABOUT_DLG_SRCS}
|
|
${COMMON_DLG_SRCS}
|
|
${COMMON_WIDGET_SRCS}
|
|
${COMMON_DRAWING_SHEET_SRCS}
|
|
${COMMON_PREVIEW_ITEMS_SRCS}
|
|
${PLOTTERS_CONTROL_SRCS}
|
|
${COMMON_IO_SRCS}
|
|
${FONT_SRCS}
|
|
${COMMON_IMPORT_GFX_SRCS}
|
|
${COMMON_TRANSLINE_CALCULATION_SRCS}
|
|
base_screen.cpp
|
|
bin_mod.cpp
|
|
bitmap_base.cpp
|
|
board_printout.cpp
|
|
clipboard.cpp
|
|
commit.cpp
|
|
draw_panel_gal.cpp
|
|
gal_display_options_common.cpp
|
|
gr_text.cpp
|
|
eda_base_frame.cpp
|
|
eda_dde.cpp
|
|
eda_draw_frame.cpp
|
|
eda_group.cpp
|
|
eda_item.cpp
|
|
eda_shape.cpp
|
|
eda_text.cpp
|
|
executable_names.cpp
|
|
filename_resolver.cpp
|
|
file_history.cpp
|
|
filter_reader.cpp
|
|
footprint_filter.cpp
|
|
footprint_info.cpp
|
|
gbr_metadata.cpp
|
|
gr_basic.cpp
|
|
hotkey_store.cpp
|
|
hotkeys_basic.cpp
|
|
inspectable.cpp
|
|
kiface_base.cpp
|
|
kiway_player.cpp
|
|
lib_table_grid_tricks.cpp
|
|
lib_table_notebook_panel.cpp
|
|
lib_tree_model.cpp
|
|
lib_tree_model_adapter.cpp
|
|
design_block_tree_model_adapter.cpp
|
|
marker_base.cpp
|
|
origin_transforms.cpp
|
|
pin_numbers.cpp
|
|
printout.cpp
|
|
ptree.cpp
|
|
rc_item.cpp
|
|
refdes_utils.cpp
|
|
reference_image.cpp
|
|
render_settings.cpp
|
|
status_popup.cpp
|
|
stroke_params.cpp
|
|
template_fieldnames.cpp
|
|
textentry_tricks.cpp
|
|
undo_redo_container.cpp
|
|
validators.cpp
|
|
drawing_sheet/ds_painter.cpp
|
|
view/wx_view_controls.cpp
|
|
)
|
|
|
|
set( COMMON_SRCS
|
|
${COMMON_SRCS}
|
|
|
|
origin_viewitem.cpp
|
|
|
|
tool/action_manager.cpp
|
|
tool/action_menu.cpp
|
|
tool/action_toolbar.cpp
|
|
tool/actions.cpp
|
|
tool/common_control.cpp
|
|
tool/construction_manager.cpp
|
|
tool/common_tools.cpp
|
|
tool/conditional_menu.cpp
|
|
tool/design_block_control.cpp
|
|
tool/edit_constraints.cpp
|
|
tool/edit_points.cpp
|
|
tool/editor_conditions.cpp
|
|
tool/embed_tool.cpp
|
|
tool/grid_helper.cpp
|
|
tool/grid_menu.cpp
|
|
tool/group_tool.cpp
|
|
tool/library_editor_control.cpp
|
|
tool/picker_tool.cpp
|
|
tool/point_editor_behavior.cpp
|
|
tool/properties_tool.cpp
|
|
tool/selection.cpp
|
|
tool/selection_tool.cpp
|
|
tool/selection_conditions.cpp
|
|
tool/tool_action.cpp
|
|
tool/tool_base.cpp
|
|
tool/tool_dispatcher.cpp
|
|
tool/tool_event.cpp
|
|
tool/tools_holder.cpp
|
|
tool/tool_interactive.cpp
|
|
tool/tool_manager.cpp
|
|
tool/tool_menu.cpp
|
|
tool/zoom_menu.cpp
|
|
tool/zoom_tool.cpp
|
|
|
|
settings/cvpcb_settings.cpp
|
|
|
|
properties/color4d_variant.cpp
|
|
properties/eda_angle_variant.cpp
|
|
properties/pg_cell_renderer.cpp
|
|
properties/pg_editors.cpp
|
|
properties/pg_properties.cpp
|
|
properties/property_mgr.cpp
|
|
properties/std_optional_variants.cpp
|
|
|
|
database/database_connection.cpp
|
|
|
|
http_lib/http_lib_connection.cpp
|
|
http_lib/http_lib_settings.cpp
|
|
|
|
api/api_enums.cpp
|
|
)
|
|
|
|
# This needs to be in the common library until draw_panel_gal is moved to kicommon
|
|
if( UNIX AND NOT APPLE )
|
|
list( APPEND COMMON_SRCS
|
|
spacenav/spnav_2d_plugin.cpp
|
|
)
|
|
endif()
|
|
|
|
if( KICAD_IPC_API )
|
|
set( COMMON_SRCS
|
|
${COMMON_SRCS}
|
|
api/api_handler_common.cpp
|
|
api/api_handler_editor.cpp
|
|
)
|
|
endif()
|
|
|
|
add_library( common STATIC
|
|
${COMMON_SRCS}
|
|
$<TARGET_OBJECTS:netlist_reader_obj>
|
|
)
|
|
|
|
if( KICAD_USE_PCH )
|
|
target_precompile_headers( common
|
|
PRIVATE
|
|
<kicommon.h>
|
|
<algorithm>
|
|
<map>
|
|
<memory>
|
|
<optional>
|
|
<set>
|
|
<string>
|
|
<vector>
|
|
<clipper2/clipper.h>
|
|
<eda_draw_frame.h>
|
|
<kiid.h>
|
|
<pgm_base.h>
|
|
<wx/wx.h>
|
|
)
|
|
endif()
|
|
|
|
add_dependencies( common version_header )
|
|
|
|
if( TARGET remote_provider_schema_build_copy )
|
|
add_dependencies( common remote_provider_schema_build_copy )
|
|
endif()
|
|
add_dependencies( common compoundfilereader ) # used by altium_parser.cpp
|
|
|
|
target_link_libraries( common
|
|
libcontext
|
|
kimath
|
|
kiplatform
|
|
kicommon
|
|
core
|
|
fmt::fmt
|
|
gal
|
|
nanosvg
|
|
dxflib_qcad
|
|
tinyspline_lib
|
|
scripting
|
|
nlohmann_json
|
|
pybind11::embed
|
|
compoundfilereader
|
|
Boost::headers
|
|
# Database support needs these two
|
|
nanodbc # for now; maybe hoist out of common
|
|
Boost::locale
|
|
${wxWidgets_LIBRARIES}
|
|
${EXTRA_LIBS}
|
|
# outline font support
|
|
${FREETYPE_LIBRARIES}
|
|
${HarfBuzz_LIBRARIES}
|
|
${Fontconfig_LIBRARIES}
|
|
)
|
|
|
|
if( KICAD_USE_SENTRY )
|
|
target_link_libraries( common
|
|
sentry )
|
|
endif()
|
|
|
|
if( KICAD_IPC_API )
|
|
target_link_libraries( common
|
|
kinng
|
|
)
|
|
endif()
|
|
|
|
target_include_directories( common
|
|
PUBLIC
|
|
.
|
|
${CMAKE_BINARY_DIR}
|
|
$<TARGET_PROPERTY:argparse::argparse,INTERFACE_INCLUDE_DIRECTORIES>
|
|
$<TARGET_PROPERTY:kiapi,INTERFACE_INCLUDE_DIRECTORIES>
|
|
)
|
|
|
|
# text markup support
|
|
add_dependencies( common pegtl )
|
|
|
|
target_include_directories( common PUBLIC
|
|
$<TARGET_PROPERTY:pegtl,INTERFACE_INCLUDE_DIRECTORIES>
|
|
$<TARGET_PROPERTY:magic_enum,INTERFACE_INCLUDE_DIRECTORIES>
|
|
)
|
|
|
|
target_include_directories( common SYSTEM PUBLIC
|
|
$<TARGET_PROPERTY:nanodbc,INTERFACE_INCLUDE_DIRECTORIES>
|
|
)
|
|
|
|
set( PCB_COMMON_SRCS
|
|
hash_eda.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_base_frame.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcbexpr_evaluator.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcbexpr_functions.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/board_commit.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/board_connected_item.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/board_design_settings.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/teardrop/teardrop_parameters.cpp #needed by board_design_settings.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/router/pns_meander.cpp #needed by board_design_settings.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/board.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/component_classes/component_class.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/component_classes/component_class_assignment_rule.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/component_classes/component_class_cache_proxy.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/component_classes/component_class_manager.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/board_item.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_barcode.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_dimension.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_shape.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_group.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_marker.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/footprint.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/footprint_library_adapter.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/fix_board_shape.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/layer_utils.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/netinfo_item.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/netinfo_list.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pad.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pad_utils.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/padstack.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_point.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_target.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_reference_image.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_field.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_table.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_tablecell.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_text.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_textbox.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/project_pcb.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/board_stackup_manager/board_stackup.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_track.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_generator.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/zone.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/zone_utils.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/collectors.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/connectivity/connectivity_algo.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/connectivity/connectivity_items.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/connectivity/connectivity_data.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/connectivity/from_to_cache.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/convert_shape_list_to_polygon.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/drc/drc_engine.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/drc/drc_cache_generator.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/drc/drc_item.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/drc/drc_rule.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/drc/drc_rule_condition.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/drc/drc_rule_parser.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/drc/drc_test_provider.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/footprint_editor_settings.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/generators_mgr.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/kicad_clipboard.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/netlist_reader/kicad_netlist_reader.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/netlist_reader/legacy_netlist_reader.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/netlist_reader/netlist_reader.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_draw_panel_gal.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/netlist_reader/pcb_netlist.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_origin_transforms.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_painter.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_plot_params.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_screen.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_view.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcbnew_settings.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/ratsnest/ratsnest_data.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/ratsnest/ratsnest_view_item.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/sel_layer.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/teardrop/teardrop.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/teardrop/teardrop_parameters.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/teardrop/teardrop_utils.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/zone_settings.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_board_outline.cpp
|
|
|
|
# IO files
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_io/pcb_io.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_io/pcb_io_mgr.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_io/kicad_legacy/pcb_io_kicad_legacy.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_io/kicad_sexpr/pcb_io_kicad_sexpr.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_io/kicad_sexpr/pcb_io_kicad_sexpr_parser.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_io/eagle/pcb_io_eagle.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/pcb_io/geda/pcb_io_geda.cpp
|
|
|
|
${CMAKE_SOURCE_DIR}/pcbnew/tools/pcb_grid_helper.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/tools/pcb_actions.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/tools/pcb_editor_conditions.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/tools/pcb_viewer_tools.cpp
|
|
|
|
${CMAKE_SOURCE_DIR}/pcbnew/length_delay_calculation/length_delay_calculation.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/length_delay_calculation/length_delay_calculation_item.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/length_delay_calculation/tuning_profile_parameters_user_defined.cpp
|
|
|
|
widgets/net_selector.cpp
|
|
widgets/netclass_selector.cpp
|
|
widgets/area_selector.cpp
|
|
)
|
|
|
|
set( PCB_COMMON_SRCS
|
|
${PCB_COMMON_SRCS}
|
|
${CMAKE_SOURCE_DIR}/pcbnew/api/api_pcb_enums.cpp
|
|
${CMAKE_SOURCE_DIR}/pcbnew/api/api_pcb_utils.cpp
|
|
)
|
|
|
|
add_library( pcbcommon STATIC ${PCB_COMMON_SRCS} )
|
|
|
|
if( KICAD_USE_PCH )
|
|
target_precompile_headers( pcbcommon
|
|
PRIVATE
|
|
<vector>
|
|
<map>
|
|
<memory>
|
|
<unordered_map>
|
|
<board.h>
|
|
<footprint.h>
|
|
<zone.h>
|
|
<connectivity/connectivity_data.h>
|
|
<drc/drc_engine.h> )
|
|
endif()
|
|
|
|
target_compile_definitions(pcbcommon PRIVATE PCBNEW)
|
|
|
|
target_include_directories( pcbcommon PRIVATE
|
|
)
|
|
|
|
target_link_libraries( pcbcommon PUBLIC
|
|
core
|
|
common
|
|
delaunator
|
|
kimath
|
|
kiplatform
|
|
nanoflann
|
|
zint
|
|
)
|
|
|
|
if( APPLE OR NOT UNIX )
|
|
# On Windows/MacOS, the SpaceMouse support is provided by the navlib subdirectory
|
|
message( STATUS "Including 3Dconnexion SpaceMouse navigation support in pcbcommon" )
|
|
add_subdirectory( ../pcbnew/navlib ./navlib)
|
|
target_link_libraries( pcbcommon PUBLIC pcbnew_navlib)
|
|
endif()
|
|
|
|
add_dependencies( pcbcommon delaunator )
|
|
|
|
# The lemon grammar for the numeric evaluator
|
|
generate_lemon_grammar(
|
|
kicommon
|
|
libeval
|
|
libeval/numeric_evaluator.cpp
|
|
libeval/grammar.lemon
|
|
)
|
|
|
|
# The lemon grammar for the expression compiler
|
|
generate_lemon_grammar(
|
|
kicommon
|
|
libeval_compiler
|
|
libeval_compiler/libeval_compiler.cpp
|
|
libeval_compiler/grammar.lemon
|
|
)
|
|
|
|
generate_lemon_grammar(
|
|
kicommon
|
|
text_eval
|
|
text_eval/text_eval_wrapper.cpp
|
|
text_eval/text_eval.lemon
|
|
)
|
|
|
|
# auto-generate stroke_params_lexer.h and stroke_params_keywords.cpp
|
|
# Called twice one for common and one for gal, to ensure the files are created
|
|
# on all devel tools ( Linux and msys2 )
|
|
# works on Linux:
|
|
make_lexer_export(
|
|
kicommon
|
|
stroke_params.keywords
|
|
stroke_params_lexer.h
|
|
stroke_params_keywords.cpp
|
|
STROKEPARAMS_T
|
|
KICOMMON_API
|
|
kicommon.h
|
|
)
|
|
|
|
# auto-generate netlist_lexer.h and netlist_keywords.cpp
|
|
make_lexer_export(
|
|
kicommon
|
|
netlist.keywords
|
|
netlist_lexer.h
|
|
netlist_keywords.cpp
|
|
NL_T
|
|
KICOMMON_API
|
|
kicommon.h
|
|
)
|
|
|
|
# auto-generate pcb_plot_params_lexer.h and pcb_plot_params_keywords.cpp
|
|
make_lexer(
|
|
pcbcommon
|
|
pcb_plot_params.keywords
|
|
pcb_plot_params_lexer.h
|
|
pcb_plot_params_keywords.cpp
|
|
PCBPLOTPARAMS_T
|
|
)
|
|
|
|
# auto-generate drc_rules_lexer.h and drc_rules_keywords.cpp
|
|
make_lexer_export(
|
|
kicommon
|
|
drc_rules.keywords
|
|
drc_rules_lexer.h
|
|
drc_rules_keywords.cpp
|
|
DRCRULE_T
|
|
KICOMMON_API
|
|
kicommon.h
|
|
)
|
|
|
|
|
|
# auto-generate pcbnew_sexpr.h and pcbnew_sexpr.cpp
|
|
make_lexer(
|
|
pcbcommon
|
|
pcb.keywords
|
|
pcb_lexer.h
|
|
pcb_keywords.cpp
|
|
PCB_KEYS_T
|
|
)
|
|
|
|
# auto-generate s-expression library table code.
|
|
make_lexer_export(
|
|
kicommon
|
|
lib_table.keywords
|
|
lib_table_lexer.h
|
|
lib_table_keywords.cpp
|
|
LIB_TABLE_T
|
|
KICOMMON_API
|
|
kicommon.h
|
|
)
|
|
|
|
# auto-generate s-expression template fieldnames lexer and keywords.
|
|
make_lexer_export(
|
|
kicommon
|
|
template_fieldnames.keywords
|
|
template_fieldnames_lexer.h
|
|
template_fieldnames_keywords.cpp
|
|
TFIELD_T
|
|
KICOMMON_API
|
|
kicommon.h
|
|
)
|
|
|
|
# auto-generate page layout reader s-expression page_layout_reader_lexer.h
|
|
# and title_block_reader_keywords.cpp.
|
|
make_lexer_export(
|
|
kicommon
|
|
drawing_sheet/drawing_sheet.keywords
|
|
drawing_sheet/drawing_sheet_lexer.h
|
|
drawing_sheet/drawing_sheet_keywords.cpp
|
|
DRAWINGSHEET_T
|
|
KICOMMON_API
|
|
kicommon.h
|
|
)
|
|
|
|
# auto-generate embedded files lexer and keywords
|
|
make_lexer_export(
|
|
kicommon
|
|
embedded_files.keywords
|
|
embedded_files_lexer.h
|
|
embedded_files_keywords.cpp
|
|
EMBEDDED_FILES_T
|
|
KICOMMON_API
|
|
kicommon.h
|
|
)
|
|
|
|
# This one gets made only when testing.
|
|
# to build it, first enable #define STAND_ALONE at top of dsnlexer.cpp
|
|
add_executable( dsntest EXCLUDE_FROM_ALL dsnlexer.cpp )
|
|
target_link_libraries( dsntest common ${wxWidgets_LIBRARIES} rt )
|