From 37505fbe8ca56b3882edbcb8a2e590b8dd0833fe Mon Sep 17 00:00:00 2001 From: Riccardo De Benedictis Date: Wed, 15 Jan 2025 05:05:51 +0100 Subject: [PATCH] Refactor CMake configuration to add oRatio server build option and update submodule references --- CMakeLists.txt | 43 +++++++++++++++++++++++++------------------ extern/rationet | 2 +- extern/riddle | 2 +- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f895c6..aa2f7d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,10 +4,6 @@ project(oRatioLib VERSION 0.3.0 LANGUAGES CXX) include(CTest) enable_testing() -option(BUILD_LISTENERS "Builds oRatio listeners" OFF) -option(CHECK_INCONSISTENCIES "Check inconsistencies at each step" OFF) -option(BUILD_GUI_SERVER "Build the GUI server" OFF) - set(CONSTRAINT_REASONER_TYPES Z3 SeMiTONE) set(CONSTRAINT_REASONER_TYPE Z3 CACHE STRING "Constraint reasoner type") set_property(CACHE CONSTRAINT_REASONER_TYPE PROPERTY STRINGS ${CONSTRAINT_REASONER_TYPES}) @@ -15,7 +11,6 @@ list(FIND CONSTRAINT_REASONER_TYPES ${CONSTRAINT_REASONER_TYPE} CONSTRAINT_REASO if(${CONSTRAINT_REASONER_TYPE_INDEX} EQUAL -1) message(FATAL_ERROR "Invalid constraint reasoner type ${CONSTRAINT_REASONER_TYPE}") endif() -message(STATUS "Constraint reasoner type: ${CONSTRAINT_REASONER_TYPE}") set(TEMPORAL_NETWORK_TYPES LRA DL) set(TEMPORAL_NETWORK_TYPE LRA CACHE STRING "Temporal network type") @@ -24,7 +19,6 @@ list(FIND TEMPORAL_NETWORK_TYPES ${TEMPORAL_NETWORK_TYPE} TEMPORAL_NETWORK_TYPE_ if(${TEMPORAL_NETWORK_TYPE_INDEX} EQUAL -1) message(FATAL_ERROR "Invalid temporal network type ${TEMPORAL_NETWORK_TYPE}") endif() -message(STATUS "Temporal network type: ${TEMPORAL_NETWORK_TYPE}") set(HEURISTIC_TYPES h_max h_add) set(HEURISTIC_TYPE h_max CACHE STRING "Heuristic type") @@ -33,7 +27,22 @@ list(FIND HEURISTIC_TYPES ${HEURISTIC_TYPE} HEURISTIC_TYPE_INDEX) if(${HEURISTIC_TYPE_INDEX} EQUAL -1) message(FATAL_ERROR "Invalid heuristic type ${HEURISTIC_TYPE}") endif() + +option(CHECK_INCONSISTENCIES "Check inconsistencies at each step" OFF) +option(BUILD_LISTENERS "Builds oRatio listeners" OFF) +option(BUILD_ORATIO_SERVER "Build the oRatio server" OFF) + +if(BUILD_ORATIO_SERVER) + set(BUILD_LISTENERS ON CACHE BOOL "Builds oRatio listeners" FORCE) + set(COMPUTE_NAMES ON CACHE BOOL "Compute RiDDLe names" FORCE) +endif() + +message(STATUS "Constraint reasoner type: ${CONSTRAINT_REASONER_TYPE}") +message(STATUS "Temporal network type: ${TEMPORAL_NETWORK_TYPE}") message(STATUS "Heuristic type: ${HEURISTIC_TYPE}") +message(STATUS "Check inconsistencies at each step: ${CHECK_INCONSISTENCIES}") +message(STATUS "Build oRatio listeners: ${BUILD_LISTENERS}") +message(STATUS "Build the oRatio server: ${BUILD_ORATIO_SERVER}") add_subdirectory(extern/riddle) @@ -62,29 +71,27 @@ elseif(${HEURISTIC_TYPE} STREQUAL "h_add") target_compile_definitions(oRatioLib PRIVATE H_ADD) endif() -message(STATUS "Check inconsistencies at each step: ${CHECK_INCONSISTENCIES}") if(CHECK_INCONSISTENCIES) target_compile_definitions(oRatioLib PRIVATE CHECK_INCONSISTENCIES) endif() -message(STATUS "Build the GUI server: ${BUILD_GUI_SERVER}") -if(BUILD_GUI_SERVER) - add_subdirectory(extern/rationet) - set(BUILD_LISTENERS ON CACHE BOOL "Builds oRatio listeners" FORCE) +if(BUILD_LISTENERS) + target_compile_definitions(oRatioLib PUBLIC BUILD_LISTENERS) +endif() +if(BUILD_ORATIO_SERVER) add_executable(oRatioServer src/server/main.cpp src/server/solver_server.cpp) - add_dependencies(oRatioServer oRatioLib ratioNet) - target_link_libraries(oRatioServer PRIVATE oRatioLib ratioNet) + add_dependencies(oRatioServer oRatioLib) target_include_directories(oRatioServer PRIVATE $) + if(NOT TARGET ratioNet) + add_subdirectory(extern/rationet) + add_dependencies(oRatioServer ratioNet) + endif() + target_link_libraries(oRatioServer PUBLIC oRatioLib ratioNet) setup_sanitizers(oRatioServer) endif() -message(STATUS "Build oRatio listeners: ${BUILD_LISTENERS}") -if(BUILD_LISTENERS) - target_compile_definitions(oRatioLib PUBLIC BUILD_LISTENERS) -endif() - if(BUILD_TESTING) add_subdirectory(tests) endif() diff --git a/extern/rationet b/extern/rationet index 428ecb5..c8e5dfb 160000 --- a/extern/rationet +++ b/extern/rationet @@ -1 +1 @@ -Subproject commit 428ecb5207251fa8d669632aa9aaee8647d33bcb +Subproject commit c8e5dfb8c6a611d104796b137de20416af1fb995 diff --git a/extern/riddle b/extern/riddle index 653c1e3..ec16408 160000 --- a/extern/riddle +++ b/extern/riddle @@ -1 +1 @@ -Subproject commit 653c1e34df0404221a46f325fc2642d604b99df1 +Subproject commit ec164080805486c6bd7dc17a96dcb6809d5b1e3c