CMakeLists.txt 1.4 KB
Newer Older
O
oceanbase-admin 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
cmake_minimum_required(VERSION 3.20.0)
project(easy
  VERSION 1.1.22
  LANGUAGES C CXX)

message(STATUS "check deps for libeasy")
if (NOT DEP_DIR)
  message(FATAL_ERROR "DEP_DIR not set")
endif()


add_library(easy_base INTERFACE)

set(INNER_INCLUDE_DIRS
  ${CMAKE_CURRENT_SOURCE_DIR}/src/include
  ${CMAKE_CURRENT_SOURCE_DIR}/src/
)

set_property(GLOBAL PROPERTY EASY_INCLUDE_DIRS
  ${INNER_INCLUDE_DIRS}
)

target_include_directories(
  easy_base INTERFACE
  ${INNER_INCLUDE_DIRS}
  ${DEP_DIR}/include
)

M
MizuhaHimuraki 已提交
29 30 31 32 33 34
set(EASY_ARCH_COMPILE_OPTIONS "")
if(${ARCHITECTURE} STREQUAL "aarch64")
  set(EASY_ARCH_COMPILE_OPTIONS -Wno-tautological-constant-out-of-range-compare)
endif()


O
oceanbase-admin 已提交
35
if (OB_USE_CLANG)
M
MizuhaHimuraki 已提交
36
  set(EASY_CC_WNO -fno-strict-aliasing -Wno-unused-variable -Wno-unused-function -fmax-type-align=8 ${EASY_ARCH_COMPILE_OPTIONS})
O
oceanbase-admin 已提交
37
else()
M
MizuhaHimuraki 已提交
38
  set(EASY_CC_WNO -fno-strict-aliasing -Wno-unused-variable -Wno-implicit-function-declaration -Wno-unused-but-set-variable -Wno-unused-function ${EASY_ARCH_COMPILE_OPTIONS})
O
oceanbase-admin 已提交
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
endif()


target_compile_options(easy_base
  INTERFACE
  -D_GLIBCXX_USE_CXX11_ABI=0 -D_GNU_SOURCE -D__STDC_LIMIT_MACROS
  ${MARCH_CFLAGS} ${MTUNE_CFLAGS}
  $<$<COMPILE_LANGUAGE:C>:-g -Wall -Werror -fPIC ${EASY_CC_WNO}>
)

target_link_libraries(easy_base
  INTERFACE
  -L${DEP_DIR}/lib
  -lpthread -lm -l:libssl.a -l:libcrypto.a
  ${ARCH_LDFLAGS}
)


target_compile_features(easy_base INTERFACE cxx_std_11)

add_subdirectory(src)
add_subdirectory(test EXCLUDE_FROM_ALL)