mirror of
https://github.com/Z3Prover/z3
synced 2025-06-28 00:48:45 +00:00
Previously CMake was not aware of which headers files the generation of `gparams_register_modules.cpp` depended on. Consequently this could result in broken incremental builds if * Existing headers that declared module description/parameters change. * New headers are added that declare module description/parameters. * `.pyg` files that generate header files that declare module description/parameters change Now the `z3_add_component()` CMake function has been modifed so that * All header files that are generated from `.pyg` files are added as dependencies and are scanned from module description/parameter declarations. This implicit dependency of `gparams_register_modules.cpp` depending on other generated header files seems unnecessary complex. We should revisit this design decision once the Python/Makefile build system is deprecated. * The function now takes an optional `EXTRA_REGISTER_MODULE_HEADERS` argument which allows the headers that declare module description/paramters to be explicitly listed. With this information CMake will now regenerate `gparams_register_modules.cpp` correctly. This required the `mk_gparams_register_modules_internal()` function to be changed to take a list of header files rather than a list of component source directories. The two consumers (CMake and Python/Makefile build systems) of this function have been modified to work with this change. This partially fixes #1030.
23 lines
444 B
CMake
23 lines
444 B
CMake
z3_add_component(cmd_context
|
|
SOURCES
|
|
basic_cmds.cpp
|
|
check_logic.cpp
|
|
cmd_context.cpp
|
|
cmd_context_to_goal.cpp
|
|
cmd_util.cpp
|
|
context_params.cpp
|
|
echo_tactic.cpp
|
|
eval_cmd.cpp
|
|
interpolant_cmds.cpp
|
|
parametric_cmd.cpp
|
|
pdecl.cpp
|
|
simplify_cmd.cpp
|
|
tactic_cmds.cpp
|
|
tactic_manager.cpp
|
|
COMPONENT_DEPENDENCIES
|
|
interp
|
|
rewriter
|
|
solver
|
|
EXTRA_REGISTER_MODULE_HEADERS
|
|
context_params.h
|
|
)
|