Как установить CMAKE_STATIC_LINKER_FLAGS сразу после исполняемого файла? [ткк -ар]

Как установить CMAKE_STATIC_LINKER_FLAGS в CMakeLists.txt сразу после исполняемого файла?

например: мне нужно:

tcc.exe-арqc staticRun.lib CMakeFiles/staticRun.dir/utils/system.c.obj

но cmake после этих настроек:

set (CMAKE_AR C:/run/code/toolchains/c++/MinGW-tcc/bin/tcc.exe CACHE FILEPATH "" FORCE)

set (CMAKE_STATIC_LINKER_FLAGS -ar CACHE STRING "" FORCE)

добавьте ключ -ar следующим образом:

tcc.exe qc staticRun.lib CMakeFiles/staticRun.dir/utils/system.c.obj-ар

поэтому сборка статической библиотеки не удалась.

P.S.

tcc.exe -ar - означает

Инструменты: создать библиотеку: файлы tcc -ar [rcsv] lib.a


person ilw    schedule 12.06.2020    source источник
comment
Попробуйте что-нибудь вместе с set(CMAKE_C_CREATE_STATIC_LIBRARY "<CMAKE_AR> -ar qc <TARGET> <LINK_FLAGS> <OBJECTS>) или переключите <LINK_FLAGS> на <TARGET>.   -  person KamilCuk    schedule 12.06.2020
comment
Спасибо, работает. Вы забыли ". ))   -  person ilw    schedule 12.06.2020


Ответы (1)


Самый простой — просто изменить строку, которая используется для запуска статической библиотеки, с вашей пользовательской семантикой:

set(CMAKE_C_CREATE_STATIC_LIBRARY "<CMAKE_AR> -ar qc <TARGET> <LINK_FLAGS> <OBJECTS>")
person KamilCuk    schedule 12.06.2020
comment
потому что github.com/Kitware/CMake/blob/ - person ilw; 12.06.2020