У меня есть собственный набор инструментов. Я установил переменную CMAKE_AR с путем к правильной программе ar. Однако, пока я строю статическую библиотеку, у меня появляется ошибка:
cmd.exe /C "cd . && "C:\Program Files (x86)\CMake\bin\cmake.exe" -E remove Library\libLibrary.a && "" qc Library\libLibrary.a Library/CMakeFiles/Library.dir/src/Library.cpp.obj && cd ."'""' is not recognized as an internal or external command,
Если я правильно заметил, CMake использует переменную CMAKE_CXX_ARCHIVE_CREATE для создания библиотеки. Его значение по умолчанию:
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qc <TARGET> <LINK_FLAGS> <OBJECTS>")
(https://github.com/Kitware/CMake/blob/v3.10.3/Modules/CMakeCXXInformation.cmake)
Проблема в том, что часть не заменяется переменной CMAKE_AR. Это странно, потому что и кажется правильным.
Я знаю, что могу изменить в CMAKE_CXX_ARCHIVE_CREATE, заменив его на путь к программе, но мне нужно будет также изменить другие переменные.
CMake: 3.10.2
ОС: Windows 10
Кажется, это ошибка в CMake.
Это я был виноват.
Я установил CMAKE_TOOLCHAIN во время вызова cmake:
cmake -G "Ninja" -DCMAKE_TOOLCHAIN_FILE=../app/toolchain.cmake ../app
Однако я не включил этот toolchain.cmake в CMakeLists.txt. Я думал, что установки CMAKE_TOOLCHAIN достаточно. Довольно странно, что видны изменения некоторых переменных, но не всех.
Других решений пока нет …