ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-08-19 02:01:24  阅读:169  来源: 互联网

标签: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
来源: https://www.cnblogs.com/logmagic/p/16600665.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有