mirror of
https://github.com/taosdata/TDengine
synced 2026-05-24 10:09:01 +00:00
* chore(ci): with cmake verbose, temporarily
* chore(cmake): prefer Threads::Threads
* fix(cmake): debug building gtest on ubuntu 20.04 for the moment
* fix(cmake): try adding Threads::Threads
* fix(cmake): debug building gtest on ubuntu 20.04 for the moment
* fix(cmake): revert taosd-ci-build.yml
* fix(cmake): debug building on ubuntu 20.04 for the moment
* fix(cmake): debug building on ubuntu 20.04 for the moment
* fix(cmake): debug building on ubuntu 20.04 for the moment, adding dl right after DEP_ext_libuv
* fix(cmake): debug building on ubuntu 20.04 for the moment, try full run
* fix(cmake): fix building on ubuntu 20.04
* fix(cmake): dl is only valid in non-windows platform
* fix(cmake): dl order
* refactor(cmake): adjust option/cache variables for external dependencies
* refactor(cmake): mv patch files from contrib/ to cmake/
* refactor(cmake): typo
* refactor(cmake): adding cache on ci
* refactor(cmake):
1. ext_lzma2 is only used by Linux
2. fix bug in taosd-ci-build.yml
* enh: adding functionalities of build.sh
* fix(ci): `cmake -B` shall maintain consistency
* refactor(cmake): LOCAL_REPO/LOCAL_URL as cache variable
* refactor(cmake): taosadapter to be built in main build directory rather than .externals
* refactor(cmake): adding rpath for taosadapter, linux now
* refactor(cmake): adding rpath for taosadapter, macos now
* chore(cmake): remove some comments
* debug(ci): bypass TD_EXTERNALS_USE_ONLY
* debug(ci): bypass .externals caching for the moment
* fix(cmake): temporarily use taosadapter/main branch because this branch(freemine.cmake.3.0) has not include taos_fetch_fields_e from upstream
* refactor(cmake): clean GIT_TAG/GIT_SHALLOW pairs
* enh(ci): use build.sh rather than hard-coded in taosd-ci-build.yml, linux for now
* debug(ci): undefined __isoc23_strtoull
* debug(ci): benchmarkTest
* debug(ci): what if use_only = off
* debug(ci): remove .externals to make a refresh build
* debug(ci): back to cache, and ls files of gtest
* debug(ci): remove find coz {} not escaped
* debug(ci): cache key seems missing "matrix.os"
* refactor(ci): fixed cache key and reopen macos/windows
* chore(ci): literally -j4
* chore(ci): Trigger GitHub Actions re-run
* chore(ci): Trigger GitHub Actions re-run
* fix(ci): typo
* chore(ci): JOBS calculated by build.sh itself
* refactor(ci): enable WEBSOCKET in build.sh by default
* refactor(ci): enable WEBSOCKET in build.sh by default, macOS
* chore(cmake): remove obsoletes
* refactor(ci): stop service before running taosd
* chore(ci): `./build.sh install` just install TDengine, you will have to start taosd by `./build.sh start`
* refactor(cmake): adding source code found on http://emfisis.physics.uiowa.edu/Software/C/libargp/
* refactor(cmake): moving jansson/snappy/avro to .externals, and porting BUILD_TEST/WEBSOCKET on Windows
* refactor(cmake): porting linux
* refactor(cmake): porting macos
1. check argp.h
2. re-enable building taosdump
* refactor(cmake): porting linux
1. adjust CMAKE_C/CXX_FLAGS
* refactor(cmake): porting windows, adjust CMAKE_C/CXX_FLAGS
* refactor(cmake): use cmake_parse_arguments in macro INIT_EXT
* refactor(cmake): format ci cache directives
* refactor(cmake): adding comments for ci externals-cache directives
* refactor(cmake): adding check_env.cmake to checking libraries installed on the system
* refactor(cmake): porting linux, make homebrew-installed-libs available
* refactor(cmake): remove BYPRODUCTS from INIT_EXT macro
* refactor(cmake): INC_DIR is oneValueArg
* refactor(cmake): taosdump depends on ext_xz(LZMA)
* refactor(cmake): add copy_pthreadVC3 target on windows
* refactor(cmake): mv taosd-ci-build.yml to tdengine-build.yml
* chore(ci): try to fix yml syntax error
* refactor(cmake): use brew --prefix to get HomeBrew's install path
* refactor(cmake): typo
* debug(ci): build and cache externals first
* debug(ci): adding -Wno-stringop-overread for the moment
* debug(ci): make Threads::Threads public from os target
* debug(ci): make os public
* debug(ci): re-enable start and test
* debug(ci): let it go even if taosBenchmark failed
* debug(ci): copy logic from TDengine/main
* debug(ci): try ./build.sh start/test
* debug(ci): revert to original simple test logic in ci, taosBenchark/taos
* chore(cmake): code-convention and ci-logic
* debug(ci): show versions
* debug(ci): forcefully use specific GIT_TAG by commit-id for taos-connector-rust.git and taosadapter.git
* refactor(cmake): remove empty lines
* debug(ci): typo
* debug(ci): set supportVnodes to 256 before starting taosd
* debug(ci): fix: sudo and pipe
* debug(ci): cat /etc/taos/taos.cfg to check if supportVnodes effective
* debug(ci): cat forceReadConfig to taos.cfg
* debug(ci): adding taos -s "show dnodes"
* debug(ci): print more info
* debug(ci):
1. git log .... in an independant step
2. sleep 3 deliberately
* build: release ver-3.3.6.0
* chore(ci): comment and remove unnecessary code
* refactor(ci): cleanup tools/CMakeLists.txt
1. remove unnecessary or uneffective codes
2. better approach to pass compile flags to go
* chore(cmake): remove unnecessary code
* merge(cmake): porting linux
* merge(cmake): porting macOS
* merge(cmake): porting windows
* merge(cmake): pitfall fix: use literal format string instead
* merge(cmake): ver-3.3.6.0 for both taosadatper and taosws
* merge(cmake): adjust ci for debug purposes
* merge(cmake): add dependenices to make sure native built
* merge(main): link os
* merge(main): revert to main
* chore(cmake): remove freemine'd comments
* chore(cmake): make github ci to run with empty change
* refactor(cmake): remove unnecessaries
* refactor(cmake): remove unnecessaries
* chore(cmake):
1. remove taosudf in build.sh::do_purge
2. packaging taosBenchmark
* chore(cmake):
1. typo corrections
2. add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to bypass compatibility check imposed by latest cmake since 4.0
* chore(cmake): show cmake version
* chore(cmake): add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to bypass compatibility check imposed by latest cmake since 4.0
* chore(cmake): typo
* chore(cmake): remove unnecessaries
* cmake: debug enterprise compilation
* refactor: preparatory work before merging the freemin PR
* refactor(cmake): revert to d91205594a
* refactor(cmake): optimize by adjusting cache key
* chore(cmake): make github ci to run with empty change
* refactor(cmake): move libs3 and azure to external.cmake
* refactor(cmake): porting macOS
* refactor(cmake): move cos to external.cmake
* refactor(cmake): bypass s3/azure/cos on windows for the moment
* refactor(cmake): try find_package(Threads)
* refactor(cmake): add dl/pthread in libs3
* refactor(cmake): enable s3/azure for the moment, hard-coded
* refactor(cmake): adjust BUILD_WITH_ANALYSIS option
* refactor(cmake):
1. enum AVROTYPE => enum enAVROTYPE
2. remove INSTALL(CODE ...) from tools/taos-tools/CMakeLists.txt
* refactor(cmake): portint macOS and typo
* refactor(cmake): ticking external cache key to force refresh external building
* refactor(cmake): remove obsoletes
* refactor(cmake): remove obsoletes
* refactor(cmake): remove obsoletes, contrib/deps-download related
* refactor(cmake): adding build.bat, and use build.bat in .github/workflows/tdengine-build.yml
* refactor(cmake):
1. call .\build.bat
2. remove POST_BUILD which is not valid in this signature of add_custom_command
* refactor(ci): use 'NMake Makefiles JOM'
* refactor(ci): typo
* refactor(ci): debug
* refactor(ci): debug
* refactor(ci): debug
* refactor(ci): use call on windows
* refactor(cmake): move utils/TSZ to contrib/TSZ
* chore(cmake): make github ci to run with empty change
* refactor(cmake): mv cmake.* -> *.cmake and related in CMakeLists.txt
* refactor(cmake): debugging integrating community
* refactor(cmake): debugging integrating community
* chore(cmake): make github ci to run with empty change
* refactor(cmake): revert geos.git back to 3.12.0
* refactor(cmake): revert doc/** to main branch
* refactor(cmake): revert tests/** to main branch, except tests/taosc_test/CMakeLists.txt
* refactor(cmake): revert test/cases/** to main branch
* refactor(cmake): revert test/docs/** to main branch
* refactor(cmake): revert tools/taos-tools/deps/{avro,jansson,libargp,snappy,zlib-1.2.13} to main branch, which need to be removed later
* refactor(ci): revert .github/workflows/{deploy-case-docs.yml,tdengine-doc-build.yml} to main branch
* refactor(cmake): revert tcommon.h and related to main branch
* refactor(cmake): revert test/* stuffs back to main branch
* refactor(cmake): revert libuv.git back to v1.49.2
* refactor(cmake): revert .h/.c and related to main branch
* refactor(cmake): typo format string
* refactor(cmake): typo correction, incorrect use of macro `assert`
* refactor(cmake): adding /wd4028 to bypass thttp.c under enterprise build for the moment
* refactor(cmake):
1. adding some rules to .gitignore for the last resort to save
2. adding source files manually to source/libs/parser/CMakeLists.txt to exclude potential sql.c generated by old build system
* refactor(cmake): add -Wno-unused-result for the moment
* refactor(cmake): adjust target dependencies
* refactor(cmake): tweaking building of mxml
* refactor(cmake): adjust externals CMAKE_ARGS to save compilation time
* refactor(cmake): temporarily use tomchon-patch-3
* refactor(cmake): temporarily adding dumpbin directives
* refactor(cmake): adding NODEFAULTLIB temporarily for debugging purpose
* refactor(cmake): adding NODEFAULTLIB:libcpmt temporarily for debugging purpose
* refactor(cmake): adding NODEFAULTLIB:cpmt temporarily for debugging purpose
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* refactor(ci): use freemine.debug branch for the moment
* refactor(ci): revert back to use run-tests-on-windows.yml of tomchon-patch-3 branch
* chore(cmake): make github ci to run with empty change
* refactor(cmake): remove temporary debug directives
* refactor(cmake): move cmake_policy(..CMP0135..) to the root of this project
* refactor(cmake): Remove temporary debugging conditional and restore original logic
* chore(cmake): adding -B in army tests
* chore(cmake): make github ci to run with empty change
* chore(cmake): revert: adding -B in army tests
* refactor(cmake):
1. use ver-3.3.6.3 of taosadapter
2. pitfall fix: do not link with taosws for taos shell
* refactor(cmake): revert taosadapter to ver-3.3.6.0
* chore(cmake): adding logging message in more detail
* chore(cmake): adding logging message in more detail
* chore(ci): debugging by using ls -l
* chore(ci): typo
* chore(ci): typo
* refactor(cmake): revert to remove debug code, and taosadapter to ver-3.3.6.3
* refactor(cmake): remove DEP_ext_taosws
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* chore(cmake): make github ci to run with empty change
* chore(cmake): typo correction: utils/test/c/sml_test.c
* debug(cmake): test cases debug
* chore(cmake): make github ci to run with empty change
* chore(ci): using tomchon-patch-3 branch for run-tests-on-linux for the moment
* chore(cmake): make github ci to run with empty change
* debug(test): revert utils/test/c/sml_test.c back to tdengine/main branch
* debug(test): adding VERBOSE=1 and gcc --version
* debug(test): revert tests/parallel_test/cases.task back to tdengine/main branch
* debug: add log in run_case.sh
* fix: test log
* fix: docker run privileged
* tes: add debug test in cases.task
* refactor(cmake): remove ref to \contrib\<dep-name> and ~/.cos-local-{1,2} from CMakeLists.txt(s)
* refactor(cmake): make taosudf link with libtaos.so
* chore(cmake): fix compiler warning as error problem
* refactor(cmake): revert 7d7f03832d
* chore(cmake): only udf.sim and udfpy.sim for the moment
* debug(ci): debug udf.sim for the moment
* debug(ci): debug udf.sim for the moment
* debug(ci): debug udf.sim for the moment
* debug(ci): debug only udf.sim for the moment
* debug(ci): debug only udf.sim for the moment, using tee
* debug(ci): debug only udf.sim for the moment, revert using tee
* debug(ci): debug only udf.sim for the moment, adding TAOS_LIB again
* debug(cmake): adding -rdynamic for the moment
* debug(cmake): re-adding udfpy.sim
* debug(cmake): do NOT run with Sanitizer for udfpy.sim for the moment
* chore(cmake): revert cases.task, and remove ubuntu-20.04 from tdengine-build.yml
* refactor(cmake): using ENABLE_EXPORTS to export symbols in taosudf
* chore(cmake): make github ci to run with empty change
* chore(cmake): remove stuffs for debug purpose and revert
---------
Co-authored-by: support-platform <it@taosdata.com>
Co-authored-by: Simon Guan <slguan@taosdata.com>
Co-authored-by: Simon Guan <guanshengliang@qq.com>
Co-authored-by: haoranchen <haoran920c@163.com>
184 lines
5.2 KiB
CMake
184 lines
5.2 KiB
CMake
# NOTE: if you change this option later, that'll NOT effect unless you remove CMakeCache.txt beforehand
|
|
option(TD_CHECK_SYSTEM_EXTERNALS "if check and externals installed on the system or not" OFF)
|
|
|
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
|
if(NOT BREW_PREFIX)
|
|
execute_process(COMMAND brew --prefix OUTPUT_VARIABLE BREW_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
set(BREW_PREFIX "${BREW_PREFIX}" CACHE STRING "Homebrew installation prefix")
|
|
endif()
|
|
message(STATUS "Homebrew prefix: ${BREW_PREFIX}")
|
|
endif()
|
|
|
|
macro(check_lib)
|
|
set(options)
|
|
set(oneValueArgs NAME HEADER_FILE LIBNAME SYMBOL)
|
|
set(multiValueArgs ACCOMPANIES)
|
|
cmake_parse_arguments(arg_check_lib
|
|
"${options}" "${oneValueArgs}" "${multiValueArgs}"
|
|
${ARGN}
|
|
)
|
|
if(NOT DEFINED arg_check_lib_NAME)
|
|
message(FATAL_ERROR "`NAME` must be set")
|
|
endif()
|
|
if(NOT DEFINED arg_check_lib_HEADER_FILE)
|
|
message(FATAL_ERROR "`HEADER_FILE` must be set")
|
|
endif()
|
|
if(NOT DEFINED arg_check_lib_LIBNAME)
|
|
message(FATAL_ERROR "`LIBNAME` must be set")
|
|
endif()
|
|
if(NOT DEFINED arg_check_lib_SYMBOL)
|
|
message(FATAL_ERROR "`SYMBOL` must be set")
|
|
endif()
|
|
set(_name ${arg_check_lib_NAME})
|
|
set(_hdr ${arg_check_lib_HEADER_FILE})
|
|
set(_lib ${arg_check_lib_LIBNAME})
|
|
set(_symbol ${arg_check_lib_SYMBOL})
|
|
|
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
|
set(CMAKE_REQUIRED_FLAGS "-I${BREW_PREFIX}/include -L${BREW_PREFIX}/lib")
|
|
endif()
|
|
|
|
check_library_exists(${_lib} ${_symbol} "" HAVE_LIB_${_name})
|
|
set(${_name}_LIBNAMES "")
|
|
if(${HAVE_LIB_${_name}})
|
|
set(CMAKE_REQUIRED_LIBRARIES ${_lib})
|
|
check_symbol_exists(${_symbol} ${_hdr} HAVE_DEV_${_name})
|
|
set(CMAKE_REQUIRED_LIBRARIES)
|
|
if(${HAVE_DEV_${_name}})
|
|
set(${_name}_LIBNAMES "${_lib}" "${arg_check_lib_ACCOMPANIES}")
|
|
endif()
|
|
endif()
|
|
|
|
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
|
# cleanup
|
|
set(CMAKE_REQUIRED_FLAGS)
|
|
endif()
|
|
endmacro()
|
|
|
|
if(NOT TD_CHECK_SYSTEM_EXTERNALS)
|
|
message(STATUS "does not check and use externals installed on the system")
|
|
return()
|
|
endif()
|
|
|
|
# sudo apt install libgeos-dev
|
|
check_lib(
|
|
NAME GEOS
|
|
HEADER_FILE geos_c.h
|
|
LIBNAME geos_c
|
|
SYMBOL GEOS_init_r
|
|
)
|
|
message(STATUS "HAVE_LIB_GEOS:${HAVE_LIB_GEOS}")
|
|
message(STATUS "HAVE_DEV_GEOS:${HAVE_DEV_GEOS}")
|
|
|
|
# sudo apt install libjansson-dev
|
|
check_lib(
|
|
NAME JANSSON
|
|
HEADER_FILE jansson.h
|
|
LIBNAME jansson.so
|
|
SYMBOL jansson_version_str
|
|
)
|
|
message(STATUS "HAVE_LIB_JANSSON:${HAVE_LIB_JANSSON}")
|
|
message(STATUS "HAVE_DEV_JANSSON:${HAVE_DEV_JANSSON}")
|
|
|
|
# sudo apt install liblzma-dev
|
|
check_lib(
|
|
NAME LZMA
|
|
HEADER_FILE lzma.h
|
|
LIBNAME lzma
|
|
SYMBOL lzma_version_number
|
|
)
|
|
message(STATUS "HAVE_LIB_LZMA:${HAVE_LIB_LZMA}")
|
|
message(STATUS "HAVE_DEV_LZMA:${HAVE_DEV_LZMA}")
|
|
|
|
# sudo apt install libsnappy-dev
|
|
check_lib(
|
|
NAME SNAPPY
|
|
HEADER_FILE snappy-c.h
|
|
LIBNAME snappy
|
|
SYMBOL snappy_compress
|
|
)
|
|
message(STATUS "HAVE_LIB_SNAPPY:${HAVE_LIB_SNAPPY}")
|
|
message(STATUS "HAVE_DEV_SNAPPY:${HAVE_DEV_SNAPPY}")
|
|
|
|
# sudo apt install libssl-dev
|
|
check_lib(
|
|
NAME SSL
|
|
HEADER_FILE openssl/ssl.h
|
|
LIBNAME ssl
|
|
# SYMBOL SSL_CTX_get_options
|
|
SYMBOL SSL_get_version
|
|
ACCOMPANIES crypto
|
|
)
|
|
message(STATUS "HAVE_LIB_SSL:${HAVE_LIB_SSL}")
|
|
message(STATUS "HAVE_DEV_SSL:${HAVE_DEV_SSL}")
|
|
|
|
# sudo apt install zlib1g-dev
|
|
check_lib(
|
|
NAME ZLIB
|
|
HEADER_FILE zlib.h
|
|
LIBNAME z
|
|
SYMBOL zlibVersion
|
|
)
|
|
message(STATUS "HAVE_LIB_ZLIB:${HAVE_LIB_ZLIB}")
|
|
message(STATUS "HAVE_DEV_ZLIB:${HAVE_DEV_ZLIB}")
|
|
|
|
# sudo apt install libzstd-dev
|
|
check_lib(
|
|
NAME ZSTD
|
|
HEADER_FILE zstd.h
|
|
LIBNAME zstd
|
|
SYMBOL ZSTD_versionNumber
|
|
)
|
|
message(STATUS "HAVE_LIB_ZSTD:${HAVE_LIB_ZSTD}")
|
|
message(STATUS "HAVE_DEV_ZSTD:${HAVE_DEV_ZSTD}")
|
|
|
|
# sudo apt install liblz4-dev
|
|
check_lib(
|
|
NAME LZ4
|
|
HEADER_FILE lz4.h
|
|
LIBNAME lz4
|
|
SYMBOL LZ4_versionNumber
|
|
)
|
|
message(STATUS "HAVE_LIB_LZ4:${HAVE_LIB_LZ4}")
|
|
message(STATUS "HAVE_DEV_LZ4:${HAVE_DEV_LZ4}")
|
|
|
|
# sudo apt install libuv1-dev
|
|
check_lib(
|
|
NAME LIBUV
|
|
HEADER_FILE uv.h
|
|
LIBNAME uv
|
|
SYMBOL uv_version
|
|
)
|
|
message(STATUS "HAVE_LIB_LIBUV:${HAVE_LIB_LIBUV}")
|
|
message(STATUS "HAVE_DEV_LIBUV:${HAVE_DEV_LIBUV}")
|
|
|
|
# sudo apt install libsqlite3-dev
|
|
check_lib(
|
|
NAME SQLITE3
|
|
HEADER_FILE sqlite3.h
|
|
LIBNAME sqlite3
|
|
SYMBOL sqlite3_libversion
|
|
)
|
|
message(STATUS "HAVE_LIB_SQLITE3:${HAVE_LIB_SQLITE3}")
|
|
message(STATUS "HAVE_DEV_SQLITE3:${HAVE_DEV_SQLITE3}")
|
|
|
|
# sudo apt install libcurl4-openssl-dev
|
|
check_lib(
|
|
NAME CURL4_OPENSSL
|
|
HEADER_FILE curl/curl.h
|
|
LIBNAME curl
|
|
SYMBOL curl_version
|
|
)
|
|
message(STATUS "HAVE_LIB_CURL4_OPENSSL:${HAVE_LIB_CURL4_OPENSSL}")
|
|
message(STATUS "HAVE_DEV_CURL4_OPENSSL:${HAVE_DEV_CURL4_OPENSSL}")
|
|
|
|
# sudo apt install libavro-dev
|
|
check_lib(
|
|
NAME AVRO
|
|
HEADER_FILE avro.h
|
|
LIBNAME avro
|
|
SYMBOL avro_generic_class_from_schema
|
|
)
|
|
message(STATUS "HAVE_LIB_AVRO:${HAVE_LIB_AVRO}")
|
|
message(STATUS "HAVE_DEV_AVRO:${HAVE_DEV_AVRO}")
|
|
|