My CMake Tutorial 5

这篇是教你如何用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这样的变量名啦。

 

This entry was posted in cmake and tagged . Bookmark the permalink.

5 Responses to My CMake Tutorial 5

  1. kevin says:
    Google Chrome 17.0.963.83 GNU/Linux x64

    我正想学这个..

  2. Lynx says:
    Firefox 11.0 GNU/Linux

    @csslayer CSS大神果然还是喜欢卖萌啊~~
    嘛~虽然tutorial和tutorail乍看起来还真像…看了半天才觉得不对劲

  3. csslayer says:
    Firefox 11.0 GNU/Linux x64

    @Lynx 老子卖萌的时候你们都还嫩呢!

  4. Lynx says:
    Firefox 11.0 GNU/Linux

    @csslayer 您别生气啊… //没办法~我果然还是太年轻了~
    这个系列看起来还有后续的样子,继续围观~ //虽不明,但觉厉啊!不过copy & modify了几次别人的CMakeList.txt再看前面的文章就稍微懂一点了

  5. csslayer says:
    Nokia Browser 8.5.0 Nokia N9

    @Lynx 我还不至于因为这种事生气啦,以上说法可以被当做卖萌~

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.