Я работаю со сторонней модифицированной версией clang 7.0.0, которая захватила опцию -c
, заменив ее флагом -ccdsp
по ... причинам ...
Это создало две проблемы для CMake:
Опция -ccdsp
, по-видимому, должна быть самой первой опцией clang
, прежде всего включая параметры -D...
и -I...
. Существует модификатор BEFORE
для target_compile_options
, который я могу использовать, чтобы убедиться, что он появляется в начале списка опций, но, похоже, я не контролирую порядок не-опций, таких как определения и include- пути, в результате чего -ccdsp
встречается позже в общем наборе параметров. Я не смог найти способ убедиться, что это самый первый вариант с использованием современных методов CMake. Вместо этого мне пришлось прибегнуть к явной установке CMAKE_CXX_FLAGS
.
Теперь, когда опция -c
для указания исходного файла больше не доступна, мне нужно найти способ получить CMake, чтобы опустить его. Оказывается, что, насколько я могу судить, этот флаг на самом деле не требуется, поскольку clang -c foo.cpp -o foo.o
и clang foo.cpp -o foo.o
, по-видимому, делают одно и то же. Поэтому мне нужен способ, чтобы CMake отбросил опцию -c
.
Я понимаю, что это необычный вопрос, и это ситуация, полностью созданная организацией, которая предоставила модифицированную версию лязг К сожалению, мои запросы поддержки к ним остаются (на сегодняшний день) без ответа.
Кто-нибудь знает, как я могу обойти эту проблему? Могу ли я создать собственный обработчик компилятора в CMake на основе clang, куда я добавляю -ccdsp
и каким-то образом удаляю -c
?