CMake官方教程4--使用表达式生成器

1. 使用表达式生成器产生警告

  • CMakeList.txt
cmake_minimum_required(VERSION 3.15)

project(Tutorial VERSION 1.0)

add_library(tutorial_compiler_flags INTERFACE)
target_compile_features(tutorial_compiler_flags INTERFACE cxx_std_11)


set(gcc_like_cxx "$<COMPILE_LANG_AND_ID:CXX,ARMClang,AppleClang,Clang,GNU,LCC>")
set(msvc_cxx "$<COMPILE_LANG_AND_ID:CXX,MSVC>")
        target_compile_options(tutorial_compiler_flags  INTERFACE "$<${gcc_like_cxx}:$<BUILD_INTERFACE:-Wall;-Wextra;-Wshadow;-Wformat=2;-Wunused>>"
                                                                  "$<${msvc_cxx}:$<BUILD_INTERFACE:-W3>>")

configure_file(TutorialConfig.h.in TutorialConfig.h)

add_subdirectory(MathFunctions)


add_executable(Tutorial tutorial.cxx)

target_link_libraries(Tutorial PUBLIC MathFunctions tutorial_compiler_flags)

target_include_directories(Tutorial PUBLIC
"${PROJECT_BINARY_DIR}"
)
  • MathFunctions/CMakeList.txt

# create the MathFunctions library
add_library(MathFunctions MathFunctions.cxx)

# state that anybody linking to us needs to include the current source dir
# to find MathFunctions.h, while we don't.
target_include_directories(MathFunctions
INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}
)

# should we use our own math functions
option(USE_MYMATH "Use tutorial provided math implementation" ON)
if (USE_MYMATH)
target_compile_definitions(MathFunctions PRIVATE "USE_MYMATH")

# library that just does sqrt
add_library(SqrtLibrary STATIC
        mysqrt.cxx
)

# link SqrtLibrary to tutorial_compiler_flags
target_link_libraries(SqrtLibrary PUBLIC tutorial_compiler_flags)

target_link_libraries(MathFunctions PRIVATE SqrtLibrary)
endif()

# link MathFunctions to tutorial_compiler_flags
target_link_libraries(MathFunctions PUBLIC tutorial_compiler_flags)



相关推荐

  1. CMake官方教程4--使用表达式生成器

    2024-03-16 02:38:02       18 阅读
  2. CMake官方教程8--自定义命令和生成文件

    2024-03-16 02:38:02       19 阅读
  3. CMake官方教程11--加入导出设置

    2024-03-16 02:38:02       15 阅读
  4. CMake官方教程9--打包文件

    2024-03-16 02:38:02       19 阅读
  5. CMake官方教程6--为CDash提供支持

    2024-03-16 02:38:02       17 阅读
  6. cmake官方demo学习整理

    2024-03-16 02:38:02       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 02:38:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 02:38:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 02:38:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 02:38:02       18 阅读

热门阅读

  1. GB4806.9 食品接触金属餐具、厨具检测第三方机构

    2024-03-16 02:38:02       26 阅读
  2. EXCEL+PYTHON学习2:

    2024-03-16 02:38:02       15 阅读
  3. Docker的基本概念和优势

    2024-03-16 02:38:02       21 阅读
  4. React render方法的原理?在什么时候会被触发?

    2024-03-16 02:38:02       21 阅读
  5. Linux/Cap

    Linux/Cap

    2024-03-16 02:38:02      17 阅读
  6. 机器学习和强化学习算法比较

    2024-03-16 02:38:02       21 阅读
  7. 系统设计学习(四)海量数据

    2024-03-16 02:38:02       19 阅读
  8. 从零开始学HCIA之SDN03

    2024-03-16 02:38:02       22 阅读
  9. TCP包头

    TCP包头

    2024-03-16 02:38:02      19 阅读