refactor: jemalloc options

This commit is contained in:
Simon Guan 2025-03-07 10:03:43 +08:00
parent 6250adb3b1
commit 609ff730c4
5 changed files with 129 additions and 135 deletions

View File

@ -15,23 +15,23 @@
1. [TDengine 简介](#1-tdengine-简介) 1. [TDengine 简介](#1-tdengine-简介)
1. [文档](#2-文档) 1. [文档](#2-文档)
1. [必备工具](#3-必备工具) 1. [必备工具](#3-必备工具)
- [3.1 Linux预备](#31-linux系统) - [3.1 Linux 预备](#31-Linux系统)
- [3.2 macOS预备](#32-macos系统) - [3.2 macOS 预备](#32-macOS系统)
- [3.3 Windows预备](#33-windows系统) - [3.3 Windows 预备](#3.3-Windows系统)
- [3.4 克隆仓库](#34-克隆仓库) - [3.4 克隆仓库](#34-克隆仓库)
1. [构建](#4-构建) 1. [构建](#4-构建)
- [4.1 Linux系统上构建](#41-linux系统上构建) - [4.1 Linux 系统上构建](#41-Linux系统上构建)
- [4.2 macOS系统上构建](#42-macos系统上构建) - [4.2 macOS 系统上构建](#42-macOS系统上构建)
- [4.3 Windows系统上构建](#43-windows系统上构建) - [4.3 Windows 系统上构建](#43-Windows系统上构建)
1. [打包](#5-打包) 1. [打包](#5-打包)
1. [安装](#6-安装) 1. [安装](#6-安装)
- [6.1 Linux系统上安装](#61-linux系统上安装) - [6.1 Linux 系统上安装](#61-Linux系统上安装)
- [6.2 macOS系统上安装](#62-macos系统上安装) - [6.2 macOS 系统上安装](#62-macOS系统上安装)
- [6.3 Windows系统上安装](#63-windows系统上安装) - [6.3 Windows 系统上安装](#63-Windows系统上安装)
1. [快速运行](#7-快速运行) 1. [快速运行](#7-快速运行)
- [7.1 Linux系统上运行](#71-linux系统上运行) - [7.1 Linux 系统上运行](#71-Linux系统上运行)
- [7.2 macOS系统上运行](#72-macos系统上运行) - [7.2 macOS 系统上运行](#72-macOS系统上运行)
- [7.3 Windows系统上运行](#73-windows系统上运行) - [7.3 Windows 系统上运行](#73-Windows系统上运行)
1. [测试](#8-测试) 1. [测试](#8-测试)
1. [版本发布](#9-版本发布) 1. [版本发布](#9-版本发布)
1. [工作流](#10-工作流) 1. [工作流](#10-工作流)
@ -63,11 +63,11 @@ TDengine 是一款开源、高性能、云原生的时序数据库 (Time-Series
用户可根据需求选择通过 [容器](https://docs.taosdata.com/get-started/docker/)、[安装包](https://docs.taosdata.com/get-started/package/)、[Kubernetes](https://docs.taosdata.com/deployment/k8s/) 来安装或直接使用无需安装部署的 [云服务](https://cloud.taosdata.com/)。本快速指南是面向想自己编译、打包、测试的开发者的。 用户可根据需求选择通过 [容器](https://docs.taosdata.com/get-started/docker/)、[安装包](https://docs.taosdata.com/get-started/package/)、[Kubernetes](https://docs.taosdata.com/deployment/k8s/) 来安装或直接使用无需安装部署的 [云服务](https://cloud.taosdata.com/)。本快速指南是面向想自己编译、打包、测试的开发者的。
如果想编译或测试TDengine连接器请访问以下仓库: [JDBC连接器](https://github.com/taosdata/taos-connector-jdbc), [Go连接器](https://github.com/taosdata/driver-go), [Python连接器](https://github.com/taosdata/taos-connector-python), [Node.js连接器](https://github.com/taosdata/taos-connector-node), [C#连接器](https://github.com/taosdata/taos-connector-dotnet), [Rust连接器](https://github.com/taosdata/taos-connector-rust). 如果想编译或测试 TDengine 连接器,请访问以下仓库:[JDBC连接器](https://github.com/taosdata/taos-connector-jdbc)、[Go连接器](https://github.com/taosdata/driver-go)、[Python连接器](https://github.com/taosdata/taos-connector-python)、[Node.js连接器](https://github.com/taosdata/taos-connector-node)、[C#连接器](https://github.com/taosdata/taos-connector-dotnet)、[Rust连接器](https://github.com/taosdata/taos-connector-rust)。
# 3. 前置条件 # 3. 前置条件
TDengine 目前可以在 Linux、 Windows、macOS 等平台上安装和运行。任何 OS 的应用也可以选择 taosAdapter 的 RESTful 接口连接服务端 taosd。CPU 支持 X64/ARM64后续会支持 MIPS64、Alpha64、ARM32、RISC-V 等 CPU 架构。目前不支持使用交叉编译器构建。 TDengine 目前可以在 Linux、 Windows、macOS 等平台上安装和运行。任何 OS 的应用也可以选择 taosAdapter 的 RESTful 接口连接服务端 taosd。CPU 支持 X64ARM64后续会支持 MIPS64、Alpha64、ARM32、RISC-V 等 CPU 架构。目前不支持使用交叉编译器构建。
如果你想要编译 taosAdapter 或者 taosKeeper需要安装 Go 1.18 及以上版本。 如果你想要编译 taosAdapter 或者 taosKeeper需要安装 Go 1.18 及以上版本。
@ -102,7 +102,7 @@ yum install -y zlib-static xz-devel snappy-devel jansson-devel pkgconfig libatom
<summary>安装 macOS 必备工具</summary> <summary>安装 macOS 必备工具</summary>
根据提示安装依赖工具 [brew](https://brew.sh/). 根据提示安装依赖工具 [brew](https://brew.sh/)
```bash ```bash
brew install argp-standalone gflags pkgconfig brew install argp-standalone gflags pkgconfig
@ -122,7 +122,7 @@ brew install argp-standalone gflags pkgconfig
## 3.4 克隆仓库 ## 3.4 克隆仓库
通过如下命令将TDengine仓库克隆到指定计算机: 通过如下命令将 TDengine 仓库克隆到指定计算机:
```bash ```bash
git clone https://github.com/taosdata/TDengine.git git clone https://github.com/taosdata/TDengine.git
@ -131,9 +131,9 @@ cd TDengine
# 4. 构建 # 4. 构建
TDengine 还提供一组辅助工具软件 taosTools目前它包含 taosBenchmark曾命名为 taosdemo和 taosdump 两个软件。默认 TDengine 编译不包含 taosTools, 您可以在编译 TDengine 时使用`cmake .. -DBUILD_TOOLS=true` 来同时编译 taosTools。 TDengine 还提供一组辅助工具软件 taosTools目前它包含 taosBenchmark曾命名为 taosdemo和 taosdump 两个软件。默认 TDengine 编译不包含 taosTools,您可以在编译 TDengine 时使用 `cmake .. -DBUILD_TOOLS=true` 来同时编译 taosTools。
为了构建TDengine, 请使用 [CMake](https://cmake.org/) 3.13.0 或者更高版本。 为了构建 TDengine请使用 [CMake](https://cmake.org/) 3.13.0 或者更高版本。
## 4.1 Linux 系统上构建 ## 4.1 Linux 系统上构建
@ -141,13 +141,13 @@ TDengine 还提供一组辅助工具软件 taosTools目前它包含 taosBench
<summary>Linux 系统上构建步骤</summary> <summary>Linux 系统上构建步骤</summary>
可以通过以下命令使用脚本 `build.sh` 编译TDengine和taosTools包括taosBenchmark和taosdump: 可以通过以下命令使用脚本 `build.sh` 编译 TDengine 和 taosTools包括 taosBenchmark 和 taosdump。
```bash ```bash
./build.sh ./build.sh
``` ```
也可以通过以下命令进行构建: 也可以通过以下命令进行构建
```bash ```bash
mkdir debug && cd debug mkdir debug && cd debug
@ -157,15 +157,15 @@ make
如果你想要编译 taosAdapter需要添加 `-DBUILD_HTTP=false` 选项。 如果你想要编译 taosAdapter需要添加 `-DBUILD_HTTP=false` 选项。
如果你想要编译 taosKeeper需要添加 `--DBUILD_KEEPER=true` 选项。 如果你想要编译 taosKeeper需要添加 `-DBUILD_KEEPER=true` 选项。
可以使用Jemalloc作为内存分配器而不是使用glibc: 可以使用 Jemalloc 作为内存分配器,而不是使用 glibc
```bash ```bash
cmake .. -DJEMALLOC_ENABLED=ON cmake .. -DJEMALLOC_ENABLED=ON
``` ```
TDengine 构建脚本可以自动检测 x86、x86-64、arm64 平台上主机的体系结构。 TDengine 构建脚本可以自动检测 x86、x86-64、arm64 平台上主机的体系结构。
您也可以通过 CPUTYPE 选项手动指定架构: 您也可以通过 CPUTYPE 选项手动指定架构
```bash ```bash
cmake .. -DCPUTYPE=aarch64 && cmake --build . cmake .. -DCPUTYPE=aarch64 && cmake --build .
@ -208,19 +208,19 @@ cmake .. -G "NMake Makefiles"
nmake nmake
``` ```
如果您使用Visual Studio 2019或2017: 如果您使用 Visual Studio 2019 或 2017
请执行 “cmd.exe” 打开命令窗口执行如下命令。 请执行 “cmd.exe” 打开命令窗口执行如下命令。
执行 vcvarsall.bat 时64 位的 Windows 请指定 “x64”32 位的 Windows 请指定 “x86”。 执行 vcvarsall.bat 时64 位的 Windows 请指定 “x64”32 位的 Windows 请指定 “x86”。
```cmd ```cmd
mkdir debug && cd debug mkdir debug && cd debug
"c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" < x64 | x86 > "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" < x64 | x86 >
cmake .. -G "NMake Makefiles" cmake .. -G "NMake Makefiles"
nmake nmake
``` ```
或者,您可以通过点击Windows开始菜单打开命令窗口->“Visual Studio < 2019 | 2017 >”文件夹->“x64原生工具命令提示符VS < 2019 | 2017 >”或“x86原生工具命令提示符VS < 2019 | 2017 >”取决于你的Windows是什么架构,然后执行命令如下: 或者,您可以通过点击 Windows 开始菜单打开命令窗口 -> `Visual Studio < 2019 | 2017 >` 文件夹 -> `x64 原生工具命令提示符 VS < 2019 | 2017 >``x86 原生工具命令提示符 < 2019 | 2017 >` 取决于你的 Windows 是什么架构,然后执行命令如下:
```cmd ```cmd
mkdir debug && cd debug mkdir debug && cd debug
@ -242,7 +242,7 @@ nmake
<summary>Linux 系统上安装详细步骤</summary> <summary>Linux 系统上安装详细步骤</summary>
构建成功后TDengine可以通过以下命令进行安装: 构建成功后TDengine 可以通过以下命令进行安装:
```bash ```bash
sudo make install sudo make install
@ -257,7 +257,7 @@ sudo make install
<summary>macOS 系统上安装详细步骤</summary> <summary>macOS 系统上安装详细步骤</summary>
构建成功后TDengine可以通过以下命令进行安装: 构建成功后TDengine可以通过以下命令进行安装
```bash ```bash
sudo make install sudo make install
@ -271,7 +271,7 @@ sudo make install
<summary>Windows 系统上安装详细步骤</summary> <summary>Windows 系统上安装详细步骤</summary>
构建成功后TDengine可以通过以下命令进行安装: 构建成功后TDengine 可以通过以下命令进行安装:
```cmd ```cmd
nmake install nmake install
@ -287,12 +287,12 @@ nmake install
<summary>Linux 系统上运行详细步骤</summary> <summary>Linux 系统上运行详细步骤</summary>
在Linux系统上安装TDengine完成后在终端运行如下命令启动服务: 在Linux 系统上安装 TDengine 完成后,在终端运行如下命令启动服务
```bash ```bash
sudo systemctl start taosd sudo systemctl start taosd
``` ```
然后用户可以通过如下命令使用TDengine命令行连接TDengine服务: 然后用户可以通过如下命令使用 TDengine 命令行连接 TDengine 服务:
```bash ```bash
taos taos
@ -300,13 +300,13 @@ taos
如果 TDengine 命令行连接服务器成功,系统将打印欢迎信息和版本信息。否则,将显示连接错误信息。 如果 TDengine 命令行连接服务器成功,系统将打印欢迎信息和版本信息。否则,将显示连接错误信息。
如果您不想将TDengine作为服务运行您可以在当前终端中运行它。例如要在构建完成后快速启动TDengine服务器在终端中运行以下命令我们以Linux为例Windows上的命令为 `taosd.exe` 如果您不想将 TDengine 作为服务运行,您可以在当前终端中运行它。例如,要在构建完成后快速启动 TDengine 服务器,在终端中运行以下命令:(以 Linux 为例Windows 上的命令为 `taosd.exe`
```bash ```bash
./build/bin/taosd -c test/cfg ./build/bin/taosd -c test/cfg
``` ```
在另一个终端上,使用TDengine命令行连接服务器: 在另一个终端上,使用 TDengine 命令行连接服务器:
```bash ```bash
./build/bin/taos -c test/cfg ./build/bin/taos -c test/cfg
@ -322,13 +322,13 @@ taos
<summary>macOS 系统上运行详细步骤</summary> <summary>macOS 系统上运行详细步骤</summary>
在macOS上安装完成后启动服务双击/applications/TDengine启动程序或者在终端中执行如下命令 macOS 上安装完成后启动服务,双击 `/applications/TDengine` 启动程序,或者在终端中执行如下命令:
```bash ```bash
sudo launchctl start com.tdengine.taosd sudo launchctl start com.tdengine.taosd
``` ```
然后在终端中使用如下命令通过TDengine命令行连接TDengine服务器: 然后在终端中使用如下命令通过 TDengine 命令行连接 TDengine 服务器:
```bash ```bash
taos taos
@ -345,13 +345,13 @@ taos
<summary>Windows 系统上运行详细步骤</summary> <summary>Windows 系统上运行详细步骤</summary>
您可以使用以下命令在Windows平台上启动TDengine服务器: 您可以使用以下命令在 Windows 平台上启动 TDengine 服务器:
```cmd ```cmd
.\build\bin\taosd.exe -c test\cfg .\build\bin\taosd.exe -c test\cfg
``` ```
在另一个终端上,使用TDengine命令行连接服务器: 在另一个终端上,使用 TDengine 命令行连接服务器:
```cmd ```cmd
.\build\bin\taos.exe -c test\cfg .\build\bin\taos.exe -c test\cfg
@ -371,7 +371,7 @@ TDengine发布版本的完整列表请参考 [版本列表](https://github.co
# 10. 工作流 # 10. 工作流
TDengine构建检查工作流可以在参考 [Github Action](https://github.com/taosdata/TDengine/actions/workflows/taosd-ci-build.yml), 更多的工作流正在创建中,将很快可用。 TDengine 构建检查工作流可以在参考 [Github Action](https://github.com/taosdata/TDengine/actions/workflows/taosd-ci-build.yml)更多的工作流正在创建中,将很快可用。
# 11. 覆盖率 # 11. 覆盖率
@ -381,7 +381,7 @@ TDengine构建检查工作流可以在参考 [Github Action](https://github.com/
<summary>如何在本地运行测试覆盖率报告?</summary> <summary>如何在本地运行测试覆盖率报告?</summary>
在本地创建测试覆盖率报告HTML格式),请运行以下命令: 在本地创建测试覆盖率报告HTML 格式),请运行以下命令:
```bash ```bash
cd tests cd tests
@ -389,7 +389,7 @@ bash setup-lcov.sh -v 1.16 && ./run_local_coverage.sh -b main -c task
# on main branch and run cases in longtimeruning_cases.task # on main branch and run cases in longtimeruning_cases.task
# for more infomation about options please refer to ./run_local_coverage.sh -h # for more infomation about options please refer to ./run_local_coverage.sh -h
``` ```
> **注意:** > **注意**
> 请注意,-b 和 -i 选项将使用 -DCOVER=true 选项重新编译 TDengine这可能需要花费一些时间。 > 请注意,-b 和 -i 选项将使用 -DCOVER=true 选项重新编译 TDengine这可能需要花费一些时间。
</details> </details>

View File

@ -116,8 +116,6 @@ ELSE()
set(VAR_TSZ "TSZ" CACHE INTERNAL "global variant tsz") set(VAR_TSZ "TSZ" CACHE INTERNAL "global variant tsz")
ENDIF() ENDIF()
# SET(JEMALLOC_ENABLED OFF)
IF(TD_WINDOWS) IF(TD_WINDOWS)
MESSAGE("${Yellow} set compiler flag for Windows! ${ColourReset}") MESSAGE("${Yellow} set compiler flag for Windows! ${ColourReset}")
@ -259,12 +257,15 @@ ELSE()
ENDIF() ENDIF()
IF(TD_LINUX) IF(TD_LINUX_64)
IF(${JEMALLOC_ENABLED}) IF(${JEMALLOC_ENABLED})
MESSAGE(STATUS "JEMALLOC Enabled") MESSAGE(STATUS "JEMALLOC Enabled")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=attributes") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=attributes")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=attributes") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=attributes")
SET(LINK_JEMALLOC "-L${CMAKE_BINARY_DIR}/build/lib -ljemalloc")
ADD_DEFINITIONS(-DTD_JEMALLOC_ENABLED -I${CMAKE_BINARY_DIR}/build/include -L${CMAKE_BINARY_DIR}/build/lib -Wl,-rpath,${CMAKE_BINARY_DIR}/build/lib)
ELSE() ELSE()
MESSAGE(STATUS "JEMALLOC Disabled") MESSAGE(STATUS "JEMALLOC Disabled")
SET(LINK_JEMALLOC "")
ENDIF() ENDIF()
ENDIF() ENDIF()

View File

@ -14,24 +14,12 @@ target_include_directories(
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/node_mgmt/inc" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/node_mgmt/inc"
) )
IF(TD_ENTERPRISE) if(TD_ENTERPRISE)
IF(${BUILD_WITH_S3}) if(${BUILD_WITH_S3})
add_definitions(-DUSE_S3) add_definitions(-DUSE_S3)
ELSEIF(${BUILD_WITH_COS}) elseif(${BUILD_WITH_COS})
add_definitions(-DUSE_COS) add_definitions(-DUSE_COS)
ENDIF() endif()
ENDIF() endif()
IF(TD_LINUX_64 AND JEMALLOC_ENABLED)
ADD_DEFINITIONS(-DTD_JEMALLOC_ENABLED -I${CMAKE_BINARY_DIR}/build/include -L${CMAKE_BINARY_DIR}/build/lib -Wl,-rpath,${CMAKE_BINARY_DIR}/build/lib -ljemalloc)
SET(LINK_JEMALLOC "-L${CMAKE_BINARY_DIR}/build/lib -ljemalloc")
ELSE()
SET(LINK_JEMALLOC "")
ENDIF()
IF(TD_LINUX_64 AND JEMALLOC_ENABLED)
ADD_DEPENDENCIES(taosd jemalloc)
target_link_libraries(taosd dnode crypt ${LINK_JEMALLOC})
ELSE()
target_link_libraries(taosd dnode crypt) target_link_libraries(taosd dnode crypt)
ENDIF()

View File

@ -1,4 +1,5 @@
aux_source_directory(src OS_SRC) aux_source_directory(src OS_SRC)
if(NOT ${TD_WINDOWS}) if(NOT ${TD_WINDOWS})
add_definitions(-DTHREAD_SAFE=1) add_definitions(-DTHREAD_SAFE=1)
aux_source_directory(src/timezone OS_TZ) aux_source_directory(src/timezone OS_TZ)
@ -6,6 +7,7 @@ if(NOT ${TD_WINDOWS})
else() else()
add_library(os STATIC ${OS_SRC}) add_library(os STATIC ${OS_SRC})
endif(NOT ${TD_WINDOWS}) endif(NOT ${TD_WINDOWS})
target_include_directories( target_include_directories(
os os
PUBLIC "${TD_SOURCE_DIR}/include/os" PUBLIC "${TD_SOURCE_DIR}/include/os"
@ -16,21 +18,26 @@ target_include_directories(
PUBLIC "${TD_SOURCE_DIR}/contrib/msvcregex" PUBLIC "${TD_SOURCE_DIR}/contrib/msvcregex"
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/inc" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/inc"
) )
# iconv # iconv
if(TD_WINDOWS) if(TD_WINDOWS)
find_path(IconvApiIncludes iconv.h "${TD_SOURCE_DIR}/contrib/iconv") find_path(IconvApiIncludes iconv.h "${TD_SOURCE_DIR}/contrib/iconv")
else() else()
find_path(IconvApiIncludes iconv.h PATHS) find_path(IconvApiIncludes iconv.h PATHS)
endif(TD_WINDOWS) endif(TD_WINDOWS)
if(NOT IconvApiIncludes) if(NOT IconvApiIncludes)
add_definitions(-DDISALLOW_NCHAR_WITHOUT_ICONV) add_definitions(-DDISALLOW_NCHAR_WITHOUT_ICONV)
endif() endif()
if(USE_TD_MEMORY) if(USE_TD_MEMORY)
add_definitions(-DUSE_TD_MEMORY) add_definitions(-DUSE_TD_MEMORY)
endif() endif()
if(BUILD_WITH_RAND_ERR) if(BUILD_WITH_RAND_ERR)
add_definitions(-DBUILD_WITH_RAND_ERR) add_definitions(-DBUILD_WITH_RAND_ERR)
endif() endif()
if(BUILD_ADDR2LINE) if(BUILD_ADDR2LINE)
if(NOT TD_WINDOWS) if(NOT TD_WINDOWS)
target_include_directories( target_include_directories(
@ -41,16 +48,21 @@ if(BUILD_ADDR2LINE)
os PUBLIC addr2line dl z os PUBLIC addr2line dl z
) )
endif() endif()
add_definitions(-DUSE_ADDR2LINE) add_definitions(-DUSE_ADDR2LINE)
endif() endif()
if(CHECK_STR2INT_ERROR) if(CHECK_STR2INT_ERROR)
add_definitions(-DTD_CHECK_STR_TO_INT_ERROR) add_definitions(-DTD_CHECK_STR_TO_INT_ERROR)
endif() endif()
target_link_libraries( target_link_libraries(
os os
PUBLIC pthread PUBLIC pthread
PUBLIC zlibstatic PUBLIC zlibstatic
PUBLIC ${LINK_JEMALLOC}
) )
if(TD_WINDOWS) if(TD_WINDOWS)
target_link_libraries( target_link_libraries(
os PUBLIC ws2_32 iconv msvcregex wcwidth winmm crashdump dbghelp version KtmW32 os PUBLIC ws2_32 iconv msvcregex wcwidth winmm crashdump dbghelp version KtmW32
@ -73,15 +85,14 @@ else()
) )
endif() endif()
IF (JEMALLOC_ENABLED) if(JEMALLOC_ENABLED)
target_link_libraries(os PUBLIC -L${CMAKE_BINARY_DIR}/build/lib -ljemalloc) add_dependencies(os jemalloc)
ENDIF () endif()
# if(NOT ${TD_WINDOWS}) # if(NOT ${TD_WINDOWS})
# find_library(tz libtz.a "${TD_SOURCE_DIR}/contrib/tz") # find_library(tz libtz.a "${TD_SOURCE_DIR}/contrib/tz")
# target_link_libraries(os PUBLIC ${tz}) # target_link_libraries(os PUBLIC ${tz})
# endif(NOT ${TD_WINDOWS}) # endif(NOT ${TD_WINDOWS})
if(${BUILD_TEST}) if(${BUILD_TEST})
add_subdirectory(test) add_subdirectory(test)
endif(${BUILD_TEST}) endif(${BUILD_TEST})

View File

@ -2,14 +2,6 @@ aux_source_directory(src SHELL_SRC)
add_executable(shell ${SHELL_SRC}) add_executable(shell ${SHELL_SRC})
IF(TD_LINUX_64 AND JEMALLOC_ENABLED)
ADD_DEFINITIONS(-DTD_JEMALLOC_ENABLED -I${CMAKE_BINARY_DIR}/build/include -L${CMAKE_BINARY_DIR}/build/lib -Wl,-rpath,${CMAKE_BINARY_DIR}/build/lib -ljemalloc)
SET(LINK_JEMALLOC "-L${CMAKE_BINARY_DIR}/build/lib -ljemalloc")
ADD_DEPENDENCIES(shell jemalloc)
ELSE()
SET(LINK_JEMALLOC "")
ENDIF()
IF(TD_LINUX AND TD_WEBSOCKET) IF(TD_LINUX AND TD_WEBSOCKET)
ADD_DEFINITIONS(-DWEBSOCKET -I${CMAKE_BINARY_DIR}/build/include -ltaosws) ADD_DEFINITIONS(-DWEBSOCKET -I${CMAKE_BINARY_DIR}/build/include -ltaosws)
SET(LINK_WEBSOCKET "-L${CMAKE_BINARY_DIR}/build/lib -ltaosws") SET(LINK_WEBSOCKET "-L${CMAKE_BINARY_DIR}/build/lib -ltaosws")
@ -33,13 +25,14 @@ ELSE()
ENDIF() ENDIF()
if(TD_WINDOWS) if(TD_WINDOWS)
target_link_libraries(shell PUBLIC ${TAOS_LIB_STATIC} ${LINK_WEBSOCKET}) target_link_libraries(shell PUBLIC ${TAOS_LIB_STATIC})
else() else()
target_link_libraries(shell PUBLIC ${TAOS_LIB} ${LINK_WEBSOCKET} ${LINK_JEMALLOC} ${LINK_ARGP}) target_link_libraries(shell PUBLIC ${TAOS_LIB} ${LINK_ARGP})
endif() endif()
target_link_libraries( target_link_libraries(
shell shell
PUBLIC ${LINK_WEBSOCKET}
PRIVATE os common transport geometry util PRIVATE os common transport geometry util
) )
@ -53,16 +46,17 @@ SET_TARGET_PROPERTIES(shell PROPERTIES OUTPUT_NAME taos)
# #
# generator library shell_ut for uint test # generator library shell_ut for uint test
# #
IF(TD_LINUX) IF(TD_LINUX)
# include # include
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/inc) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/inc)
# shell_ut library # shell_ut library
add_library(shell_ut STATIC ${SHELL_SRC}) add_library(shell_ut STATIC ${SHELL_SRC})
IF(TD_WEBSOCKET) IF(TD_WEBSOCKET)
ADD_DEPENDENCIES(shell_ut taosws-rs) ADD_DEPENDENCIES(shell_ut taosws-rs)
ENDIF() ENDIF()
target_link_libraries(shell_ut PUBLIC ${TAOS_LIB} ${LINK_WEBSOCKET} ${LINK_JEMALLOC} ${LINK_ARGP}) target_link_libraries(shell_ut PUBLIC ${TAOS_LIB} ${LINK_WEBSOCKET} ${LINK_JEMALLOC} ${LINK_ARGP})
target_link_libraries(shell_ut PRIVATE os common transport geometry util) target_link_libraries(shell_ut PRIVATE os common transport geometry util)