Я создаю приложение, для которого я хотел бы поддерживать определенную проприетарную платформу. Он использует модифицированную версию ARM CC, которая, похоже, не нравится CMake - независимо от того, что я делаю, он пытается установить странные флаги для armlink
там, где это не следует, игнорируя попытки переопределить его поведение.
Можно ли по существу предоставить совершенно новое определение того, как CMake должен работать с конкретным компилятором? т.е. укажите двоичный файл и флаги, используемые для компиляции, компоновки и т. д. c., ожидаемые расширения файлов и т. д. c. на протяжении всего процесса, так что CMake не делает ничего противного? CMake, кажется, делает пользовательские определения компилятора невероятно непонятными для выполнения sh.
Редактировать: Я сделал так, чтобы он предоставил большинство правильных флагов, но теперь я понимаю, что не может изменить тестовую программу CMake - программы для этой платформы не будут созданы, если не существует определенного нетипичного набора символов (альтернативная точка входа, а не основная).
Редактировать 2: Я пропустил тестовую программу, но теперь она терпит неудачу при попытке получить информацию о компиляторе (зачем? Я дал ей все, что нужно знать для ситуации ...) с этой ошибкой:
Error: C9912E: No --cpu selected
Для полной ясности, команда, представленная в строке выше, явно имеет флаг --cpu с допустимым значением:
armcc.exe -xc++ --cpu=MPCore -fpch-preprocess -v -dD -E
Хотя я совершенно не уверен относительно того, что он пытается сделать с остальным - я не могу переопределить эту часть.