Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
oceanbase
oblogmsg
提交
70078293
O
oblogmsg
项目概览
oceanbase
/
oblogmsg
大约 1 年 前同步成功
通知
1
Star
10
Fork
6
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oblogmsg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
70078293
编写于
10月 11, 2021
作者:
X
xiaoyi.yl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use cmake in modern way
上级
b89736e7
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
100 addition
and
82 deletion
+100
-82
CMakeLists.txt
CMakeLists.txt
+59
-54
benchmark/CMakeLists.txt
benchmark/CMakeLists.txt
+4
-7
src/CMakeLists.txt
src/CMakeLists.txt
+24
-14
unittest/CMakeLists.txt
unittest/CMakeLists.txt
+13
-7
未找到文件。
CMakeLists.txt
浏览文件 @
70078293
cmake_minimum_required
(
VERSION 3.
14
)
project
(
oblogmsg
)
cmake_minimum_required
(
VERSION 3.
20.0
)
project
(
oblogmsg
VERSION 3.2.1
)
option
(
TEST
"build tests"
OFF
)
option
(
BENCHMARK
"build benchmarks"
OFF
)
option
(
USE_CXX11_ABI
"Build with C++11 ABI"
OFF
)
include
(
GNUInstallDirs
)
set
(
CMAKE_VERBOSE_MAKEFILE OFF
)
set
(
CMAKE_INSTALL_PREFIX /home/ds
)
if
(
NOT CMAKE_BUILD_TYPE
)
set
(
CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..."
FORCE
)
endif
()
if
(
NOT CMAKE_BUILD_TYPE
)
set
(
CMAKE_BUILD_TYPE
"RelWithDebInfo"
)
endif
()
add_compile_definitions
(
$<$<COMPILE_LANGUAGE:CXX>:_GLIBCXX_USE_CXX11_ABI=0>
)
if
(
NOT USE_CXX11_ABI
)
add_compile_definitions
(
$<$<COMPILE_LANGUAGE:CXX>:_GLIBCXX_USE_CXX11_ABI=0>
)
endif
()
add_subdirectory
(
src
)
add_library
(
oblogmsg_base INTERFACE
)
set
(
INNER_INCLUDE_DIRS
${
CMAKE_CURRENT_SOURCE_DIR
}
/include
)
set_property
(
GLOBAL PROPERTY OBLOGMSG_INCLUDE_DIRS
${
INNER_INCLUDE_DIRS
}
)
target_include_directories
(
oblogmsg_base INTERFACE
${
INNER_INCLUDE_DIRS
}
)
target_compile_features
(
oblogmsg_base INTERFACE cxx_std_11
)
# Check if oblogmsg is being used directly or via add_subdirectory
set
(
OBLOGMSG_MASTER_PROJECT OFF
)
if
(
PROJECT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
set
(
OBLOGMSG_MASTER_PROJECT ON
)
endif
(
)
add_subdirectory
(
src
)
if
(
OBLOGMSG_MASTER_PROJECT
)
message
(
STATUS
"git submodule update --init third_party/googletest"
)
execute_process
(
COMMAND git submodule update --init third_party/googletest
WORKING_DIRECTORY
${
PROJECT_SOURCE_DIR
}
COMMAND_ERROR_IS_FATAL ANY
)
set
(
BUILD_GMOCK OFF CACHE INTERNAL
"Builds the googlemock subproject"
)
set
(
INSTALL_GTEST OFF CACHE INTERNAL
"Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)"
)
add_subdirectory
(
third_party/googletest
)
add_subdirectory
(
unittest
)
add_subdirectory
(
benchmark
)
endif
()
if
(
TEST
)
execute_process
(
COMMAND git submodule init
COMMAND git submodule update
WORKING_DIRECTORY
${
PROJECT_SOURCE_DIR
}
)
add_subdirectory
(
third_party/googletest
)
add_subdirectory
(
unittest
)
enable_testing
()
endif
()
# If oblogmsg is used via add_subdirectory, by default we don't install it.
option
(
INSTALL_OBLOGMSG
"Whether or not install oblogmsg"
${
OBLOGMSG_MASTER_PROJECT
}
)
if
(
BENCHMARK
)
add_subdirectory
(
benchmark
)
endif
()
if
(
INSTALL_OBLOGMSG
)
################# INSTALL ##########################################################################
install
(
DIRECTORY include/
DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
/
${
PROJECT_NAME
}
)
install
(
TARGETS oblogmsg oblogmsg_static
LIBRARY DESTINATION lib64
ARCHIVE DESTINATION lib64
)
install
(
TARGETS oblogmsg_shared oblogmsg_static
EXPORT oblogmsg
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
INCLUDES DESTINATION
${
CMAKE_INSTALL_INCLUDEDIR
}
/
${
PROJECT_NAME
}
)
install
(
DIRECTORY include/ DESTINATION include/logmessage
)
install
(
EXPORT oblogmsg
DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
/cmake/oblogmsg
FILE oblogmsgConfig.cmake
NAMESPACE oceanbase::
)
set
(
CPACK_GENERATOR
"RPM"
)
set
(
CPACK_PACKAGE_NAME
"oblogmsg"
)
set
(
CPACK_COMPONENTS_IGNORE_GROUPS 1
)
set
(
CPACK_RPM_COMPONENT_INSTALL ON
)
set
(
CPACK_RPM_RELOCATION_PATHS /usr /home/ds
)
set
(
CPACK_PACKAGING_INSTALL_PREFIX /home/ds
)
set
(
CPACK_PACKAGE_VERSION 3.2
)
set
(
CPACK_RPM_PACKAGE_GROUP
"Applications/Databases"
)
set
(
CPACK_RPM_PACKAGE_LICENSE
"Mulan PubL v2."
)
set
(
CPACK_RPM_DEFAULT_USER
"admin"
)
set
(
CPACK_RPM_DEFAULT_GROUP
"admin"
)
set
(
CPACK_RPM_SPEC_MORE_DEFINE
"%global _missing_build_ids_terminate_build 0
################# PACKAGE ##########################################################################
set
(
CPACK_GENERATOR
"RPM"
)
set
(
CPACK_PACKAGE_NAME
${
PROJECT_NAME
}
)
set
(
CPACK_PACKAGE_VERSION
${
PROJECT_VERSION
}
)
set
(
CPACK_COMPONENTS_IGNORE_GROUPS 1
)
set
(
CPACK_RPM_COMPONENT_INSTALL ON
)
set
(
CPACK_RPM_RELOCATION_PATHS /usr /home/admin/oceanbase
)
set
(
CPACK_PACKAGING_INSTALL_PREFIX /home/admin/oceanbase
)
set
(
CPACK_RPM_PACKAGE_GROUP
"Applications/Databases"
)
set
(
CPACK_RPM_PACKAGE_LICENSE
"Mulan PubL v2."
)
set
(
CPACK_RPM_DEFAULT_USER
"admin"
)
set
(
CPACK_RPM_DEFAULT_GROUP
"admin"
)
set
(
CPACK_RPM_SPEC_MORE_DEFINE
"%global _missing_build_ids_terminate_build 0
%global _find_debuginfo_opts -g
%define __debug_install_post %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} %{_builddir}/%{?buildsubdir};%{nil}
%define debug_package %{nil}"
)
include
(
CPack
)
add_custom_target
(
rpm COMMAND +make package
)
include
(
CPack
)
endif
()
benchmark/CMakeLists.txt
浏览文件 @
70078293
set
(
SRC_LIST
lmTest.cpp
itoa.cpp
)
add_executable
(
lmTest
${
SRC_LIST
}
)
target_link_libraries
(
lmTest PUBLIC oblogmsg
)
target_compile_options
(
lmTest PRIVATE -DLMB
)
add_executable
(
lmTest itoa.cpp lmTest.cpp
)
target_compile_definitions
(
lmTest PRIVATE LMB
)
target_include_directories
(
lmTest PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
)
target_link_libraries
(
lmTest PRIVATE oblogmsg_shared
)
src/CMakeLists.txt
浏览文件 @
70078293
INCLUDE_DIRECTORIES
(
../include
set
(
SRC_LIST LogMsgBuf.cpp
LogMsgFactory.cpp
LogRecord.cpp
MetaInfo.cpp
MsgType.cpp
MsgVarArea.cpp
)
set
(
SRC_LIST
MsgType.cpp
LogMsgBuf.cpp
MsgVarArea.cpp
LogRecord.cpp
MetaInfo.cpp
LogMsgFactory.cpp
)
add_library
(
oblogmsg SHARED
${
SRC_LIST
}
)
add_library
(
oblogmsg_shared SHARED
${
SRC_LIST
}
)
add_library
(
oblogmsg_static STATIC
${
SRC_LIST
}
)
target_link_libraries
(
oblogmsg PUBLIC oblogmsg_base
)
target_link_libraries
(
oblogmsg_static PUBLIC oblogmsg_base
)
set_target_properties
(
oblogmsg_static PROPERTIES OUTPUT_NAME
"oblogmsg"
)
foreach
(
T IN ITEMS oblogmsg_shared oblogmsg_static
)
target_compile_features
(
${
T
}
PUBLIC cxx_std_11
)
set_target_properties
(
${
T
}
PROPERTIES OUTPUT_NAME oblogmsg
CXX_STANDARD 11
CXX_EXTENSIONS OFF
POSITION_INDEPENDENT_CODE ON
)
target_include_directories
(
${
T
}
PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
PUBLIC $<BUILD_INTERFACE:
${
CMAKE_CURRENT_SOURCE_DIR
}
/../include>
)
endforeach
()
# ensure that the build results can be run on systems with lower libstdc++ version than the build system
target_link_libraries
(
oblogmsg_shared PRIVATE -static-libstdc++
)
# with namespace oceanbase
add_library
(
oceanbase::oblogmsg_shared ALIAS oblogmsg_shared
)
add_library
(
oceanbase::oblogmsg_static ALIAS oblogmsg_static
)
unittest/CMakeLists.txt
浏览文件 @
70078293
enable_testing
()
add_executable
(
lr_unittest lrTest.cpp
)
target_link_libraries
(
lr_unittest PRIVATE oblogmsg_shared gtest
)
add_executable
(
varArea_unittest varAreaTest.cpp
)
target_include_directories
(
varArea_unittest PRIVATE
${
CMAKE_CURRENT_SOURCE_DIR
}
/../src
)
target_link_libraries
(
varArea_unittest PRIVATE oblogmsg_shared gtest
)
add_executable
(
md_unittest mdTest.cpp
)
target_link_libraries
(
md_unittest PRIVATE oblogmsg_shared gtest
)
add_executable
(
fa_unittest faTest.cpp
)
target_link_libraries
(
fa_unittest PRIVATE oblogmsg_shared gtest
)
add_executable
(
memoryleak_unittest memoryleakTest.cpp
)
target_link_libraries
(
lr_unittest PUBLIC oblogmsg gtest
)
target_link_libraries
(
varArea_unittest PUBLIC oblogmsg gtest
)
target_include_directories
(
varArea_unittest PUBLIC
${
CMAKE_CURRENT_SOURCE_DIR
}
/../src
)
target_link_libraries
(
md_unittest PUBLIC oblogmsg gtest
)
target_link_libraries
(
fa_unittest PUBLIC oblogmsg gtest
)
target_link_libraries
(
memoryleak_unittest PUBLIC oblogmsg gtest
)
target_link_libraries
(
memoryleak_unittest PRIVATE oblogmsg_shared gtest
)
enable_testing
()
add_test
(
lr_unittest lr_unittest
)
add_test
(
md_unittest md_unittest
)
add_test
(
fa_unittest fa_unittest
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录