Fix build order for generated headers and sources
This changes make_lexer() so that it no longer generates a custom target but instead attaches the generated files to an existing one (so the first argument now is the name of an existing library or executable, and it needs to come after the add_library/add_executable call). The generated source is no longer listed in the project sources, as it is added by the function. The files are generated in the build tree rather than the source tree, and the directory is added to the include path for the respective project as well as exported to projects linking against it. Generated files in subdirectories are somewhat supported, but need to be referenced with the same name as they were generated (i.e. including the subdirectory name). Fixes: lp:1831643 * https://bugs.launchpad.net/kicad/+bug/1831643 Fixes: lp:1832357 * https://bugs.launchpad.net/kicad/+bug/1832357 Fixes: lp:1833851 * https://bugs.launchpad.net/kicad/+bug/1833851
This commit is contained in:
parent
c715a22e1c
commit
c8c3e1f96a
|
@ -33,35 +33,24 @@
|
||||||
function( make_lexer outputTarget inputFile outHeaderFile outCppFile enum )
|
function( make_lexer outputTarget inputFile outHeaderFile outCppFile enum )
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${outHeaderFile}
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${outHeaderFile}
|
||||||
${outCppFile}
|
${CMAKE_CURRENT_BINARY_DIR}/${outCppFile}
|
||||||
COMMAND ${CMAKE_COMMAND}
|
COMMAND ${CMAKE_COMMAND}
|
||||||
-Denum=${enum}
|
-Denum=${enum}
|
||||||
-DinputFile=${inputFile}
|
-DinputFile=${CMAKE_CURRENT_SOURCE_DIR}/${inputFile}
|
||||||
-DoutHeaderFile=${outHeaderFile}
|
-DoutHeaderFile=${CMAKE_CURRENT_BINARY_DIR}/${outHeaderFile}
|
||||||
-DoutCppFile=${outCppFile}
|
-DoutCppFile=${CMAKE_CURRENT_BINARY_DIR}/${outCppFile}
|
||||||
-P ${CMAKE_MODULE_PATH}/TokenList2DsnLexer.cmake
|
-P ${CMAKE_MODULE_PATH}/TokenList2DsnLexer.cmake
|
||||||
COMMENT "TokenList2DsnLexer.cmake creating:
|
COMMENT "TokenList2DsnLexer.cmake creating:
|
||||||
${outHeaderFile} and
|
${outHeaderFile} and
|
||||||
${outCppFile} from
|
${outCppFile} from
|
||||||
${inputFile}"
|
${inputFile}"
|
||||||
DEPENDS ${inputFile}
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${inputFile}
|
||||||
)
|
|
||||||
|
|
||||||
add_custom_target( ${outputTarget}
|
|
||||||
DEPENDS ${outHeaderFile} ${outCppFile}
|
|
||||||
${CMAKE_MODULE_PATH}/TokenList2DsnLexer.cmake
|
${CMAKE_MODULE_PATH}/TokenList2DsnLexer.cmake
|
||||||
)
|
)
|
||||||
set_property( GLOBAL PROPERTY ADDITIONAL_MAKE_CLEAN_FILES ${outHeaderFile} ${outCppFile} )
|
|
||||||
|
|
||||||
# extra_args, if any, are treated as source files (typically headers) which
|
|
||||||
# are known to depend on the generated outHeader.
|
|
||||||
foreach( extra_arg ${ARGN} )
|
|
||||||
set_source_files_properties( ${extra_arg}
|
|
||||||
PROPERTIES OBJECT_DEPENDS ${outHeaderFile}
|
|
||||||
)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
|
target_sources( ${outputTarget} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${outCppFile} )
|
||||||
|
target_include_directories( ${outputTarget} PUBLIC ${CMAKE_CURRENT_BINARY_DIR} )
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -150,7 +150,7 @@ set( sourceFileHeader
|
||||||
* your DSN lexer.
|
* your DSN lexer.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <${result}_lexer.h>
|
#include <${outHeaderFile}>
|
||||||
|
|
||||||
using namespace ${enum};
|
using namespace ${enum};
|
||||||
|
|
||||||
|
|
|
@ -220,7 +220,6 @@ set( COMMON_PAGE_LAYOUT_SRCS
|
||||||
page_layout/ws_draw_item.cpp
|
page_layout/ws_draw_item.cpp
|
||||||
page_layout/ws_proxy_undo_item.cpp
|
page_layout/ws_proxy_undo_item.cpp
|
||||||
page_layout/ws_proxy_view_item.cpp
|
page_layout/ws_proxy_view_item.cpp
|
||||||
page_layout/page_layout_reader_keywords.cpp
|
|
||||||
page_layout/page_layout_reader.cpp
|
page_layout/page_layout_reader.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -312,14 +311,12 @@ set( COMMON_SRCS
|
||||||
languages_menu.cpp
|
languages_menu.cpp
|
||||||
lib_id.cpp
|
lib_id.cpp
|
||||||
lib_table_base.cpp
|
lib_table_base.cpp
|
||||||
lib_table_keywords.cpp
|
|
||||||
lib_tree_model.cpp
|
lib_tree_model.cpp
|
||||||
lib_tree_model_adapter.cpp
|
lib_tree_model_adapter.cpp
|
||||||
lockfile.cpp
|
lockfile.cpp
|
||||||
marker_base.cpp
|
marker_base.cpp
|
||||||
md5_hash.cpp
|
md5_hash.cpp
|
||||||
msgpanel.cpp
|
msgpanel.cpp
|
||||||
netlist_keywords.cpp
|
|
||||||
observable.cpp
|
observable.cpp
|
||||||
prependpath.cpp
|
prependpath.cpp
|
||||||
printout.cpp
|
printout.cpp
|
||||||
|
@ -427,8 +424,6 @@ set( PCB_COMMON_SRCS
|
||||||
lset.cpp
|
lset.cpp
|
||||||
origin_viewitem.cpp
|
origin_viewitem.cpp
|
||||||
page_info.cpp
|
page_info.cpp
|
||||||
pcb_keywords.cpp
|
|
||||||
pcb_plot_params_keywords.cpp
|
|
||||||
../pcbnew/pcb_base_frame.cpp
|
../pcbnew/pcb_base_frame.cpp
|
||||||
../pcbnew/board_commit.cpp
|
../pcbnew/board_commit.cpp
|
||||||
../pcbnew/board_connected_item.cpp
|
../pcbnew/board_connected_item.cpp
|
||||||
|
@ -502,78 +497,50 @@ target_link_libraries( pcbcommon PUBLIC
|
||||||
|
|
||||||
# auto-generate netlist_lexer.h and netlist_keywords.cpp
|
# auto-generate netlist_lexer.h and netlist_keywords.cpp
|
||||||
make_lexer(
|
make_lexer(
|
||||||
netlist_lexer_source_files
|
common
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/netlist.keywords
|
netlist.keywords
|
||||||
${PROJECT_SOURCE_DIR}/include/netlist_lexer.h
|
netlist_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/netlist_keywords.cpp
|
netlist_keywords.cpp
|
||||||
NL_T
|
NL_T
|
||||||
|
|
||||||
# Pass header file with dependency on *_lexer.h as extra_arg
|
|
||||||
${CMAKE_PROJECT_SOURCE_DIR}/pcbnew/netlist_reader.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies( common netlist_lexer_source_files )
|
|
||||||
add_dependencies( pcbcommon netlist_lexer_source_files )
|
|
||||||
|
|
||||||
# auto-generate pcb_plot_params_lexer.h and pcb_plot_params_keywords.cpp
|
# auto-generate pcb_plot_params_lexer.h and pcb_plot_params_keywords.cpp
|
||||||
make_lexer(
|
make_lexer(
|
||||||
pcb_plot_lexer_source_files
|
pcbcommon
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/pcb_plot_params.keywords
|
pcb_plot_params.keywords
|
||||||
${PROJECT_SOURCE_DIR}/include/pcb_plot_params_lexer.h
|
pcb_plot_params_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/pcb_plot_params_keywords.cpp
|
pcb_plot_params_keywords.cpp
|
||||||
PCBPLOTPARAMS_T
|
PCBPLOTPARAMS_T
|
||||||
|
|
||||||
# Pass header file with dependencies on *_lexer.h as extra_arg
|
|
||||||
${PROJECT_SOURCE_DIR}/pcbnew/pcb_plot_params.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies( pcbcommon pcb_plot_lexer_source_files )
|
|
||||||
|
|
||||||
# auto-generate pcbnew_sexpr.h and pcbnew_sexpr.cpp
|
# auto-generate pcbnew_sexpr.h and pcbnew_sexpr.cpp
|
||||||
make_lexer(
|
make_lexer(
|
||||||
pcb_lexer_source_files
|
pcbcommon
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/pcb.keywords
|
pcb.keywords
|
||||||
${PROJECT_SOURCE_DIR}/include/pcb_lexer.h
|
pcb_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/pcb_keywords.cpp
|
pcb_keywords.cpp
|
||||||
PCB_KEYS_T
|
PCB_KEYS_T
|
||||||
|
|
||||||
# Pass header file with dependency on *_lexer.h as extra_arg
|
|
||||||
${PROJECT_SOURCE_DIR}/pcbnew/pcb_parser.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies( pcbcommon pcb_lexer_source_files )
|
|
||||||
|
|
||||||
# auto-generate s-expression library table code.
|
# auto-generate s-expression library table code.
|
||||||
make_lexer(
|
make_lexer(
|
||||||
lib_table_lexer_source_files
|
common
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/lib_table.keywords
|
lib_table.keywords
|
||||||
${PROJECT_SOURCE_DIR}/include/lib_table_lexer.h
|
lib_table_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/lib_table_keywords.cpp
|
lib_table_keywords.cpp
|
||||||
LIB_TABLE_T
|
LIB_TABLE_T
|
||||||
|
|
||||||
# These files consume *_lexer.h
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/fp_lib_table.cpp
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/lib_table_base.cpp
|
|
||||||
${PROJECT_SOURCE_DIR}/pcbnew/dialogs/panel_fp_lib_table.cpp
|
|
||||||
${PROJECT_SOURCE_DIR}/eeschema/symbol_lib_table.cpp
|
|
||||||
${PROJECT_SOURCE_DIR}/eeschema/dialogs/panel_sym_lib_table.cpp
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies( common lib_table_lexer_source_files )
|
|
||||||
add_dependencies( pcbcommon lib_table_lexer_source_files )
|
|
||||||
|
|
||||||
# auto-generate page layout reader s-expression page_layout_reader_lexer.h
|
# auto-generate page layout reader s-expression page_layout_reader_lexer.h
|
||||||
# and title_block_reader_keywords.cpp.
|
# and title_block_reader_keywords.cpp.
|
||||||
make_lexer(
|
make_lexer(
|
||||||
page_layout_lexer_source_files
|
common
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/page_layout/page_layout_reader.keywords
|
page_layout/page_layout_reader.keywords
|
||||||
${PROJECT_SOURCE_DIR}/include/page_layout_reader_lexer.h
|
page_layout/page_layout_reader_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/page_layout/page_layout_reader_keywords.cpp
|
page_layout/page_layout_reader_keywords.cpp
|
||||||
TB_READER_T
|
TB_READER_T
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies( common page_layout_lexer_source_files )
|
|
||||||
|
|
||||||
# This one gets made only when testing.
|
# This one gets made only when testing.
|
||||||
# to build it, first enable #define STAND_ALONE at top of dsnlexer.cpp
|
# to build it, first enable #define STAND_ALONE at top of dsnlexer.cpp
|
||||||
add_executable( dsntest EXCLUDE_FROM_ALL dsnlexer.cpp )
|
add_executable( dsntest EXCLUDE_FROM_ALL dsnlexer.cpp )
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
#include <ws_painter.h>
|
#include <ws_painter.h>
|
||||||
#include <ws_draw_item.h>
|
#include <ws_draw_item.h>
|
||||||
#include <ws_data_model.h>
|
#include <ws_data_model.h>
|
||||||
#include <page_layout_reader_lexer.h>
|
#include <page_layout/page_layout_reader_lexer.h>
|
||||||
|
|
||||||
#include <wx/file.h>
|
#include <wx/file.h>
|
||||||
#include <wx/mstream.h>
|
#include <wx/mstream.h>
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
#include <ws_draw_item.h>
|
#include <ws_draw_item.h>
|
||||||
#include <ws_data_model.h>
|
#include <ws_data_model.h>
|
||||||
#include <math/vector2d.h>
|
#include <math/vector2d.h>
|
||||||
#include <page_layout_reader_lexer.h>
|
#include <page_layout/page_layout_reader_lexer.h>
|
||||||
#include <macros.h>
|
#include <macros.h>
|
||||||
#include <convert_to_biu.h>
|
#include <convert_to_biu.h>
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,6 @@ set( EESCHEMA_DLGS
|
||||||
dialogs/dialog_annotate_base.cpp
|
dialogs/dialog_annotate_base.cpp
|
||||||
dialogs/dialog_bom.cpp
|
dialogs/dialog_bom.cpp
|
||||||
dialogs/dialog_bom_base.cpp
|
dialogs/dialog_bom_base.cpp
|
||||||
dialogs/dialog_bom_cfg_keywords.cpp
|
|
||||||
dialogs/dialog_bus_manager.cpp
|
dialogs/dialog_bus_manager.cpp
|
||||||
dialogs/dialog_fields_editor_global.cpp
|
dialogs/dialog_fields_editor_global.cpp
|
||||||
dialogs/dialog_fields_editor_global_base.cpp
|
dialogs/dialog_fields_editor_global_base.cpp
|
||||||
|
@ -136,7 +135,6 @@ set( EESCHEMA_SRCS
|
||||||
bus-wire-junction.cpp
|
bus-wire-junction.cpp
|
||||||
class_libentry.cpp
|
class_libentry.cpp
|
||||||
class_library.cpp
|
class_library.cpp
|
||||||
cmp_library_keywords.cpp
|
|
||||||
cmp_library_lexer.cpp
|
cmp_library_lexer.cpp
|
||||||
component_references_lister.cpp
|
component_references_lister.cpp
|
||||||
connection_graph.cpp
|
connection_graph.cpp
|
||||||
|
@ -206,7 +204,6 @@ set( EESCHEMA_SRCS
|
||||||
symbol_tree_model_adapter.cpp
|
symbol_tree_model_adapter.cpp
|
||||||
symbol_tree_synchronizing_adapter.cpp
|
symbol_tree_synchronizing_adapter.cpp
|
||||||
template_fieldnames.cpp
|
template_fieldnames.cpp
|
||||||
template_fieldnames_keywords.cpp
|
|
||||||
toolbars_sch_editor.cpp
|
toolbars_sch_editor.cpp
|
||||||
toolbars_viewlib.cpp
|
toolbars_viewlib.cpp
|
||||||
transform.cpp
|
transform.cpp
|
||||||
|
@ -335,15 +332,24 @@ add_library( eeschema_kiface_objects OBJECT
|
||||||
|
|
||||||
# CMake <3.9 can't link anything to object libraries,
|
# CMake <3.9 can't link anything to object libraries,
|
||||||
# but we only need include directories, as we will link the kiface MODULE
|
# but we only need include directories, as we will link the kiface MODULE
|
||||||
target_include_directories( eeschema_kiface_objects PRIVATE
|
target_include_directories( eeschema_kiface_objects PUBLIC
|
||||||
$<TARGET_PROPERTY:common,INCLUDE_DIRECTORIES>
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
$<TARGET_PROPERTY:common,INTERFACE_INCLUDE_DIRECTORIES>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Since we're not using target_link_libraries, we need to explicitly
|
||||||
|
# declare the dependency
|
||||||
|
add_dependencies( eeschema_kiface_objects common )
|
||||||
|
|
||||||
add_library( eeschema_kiface MODULE
|
add_library( eeschema_kiface MODULE
|
||||||
eeschema.cpp
|
eeschema.cpp
|
||||||
$<TARGET_OBJECTS:eeschema_kiface_objects>
|
$<TARGET_OBJECTS:eeschema_kiface_objects>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
target_include_directories( eeschema_kiface PUBLIC
|
||||||
|
$<TARGET_PROPERTY:eeschema_kiface_objects,INTERFACE_INCLUDE_DIRECTORIES>
|
||||||
|
)
|
||||||
|
|
||||||
target_link_libraries( eeschema_kiface
|
target_link_libraries( eeschema_kiface
|
||||||
common
|
common
|
||||||
${wxWidgets_LIBRARIES}
|
${wxWidgets_LIBRARIES}
|
||||||
|
@ -442,39 +448,27 @@ endif()
|
||||||
# auto-generate cmp_library_lexer.h and cmp_library_keywords.cpp for the component
|
# auto-generate cmp_library_lexer.h and cmp_library_keywords.cpp for the component
|
||||||
# library format.
|
# library format.
|
||||||
make_lexer(
|
make_lexer(
|
||||||
cmp_library_lexer_source_files
|
eeschema_kiface_objects
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/cmp_library.keywords
|
cmp_library.keywords
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/cmp_library_lexer.h
|
cmp_library_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/cmp_library_keywords.cpp
|
cmp_library_keywords.cpp
|
||||||
TLIB_T
|
TLIB_T
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies( eeschema_kiface cmp_library_lexer_source_files )
|
|
||||||
|
|
||||||
make_lexer(
|
make_lexer(
|
||||||
field_template_lexer_source_files
|
eeschema_kiface_objects
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/template_fieldnames.keywords
|
template_fieldnames.keywords
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/template_fieldnames_lexer.h
|
template_fieldnames_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/template_fieldnames_keywords.cpp
|
template_fieldnames_keywords.cpp
|
||||||
TFIELD_T
|
TFIELD_T
|
||||||
|
|
||||||
# Pass header file with dependency on *_lexer.h as extra_arg
|
|
||||||
template_fieldnames.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies( eeschema_kiface field_template_lexer_source_files )
|
|
||||||
|
|
||||||
make_lexer(
|
make_lexer(
|
||||||
dialog_bom_cfg_lexer_source_files
|
eeschema_kiface_objects
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_cfg.keywords
|
dialogs/dialog_bom_cfg.keywords
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_cfg_lexer.h
|
dialogs/dialog_bom_cfg_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/dialogs/dialog_bom_cfg_keywords.cpp
|
dialogs/dialog_bom_cfg_keywords.cpp
|
||||||
T_BOMCFG_T
|
T_BOMCFG_T
|
||||||
|
|
||||||
# Pass header file with dependency on *_lexer.h as extra_arg
|
|
||||||
dialogs/dialog_bom_cfg.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies( eeschema_kiface dialog_bom_cfg_lexer_source_files )
|
|
||||||
|
|
||||||
add_subdirectory( plugins )
|
add_subdirectory( plugins )
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
#include <bom_plugins.h>
|
#include <bom_plugins.h>
|
||||||
#include <make_unique.h>
|
#include <make_unique.h>
|
||||||
|
|
||||||
#include <dialog_bom_cfg_lexer.h>
|
#include <dialogs/dialog_bom_cfg_lexer.h>
|
||||||
|
|
||||||
static constexpr wxChar BOM_TRACE[] = wxT( "BOM_GENERATORS" );
|
static constexpr wxChar BOM_TRACE[] = wxT( "BOM_GENERATORS" );
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,19 @@ endif( false )
|
||||||
#=====</on standby for possible C++ unit testing>===============================
|
#=====</on standby for possible C++ unit testing>===============================
|
||||||
|
|
||||||
|
|
||||||
|
add_library( sweet SHARED
|
||||||
|
sch_lib_table.cpp
|
||||||
|
sch_lib.cpp
|
||||||
|
sch_lpid.cpp
|
||||||
|
sch_dir_lib_source.cpp
|
||||||
|
sch_part.cpp
|
||||||
|
sch_sweet_parser.cpp
|
||||||
|
${PROJECT_SOURCE_DIR}/common/richio.cpp
|
||||||
|
${PROJECT_SOURCE_DIR}/common/dsnlexer.cpp
|
||||||
|
)
|
||||||
|
|
||||||
make_lexer(
|
make_lexer(
|
||||||
|
sweet
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/sch_lib_table.keywords
|
${CMAKE_CURRENT_SOURCE_DIR}/sch_lib_table.keywords
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/sch_lib_table_lexer.h
|
${CMAKE_CURRENT_SOURCE_DIR}/sch_lib_table_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/sch_lib_table_keywords.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/sch_lib_table_keywords.cpp
|
||||||
|
@ -118,25 +130,13 @@ make_lexer(
|
||||||
)
|
)
|
||||||
|
|
||||||
make_lexer(
|
make_lexer(
|
||||||
|
sweet
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/sweet.keywords
|
${CMAKE_CURRENT_SOURCE_DIR}/sweet.keywords
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/sweet_lexer.h
|
${CMAKE_CURRENT_SOURCE_DIR}/sweet_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/sweet_keywords.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/sweet_keywords.cpp
|
||||||
PR
|
PR
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
add_library( sweet SHARED
|
|
||||||
sch_lib_table.cpp
|
|
||||||
sch_lib_table_keywords.cpp
|
|
||||||
sch_lib.cpp
|
|
||||||
sch_lpid.cpp
|
|
||||||
sch_dir_lib_source.cpp
|
|
||||||
sch_part.cpp
|
|
||||||
sch_sweet_parser.cpp
|
|
||||||
sweet_keywords.cpp
|
|
||||||
${PROJECT_SOURCE_DIR}/common/richio.cpp
|
|
||||||
${PROJECT_SOURCE_DIR}/common/dsnlexer.cpp
|
|
||||||
)
|
|
||||||
target_link_libraries( sweet ${wxWidgets_LIBRARIES} )
|
target_link_libraries( sweet ${wxWidgets_LIBRARIES} )
|
||||||
|
|
||||||
# talk to import_export.h
|
# talk to import_export.h
|
||||||
|
|
|
@ -23,7 +23,6 @@ set( PCB_CALCULATOR_SRCS
|
||||||
via.cpp
|
via.cpp
|
||||||
transline_ident.cpp
|
transline_ident.cpp
|
||||||
UnitSelector.cpp
|
UnitSelector.cpp
|
||||||
pcb_calculator_datafile_keywords.cpp
|
|
||||||
transline/transline.cpp
|
transline/transline.cpp
|
||||||
transline/c_microstrip.cpp
|
transline/c_microstrip.cpp
|
||||||
transline/microstrip.cpp
|
transline/microstrip.cpp
|
||||||
|
@ -151,14 +150,11 @@ endif()
|
||||||
# auto-generate pcb_calculator_datafile.h and pcb_calculator_datafile_keywords.cpp
|
# auto-generate pcb_calculator_datafile.h and pcb_calculator_datafile_keywords.cpp
|
||||||
# for the storage data file format.
|
# for the storage data file format.
|
||||||
make_lexer(
|
make_lexer(
|
||||||
pcb_calculator_lexer_source_files
|
pcb_calculator_kiface
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/pcb_calculator_datafile.keywords
|
pcb_calculator_datafile.keywords
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/pcb_calculator_datafile_lexer.h
|
pcb_calculator_datafile_lexer.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/pcb_calculator_datafile_keywords.cpp
|
pcb_calculator_datafile_keywords.cpp
|
||||||
PCBCALC_DATA_T
|
PCBCALC_DATA_T
|
||||||
|
|
||||||
# Pass header file with dependency on *_lexer.h as extra_arg
|
|
||||||
datafile_read_write.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -191,5 +187,3 @@ set( DOCS_LIST
|
||||||
set_source_files_properties( attenuators/attenuator_classes.cpp
|
set_source_files_properties( attenuators/attenuator_classes.cpp
|
||||||
PROPERTIES OBJECT_DEPENDS "${DOCS_LIST}"
|
PROPERTIES OBJECT_DEPENDS "${DOCS_LIST}"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies( pcb_calculator_kiface pcb_calculator_lexer_source_files )
|
|
||||||
|
|
|
@ -283,7 +283,6 @@ set( PCBNEW_CLASS_SRCS
|
||||||
specctra_import_export/specctra.cpp
|
specctra_import_export/specctra.cpp
|
||||||
specctra_import_export/specctra_export.cpp
|
specctra_import_export/specctra_export.cpp
|
||||||
specctra_import_export/specctra_import.cpp
|
specctra_import_export/specctra_import.cpp
|
||||||
specctra_import_export/specctra_keywords.cpp
|
|
||||||
text_mod_grid_table.cpp
|
text_mod_grid_table.cpp
|
||||||
toolbars_footprint_editor.cpp
|
toolbars_footprint_editor.cpp
|
||||||
toolbars_footprint_viewer.cpp
|
toolbars_footprint_viewer.cpp
|
||||||
|
@ -349,19 +348,6 @@ set( PCBNEW_SCRIPTING_PYTHON_HELPERS
|
||||||
swig/python_scripting.cpp
|
swig/python_scripting.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# auto-generate specctra_lexer.h and specctra_keywords.cpp
|
|
||||||
make_lexer(
|
|
||||||
specctra_lexer_source_files
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/specctra_import_export/specctra.keywords
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/specctra_import_export/specctra_lexer.h
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/specctra_import_export/specctra_keywords.cpp
|
|
||||||
DSN
|
|
||||||
|
|
||||||
# Pass header file with dependency on *_lexer.h as extra_arg
|
|
||||||
specctra_import_export/specctra.h
|
|
||||||
)
|
|
||||||
|
|
||||||
if( COMPILER_SUPPORTS_WSHADOW )
|
if( COMPILER_SUPPORTS_WSHADOW )
|
||||||
# .cpp files are compiled with extra ${WSHADOW_FLAGS}, but not .cxx files
|
# .cpp files are compiled with extra ${WSHADOW_FLAGS}, but not .cxx files
|
||||||
set_source_files_properties(
|
set_source_files_properties(
|
||||||
|
@ -608,12 +594,25 @@ add_library( pcbnew_kiface_objects OBJECT
|
||||||
${PCBNEW_SCRIPTING_SRCS}
|
${PCBNEW_SCRIPTING_SRCS}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# auto-generate specctra_lexer.h and specctra_keywords.cpp
|
||||||
|
make_lexer(
|
||||||
|
pcbnew_kiface_objects
|
||||||
|
specctra_import_export/specctra.keywords
|
||||||
|
specctra_import_export/specctra_lexer.h
|
||||||
|
specctra_import_export/specctra_keywords.cpp
|
||||||
|
DSN
|
||||||
|
)
|
||||||
|
|
||||||
# CMake <3.9 can't link anything to object libraries,
|
# CMake <3.9 can't link anything to object libraries,
|
||||||
# but we only need include directories, as we will link the kiface MODULE
|
# but we only need include directories, as we will link the kiface MODULE
|
||||||
target_include_directories( pcbnew_kiface_objects PRIVATE
|
target_include_directories( pcbnew_kiface_objects PRIVATE
|
||||||
$<TARGET_PROPERTY:common,INCLUDE_DIRECTORIES>
|
$<TARGET_PROPERTY:common,INTERFACE_INCLUDE_DIRECTORIES>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Since we're not using target_link_libraries, we need to explicitly
|
||||||
|
# declare the dependency
|
||||||
|
add_dependencies( pcbnew_kiface_objects common )
|
||||||
|
|
||||||
add_library( pcbnew_kiface MODULE $<TARGET_OBJECTS:pcbnew_kiface_objects> )
|
add_library( pcbnew_kiface MODULE $<TARGET_OBJECTS:pcbnew_kiface_objects> )
|
||||||
|
|
||||||
set_target_properties( pcbnew_kiface PROPERTIES
|
set_target_properties( pcbnew_kiface PROPERTIES
|
||||||
|
@ -674,10 +673,6 @@ endif()
|
||||||
# if building pcbnew, then also build pcbnew_kiface if out of date.
|
# if building pcbnew, then also build pcbnew_kiface if out of date.
|
||||||
add_dependencies( pcbnew pcbnew_kiface )
|
add_dependencies( pcbnew pcbnew_kiface )
|
||||||
|
|
||||||
# add dependency to specctra_lexer_source_files, to force
|
|
||||||
# generation of autogenerated file
|
|
||||||
add_dependencies( pcbnew_kiface_objects specctra_lexer_source_files )
|
|
||||||
|
|
||||||
# these 2 binaries are a matched set, keep them together:
|
# these 2 binaries are a matched set, keep them together:
|
||||||
if( APPLE )
|
if( APPLE )
|
||||||
include( ${CMAKE_MODULE_PATH}/KiCadVersion.cmake )
|
include( ${CMAKE_MODULE_PATH}/KiCadVersion.cmake )
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#include <boost/ptr_container/ptr_set.hpp>
|
#include <boost/ptr_container/ptr_set.hpp>
|
||||||
|
|
||||||
#include <fctsys.h>
|
#include <fctsys.h>
|
||||||
#include "specctra_lexer.h"
|
#include <specctra_import_export/specctra_lexer.h>
|
||||||
#include <pcbnew.h>
|
#include <pcbnew.h>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
|
@ -68,8 +68,7 @@ target_link_libraries( qa_eeschema
|
||||||
target_include_directories( qa_eeschema PUBLIC
|
target_include_directories( qa_eeschema PUBLIC
|
||||||
# Paths for eeschema lib usage (should really be in eeschema/common
|
# Paths for eeschema lib usage (should really be in eeschema/common
|
||||||
# target_include_directories and made PUBLIC)
|
# target_include_directories and made PUBLIC)
|
||||||
${CMAKE_SOURCE_DIR}/eeschema
|
$<TARGET_PROPERTY:eeschema_kiface_objects,INCLUDE_DIRECTORIES>
|
||||||
${INC_AFTER}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Eeschema tests, so pretend to be eeschema (for units, etc)
|
# Eeschema tests, so pretend to be eeschema (for units, etc)
|
||||||
|
|
Loading…
Reference in New Issue