Я пытаюсь построить стрелу с помощью conan + cmake. Как вы можете прочитать здесь, я должен повлиять на переменную параметра, чтобы избежать оптимизации на основе моей машины, потому что код, m будет использоваться на многих компьютерах, некоторые из которых не имеют AVX2, как у меня (параметры, доступные в рецепте conan arrow, ограничены и не включают уровень SIMD).
Вот соответствующий фрагмент cmake стрелки:
define_option_string(ARROW_RUNTIME_SIMD_LEVEL
"Max runtime SIMD optimization level"
"MAX" # default to max supported by compiler
"NONE"
"SSE4_2"
"AVX2"
"AVX512"
"MAX")
Я попытался добавить параметр как часть команды установки conan:
conan install .. --build=arrow -e:b ARROW_RUNTIME_SIMD_LEVEL=NONE
и даже установить его как переменную среды (и несколько других сумасшедших идей). Но это не имеет значения. Конечным результатом является то, что cmake устанавливает значение по умолчанию (MAX), как показано в этой части выходных данных сборки:
-- ARROW_RUNTIME_SIMD_LEVEL=MAX [default=NONE|SSE4_2|AVX2|AVX512|MAX]
-- Max runtime SIMD optimization level
Похоже, это должно быть что-то простое, но я не могу найти информацию о том, как это сделать, ни от стрелки, ни от конана.
conan install --update arrow/2.0.0
. Но если вы не хотите трогать свой официальный рецепт, вы можете использовать другое пространство имен, напримерarrow/2.0.0@jach/stable
. - person uilianries   schedule 28.07.2021