CMake用法筆記 |
發(fā)布時(shí)間: 2012/9/3 17:16:59 |
最近在學(xué)習(xí)Mysql的源代碼,用到了CMake做為Build工具。 通過CMake去掃描系統(tǒng)的一些配置,會(huì)生成config.h文件,這個(gè)頭文件里包含了一系列的以HAVE_為前綴的宏。 在源代碼根目錄下的config.h.cmake 是模板文件,包含了所有的掃描項(xiàng)。 在Mysql的影子編譯目錄里面(我一般都是用影子編譯,保持源代碼目錄的純潔性),我們可以找到config.h,CMake腳本會(huì)把config.h拷貝成另外一個(gè)內(nèi)容完全一模一樣的my_config.h文件。-
我們?yōu)g覽Mysql目錄的CMake目錄,這個(gè)是Mysql專有的CMake腳本,我們通過查找,在cmake\os\linux.cmake中找到了 HAVE_NPTL的定義。 在這個(gè)文件里HAVE_NPTL是固定設(shè)為1的,我們繼續(xù)學(xué)習(xí)非固定設(shè)置的情況。 比如 CHECK_SYMBOL_EXISTS(SHM_HUGETLB sys/shm.h HAVE_DECL_SHM_HUGETLB) 該CMake文件的包含了 INCLUDE(CheckSymbolExists) CheckSymbolExists 是CMake的公共模塊,我的機(jī)器上位于/usr/share/cmake-2.8/Modules目錄下。 我們繼續(xù)研究該文件: 閱讀了其源代碼后,MACRO(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE) 這個(gè)宏的作用就是,查找相關(guān)文件(FILES)里面是否包含相關(guān)符號(hào)(SYMBOL) 如果存在則設(shè)置VARIABLE 為1,MESSAGE宏會(huì)在屏幕上做相關(guān)打印。 上面的列子中就是在 sys/shm.h 文件里面查找SHM_HUGETLB 符號(hào)。 我們查看 /usr/include/shm.h
本文出自:億恩科技【www.riomediacenter.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |