CMakeLists.txt${CMAKE_MODULE_PATH}) "${CMAKE_CURRENT_LIST_DIR}/cmake/modules" include(cmake/cppCon20Find.cmake) find_package(Catch2) include(GNUInstallDir) if(Catch2_FOUND) enable_testing() endif() include(cmake/Functions0 码力 | 1 页 | 625.00 B | 1 年前3
C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南set(key val PARENT_SCOPE) 才能修改到外面的变量。 ## 第二章:第三方库 / 依赖项配置 用 find_package 寻找系统中安装的第三方库并链接他们 ## find_package 命令 - 常用参数列表一览: • find_package([version] [EXACT] [QUIET] [CONFIG] [MODULE] • [REQUIRED] [[COMPONENTS] [components...]] • [OPTIONAL_COMPONENTS components...] ## find_package 命令用法举例 • find package(OpenCV) - 查找名为 OpenCV 的包,找不到不报错,事后可以通过 $ \{OpenCV\_FOUND\} $ 查询是否找到。 组件。 ## find_package 说是找“包”,到底是在找什么? • find_package(OpenCV) 实际上是在找一个名为 OpenCVConfig.cmake 的文件。 - 注:出于历史兼容性考虑,除了 OpenCVConfig.cmake 以外 OpenCV-config.cmake 这个文件名也会被 CMake 识别到。 • 同理,find_package(Qt5) 则是会去找名为0 码力 | 56 页 | 6.87 MB | 2 年前3
C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南[Image](/uploads/documents/b/b/d/6/bbd66be3b8ad8501e66f11434b3a5cf1/p3_1.jpg) ## 现代 CMake : 4 find_package(TBB COMPONENTS tbb tbbmalloc REQUIRED) 6 add_executable(myapp myapp) 7 target_link_libraries(myapp led/tbb/tbb.dll) 毕竟大多数操作系统都是 Unix-like 嘛……就 Windows 喜欢搞特殊。 ## 更通用的方式:find_package 更好的做法是用 CMake 的 find_package 命令。 find_package(TBB REQUIRED) 会查找 /usr/lib/cmake/TBB/TBBConfig.cmake 这个配置文件,并根据里面的配置信息创建 target_link_libraries 链接 TBB::tbb 就可以正常工作了。 CMakeLists.txt main.cpp 1 add_executable(main main.cpp) 3 find_package(TBB REQUIRED) 4 target link libraries(main PUBLIC TBB::tbb) TBB::tbb 是一个伪对象 (imported),除了他会指向0 码力 | 166 页 | 6.54 MB | 2 年前3
Libraries: A First Step Toward Standard C++ Dependency Management## Pain: What's a dependency bug? $ cmake --build build/ CMake Error at CMakeLists.txt:5 (find_package): By not providing "Findjsonlog.cmake" in CMAKE_MODULE_PATH this project has asked CMake adoptable for current CMake users - Ideally via normal CMake version upgrades ☐ Use existing find_package(...) calls ☐ Use existing install(EXPORT...) calls Should work with existing packaging approaches Library is treated the same: built-in source tree or prebuilt add_library(bar) # part of the build find_package(bar REQUIRED) # external to the build add_executable(foo) target_link_libraries(foo bar) # makes0 码力 | 82 页 | 4.21 MB | 1 年前3
Common Package Specification: Getting Build Tools to Talk to Each Other} ## Properties: playing nice with ecosystem find_package(ZLIB REQUIRED) # find_package(ZLIB MODULE) target_link_libraries(... ZLIB::ZLIB) "includedirs": ["include"] adoption hints - Conclusions and next steps ## About CMake modules: Protobuf CMakeLists.txt find_package(protobuf CONFIG REQUIRED) add_executable(${PROJECT_NAME} test_package.cpp addressbook.proto) TARGET ${PROJECT_NAME} PROTOS addressbook.proto) ## About CMake modules: Protobuf CMakeLists.txt find_package(protobuf CONFIG REQUIRED) add_executable(${PROJECT_NAME} test_package.cpp addressbook.proto)0 码力 | 94 页 | 1.58 MB | 1 年前3
Cmake 实践Find.cmake 模块,你也可以自己定义 Find 模块,通过 SET(CMAKE_MODULE_PATH dir) 将其放入工程的某个目录中供工程使用,我们在后面的章节会详细介绍 FIND_PACKAGE 的使用方法和 Find 模块的编写。 FIND LIBRARY 示例: FIND_LIBRARY(libX X11 /usr/lib) IF(NOT libX) MESSAGE(fatal_ERROR 你现在还会觉得 cmake 简单吗? 本章我们将着重介绍系统预定义的 Find 模块的使用以及自己编写 Find 模块,系统中提供了其他各种模块,一般情况需要使用 INCLUDE 指令显式的调用,FIND_PACKAGE 指令是一个特例,可以直接调用预定义的模块。 其实使用纯粹依靠 cmake 本身提供的基本指令来管理工程是一件非常复杂的事情,所以,cmake 设计成了可扩展的架构,可以通过编写一些通用的模块来扩展 build 目录进行外部构建即可。 现在我们要探讨的是使用 cmake 提供的 Findcurl 模块。 方法2,使用 Findcurl 模块。 向 src/CMakeLists.txt 中添加: FIND_PACKAGE(curl) IF(curl_FOUND) INCLUDE_DIRECTORIES(${curl_INCLUDE_DIR}) TARGET_LINK_LIBRARYES(curltest 0 码力 | 47 页 | 264.27 KB | 2 年前3
Conan 2.0 Documentation3.15) project(compressor C) (continues on next page) find_package(ZLIB REQUIRED) add_executable(${PROJECT_NAME} src/main.c) target_link_libraries(${PROJECT_NAME} version: Listing 7: CMakeLists.txt cmake_minimum_required(VERSION 3.15) project(compressor C) find_package(ZLIB REQUIRED) message("Building with CMake version: ${CMAKE_VERSION}") add_executable(${PROJECT_NAME} set_target_properties(hello PROPERTIES PUBLIC_HEADER "include/hello.h") if (WITH_FMT) find_package(fmt) target_link_libraries(hello fmt::fmt) target_compile_definitions(hello PRIVATE USING_FMT=1)0 码力 | 652 页 | 4.00 MB | 1 年前3
Conan 2.2 Documentation3.15) project(compressor C) (continues on next page) find_package(ZLIB REQUIRED) add_executable(${PROJECT_NAME} src/main.c) target_link_libraries(${PROJECT_NAME} CMakeLists.txt cmake_minimum_required(VERSION 3.15) project(compressor C) (continues on next page) find_package(ZLIB REQUIRED) message("Building with CMake version: ${MAKE_VERSION}") add_executable(${PROJECT_NAME} set_target_properties(hello PROPERTIES PUBLIC_HEADER "include/hello.h") if (WITH_FMT) find_package(fmt) target_link_libraries(hello fmt::fmt) target_compile_definitions(hello PRIVATE USING_FMT=1)0 码力 | 718 页 | 4.46 MB | 1 年前3
Conan 2.1 Documentation3.15) project(compressor C) (continues on next page) find_package(ZLIB REQUIRED) add_executable(${PROJECT_NAME} src/main.c) target_link_libraries(${PROJECT_NAME} CMakeLists.txt cmake_minimum_required(VERSION 3.15) project(compressor C) (continues on next page) find_package(ZLIB REQUIRED) message("Building with CMake version: ${MAKE_VERSION}") add_executable(${PROJECT_NAME} set_target_properties(hello PROPERTIES PUBLIC_HEADER "include/hello.h") if (WITH_FMT) find_package(fmt) target_link_libraries(hello fmt::fmt) target_compile_definitions(hello PRIVATE USING_FMT=1)0 码力 | 694 页 | 4.13 MB | 1 年前3
Conan 2.10 Documentation3.15) project(compressor C) (continues on next page) find_package(ZLIB REQUIRED) add_executable(${PROJECT_NAME} src/main.c) target_link_libraries(${PROJECT_NAME} version: Listing 7: CMakeLists.txt cmake_minimum_required(VERSION 3.15) project(compressor C) find_package(ZLIB REQUIRED) message("Building with CMake version: ${CMake_VERSION}") add_executable({PROJECT_NAME} set_target_properties(hello PROPERTIES PUBLIC_HEADER "include/hello.h") if (WITH_FMT) find_package(fmt) target_link_libraries(hello fmt::fmt) target_compile_definitions(hello PRIVATE USING_FMT=1)0 码力 | 803 页 | 5.02 MB | 1 年前3
共 115 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
相关搜索词
cmake_minimum_requiredCMAKE_CXX_STANDARDCMAKE_ARCHIVE_OUTPUT_DIRECTORYfind_packageCatch2CMake模块化项目管理语义版本号名字空间项目结构NinjaCMakeLists.txt缓存变量构建类型dependency managementlibrariesC++package managersCommon Package Specification (CPS)build toolsinteroperabilityspecificationmodules变量构建安装Conan 2.0package_idlockfiles新功能配置管理configurationextensionsmetadata filescompatibility.pyextensions pluginsConanPython APIgraph model













