よくできた FindXXX.cmake ファイルには、このための何かが含まれています。FindBoost.cmake を見ると、Boost_USE_STATIC_LIBS 変数を設定して、静的ライブラリまたは共有ライブラリを見つけるかどうかを制御できます。残念ながら、パッケージの大半はこれを実装していません。
モジュールが find_library コマンドを使用する場合 (ほとんどの場合)、CMAKE_FIND_LIBRARY_SUFFIXES変数を使用して CMake の動作を変更できます。これを使用する FindBoost.cmake からの関連する CMake コードは次のとおりです。
IF(WIN32)
SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
ELSE(WIN32)
SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
ENDIF(WIN32)
find_package を呼び出す前にこれを配置することも、.cmake ファイル自体を変更してコミュニティに貢献することもできます。
プロジェクトで使用する .cmake ファイルについては、それらすべてをソース管理内の独自のフォルダーに保管しています。これを行ったのは、一部のライブラリの正しい .cmake ファイルを保持することには一貫性がなく、独自のコピーを保持することで変更を加え、コードをチェックアウトしたすべての人が同じビルド システム ファイルを持つようにすることができたからです。