这篇是教你如何用cmake和pkg-config搅基。
关于这个系列的宗旨,就是用我写过的项目里面用的那屁点CMake给大家看看,有些技巧我可能还自鸣得意,很有和大家分享的冲动。你想要找以前的文章,就去点下分类里面的cmake就好。
cmake 内置了 pkgconfig支持,想要用的话只需要
find_package(PkgConfig)
里面内置的命令是这样的
pkg_check_modules(LIBPINYIN "libpinyin >= 0.5.0")
前面是变量名的前缀,一般来说会生成以下变量 <VAR>_FOUND,<VAR>_INCLUDE_DIRS,<VAR>_LIBRARY_DIRS,<VAR>_LIBRARIES。
这就是通常的用法,非常的简单。
以下是我常用的trick之一,实际上是用了一个内部命令,不过实在太好用了。
_pkgconfig_invoke("libpinyin" LIBPINYIN EXECPREFIX "" "--variable=exec_prefix")
简单来说,就是在pkgconfig的文件中经常会有定义一些变量,不过不幸的是CMAKE并没有直接获得这些变量的方法,于是就用了以上的手段。
具体参数是,pkgconfig配置名,变量前缀,变量名,空字符串,pkgconfig参数。
这样就可以顺利得到LIBPINYIN_EXECPREFIX这样的变量名啦。
我正想学这个..
@csslayer CSS大神果然还是喜欢卖萌啊~~
嘛~虽然tutorial和tutorail乍看起来还真像…看了半天才觉得不对劲
@Lynx 老子卖萌的时候你们都还嫩呢!
@csslayer 您别生气啊… //没办法~我果然还是太年轻了~
这个系列看起来还有后续的样子,继续围观~ //虽不明,但觉厉啊!不过copy & modify了几次别人的CMakeList.txt再看前面的文章就稍微懂一点了
@Lynx 我还不至于因为这种事生气啦,以上说法可以被当做卖萌~