В связи со следующим предупреждением:выражение генератор CMake не оценивается
CMake Error at test/CMakeLists.txt:29 (get_target_property):
The LOCATION property may not be read from target "my_exe". Use the
target name directly with add_custom_command, or use the generator
expression $<TARGET_FILE>, as appropriate.
, которая является результатом линии, как это:
get_target_property(my_exe_path my_exe LOCATION)
Как рекомендовано в документации, я пытался использовать выражение генератора, как это:
add_executable(my_exe_path main.cpp)
message("path to executable: $<TARGET_FILE:my_exe_path>")
Но TARGET_FILE
не является оценка d
path to executable: $<TARGET_FILE:my_exe>
Я использую CMake 3.4 и добавил cmake_minimum_required(VERSION 3.4)
к моему CMakeLists.txt
так, что я делаю неправильно?
Оценка выражений генератора выполняется на этапе ** build **. Но 'message()' выводит строку непосредственно на этапе * configure *, когда выражение может быть не разрешимым в случае генераторов с несколькими конфигурациями (используется ли ваш генератор Visual Studio?). – Tsyvarev
Я нахожусь в Linux, используя генератор командной строки и генератор QtCreator (CodeBlocks). Я начал печатать оцениваемое выражение, используя 'message()', когда 'add_test (test1 $)' не работал. Поэтому я догадался, что выражение не было правильно оценено (и я все еще это делаю). –
frans
Простой вариант 'add_test' не реконструирует выражения генератора. Вам нужно использовать полную форму: 'add_test (NAME test COMMAND $)'. Или даже 'add_test (NAME test COMMAND my_exe)'. –
Tsyvarev