再戰 CMake - Autostereoscopic Mixer
上次接觸 CMake ,是兩年前的事了(註1、註2),那之後,除了幾次使用一些 opensource project 需要使用到外,完全沒有任何其它的經驗,整個就是停擺。最近因為要處理一個 autostereoscopic mixer 的問題,需要把之前同事寫的程式放到不同平台上去編譯,發現到這件事有如下的幾個特性: 程式碼使用 C/C++ 撰寫而成。 跨平台。需要不同的 make 包:Makefile for Linux, XCode for Mac, Visual Studio solution for Windows。 使用到外部的 library。FreeImage & FreeImagePlus ,但是並非所有平台都有 FreeImagePlus,可能得自行 make 一個出來。 於是再度繼出 CMake 來~ 首要問題是,在 cmake 的官方 modules 裏頭找不到 FindFreeImage 這個 cmake module @@ 一開始以為只是因為 MacPorts 裏包的 cmake 沒有,查了一下 Ubuntu 裏頭包的也沒,實在很傷腦筋,一點都不想自己寫個 module 出來,至少不想一開始就要寫。還好我們有好朋友 google,順利在網路上找到別人寫好的 FindFreeImage.cmake 。緊接著才發現,原來我們還需要的是 FreeImagePlus,這個 C++ wrapper for FreeImage,偏偏 MacPorts 裏包的 FreeImage 不包含…一時不曉得怎麼處理。雖然訝異 MacPorts 的版本不包含 Plus,也意外沒有任何 variants 可用的,但我猜,應該是有辦法透過 port 來自行設定的吧,只是我不會 :p 想說,那就下載 FreeImage 程式碼,把裏頭的 FreeImagePlus 拿出來,然後給它包個 cmake module,產生個 libfreeimageplus.a 吧。 ...