cmake学习笔记(七)编写自己的xxxConfig.cmake

cmake学习笔记(七)编写自己的xxxConfig.cmake

1. onnxruntimeConfig.cmake

因为项目是统一用cmake管理的,因此对于没有xxxConfig.cmake文件的库需要自己编写。
比如:ONNXRUNTIMEConfig.cmake

find_path(ONNXRUNTIME_INCLUDE_DIR NAMES onnxruntime_cxx_api.h PATHS "D:/ProgramFiles/onnxruntime-win-x64-1.8.1/include")
find_library(ONNXRUNTIME_LIBRARY NAMES onnxruntime.lib PATHS "D:/ProgramFiles/onnxruntime-win-x64-1.8.1/lib")
set(ONNXRUNTIME_FOUND TRUE)
set(ONNXRUNTIME_INCLUDE_DIRS ${ONNXRUNTIME_INCLUDE_DIR})
set(ONNXRUNTIME_LIBRARY ${ONNXRUNTIME_LIBRARY})

写成这样就可以使用了。当然路径那里应该使用相对路径才 具有通用性,后面会改正。

参考:编写自定义cmake配置文件FindXXX.cmake或者xxx-config.cmake | cmake with user defined entry

2. 进阶版onnxruntimeConfig.cmake

onnxruntimeConfig.cmake 该文件放置到下载好的onnxruntime库的根目录下,然后指定onnxruntime_DIR到该根目录。

# Custom cmake config file by jcarius to enable find_package(onnxruntime) without modifying LIBRARY_PATH and LD_LIBRARY_PATH
#
# This will define the following variables:
#   onnxruntime_FOUND        -- True if the system has the onnxruntime library
#   onnxruntime_INCLUDE_DIRS -- The include directories for onnxruntime
#   onnxruntime_LIBRARIES    -- Libraries to link against
#   onnxruntime_CXX_FLAGS    -- Additional (required) compiler flags

include(FindPackageHandleStandardArgs)
set(ONNXRUNTIME_FOUND TRUE) # auto 
message("ONNXRUNTIME_FOUND " ${ONNXRUNTIME_FOUND})
# Assume we are in <install-prefix>/share/cmake/onnxruntime/onnxruntimeConfig.cmake
get_filename_component(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
message("CMAKE_CURRENT_LIST_DIR " ${CMAKE_CURRENT_LIST_DIR})
get_filename_component(onnxruntime_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/" ABSOLUTE)

set(onnxruntime_INCLUDE_DIRS ${onnxruntime_INSTALL_PREFIX}/include)
set(onnxruntime_LIBRARIES onnxruntime)
set(onnxruntime_CXX_FLAGS "") # no flags needed


find_library(onnxruntime_LIBRARY onnxruntime
    PATHS "${onnxruntime_INSTALL_PREFIX}/lib"
)

message("onnxruntime_INCLUDE_DIRS " ${onnxruntime_INCLUDE_DIRS})
message("onnxruntime_LIBRARY " ${onnxruntime_LIBRARY})


add_library(onnxruntime SHARED IMPORTED)
set_property(TARGET onnxruntime PROPERTY IMPORTED_LOCATION "${onnxruntime_LIBRARY}")
set_property(TARGET onnxruntime PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${onnxruntime_INCLUDE_DIRS}")
set_property(TARGET onnxruntime PROPERTY INTERFACE_COMPILE_OPTIONS "${onnxruntime_CXX_FLAGS}")

find_package_handle_standard_args(onnxruntime DEFAULT_MSG onnxruntime_LIBRARY onnxruntime_INCLUDE_DIRS)


CMakeLists.txt中的调用:

FIND_PACKAGE(onnxruntime REQUIRED)

message("onnxruntime_INCLUDE_DIRS " ${onnxruntime_INCLUDE_DIRS})
message("onnxruntime_LIBRARY " ${onnxruntime_LIBRARY})
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: cmake-3.24.3.tar.gz 是一个软件包的压缩文件,里面包含了 CMake 3.24.3 的源代码和相关文件CMake 是一个开源的跨平台构建工具,用于管理软件项目的编译过程。它采用了一种独立于编译器的方式来描述项目的构建过程,可以生成各种平台和编译器所需的构建脚本。CMake 的主要特点是简化了项目的管理和构建过程,使得项目能够在不同的操作系统和编译环境中进行构建。 CMake 3.24.3 是 CMake 的一个特定版本,这个版本可能包含了 bug 修复、功能增强或性能优化等改进。用户可以根据自己的需要选择不同的版本进行使用。CMake 3.24.3.tar.gz 是将 CMake 3.24.3 版本的源代码打包压缩而成的文件。 要使用这个软件包,需要先将压缩文件解压缩。可以使用压缩工具(如 WinRAR、7-Zip 等)来解压缩。解压缩后,你将得到一个包含 CMake 3.24.3 源代码和相关文件文件夹。 在解压缩后的文件夹中,你可以找到 CMake 的配置文件CMakeLists.txt)和其他源代码文件。通过编辑配置文件,在其中指定你的项目的构建规则和依赖关系。 完成配置后,在终端或命令提示符中进入解压缩后的文件夹,并运行相应的命令来构建你的项目。具体的构建命令可以在项目的文档或配置文件中找到。 通过使用 CMake,你可以更加方便地管理和构建你的项目,提高开发效率。希望这些信息能帮助到你对 cmake-3.24.3.tar.gz 的理解。 ### 回答2: cmake-3.24.3.tar.gz是一个软件包文件,其中包含了CMake版本3.24.3的源代码。CMake是一个跨平台的开源构建工具,它能够自动生成用于各种不同编译环境的构建脚本。 这个软件包文件首先是一个tar压缩文件,它对多个文件进行了归档和打包。.tar是类似于zip的归档文件格式,它将一个或多个文件和目录打包到一个文件中,以便方便地传输或存储。.gz是一个gzip压缩格式,用于对.tar文件进行压缩。 要使用这个软件包,首先需要将其解压缩。可以使用以下命令在命令行中解压: tar -zxvf cmake-3.24.3.tar.gz 这个命令会解压缩文件并将其还原为原始的.tar文件。然后,可以进一步使用tar命令或其它解压缩工具解压缩.tar文件,以获取其中的源代码文件。 对于CMake的源代码,可以进一步编译和安装,以生成可执行文件,并将其添加到系统的可执行文件路径中。具体的编译和安装步骤可以在软件包中的README或官方文档中找到。 CMake的主要功能是简化跨平台软件项目的构建过程。它使用一种名为CMakeLists.txt的描述文件来定义项目的编译规则和依赖关系。通过编写这样的描述文件,可以做到在不同的操作系统和编译器上构建项目时具备一致的行为。 总之,cmake-3.24.3.tar.gz是一个包含CMake版本3.24.3源代码的软件包文件,通过解压缩和编译安装可以使用CMake工具来进行跨平台的软件项目构建。 ### 回答3: cmake-3.24.3.tar.gz 是一个软件包的压缩文件,其中的 ".tar.gz" 表示文件采用 tar 和 gzip 压缩技术进行打包。该文件名中的 "cmake-3.24.3" 是软件的名称和版本号。 CMake 是一个跨平台的开源构建工具,用于自动化管理项目的软件构建过程。它通过简单的配置文件来描述软件项目的构建过程,并生成适用于不同平台和编译器的构建脚本。CMake 支持 Windows、Linux、macOS 等多个操作系统,并可以配合各种主流编译器使用。 cmake-3.24.3.tar.gz 文件CMake 软件的压缩包,它包含了 CMake 3.24.3 版本的源代码和相关文件。用户可以通过解压缩该文件,获取 CMake 3.24.3 版本的源代码,然后根据需要进行编译和安装。 编译 CMake 的源代码需要一定的软件开发环境和编译器。具体的编译步骤可以在 CMake 官方网站(https://cmake.org)上找到。在编译完成后,可以将生成的可执行文件添加到系统的 PATH 环境变量中,从而可以在命令行或脚本中直接使用 "cmake" 命令。 使用 CMake 可以简化软件项目的构建过程,包括生成 Makefile、编译源代码、链接库文件等。通过配置 CMakeLists.txt 文件,可以指定编译选项、依赖库路径、输出目录等各种构建相关的参数。CMakeLists.txt 文件作为 CMake 的配置文件,在项目根目录下创建,并按照其语法规则编写。 总结来说,cmake-3.24.3.tar.gz 是 CMake 软件的源代码压缩包。通过使用 CMake,开发者可以更方便地管理和构建自己的软件项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落花逐流水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值