Sfoglia il codice sorgente

V0.6.5
1、修改了顶层的CMakeLists.txt,添加了输出位置

apple 3 giorni fa
parent
commit
9360ab5a0a
1 ha cambiato i file con 74 aggiunte e 47 eliminazioni
  1. 74 47
      CMakeLists.txt

+ 74 - 47
CMakeLists.txt

@@ -10,74 +10,101 @@ set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 #=========================================================
-#**********************  Qt库的位置 *********************
+#*******************  设置可执行文件名称 ******************
 #=========================================================
 
-# message(STATUS "CMAKE_PREFIX_PATH : ${CMAKE_PREFIX_PATH}")
-if(CMAKE_SYSTEM_NAME MATCHES Windows)
-    
-elseif(CMAKE_SYSTEM_NAME MATCHES Linux)
-    # set(CMAKE_PREFIX_PATH "/home/Apple/Qt/Qt5.12.12/5.12.12/gcc_64")
-endif()
 
-# message(STATUS "Using ${CMAKE_CXX_COMPILER_ID} Compiler")
-# message(STATUS "Compiler Version : ${CMAKE_CXX_COMPILER_VERSION}")
-# message(STATUS "Target System is ${CMAKE_SIZEOF_VOID_P} bit")
 
 #=========================================================
-#**************  指定可执行文件名称和位置 *****************
+#*****************  设置可执行文件输出位置 ****************
 #=========================================================
 
-
-#设置可执行文件名称
-# set(exec_name "Library")
-#包含子文件夹
-#include(${CMAKE_SOURCE_DIR}/CommonModule/common.cmake)
-
-#设置可执行文件和库的输出位置
-if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
-    message(STATUS "Using ${CMAKE_CXX_COMPILER_ID} Compiler")
-    #设置可执行文件输出位置
-    set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/../bin_GNU)
-    #设置库生成位置
-    set(LIB_PATH ${CMAKE_SOURCE_DIR}/../bin_GNU)
-
+#设置可执行文件和库位置,可能是qt tools的bug,选择32位依旧是64位编译器
+if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+    # message(STATUS "Using Linux System")
     if(CMAKE_BUILD_TYPE MATCHES Debug)
-        message(STATUS "编译类型:${CMAKE_BUILD_TYPE}")
-    else()
-        message(STATUS "编译类型:${CMAKE_BUILD_TYPE}")
+        set(exec_out_path ${CMAKE_SOURCE_DIR}/../bin_Debug)
+        set(BUILD_LIB_PATH ${CMAKE_SOURCE_DIR}/../bin_Debug)
+    elseif(CMAKE_BUILD_TYPE MATCHES Release)
+        set(exec_out_path ${CMAKE_SOURCE_DIR}/../bin_Release)
+        set(BUILD_LIB_PATH ${CMAKE_SOURCE_DIR}/../bin_Release)
     endif()
-
-elseif(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
-    message(STATUS "Using ${CMAKE_CXX_COMPILER_ID} Compiler")
-    # string(APPEND CMAKE_CXX_FLAGS " /Zc:__cplusplus /MP")
-    #设置可执行文件输出位置
-    set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/../bin_MSVC)
-    set(LIB_PATH ${CMAKE_SOURCE_DIR}/../bin_MSVC)
+elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
+    # message(STATUS "Using Windows System")
+    if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
+        message(STATUS "Using Compiler : ${CMAKE_CXX_COMPILER_ID}")
+        #设置日志库的位置,判断32位和64位,CMAKE_CL_64已经被废弃
+        if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+            # message(STATUS "Using 64bit Compiler")
+            #设置可执行文件输出位置
+            set(exec_out_path ${CMAKE_SOURCE_DIR}/../bin_GNU_64)
+            #设置库生成位置
+            set(BUILD_LIB_PATH ${CMAKE_SOURCE_DIR}/../bin_GNU_64)
+        elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+            # message(STATUS "Using 32bit Compiler")
+            #设置可执行文件输出位置
+            set(exec_out_path ${CMAKE_SOURCE_DIR}/../bin_GNU_32)
+            #设置库生成位置
+            set(BUILD_LIB_PATH ${CMAKE_SOURCE_DIR}/../bin_GNU_32)
+        endif()
+    elseif(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
+        #不支持MSVC
+        # message(FATAL_ERROR "MSVC is not supported")
+        #设置可执行文件输出位置
+        set(exec_out_path ${CMAKE_SOURCE_DIR}/../bin_MSVC)
+        #设置库生成位置
+        set(BUILD_LIB_PATH ${CMAKE_SOURCE_DIR}/../bin_MSVC)
+    endif()
+elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
+    # message(STATUS "Using MacOS System")
     if(CMAKE_BUILD_TYPE MATCHES Debug)
-        message(STATUS "编译类型:${CMAKE_BUILD_TYPE}")
-    else()
-        message(STATUS "编译类型:${CMAKE_BUILD_TYPE}")
+        set(exec_out_path ${CMAKE_SOURCE_DIR}/../bin_Debug)
+        set(BUILD_LIB_PATH ${CMAKE_SOURCE_DIR}/../bin_Debug)
+    elseif(CMAKE_BUILD_TYPE MATCHES Release)
+        set(exec_out_path ${CMAKE_SOURCE_DIR}/../bin_Release)
+        set(BUILD_LIB_PATH ${CMAKE_SOURCE_DIR}/../bin_Release)
     endif()
-    #设置MSVC使用UTF-8
-    add_compile_options(
-        "$<$<CXX_COMPILER_ID:MSVC>:/utf-8>"
-    #   "$<$<CXX_COMPILER_ID:MSVC>:/source-charset:utf-8>"
-    #   "$<$<CXX_COMPILER_ID:MSVC>:/execution-charset:utf-8>"
-    )
-    #消除MSVC对SPDLOG的兼容性警告
-    add_compile_definitions("_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING")
+else()
+    message(FATAL_ERROR "Unknown System")
 endif()
 
 
+#设置库和可执行文件的输出位置
+set(EXECUTABLE_OUTPUT_PATH ${exec_out_path})
+set(LIBRARY_OUTPUT_PATH ${exec_out_path})
+
 #指定库的位置,方便寻找
-link_directories(${LIB_PATH})
+link_directories(${BUILD_LIB_PATH})
 
 
 #=========================================================
 #*******************  定义一些参数变量 *******************
 #=========================================================
 
+#设置MSVC的一些编译属性
+if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
+    #设置MSVC使用UTF-8,这一句是必须的,否则中文会乱码,添加这一句,也不是设置为UTF-8 with BOM编码格式了
+    add_compile_options(
+      "$<$<CXX_COMPILER_ID:MSVC>:/source-charset:utf-8>"
+      "$<$<CXX_COMPILER_ID:MSVC>:/execution-charset:utf-8>"
+    )
+    #消除MSVC对SPDLOG的兼容性警告
+    add_compile_definitions("_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING")
+    #添加MSVC的宏定义
+    add_compile_definitions(MSVC)
+endif()
+
+#添加一些gcc的编译属性
+if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
+#    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
+#    #添加编译参数,这个参数会应用到全局,C和C++都会生效
+   add_compile_options(-Wall -O2)
+    #添加GCC的宏定义
+    add_compile_definitions(GCC)
+endif()
+
+
+
 #定义一些宏
 if(CMAKE_BUILD_TYPE MATCHES Debug)
     add_compile_definitions(C_DEBUG)