什麼是CMake與Make
在認識modmesh的過程中,包括modmesh本身以及延伸的小實作,幾乎處處可見make及CMake的身影;雖然對它們的認識甚少,但操作的過程中可以隱約感受到make與cmake似乎存在某種相依性,擁有類似的機制。同樣仰賴導演(make, cmake)與腳本(Makefile, CMakeList.txt),也就是make
仰賴Makefile
, 而cmake
仰賴CMakeList.txt
,但兩者做著不一樣的事情。
CMake
CMake 用來產生跨平台的專案建置文件,在 windows 下它會生成 visual studio 的專案檔 (.sln) codeblock eclipse,在 linux 下它會生成 Makefile,雖然makefile是可以人工生成,但當手寫makefile並不方便,也不能跨平台使用,於是cmake
依平台生成建置文件即可帶來便利性。(最終端的CMakeLists.txt
依然是由依然是由人工攥寫)
CMakeList.txt:
1 | cmake_minimum_required(VERSION 3.4) |
cmake:
1 | ~/git-repo/demo$ ls |
Make
make
是用來自動化shell script,在這篇demo了一個手動生成Makefile的範例。
CMake and make 協作使用之過程:
1 | ~/git-repo/demo$ ls |