From eee44b9caac410b18183851e8447baa976d69e57 Mon Sep 17 00:00:00 2001 From: Roushan Singh Date: Wed, 12 Mar 2025 01:11:16 +0530 Subject: [PATCH] Remove submodules [cli11, drogon, tabulate, yaml-cpp] and integrate libraries into CMake --- .gitmodules | 12 ++++++++++++ 3rd-party/cli11 | 1 + 3rd-party/drogon | 1 + 3rd-party/tabulate | 1 + 3rd-party/yaml-cpp | 1 + engine/CMakeLists.txt | 31 +++++++++++++++---------------- engine/cli/CMakeLists.txt | 10 ++++------ engine/vcpkg.json | 5 ----- 8 files changed, 35 insertions(+), 27 deletions(-) create mode 160000 3rd-party/cli11 create mode 160000 3rd-party/drogon create mode 160000 3rd-party/tabulate create mode 160000 3rd-party/yaml-cpp diff --git a/.gitmodules b/.gitmodules index da05bcdd8..bfc308b0d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,15 @@ [submodule "engine/vcpkg"] path = engine/vcpkg url = https://github.com/microsoft/vcpkg.git +[submodule "3rd-party/yaml-cpp"] + path = 3rd-party/yaml-cpp + url = https://github.com/jbeder/yaml-cpp.git +[submodule "3rd-party/cli11"] + path = 3rd-party/cli11 + url = https://github.com/CLIUtils/CLI11.git +[submodule "3rd-party/drogon"] + path = 3rd-party/drogon + url = https://github.com/drogonframework/drogon.git +[submodule "3rd-party/tabulate"] + path = 3rd-party/tabulate + url = https://github.com/p-ranav/tabulate.git diff --git a/3rd-party/cli11 b/3rd-party/cli11 new file mode 160000 index 000000000..f871b625e --- /dev/null +++ b/3rd-party/cli11 @@ -0,0 +1 @@ +Subproject commit f871b625ee94fe721c60e3200785310d653393f8 diff --git a/3rd-party/drogon b/3rd-party/drogon new file mode 160000 index 000000000..cbf63f8fc --- /dev/null +++ b/3rd-party/drogon @@ -0,0 +1 @@ +Subproject commit cbf63f8fc4d849bbb82eeb1c83fcf8ff953f19f3 diff --git a/3rd-party/tabulate b/3rd-party/tabulate new file mode 160000 index 000000000..3a5830106 --- /dev/null +++ b/3rd-party/tabulate @@ -0,0 +1 @@ +Subproject commit 3a58301067bbc03da89ae5a51b3e05b7da719d38 diff --git a/3rd-party/yaml-cpp b/3rd-party/yaml-cpp new file mode 160000 index 000000000..39f737443 --- /dev/null +++ b/3rd-party/yaml-cpp @@ -0,0 +1 @@ +Subproject commit 39f737443b05e4135e697cb91c2b7b18095acd53 diff --git a/engine/CMakeLists.txt b/engine/CMakeLists.txt index 3f08f83e0..23a2ce192 100644 --- a/engine/CMakeLists.txt +++ b/engine/CMakeLists.txt @@ -97,8 +97,6 @@ if(CMAKE_BUILD_INJA_TEST) endif() find_package(jsoncpp CONFIG REQUIRED) -find_package(Drogon CONFIG REQUIRED) -find_package(yaml-cpp CONFIG REQUIRED) find_package(unofficial-minizip CONFIG REQUIRED) find_package(LibArchive REQUIRED) find_package(CURL REQUIRED) @@ -167,26 +165,29 @@ file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/cortex_openapi.h" ) ## End of generating openapi json -add_executable(${TARGET_NAME} main.cc - ${CMAKE_CURRENT_SOURCE_DIR}/utils/cpuid/cpu_info.cc - ${CMAKE_CURRENT_SOURCE_DIR}/utils/file_logger.cc - - ${CMAKE_CURRENT_SOURCE_DIR}/extensions/template_renderer.cc - ${CMAKE_CURRENT_SOURCE_DIR}/extensions/python-engine/python_engine.cc +# Add Github 3rd-party submodules +add_subdirectory(../3rd-party/yaml-cpp ${CMAKE_BINARY_DIR}/yaml-cpp) +add_subdirectory(../3rd-party/cli11 ${CMAKE_BINARY_DIR}/cli11) +add_subdirectory(../3rd-party/drogon ${CMAKE_BINARY_DIR}/drogon) +add_subdirectory(../3rd-party/tabulate ${CMAKE_BINARY_DIR}/tabulate) - ${CMAKE_CURRENT_SOURCE_DIR}/utils/dylib_path_manager.cc - ${CMAKE_CURRENT_SOURCE_DIR}/utils/process/utils.cc - ${CMAKE_CURRENT_SOURCE_DIR}/extensions/remote-engine/remote_engine.cc +# Collect all .cc files in various subdirectories recursively +file(GLOB_RECURSE UTILS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/utils/*.cc) +file(GLOB_RECURSE EXTENSIONS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/extensions/*.cc) +add_executable(${TARGET_NAME} main.cc + ${UTILS_SOURCES} + ${EXTENSIONS_SOURCES} ) target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) +target_link_libraries(${TARGET_NAME} PRIVATE drogon) target_link_libraries(${TARGET_NAME} PRIVATE unofficial::minizip::minizip) target_link_libraries(${TARGET_NAME} PRIVATE LibArchive::LibArchive) target_link_libraries(${TARGET_NAME} PRIVATE CURL::libcurl) -target_link_libraries(${TARGET_NAME} PRIVATE JsonCpp::JsonCpp Drogon::Drogon OpenSSL::SSL OpenSSL::Crypto yaml-cpp::yaml-cpp +target_link_libraries(${TARGET_NAME} PRIVATE JsonCpp::JsonCpp OpenSSL::SSL OpenSSL::Crypto yaml-cpp ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries(${TARGET_NAME} PRIVATE SQLiteCpp) target_link_libraries(${TARGET_NAME} PRIVATE eventpp::eventpp) @@ -212,16 +213,14 @@ aux_source_directory(models MODEL_SRC) aux_source_directory(cortex-common CORTEX_COMMON) aux_source_directory(config CONFIG_SRC) aux_source_directory(database DB_SRC) -aux_source_directory(extensions EX_SRC) aux_source_directory(migrations MIGR_SRC) -aux_source_directory(utils UTILS_SRC) target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ) -target_sources(${TARGET_NAME} PRIVATE ${UTILS_SRC} ${CONFIG_SRC} ${CTL_SRC} ${COMMON_SRC} ${SERVICES_SRC} ${DB_SRC} ${EX_SRC} ${MIGR_SRC} ${REPO_SRC}) +target_sources(${TARGET_NAME} PRIVATE ${CONFIG_SRC} ${CTL_SRC} ${COMMON_SRC} ${SERVICES_SRC} ${DB_SRC} ${MIGR_SRC} ${REPO_SRC}) set_target_properties(${TARGET_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR} RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR} RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} -) +) \ No newline at end of file diff --git a/engine/cli/CMakeLists.txt b/engine/cli/CMakeLists.txt index 0162c1f56..8748f44c2 100644 --- a/engine/cli/CMakeLists.txt +++ b/engine/cli/CMakeLists.txt @@ -60,11 +60,8 @@ add_compile_definitions(CORTEX_CPP_VERSION="${CORTEX_CPP_VERSION}") add_compile_definitions(CORTEX_CONFIG_FILE_PATH="${CORTEX_CONFIG_FILE_PATH}") find_package(jsoncpp CONFIG REQUIRED) -find_package(yaml-cpp CONFIG REQUIRED) -find_package(CLI11 CONFIG REQUIRED) find_package(unofficial-minizip CONFIG REQUIRED) find_package(LibArchive REQUIRED) -find_package(tabulate CONFIG REQUIRED) find_package(CURL REQUIRED) find_package(SQLiteCpp REQUIRED) find_package(Trantor CONFIG REQUIRED) @@ -99,12 +96,13 @@ add_executable(${TARGET_NAME} main.cc ${CMAKE_CURRENT_SOURCE_DIR}/../utils/process/utils.cc ) -target_link_libraries(${TARGET_NAME} PRIVATE CLI11::CLI11) +target_link_libraries(${TARGET_NAME} PRIVATE CLI11) +target_link_libraries(${TARGET_NAME} PRIVATE drogon) target_link_libraries(${TARGET_NAME} PRIVATE unofficial::minizip::minizip) target_link_libraries(${TARGET_NAME} PRIVATE LibArchive::LibArchive) -target_link_libraries(${TARGET_NAME} PRIVATE tabulate::tabulate) +target_link_libraries(${TARGET_NAME} PRIVATE tabulate) target_link_libraries(${TARGET_NAME} PRIVATE CURL::libcurl) -target_link_libraries(${TARGET_NAME} PRIVATE JsonCpp::JsonCpp OpenSSL::SSL OpenSSL::Crypto yaml-cpp::yaml-cpp +target_link_libraries(${TARGET_NAME} PRIVATE JsonCpp::JsonCpp OpenSSL::SSL OpenSSL::Crypto yaml-cpp ${CMAKE_THREAD_LIBS_INIT}) target_link_libraries(${TARGET_NAME} PRIVATE SQLiteCpp) target_link_libraries(${TARGET_NAME} PRIVATE Trantor::Trantor) diff --git a/engine/vcpkg.json b/engine/vcpkg.json index 962d06ffd..ca4241d5c 100644 --- a/engine/vcpkg.json +++ b/engine/vcpkg.json @@ -2,13 +2,8 @@ "dependencies": [ "curl", "gtest", - "cli11", - "drogon", - "jsoncpp", "minizip", - "yaml-cpp", "libarchive", - "tabulate", "eventpp", "sqlitecpp", "trantor",