Redis-0x04-用cmake构建项目
Redis项目是通过make构建的,考虑到以下几点,我觉得有必要通过cmake脚本生成MakeFile
cmake的跨平台性
源码的结构自定义组织
但是reids项目本身为了兼容跨平台性以及性能优化,提供了诸多的编译选项,我当前的cmake脚本只关注linux平台
linux系统
jemalloc内存分配器
1 项目结构
项目的构建分为两个部分
依赖的3rd_party编译,将其编译位链接库
源码,将其编译位可执行程序
2 make
之前看过了MakeFile的rule
3 cmake脚本编写
为了尽可能的简单,因此只关注于linux和mac平台,并且当前只编写了编译redis-server可执行程序的脚本
从MakeFile中可以看出来redis工程共提供了如下6个可执行程序的编译
redis-server
redis-sentinel
redis-check-rdb
redis-check-aof
redis-cli
redis-benchmark
3.1 根目录
3.1.1 CmakeLists.txt文件
负责源码的编译以及链接库
CMakeLists
1 |
|
3.1.2 configure.sh文件
执行cmake脚本生成Makefile
shell
1 |
|
3.1.3 build.sh文件
执行make
shell
1 |
|
3.1.4 run.sh文件
运行redis-server可执行程序
shell
1 |
|
3.2 deps目录
负责编译3rd_party的依赖
CMakeLists
1 |
|
3.2.1 deps/hdr_histogram
CMakeLists
1 |
|
3.2.2 deps/hiredis
hiredis本身就是cmake项目,因此不需要额外编写cmake脚本
3.2.3 deps/jemalloc
3.2.3.1 sh脚本
shell
1 |
|
3.2.3.2 cmake脚本
CMakeLists
1 |
|
3.2.4 deps/linenoise
CMakeLists
1 |
|
3.2.5 deps/lua
CMakeLists
1 |
|
Redis-0x04-用cmake构建项目
https://bannirui.github.io/2024/04/13/Redis/Redis-0x04-用cmake构建项目/