CMake игнорирует пользовательский файл цепочки инструментов. (Кэш очищен)

#c #cmake #xc8 #customtool

#c #cmake #xc8 #customtool

Вопрос:

Windows 10, CMake 3.19.1

Я пытаюсь скомпилировать тестовый проект с помощью компилятора XC8, CMake и пользовательского набора инструментов (стороннего производителя). Ссылка: репозиторий цепочки инструментов

В кратком руководстве по цепочкам инструментов говорится, что нужно добавлять только две строки поверх моего CMakeLists.txt . Итак, у меня есть следующий CMakeLists.txt:

    project(Test)

   # set up the Microchip cross toolchain
   set(CMAKE_TOOLCHAIN_FILE ./external/cmake-microchip/toolchain.cmake)

   # set the default MCU model
   set(MICROCHIP_MCU PIC18F97J60)

   add_executable(main main.c)
 

Но иногда каждый раз, когда вывод генерации CMake начинается с:

 -- Building for: Visual Studio 16 2019
-- The C compiler identification is MSVC 19.28.29333.0
-- The CXX compiler identification is MSVC 19.28.29333.0
..... more
 

И у меня нет никакого файла Makefile в выходной папке.
Также я пытаюсь запустить CMake с помощью -G «Unix makefiles». И был сгенерирован makefile с неправильным выводом и любыми следами использования пользовательской цепочки инструментов.
Вывод был:

 -- The C compiler identification is GNU 9.2.0
-- The CXX compiler identification is GNU 9.2.0
-- Detecting C compiler ABI info
 

При каждой попытке создания CMake я очищаю выходную папку.
Почему пользовательский набор инструментов не запускается?

Комментарии:

1. Вы можете попробовать две вещи. Один из них — изменить путь к файлу на абсолютный путь вместо относительного пути. Другой вариант — удалить эту строку и вместо этого передать ее в командной строке с cmake -D CMAKE_TOOLCHAIN_FILE=/abs/path/to/toolchain/file ..... помощью . Посмотрите, работает ли любой из них.

2. Не уверен, работает ли указание файла цепочки инструментов в CMakeLists.txt файле, но, конечно, слишком поздно, если вы делаете это после первой project команды, с которой столкнулись, поскольку в это время выбран компилятор и инициализированы все зависимые переменные…

3. @fabian Я думаю, что вы на sth. Этот файл цепочки инструментов — абсолютный чертов беспорядок. Ради Бога, кто бы поместил cmake_minimum_required в файл цепочки инструментов ??!!