瀏覽代碼

refactor & feat: 调整CMake输出

SongZihuan 3 年之前
父節點
當前提交
07598f509c
共有 4 個文件被更改,包括 24 次插入22 次删除
  1. 2 1
      .gitignore
  2. 13 14
      CMakeLists.txt
  3. 8 7
      cmake/info.cmake
  4. 1 0
      test/CMakeLists.txt

+ 2 - 1
.gitignore

@@ -58,4 +58,5 @@ dkms.conf
 .vscode
 cmake-*
 out
-CMakePresets.json
+CMakePresets.json
+CMakeSettings.json

+ 13 - 14
CMakeLists.txt

@@ -29,22 +29,21 @@ check_c_compiler_flag("-fPIC" fpic_work)  # 检查是否有fPIC选项
 if (fpic_work)
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
 endif()
+unset(fpic_work)
+
+include(CheckCXXCompilerFlag)
+check_cxx_compiler_flag("-fPIC" fpic_work)  # 检查是否有fPIC选项
+if (fpic_work)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
+endif()
+unset(fpic_work)
 
 if (MSVC)
-    set(CMAKE_GNUtoMS TRUE)
-    check_c_compiler_flag("/utf-8" utf8_work)
-    if (NOT utf8_work)
-        message(FATAL_ERROR "The msvc not support utf-8")
-    endif()
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /utf-8")
-    set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} /utf-8 /EHsc")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /utf-8")
 else()
-    check_c_compiler_flag("-fexec-charset=UTF-8" utf8_work)
-    if (NOT utf8_work)
-        message(FATAL_ERROR "The compiler not support utf-8")
-    endif()
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexec-charset=UTF-8")
-    set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -fexec-charset=UTF-8")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexec-charset=UTF-8")
 endif()
 
 # 相关参数
@@ -114,8 +113,8 @@ configure_file(${CMAKE_SOURCE_DIR}/include/base.h.in
                ${CMAKE_BINARY_DIR}/${INSTALL_INCLUDEDIR}/aFunbase.h
                @ONLY)
 
-include(deps)  # 安装依赖
-add_subdirectory(deps)
+add_subdirectory(deps)   # 安装依赖
+include(deps)  # 查找依赖
 if (DEPS_FOUND)
     #include(${CMAKE_CURRENT_LIST_DIR}/lang/hgt.cmake)  # 安装lang库
     add_subdirectory(src)
@@ -192,4 +191,4 @@ if (_build_test)
 endif()
 add_subdirectory(test)  # test的相关内容仍会被构建
 #
-#include(info)
+include(info)

+ 8 - 7
cmake/info.cmake

@@ -1,16 +1,10 @@
 include_guard(GLOBAL)
 
-set(PRINT_INFO ON CACHE BOOL "Print system info.")  # 默认设定为 ON 即打印一次
-set(_print ${PRINT_INFO})
-
-if (NOT _print)
-    return()
-endif()
-
 # 显示编译器信息(1)
 message(STATUS "CMAKE_C_COMPILER = ${CMAKE_C_COMPILER}")  # 显示C编译器的路径
 message(STATUS "CMAKE_CXX_COMPILER = ${CMAKE_CXX_COMPILER}")  # 显示CPP编译器的路径
 message(STATUS "CMAKE_C_FLAGS = ${CMAKE_C_FLAGS}")  # 显示C编译器的选项
+message(STATUS "CMAKE_CXX_FLAGS = ${CMAKE_CXX_FLAGS}")  # 显示C编译器的选项
 message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")  # 当前的构建类型(若为设置则为空)
 
 # 显示CMake信息
@@ -22,6 +16,7 @@ message(STATUS "CMAKE_SYSTEM_NAME = ${CMAKE_SYSTEM_NAME}")
 
 # 显示编译器信息(2)
 message(STATUS "CMAKE_C_COMPILER_ID = ${CMAKE_C_COMPILER_ID}")
+message(STATUS "CMAKE_CXX_COMPILER_ID = ${CMAKE_CXX_COMPILER_ID}")
 
 if(CMAKE_SIZEOF_VOID_P EQUAL 8)
     message(STATUS "Target is 64 bits")
@@ -31,6 +26,12 @@ endif()
 
 message(STATUS "CMAKE_HOST_SYSTEM_PROCESSOR = ${CMAKE_HOST_SYSTEM_PROCESSOR}")
 
+set(PRINT_INFO ON CACHE BOOL "Print system info.")  # 默认设定为 ON 即打印一次
+set(_print ${PRINT_INFO})
+if (NOT _print)
+    return()
+endif()
+
 # 查询主机信息
 foreach(key
         IN ITEMS

+ 1 - 0
test/CMakeLists.txt

@@ -2,6 +2,7 @@
 include(function)
 
 if (_build_test)
+    message(STATUS "Build test")
     add_subdirectory(lib)
     add_subdirectory(src)
 endif()