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

  • 1. onnxruntimeConfig.cmake
  • 2. 进阶版onnxruntimeConfig.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 flagsinclude(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 neededfind_library(onnxruntime_LIBRARY onnxruntimePATHS "${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})

cmake学习笔记(七)编写自己的xxxConfig.cmake相关推荐

  1. cmake 学习笔记(三) (转)

    接前面的 Cmake学习笔记(一) 与 Cmake学习笔记(二) 继续学习 cmake 的使用. 学习一下cmake的 finder. finder是神马东西? 当编译一个需要使用第三方库的软件时,我 ...

  2. python学习笔记之编写readConfig读写配置文件

    python学习笔记之编写readConfig读写配置文件_weixin_34055910的博客-CSDN博客

  3. Typescript 学习笔记七:泛型

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  4. 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码

    吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...

  5. websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...

    Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证 2年前 阅读 3678 评论 0 喜欢 0 ### 0.前言 前面基本的WebSocket操作,我们基本都 ...

  6. ROS学习笔记七:使用rqt_console和roslaunch

    ROS学习笔记七:使用rqt_console和roslaunch 本节主要介绍在调试时使用的rqt_console和rqt_logger_level,以及一次性打开多个节点的工具roslaunch. ...

  7. CMake 学习笔记 02 - 更复杂的项目

    CMake 学习笔记 02 - 更复杂的项目 源代码见 https://github.com/fengyc/cmake-tutorial 源代码目录组织 一般的项目,会划分为多个子目录,每个子目录中包 ...

  8. 【K210】K210学习笔记七——使用K210拍摄照片并在MaixHub上进行训练

    [K210]K210学习笔记七--使用K210拍摄照片并在MaixHub上进行训练 前言 K210准备工作 K210如何拍摄照片 准备工作 拍摄相关代码定义 用K210拍摄到的照片在MaixHub平台 ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

最新文章

  1. 新增的querySelector、querySelectorAll测试
  2. 关于数论【康托展开及其逆运算】
  3. 设计模式 分析模式 华容道 中文分词算法......
  4. 使用MAT(Memory Analyzer Tool)工具分析dump文件--转
  5. Hibernate C3P0连接池配置
  6. pycharm和mysql_数据库 mysql 和 pycharm交互
  7. LookupError: unknown encoding: utf-8
  8. C#获取上传文件的扩展名
  9. rsync通过服务同步、linux日志、screen工具
  10. xshell常用指令
  11. 《深入浅出通信原理》读书笔记系列1-第2章 信号与频谱
  12. 华为OJ 初级:等差数列
  13. mp3/rmvb转换
  14. 161128、Redis 4.0发布及其新功能介绍
  15. 最新bilibili怎么下载视频
  16. UVA 202 - Repeating Decimals(模拟)
  17. jQuery幻灯片插件Skippr
  18. Objective-c中的占位符,打印BOOL类型数据
  19. 浙江大学计算机学院保研率,浙江大学2020届保研率25.9%,主要保研本校、复旦、交大、北大...
  20. Hive案例之股票分析

热门文章

  1. Flash P2P 语音视频聊天示例
  2. Windows 7 Aero特效及排错
  3. spring认证考试练习题
  4. 计算机辅助培训系统,UG NX7.5 计算机辅助培训系统CAST
  5. 哈罗单车、美团单车、和滴滴青桔的新三国杀
  6. 14、课程总结与回顾
  7. 【网络】华三交换机irf堆叠配置举例
  8. 不花一分钱让手机支持原声原唱
  9. Labview VISA 读取串口
  10. 华为电脑管家 linux,如何下载华为电脑管家