include_directories(include)
include_directories(. ${CMAKE_CURRENT_BINARY_DIR})
+#-----------------------------------------------------------------------------#
+# IMPORTANT: The order of the theories is important. It affects the order in
+# which theory solvers are called/initialized internally. For example, strings
+# depends on arith, quantifiers needs to come as the very last.
+# See issue https://github.com/CVC4/CVC4/issues/2517 for more details.
+
+set(KINDS_FILES
+ ${PROJECT_SOURCE_DIR}/src/theory/builtin/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/booleans/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/uf/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/arith/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/bv/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/fp/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/arrays/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/datatypes/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/sep/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/sets/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/strings/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/quantifiers/kinds
+ ${PROJECT_SOURCE_DIR}/src/theory/idl/kinds)
+
#-----------------------------------------------------------------------------#
# Add subdirectories
#
# Generate code for kinds.
#
-file(GLOB kinds_files ${PROJECT_SOURCE_DIR}/src/theory/*/kinds)
set(mkkind_script ${CMAKE_CURRENT_LIST_DIR}/mkkind)
set(mkmetakind_script ${CMAKE_CURRENT_LIST_DIR}/mkmetakind)
COMMAND
${mkkind_script}
${CMAKE_CURRENT_LIST_DIR}/kind_template.h
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/kind.h
DEPENDS mkkind kind_template.h
)
COMMAND
${mkkind_script}
${CMAKE_CURRENT_LIST_DIR}/kind_template.cpp
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/kind.cpp
DEPENDS mkkind kind_template.cpp kind.h
)
COMMAND
${mkkind_script}
${CMAKE_CURRENT_LIST_DIR}/type_properties_template.h
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/type_properties.h
DEPENDS mkkind type_properties_template.h
)
COMMAND
${mkmetakind_script}
${CMAKE_CURRENT_LIST_DIR}/metakind_template.h
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/metakind.h
DEPENDS mkmetakind metakind_template.h
)
COMMAND
${mkmetakind_script}
${CMAKE_CURRENT_LIST_DIR}/metakind_template.cpp
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/metakind.cpp
DEPENDS mkmetakind metakind_template.cpp metakind.h
)
COMMAND
${mkexpr_script}
${CMAKE_CURRENT_LIST_DIR}/expr_template.h
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/expr.h
DEPENDS mkexpr expr_template.h kind.h
)
COMMAND
${mkexpr_script}
${CMAKE_CURRENT_LIST_DIR}/expr_template.cpp
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/expr.cpp
DEPENDS mkexpr expr_template.cpp expr.h
)
COMMAND
${mkexpr_script}
${CMAKE_CURRENT_LIST_DIR}/expr_manager_template.h
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/expr_manager.h
DEPENDS mkexpr expr_manager_template.h expr.h
)
COMMAND
${mkexpr_script}
${CMAKE_CURRENT_LIST_DIR}/expr_manager_template.cpp
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/expr_manager.cpp
DEPENDS mkexpr expr_manager_template.cpp expr_manager.h
)
COMMAND
${mkexpr_script}
${CMAKE_CURRENT_LIST_DIR}/type_checker_template.cpp
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/type_checker.cpp
DEPENDS mkexpr type_checker_template.cpp
)
type_enumerator.cpp
)
-# IMPORTANT: The order of the theories is important. It affects the order in
-# which theory solvers are called/initialized internally. For example, strings
-# depends on arith, quantifiers needs to come as the very last.
-# See issue https://github.com/CVC4/CVC4/issues/2517 for more details.
-set(kinds_files
- ${PROJECT_SOURCE_DIR}/src/theory/builtin/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/booleans/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/uf/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/arith/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/bv/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/fp/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/arrays/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/datatypes/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/sep/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/sets/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/strings/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/quantifiers/kinds
- ${PROJECT_SOURCE_DIR}/src/theory/idl/kinds)
-
set(mktheorytraits_script ${CMAKE_CURRENT_LIST_DIR}/mktheorytraits)
set(mkrewriter_script ${CMAKE_CURRENT_LIST_DIR}/mkrewriter)
COMMAND
${mkrewriter_script}
${CMAKE_CURRENT_LIST_DIR}/rewriter_tables_template.h
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/rewriter_tables.h
DEPENDS mkrewriter rewriter_tables_template.h
)
COMMAND
${mktheorytraits_script}
${CMAKE_CURRENT_LIST_DIR}/theory_traits_template.h
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/theory_traits.h
DEPENDS mktheorytraits theory_traits_template.h
)
COMMAND
${mktheorytraits_script}
${CMAKE_CURRENT_LIST_DIR}/type_enumerator_template.cpp
- ${kinds_files}
+ ${KINDS_FILES}
> ${CMAKE_CURRENT_BINARY_DIR}/type_enumerator.cpp
DEPENDS mktheorytraits type_enumerator_template.cpp
)