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:
Simon Richter 2019-07-03 11:08:55 +02:00 committed by Wayne Stambaugh
parent c715a22e1c
commit c8c3e1f96a
12 changed files with 89 additions and 151 deletions

View File

@ -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()

View File

@ -150,7 +150,7 @@ set( sourceFileHeader
* your DSN lexer. * your DSN lexer.
*/ */
#include <${result}_lexer.h> #include <${outHeaderFile}>
using namespace ${enum}; using namespace ${enum};

View File

@ -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 )

View File

@ -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>

View File

@ -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>

View File

@ -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 )

View File

@ -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" );

View File

@ -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

View File

@ -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 )

View File

@ -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 )

View File

@ -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>

View File

@ -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)