我想在我的cmake项目中使用this library,但是它附带的是一个configure文件,而不是CMakeLists.txt
#! /bin/sh
# waf configure wrapper
# based on http://code.google.com/p/waf/source/browse/configure
CUR_DIR=$PWD
#possible relative path
WORKINGDIR=`dirname $0`
cd $WORKINGDIR
#abs path
WORKINGDIR=`pwd`
cd $CUR_DIR
WAF=$WORKINGDIR/tools/waf
# Generates a Makefile. Requires that $WAF is set.
#
generateMakefile()
{
cat > Makefile << EOF
#!/usr/bin/make -f
# Waf Makefile wrapper
WAF_HOME=$CUR_DIR
all:
@$WAF build
all-debug:
@$WAF -v build
all-progress:
@$WAF -p build
install:
$WAF install --yes;
uninstall:
$WAF uninstall
clean:
@$WAF clean
distclean:
@$WAF distclean
@-rm -rf build
@-rm -f Makefile
check:
@$WAF check
dist:
@$WAF dist
.PHONY: clean dist distclean check uninstall install all
EOF
}
generateMakefile
"${WAF}" configure $*
exit $?是否有用于转换的自动化工具?CMake是否支持使用配置文件?是否有转换的经验法则-即用add_library替换...
发布于 2020-07-18 22:08:46
您不需要将上游库转换为cmake即可在cmake项目中使用它。只要您能够安装和/或链接到该库,就可以配置您的cmake项目来使用它。
在cmake中使用第三方库的一种常见模式是,通过提供自己的专用cmake模块文件来查找和配置库,从而使用cmake的find_package()函数。
比方说,您希望加载libfoo。Here are the steps:
cmake
./cmake/modules)该目录中的
FindFoo.cmake.的文本文件
FindFoo.cmake add检查以确定系统中是否确实存在foo。如果是,则设置相关变量。否则,抛出错误。理想的做法是为该库创建一个构建目标,您可以简单地将其作为依赖项添加到其他cmake目标。set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")、将您的cmake项目配置为使用本地模块
最后,通过调用find_package(Foo REQUIRED).来配置您的项目以包含您的
发布于 2020-07-18 21:00:20
进行转换的方法是阅读配置脚本,并理解它做什么以及如何做/为什么做。然后编写一个CMakeLists.txt文件来实现同样的功能。
没有捷径可走。
https://stackoverflow.com/questions/62968778
复制相似问题