首页 > 编程语言 >配置工程及引入测试--针对C++

配置工程及引入测试--针对C++

时间:2022-08-19 01:33:06浏览次数:54  
标签:set CMAKE -- C++ add Qt5.14 64 测试 DIR

 书写CMakeList同时支持windows、Linux、Mac,将头文件,三方库,源文件,测试代码目录进行分离

使用CMAKE区分Debug版本和Release版本;工程中同时生成动态库和测试用例;动态库方便日后的调用,测试用例用来检查程序的正确性

 

C++这一块使用 googleTest作为测试工具

 

对应的CMakeList如下

cmake_minimum_required(VERSION 3.0)
project(DS)

set(CMAKE_CXX_STANDARD 14)
set(GOOGLETEST_VERSION 1.9.0)

#判断系统环境
if (CMAKE_HOST_WIN32)
    set(win 1)
elseif (CMAKE_HOST_APPLE)
    set(MACOS 1)
elseif (CMAKE_HOST_UNIX)
    set(LINUX 1)
endif ()

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
if(win)
    set(CMAKE_PREFIX_PATH C:\\Qt\\Qt5.14.2\\5.14.2\\msvc2017_64)
elseif(MACOS)
    #set(CMAKE_PREFIX_PATH /home/bitcraze/Qt5.14.2/5.14.2/gcc_64)
    #set(CMAKE_PREFIX_PATH /opt/Qt5.14.2/5.14.2/gcc_64)
#    set(CMAKE_PREFIX_PATH /home/liujg/Qt5.14.2/5.14.2/gcc_64)
    set(CMAKE_PREFIX_PATH /Users/liujg/Qt5.14.2/5.14.2/clang_64)
else()
    set(CMAKE_PREFIX_PATH /opt/Qt5.14.2/5.14.2/gcc_64)
endif()

find_package(Qt5 COMPONENTS
        Core
        REQUIRED
        )

add_subdirectory(external/googletest)
include_directories(include
        external/googletest/include)

aux_source_directory(src DIR_SRC)
aux_source_directory(test DIR_TEST)


#加载所有的.h头文件
#file(GLOB_RECURSE DIR_INC_H   include/*.h)

set(mode "CMAKE_BUILD_TYPE")
if (CMAKE_HOST_WIN32)
    add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
    add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
endif()
#生成动态库
if(${mode} AND (CMAKE_BUILD_TYPE STREQUAL "Debug")) # 修改点
    add_library(libDS-d  SHARED ${DIR_SRC}
            ${DIR_INC_H} )
    target_link_libraries(libDS-d
            Qt5::Core
            )
elseif(${mode} AND (CMAKE_BUILD_TYPE STREQUAL "Release")) # 修改点
    add_library(libDS  SHARED ${DIR_SRC}  ${DIR_INC_H}  )
    target_link_libraries(libDS
            Qt5::Core
            )
endif()


#生成测试程序
if(${mode} AND (CMAKE_BUILD_TYPE STREQUAL "Debug"))
    add_executable(MyDS-d-test  ${DIR_SRC}  ${DIR_TEST}
            ${DIR_INC_H} external/googletest)
    target_link_libraries(MyDS-d-test
            Qt5::Core  gtest_main
            )
elseif(${mode} AND (CMAKE_BUILD_TYPE STREQUAL "Release"))
    add_executable(MyDS-test  ${DIR_SRC}  ${DIR_TEST}
            ${DIR_INC_H}  external/googletest)
    target_link_libraries(MyDS-test
            Qt5::Core gtest_main
            )
endif()

 

 

 

 

标签:set,CMAKE,--,C++,add,Qt5.14,64,测试,DIR
From: https://www.cnblogs.com/logmagic/p/16600665.html

相关文章

  • Spring 01: Spring配置 + IOC控制反转 + Setter注入
    简介Spring框架是一个容器,是整合其他框架的框架他的核心是IOC(控制反转)和AOP(面向切面编程),由20多个模块构成,在很多领域都提供了优秀的问题解决方案特点轻量级:由2......
  • 2492. HH的项链
    题目链接2492.HH的项链HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地......
  • 快排.c
    #include<stdio.h>#defineMaxSize5intSwap(int*i,int*j){inttmp;tmp=*j;*j=*i;*i=tmp;}voidQsort(intA[],intL,intR){ //a......
  • 斐波那契数列.cpp
    //递归实现斐波那契数列//011235...//gbk编码格式不会出现乱码#include<stdio.h>intfib(intn){if(n==0)return0;elseif(n==1)......
  • c语言中利用函数递归求阶乘
     001、#include<stdio.h>inttest(intn)//定义函数{if(n>0){returnn*test(n-1);//调用函数自......
  • 学习:python pyecharts数据可视化
    pyecharts数据可视化pyecharts是一个用于生成Echarts图标的类库Echarts是百度开源的一个数据可视化的Js库用Echarts生成的图可视化效果非常棒 新版v1和老版本......
  • 关于查询做一个靠谱的人这件事情。
    对于一个刚刚出入社会的学生来说,怎么算一个靠谱的打工人呢,回忆之前,我的师傅,也就是公司安排带你的lead,曾经和我说过这样一句话,你能不能靠谱点。客户投诉你几次了,也许是PUA......
  • SpringMvc 如何同时支持 Jsp 和 Json 接口?
    后端同学基本都会见过这种场景:在同一个工程中,有些页面使用jsp模版渲染,同时还有其他接口提供Json格式的返回值。为了同时支持这两种场景,我们一般是如何处理的呢? 其实非常......
  • 压缩空间尝试使用只与前一个状态有关的dp dp[2][N]
    之后每次迭代t^1使得0->11->0这里有n个世界,每个世界都有m个点。在i个世界中,你最多可以选择一条边,从u点移动到v点(可以选择不移动)。随后进入到第i+1个世界......
  • Unity使用Font.GetCharacterInfo 和 Font.RequestCharactersInTexture获取UnityEngine
    usingUnityEngine;usingUnityEngine.UI;publicclassFontTest:MonoBehaviour{voidStart(){Test();}voidTest(){str......