我需要有條件地編譯代碼的幾個部分,具體取決於系統中是否存在一些庫。它們的存在是在CMake配置階段確定的,我打算使用預處理器定義(如#ifdef(LIB_DEFINED)... #endif)告訴編譯器結果。add_definitions vs. configure_file
我知道兩種可能性如何實現在CMake的:
- Ceate這些預處理器定義模板文件,通過它在CMakeLists到configure_file(),最後包含(#include)生產的配置文件中的每個源文件
- 直接在CMakeLists中使用add_definitions(-DLIB_DEFINED)。
第一種方法對我來說似乎更加複雜,那麼是否有任何優勢取代第二種方法(例如避免一些可移植性問題)?
謝謝你,還有fschmitt - 現在第一種方法在整體上看起來更清潔,所以我會使用它。 – 2010-09-25 11:18:20