Я хочу передать результат вывода команды getconf PAGESIZE
, поскольку препроцессор определяет мою программу в виде -DPAGESIZE=`getconf PAGESIZE`
для [[gnu::assume_aligned(PAGESIZE)]]
в декларации пользовательского распределителя.Передача вывода утилиты командной строки компилятору/компоновщику
Я попытался следующие:
add_definitions(-DPAGESIZE=`getconf PAGESIZE`)
Но это расширилось точно так, как -DPAGESIZE="\`getconf" ... PAGESIZE`
, где ...
является содержание других CMAKE_CXX_FLAGS*
. То есть есть проблема с ускорением обратных ссылок в файлах CMakeLists.txt
.
Как правильно передать такие аргументы компилятору/компоновщику в файлах CMakeLists.txt
? Может быть, есть другой способ добиться желаемого?
Также я попытался add_definitions(-DPAGESIZE="$$(getconf PAGESIZE)")
($$
расширен с помощью $
cmake
), но -DPAGESIZE
и остальная часть расщепляются с помощью cmake
. add_definitions("-DPAGESIZE=$$(getconf PAGESIZE)")
делает cmake
, чтобы избежать каждого знака доллара.
Ответ здесь может быть полезен: http://stackoverflow.com/a/1468695/3171657 – Turn
Почему «и не»? – usr1234567
@ usr1234567 Backtick имеет смысл в контексте оболочки Bourne. Он делает оболочку для запуска команды, заключенной в backticks, а затем заменить его вместо целого выражения «backticked». – Orient