У меня есть как C++, так и файлы C в моем проекте. У меня есть отдельные и разные настройки параметров компиляции для каждого, используя CMAKE_CXX_FLAGS
и CMAKE_C_FLAGS
. Как создать различные флаги компоновщика для каждого?
Было бы неплохо, если бы существовали такие CMAKE_CXX_EXE_LINKER_FLAGS
как CMAKE_CXX_EXE_LINKER_FLAGS
и CMAKE_C_EXE_LINKER_FLAGS
, но есть только CMAKE_EXE_LINKER_FLAGS
.
Есть
CMAKE_CXX_LINK_EXECUTABLE
CMAKE_C_LINK_EXECUTABLE
похоже, что они могут решить ваши проблемы.
Имейте в виду, что вы попадаете в компилятор и специфические для платформы вещи, вам решать поставить правильные комбинации условных, чтобы выбрать правильный набор макросов, если вам нужен мультиплатформенный мультикомпилятор, проект.
Как минимум, в CMake версии 3.0.2 есть следующие переменные: CMAKE_C_LINK_FLAGS
и CMAKE_CXX_LINK_FLAGS
, используемые в ./share/cmake-3.0/Modules/CMakeCXXInformation.cmake
.
Они не были зарегистрированы нигде, где бы я ни выглядел, и не присутствуют в сгенерированных файлах или кеше, поэтому я их не нашел. Но они, кажется, делают то, что мне нужно.
Надеюсь, CMake продолжит поддерживать их, а не удалять их внезапно без предупреждения, как это иногда бывает с недокументированными функциями.