Могу ли я установить разные значения макросов в cc_library, в зависимости от разных cc_binary? - PullRequest
0 голосов
/ 01 ноября 2018

Существует цель cc_library с именем 'L', и цели cc_binary 'A', 'B', 'C' зависят от нее.

Библиотека L реализует инфраструктуру транзакций, содержит, например, простой массив символов длиной 100 и множество сложной логики в массиве.

Теперь целевому объекту B требуется больший размер данных, но целевым объектам A и C требуется меньший размер для одновременного хранения большего количества транзакций.

При использовании make-файла выполнимым способом является использование # ifdef / # else в L для установки различных значений макроса для длины. Затем зациклите A, B, C, соберите их с разными -D = A, -D = B и -D = C. Таким образом, lib L будет иметь разную длину массива в трех разных двоичных файлах.

Есть ли лучший способ реализовать это? Могу ли я сделать то же самое в Базеле?

1 Ответ

0 голосов
/ 03 ноября 2018

Вы можете следовать точно так же:

  • с использованием определить для cc_library для определения нескольких версий библиотеки (например, «L_complex_transactions», от которых зависит A, и «L_many_transactions», от которых зависят B и C).

  • и лучше использовать config_setting в двоичных файлах и оператор select в cc_library для выбора соответствующего определения.

...