Есть небольшая самописная кроссплатформенная игрушка использующая SDL. Язык C++. Под Win32 и Win64 собирается в mingw-w64, gcc 4.5.1.
Хочется следующего: в сборках под Windows линковать зависимости статически. Не охота таскать за собой добрый десяток библиотек. Сейчас в среде сборки есть оба варианта библиотек: для статической и динамической линковки. По умолчанию gcc предпочитает линковать динамически. Для того, чтобы он выбирал статические версии библиотек требуется добавлять перед ними ключ -static. Причём потом требуется перед библиотеками, которые линкуются динамически (OpenGL), добавить ключ -dynamic.
Вопрос: как заставить/научить cmake собирать нужную командную строку?
Если мне не изменяет память, то для target_link_libraries без разницы статическая либина или динамическая.
Если же хотите какую-то конкретную опцию компилятору или линковщику, то в этих случаях используют set_target_properties. Там есть и COMPILE_FLAGS, и LINK_FLAGS, и куча всего прочего (см. www.cmake.org/cmake/help/v2.8.12/cmake.html#section_PropertiesonTargets)