diff --git a/CMakeLists.txt b/CMakeLists.txt index b310a511d0e8b2e1ea4555d974ec06bbc65f82f3..c4b431e3c14f425bc17a6fb8f74ef0be31f4b129 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,20 +36,20 @@ ENDIF(WIN32) # This is for clangd plugin for vscode SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -Wall -Werror") IF(DEBUG) - MESSAGE("DEBUG has been set as TRUE ${DEBUG}") + MESSAGE(STATUS "DEBUG has been set as TRUE ${DEBUG}") SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O0 -g -DDEBUG ") ADD_DEFINITIONS(-DENABLE_DEBUG) ELSEIF(NOT DEFINED ENV{DEBUG}) - MESSAGE("Disable debug") + MESSAGE(STATUS "Disable debug") SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O2 -g ") ELSE() - MESSAGE("Enable debug") + MESSAGE(STATUS "Enable debug") SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -O0 -g -DDEBUG") ADD_DEFINITIONS(-DENABLE_DEBUG) ENDIF(DEBUG) IF (CONCURRENCY) - MESSAGE("CONCURRENCY is ON") + MESSAGE(STATUS "CONCURRENCY is ON") SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -DCONCURRENCY") ADD_DEFINITIONS(-DCONCURRENCY) ENDIF (CONCURRENCY) @@ -57,22 +57,29 @@ ENDIF (CONCURRENCY) SET(CMAKE_COMMON_FLAGS "${CMAKE_COMMON_FLAGS} -fprofile-arcs -ftest-coverage") SET(CMAKE_CXX_FLAGS ${CMAKE_COMMON_FLAGS}) SET(CMAKE_C_FLAGS ${CMAKE_COMMON_FLAGS}) -MESSAGE("CMAKE_CXX_FLAGS is " ${CMAKE_CXX_FLAGS}) +MESSAGE(STATUS "CMAKE_CXX_FLAGS is " ${CMAKE_CXX_FLAGS}) + +MESSAGE(STATUS "CMAKE_CXX_COMPILER_ID is " ${CMAKE_CXX_COMPILER_ID}) +IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + ADD_LINK_OPTIONS(-static-libgcc -static-libstdc++) +ENDIF() IF (ENABLE_ASAN) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=address") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address") - SET(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") + IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") + ADD_LINK_OPTIONS(-static-libasan) + ENDIF() ENDIF() IF (CMAKE_INSTALL_PREFIX) - MESSAGE("CMAKE_INSTALL_PREFIX has been set as " ${CMAKE_INSTALL_PREFIX} ) + MESSAGE(STATUS "CMAKE_INSTALL_PREFIX has been set as " ${CMAKE_INSTALL_PREFIX} ) ELSEIF(DEFINED ENV{CMAKE_INSTALL_PREFIX}) SET(CMAKE_INSTALL_PREFIX $ENV{CMAKE_INSTALL_PREFIX}) ELSE() SET(CMAKE_INSTALL_PREFIX /tmp/${PROJECT_NAME}) ENDIF() -MESSAGE("Install target dir is " ${CMAKE_INSTALL_PREFIX}) +MESSAGE(STATUS "Install target dir is " ${CMAKE_INSTALL_PREFIX}) IF (DEFINED ENV{LD_LIBRARY_PATH}) SET(LD_LIBRARY_PATH_STR $ENV{LD_LIBRARY_PATH}) diff --git a/build.sh b/build.sh index 463458a3c715b3e305ab5a9d7b57b539a9871f06..b45356b2aac5f17b599c1f649cd9c225278b97be 100755 --- a/build.sh +++ b/build.sh @@ -5,7 +5,7 @@ TOPDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) BUILD_SH=$TOPDIR/build.sh -CMAKE_COMMAND="cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 --log-level=WARNING" +CMAKE_COMMAND="cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 --log-level=STATUS" ALL_ARGS=("$@") BUILD_ARGS=() diff --git a/docs/src/how_to_build.md b/docs/src/how_to_build.md index ab64a8c1538d6a8c74fa59e60f90c2b8aac45e21..177f718f682b0eaf025907693de7e1e16e97a617 100644 --- a/docs/src/how_to_build.md +++ b/docs/src/how_to_build.md @@ -5,7 +5,7 @@ 假设系统上已经安装了make等编译工具。 MiniOB 需要使用: -- cmake 版本 >= 3.10 +- cmake 版本 >= 3.13 - gcc/clang gcc建议8.3以上,编译器需要支持c++20新标准 1. 环境初始化