/atframe_utils

cxx utils code

Primary LanguageC++MIT LicenseMIT

atframe_utils

cxx utils code

ci-badge codecov badge

CI Job Matrix

Target System Toolchain Note
Linux GCC -
Linux GCC With MbedTLS
Linux GCC-11 -
Linux Clang With libc++
Linux GCC 4.8 -
MinGW64 GCC Static linking
MinGW64 GCC Dynamic linking
Windows Visual Studio 2022 Static linking
Windows Visual Studio 2022 Dynamic linking
Windows Visual Studio 2019 -
macOS AppleClang With libc++

Usage

  • require cmake 3.16.0 or upper
  • require gcc 4.8+/clang 3.8+/apple clang 6.0+/MSVC 14.10+
# clone and make build directory
git clone --single-branch --depth=1 -b master https://github.com/atframework/atframe_utils.git
mkdir atframe_utils/build && cd atframe_utils/build

# run cmake
# cmake <atframe_utils dir> [options...]
cmake .. -DPROJECT_ENABLE_SAMPLE=YES -DPROJECT_ENABLE_UNITTEST=YES -DPROJECT_ENABLE_TOOLS=ON #  -DCMAKE_INSTALL_PREFIX=<install prefix>

# build
cmake --build . # using clang or gcc
# cmake --build . --config RelWithDebInfo # using MSVC

# run unit test
ctest . -V

# run unit test
cmake --build . --target INSTALL # using clang or gcc
# cmake --build . --config RelWithDebInfo --target INSTALL # using MSVC

Other options

Option Description
BUILD_SHARED_LIBS=YES|NO [default=NO] Build dynamic library
LIBUNWIND_ENABLED=YES|NO [default=NO] Enable and using libunwind for callstack unwind
LOG_WRAPPER_ENABLE_LUA_SUPPORT=YES|NO [default=YES] Enable lua support for log system
LOG_WRAPPER_CHECK_LUA=YES|NO [default=YES] Enable checking for lua support
LOG_WRAPPER_ENABLE_STACKTRACE=YES|NO [default=YES] Enable stack trace for log system
ENABLE_MIXEDINT_MAGIC_MASK=0-8 [default=0] Set mixed int mask
CRYPTO_DISABLED=YES|NO [default=NO] Disable crypto and DH/ECDH support
CRYPTO_USE_OPENSSL=YES|NO [default=NO] Using openssl for crypto and DH/ECDH support, and close auto detection
CRYPTO_USE_MBEDTLS=YES|NO [default=NO] Using mbedtls for crypto and DH/ECDH support, and close auto detection