cmake autoconf AC_ARG_与
cmake与autoconf的AC_ARG_的等价物是什么?在autoconf中,我可以使用AC_ARG_WITH创建一个'--WITH-'命令行参数来配置,该参数允许我向SDK传递一个路径,该路径下是头和库。我如何在cmake中做同样的事情?我应该从env var读取路径吗?cmake autoconf AC_ARG_与,cmake,autotools,Cmake,Autotools,cmake与autoconf的AC_ARG_的等价物是什么?在autoconf中,我可以使用AC_ARG_WITH创建一个'--WITH-'命令行参数来配置,该参数允许我向SDK传递一个路径,该路径下是头和库。我如何在cmake中做同样的事情?我应该从env var读取路径吗?cmake可执行文件接受命令行中的变量定义 -D<var_name>[:<TYPE>]=<value> 如果设置了SDK\u DIR变量,其值(带有适当的后缀)将用于搜索SDK库(SD
cmake
可执行文件接受命令行中的变量定义
-D<var_name>[:<TYPE>]=<value>
如果设置了SDK\u DIR
变量,其值(带有适当的后缀)将用于搜索SDK库(SDK\u LIB
)和包含目录(SDK\u include\u DIR)
如果未设置变量,或者基于变量值的搜索失败,则将在其他位置继续搜索,包括系统默认位置
实际上,在CMake中调整包的路径要比在autotools中使用
AC_ARG_提供的路径灵活得多。例如,可以使用CMAKE\u PREFIX\u PATH
变量传递所有3d方包的公共根,或使用CMAKE\u LIBRARY\u PATH
传递所有库的公共根。有关更多详细信息,请参阅和其他find.*
命令的文档
许多3d party软件包提供了Find.cmake
和/或Config.cmake
脚本,因此只需使用命令即可对其进行搜索。这些脚本(以及find_-package
本身)提供了调整搜索路径的方法,因此您的包根本不需要调整路径
find_library(SDK_LIB sdk PATHS ${SDK_DIR} PATH_SUFFIXES lib)
find_path(SDK_INCLUDE_DIR sdk.h PATHS ${SDK_DIR} PATH_SUFFIXES include)