Teoricamente, cmake
pode verificar a existência de um arquivo
if(EXISTS "/dev/spidev0.0")
de acordo com a documentação , isso deve ser True se o arquivo nomeado ou diretório existe. O comportamento é bem definido apenas para caminhos completos. , mas descobri que a condição mencionada falha se o usuário não tiver lido nem direitos de gravação nesse arquivo. Se eu adicionar as permissões, isso funciona.
No entanto, o usuário que cria o projeto não deve acessar o dispositivo, portanto as permissões do arquivo são zero para ele. O software construído será executado em uma conta diferente com acesso SPI, portanto, o módulo correspondente deve ser criado se o arquivo do dispositivo for encontrado. test -e /dev/spidev0.0
é verdadeiro, mas cmake
parece fazer test -r
.
Como solução alternativa, posso verificar o link simbólico em /sys/class/spidev/spidev0.0
, mas qual é a maneira correta de lidar com o problema?
Tags permissions cmake devices