私の C++ プログラムは、CMake を使用して複数の OS (Win7、MacOS & Linux) 用にコンパイルされています。
OSに依存するものについては、次のようなことをしています:
if (${APPLE})
// Do MacOS dependent things here
elseif(${WIN32})
// Do Win dependent things here
elseif(${UNIX})
// Do Linux dependent things here
endif (${APPLE})
ここで、プログラムを異なるバージョンのライブラリにリンクする必要があります。同じやり方を続けることは、すぐに非現実的になります。
新しい OS やライブラリの新しいバージョンを簡単に追加できるように、すべてを実用的な状態に保ちながら、ライブラリの複数のバージョンに対して複数の OS 用にプログラムをコンパイルするにはどうすればよいでしょうか?
最終的には、すべてが Jenkins に統合されるので、CMake レベルと Jenkins レベル (または両方) のどちらで作業するのがよいかわかりません。