|
@@ -0,0 +1,161 @@
|
|
|
|
+cmake_minimum_required(VERSION 3.12)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+project(SecurePlayAuxiliaryServer VERSION 0.1 LANGUAGES CXX)
|
|
|
|
+
|
|
|
|
+set(CMAKE_AUTOUIC ON)
|
|
|
|
+set(CMAKE_AUTOMOC ON)
|
|
|
|
+set(CMAKE_AUTORCC ON)
|
|
|
|
+
|
|
|
|
+set(CMAKE_CXX_STANDARD 17)
|
|
|
|
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+#=========================================================
|
|
|
|
+#******************** 指定Qt安装路径 ********************
|
|
|
|
+#=========================================================
|
|
|
|
+# option(QT_5.12.12 "使用Qt5.12.12" OFF)
|
|
|
|
+
|
|
|
|
+# if(QT_5.12.12)
|
|
|
|
+# if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
|
|
|
|
+# set(CMAKE_PREFIX_PATH "C:/Qt/Qt5.12.12/5.12.12/mingw73_64")
|
|
|
|
+# elseif(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
|
|
|
+# set(CMAKE_PREFIX_PATH "C:/Qt/Qt5.12.12/5.12.12/msvc2017_64/bin")
|
|
|
|
+# endif()
|
|
|
|
+# endif()
|
|
|
|
+
|
|
|
|
+#=========================================================
|
|
|
|
+#************* 设置可执行文件的名称和输出位置 *************
|
|
|
|
+#=========================================================
|
|
|
|
+
|
|
|
|
+#设置可执行文件名称
|
|
|
|
+set(execName1 SecurePlayAuxServer)
|
|
|
|
+set(execName2 Show1)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+#设置可执行文件和库位置,可能是qt tools的bug,选择32位依旧是64位编译器
|
|
|
|
+if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
|
|
+ message(STATUS "Using Linux System")
|
|
|
|
+ if(CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
+ 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_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()
|
|
|
|
+ if(CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
+ message(STATUS "编译类型:${CMAKE_BUILD_TYPE}")
|
|
|
|
+ else()
|
|
|
|
+ message(STATUS "编译类型:${CMAKE_BUILD_TYPE}")
|
|
|
|
+ endif()
|
|
|
|
+ elseif(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
|
|
|
+ #不支持MSVC
|
|
|
|
+ message(FATAL_ERROR "MSVC is not supported")
|
|
|
|
+ endif()
|
|
|
|
+endif()
|
|
|
|
+
|
|
|
|
+#设置库和可执行文件的输出位置
|
|
|
|
+set(EXECUTABLE_OUTPUT_PATH ${exec_out_path})
|
|
|
|
+set(LIBRARY_OUTPUT_PATH ${exec_out_path})
|
|
|
|
+
|
|
|
|
+#指定库的位置,方便寻找
|
|
|
|
+link_directories(${BUILD_LIB_PATH})
|
|
|
|
+
|
|
|
|
+#=======================================================
|
|
|
|
+#*************** 启用一些模块和选项 ***************
|
|
|
|
+#=======================================================
|
|
|
|
+
|
|
|
|
+#设置MSVC的一些编译属性
|
|
|
|
+if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
|
|
|
+ #设置MSVC使用UTF-8
|
|
|
|
+ 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")
|
|
|
|
+endif()
|
|
|
|
+
|
|
|
|
+#添加一些gcc的编译属性
|
|
|
|
+if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
|
|
|
|
+# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
|
|
|
|
+# #添加编译参数,这个参数会应用到全局,C和C++都会生效
|
|
|
|
+# add_compile_options(-Wall -O2)
|
|
|
|
+endif()
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+#定义一些宏
|
|
|
|
+if(CMAKE_BUILD_TYPE MATCHES Debug)
|
|
|
|
+ add_compile_definitions(C_DEBUG)
|
|
|
|
+elseif(CMAKE_BUILD_TYPE MATCHES Release)
|
|
|
|
+ add_compile_definitions(C_RELEASE)
|
|
|
|
+endif()
|
|
|
|
+
|
|
|
|
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
|
|
+ option(ENABLE_SPDLOG_STATIC_LIB "使用SPDLOG静态库" OFF)
|
|
|
|
+elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
|
|
|
+
|
|
|
|
+endif()
|
|
|
|
+
|
|
|
|
+#需要定义这个宏,才会使用编译好的动态库
|
|
|
|
+add_compile_definitions(SPDLOG_COMPILED_LIB)
|
|
|
|
+
|
|
|
|
+#给spdlog添加宏定义,使其支持%#等源文件相关的标志,其实就是设置日志级别
|
|
|
|
+add_compile_definitions(SPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_TRACE)
|
|
|
|
+
|
|
|
|
+#=========================================================
|
|
|
|
+#******************* 搜索库添加库 ***********************
|
|
|
|
+#=========================================================
|
|
|
|
+
|
|
|
|
+# find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
|
|
|
|
+# find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
|
|
|
|
+
|
|
|
|
+find_package(Qt5 COMPONENTS
|
|
|
|
+ Widgets
|
|
|
|
+ Core
|
|
|
|
+ Network
|
|
|
|
+ Sql
|
|
|
|
+ REQUIRED
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+#包含外部通用库
|
|
|
|
+include(${CMAKE_SOURCE_DIR}/External/Libraries/Libraries.cmake)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+#=========================================================
|
|
|
|
+#***************** 添加头文件和源文件 ********************
|
|
|
|
+#=========================================================
|
|
|
|
+
|
|
|
|
+#包含源文件
|
|
|
|
+file(GLOB GLOBAL_SRC
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+#=========================================================
|
|
|
|
+#******************* 生成可执行文件 *********************
|
|
|
|
+#=========================================================
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+add_subdirectory(SecurePlayAuxServer)
|
|
|
|
+# add_subdirectory(ShowFlowChart)
|
|
|
|
+# add_subdirectory(show2)
|
|
|
|
+
|
|
|
|
+
|