Конан устанавливает переменные опции для cmake при создании рецепта

Я пытаюсь построить стрелу с помощью 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

Похоже, это должно быть что-то простое, но я не могу найти информацию о том, как это сделать, ни от стрелки, ни от конана.


person JACH    schedule 27.07.2021    source источник
comment
Требуется новая опция в официальном рецепте. Ничего особенного, это можно сделать, открыв задачу в Conan Center Index: github. com/conan-io/conan-center-index/issues, или напрямую PR с решением.   -  person uilianries    schedule 28.07.2021
comment
Я создал новый PR с вашим запросом: github.com/conan -io/conan-center-index/pull/6571 Пожалуйста, следите за его ходом.   -  person uilianries    schedule 28.07.2021
comment
Большое спасибо @ulianries. Вы не знаете, могу ли я тем временем изменить рецепт в своем тайнике и строить по нему?   -  person JACH    schedule 28.07.2021
comment
Конечно! Вы можете изменить свой рецепт локально и строить как обычно. Для обновления в будущем вы запускаете conan install --update arrow/2.0.0. Но если вы не хотите трогать свой официальный рецепт, вы можете использовать другое пространство имен, например arrow/2.0.0@jach/stable.   -  person uilianries    schedule 28.07.2021
comment
Потрясающий. Спасибо   -  person JACH    schedule 28.07.2021