2012年2月7日 星期二

cmake入門(2)

主要參考wiki教科書上面,wiki教科書上的cmake入門是一個非常好的參考
首先先看架構
先開一個專案目錄,假設叫做hello好了,底下目錄架構如下
  • src
    1. app
      1. hello.c
      2. CMakeLists.txt
    2. display
      1. display.c
      2. CMakeLists.txt
    3. CMakeLists.txt
  • build

hello.c跟display.c就如我之前寫的,只是個示範用的,這裡重點是三個CMakeLists.txt檔案內容

src/app/CMakeLists.txt

  cmake_minimum_required(VERSION 2.6)
  project(hello)
  include_directories(${CMAKE_SOURCE_DIR})
  add_executable(app hello.c)
  target_link_libraries(app display)

src/display/CMakeLists.txt
  cmake_minimum_required(VERSION 2.6)
  project(display)
  add_library(display display.c)

src/CMakeLists.txt
  cmake_minimum_required(VERSION 2.6)
  add_subdirectory(display)
  add_subdirectory(app)

app目錄底下的CMakeLists.txt可以看到add_executable表示我們主要建立執行檔案所必須編譯的檔案,後面看到target_link_libraries表示需要連結的library
display目錄CMakeLists.txt的add_library表示要建立library,望文生義,至於要建立是static lib, dynamic lib or module請參考wiki文件,以後有機會再談,這裡建立的是static lib
src目錄下CMakeLists.txt很簡單的表示有兩個必須建立的項目

跟著回到build目錄底下,執行cmake ../src,cmake會讀取src目錄下的CMakeLists.txt去執行子項目,要在src底下執行cmake .也是可以,但是缺點是,所有編譯過程的檔案跟cmake產生的檔案會跑到src目錄底下,這樣某種程度"汙染"了src目錄的整潔度,應該讓src儘量保持乾淨,就放source code就好

沒有留言:

張貼留言