From 3b227a5f73127f976174c304f27093422176dab0 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 21 Sep 2021 21:15:58 +0800 Subject: [PATCH] refact --- .gitignore | 3 +++ CMakeLists.txt | 42 +++++++++++++++++++++++++++++++++ cmake/deps_CMakeLists.txt.in | 5 ++++ cmake/gtest_CMakeLists.txt.in | 12 ++++++++++ deps/CMakeLists.txt | 3 +++ {src/os/inc => include/os}/os.h | 0 src/CMakeLists.txt | 24 +------------------ 7 files changed, 66 insertions(+), 23 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 cmake/deps_CMakeLists.txt.in create mode 100644 cmake/gtest_CMakeLists.txt.in create mode 100644 deps/CMakeLists.txt rename {src/os/inc => include/os}/os.h (100%) diff --git a/.gitignore b/.gitignore index 2c37aa92f7..5141448ee0 100644 --- a/.gitignore +++ b/.gitignore @@ -94,3 +94,6 @@ auto-save-list tramp .\#* TAGS + +deps/* +!deps/CMakeLists.txt \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000000..307786b5ea --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,42 @@ +cmake_minimum_required(VERSION 3.16) + +project( + TDengine + VERSION 3.0 + DESCRIPTION "An open-source big data platform designed and optimized for the Internet of Things(IOT)" +) + +# ============================================================================ +# DEPENDENCIES +# ============================================================================ +set(CMAKE_SUPPORT_DIR "${CMAKE_SOURCE_DIR}/cmake") + +function(cat IN_FILE OUT_FILE) + file(READ ${IN_FILE} CONTENTS) + file(APPEND ${OUT_FILE} "${CONTENTS}") +endfunction(cat IN_FILE OUT_FILE) + +set(DEPS_TMP_FILE "${CMAKE_BINARY_DIR}/deps_tmp_CMakeLists.txt.in") +configure_file("${CMAKE_SUPPORT_DIR}/deps_CMakeLists.txt.in" ${DEPS_TMP_FILE}) + +## googletest +option(BUILD_TEST "If build unit tests using googletest" ON) + +if(${BUILD_TEST}) + cat("${CMAKE_SUPPORT_DIR}/gtest_CMakeLists.txt.in" ${DEPS_TMP_FILE}) +endif(${BUILD_TEST}) + +## download dependencies +configure_file(${DEPS_TMP_FILE} "${CMAKE_SOURCE_DIR}/deps/deps-download/CMakeLists.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/deps/deps-download") +execute_process(COMMAND "${CMAKE_COMMAND}" --build . + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/deps/deps-download") + +# deps +add_subdirectory(deps) + +# src +add_subdirectory(src) + +# tests (TODO) \ No newline at end of file diff --git a/cmake/deps_CMakeLists.txt.in b/cmake/deps_CMakeLists.txt.in new file mode 100644 index 0000000000..5f80321edf --- /dev/null +++ b/cmake/deps_CMakeLists.txt.in @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.8) + +project(deps-download NONE) + +include(ExternalProject) \ No newline at end of file diff --git a/cmake/gtest_CMakeLists.txt.in b/cmake/gtest_CMakeLists.txt.in new file mode 100644 index 0000000000..ba4eaef8fb --- /dev/null +++ b/cmake/gtest_CMakeLists.txt.in @@ -0,0 +1,12 @@ + +# googletest +ExternalProject_Add(googletest + GIT_REPOSITORY git@github.com:google/googletest.git + GIT_TAG master + SOURCE_DIR "${CMAKE_SOURCE_DIR}/deps/googletest" + BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" + ) \ No newline at end of file diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt new file mode 100644 index 0000000000..2bb75b07c9 --- /dev/null +++ b/deps/CMakeLists.txt @@ -0,0 +1,3 @@ +if(${BUILD_TEST}) + add_subdirectory(googletest) +endif(${BUILD_TEST}) diff --git a/src/os/inc/os.h b/include/os/os.h similarity index 100% rename from src/os/inc/os.h rename to include/os/os.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 273dc80cbb..8f8f3462dc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,24 +1,2 @@ -# CMAKE_MINIMUM_REQUIRED(VERSION 2.8...3.20) -PROJECT(TDengine) - -# Base compile -ADD_SUBDIRECTORY(os) -ADD_SUBDIRECTORY(common) -ADD_SUBDIRECTORY(util) -ADD_SUBDIRECTORY(tfs) -ADD_SUBDIRECTORY(rpc) -ADD_SUBDIRECTORY(client) -ADD_SUBDIRECTORY(query) -ADD_SUBDIRECTORY(kit) -ADD_SUBDIRECTORY(plugins) -ADD_SUBDIRECTORY(sync) -ADD_SUBDIRECTORY(balance) -ADD_SUBDIRECTORY(mnode) -ADD_SUBDIRECTORY(vnode) -ADD_SUBDIRECTORY(tsdb) -ADD_SUBDIRECTORY(wal) -ADD_SUBDIRECTORY(cq) -ADD_SUBDIRECTORY(dnode) -ADD_SUBDIRECTORY(connector/odbc) -ADD_SUBDIRECTORY(connector/jdbc) +add_subdirectory(os)