Quiero ejecutar un comando en SCons que no tiene ningún archivo de entrada/salida (en realidad, la entrada y la salida son el mismo archivo). Por el momento, solo lo estoy ejecutando manualmente con subproceso.Popen pero ¿hay una forma más SConsy de hacerlo?Ejecutar un comando en SCons sin dependencias
8
A
Respuesta
13
Puede usar la función Command para ejecutar cualquier comando externo que ejecute mediante Popen, y puede usar la función AlwaysBuild para asegurarse de que su comando siempre se ejecute incluso si el archivo de destino existe. A Scons no le gustan los ciclos de dependencia, por lo tanto, deje la lista de fuentes vacía.
myfile = env.Command('myfile.out', [], 'echo Hello world > $TARGETS')
env.AlwaysBuild(myfile)
El scons wiki también tiene una receta para PhonyTargets que hace que sea fácil de configurar una gran cantidad de órdenes sencillas.
Cuestiones relacionadas
- 1. ¿Cómo ejecutar un comando sin sudo?
- 2. Dependencias transitorias para bibliotecas estáticas y SCons
- 3. ANT - Ejecutar un solo objetivo pero sin dependencias
- 4. Python & SCons & Matlab: entrada de comando incorrecta
- 5. ¿Cómo crear un enlace simbólico con SCons?
- 6. En Python: cómo ejecutar el comando del sistema sin salida
- 7. mvn limpio sin dependencias
- 8. Cómo ejecutar R en un servidor sin X11, y evitar dependencias rotas
- 9. PHP ejecutar comando y salida de registro sin esperar
- 10. ejecutar un comando en cada archivo en un objetivo Phing
- 11. equivalente a "touch" en scons?
- 12. Implementación de un objetivo 'instalar' con SCons
- 13. scons - ejecutar el programa después de la compilación
- 14. Ejecutar un comando después de la desinstalación
- 15. Ejecutar un comando sobre SSH con JSch
- 16. ¿Iniciar una pantalla (comando Unix) + ejecutar un comando en 1 comando?
- 17. Cómo ejecutar un comando shell sin abrir una ventana de CMD en VB6
- 18. ¿Cómo ejecutar un comando en una cárcel chroot no como raíz y sin sudo?
- 19. ¿Es posible ejecutar un solo comando Rails en Heroku sin 'heroku run console'?
- 20. comando MAC para ejecutar un archivo .pkg en el terminal
- 21. SCons: Ciclos de dependencia?
- 22. Ejecutar un comando de shell cuando se agrega un archivo
- 23. ¿Cómo puedo ejecutar un comando de línea de comando desde un programa en C++
- 24. cómo utilizar ejecutar() en maravilloso para ejecutar cualquier comando
- 25. ¿Cómo ejecutar un comando DOS en una PC remota?
- 26. ¿Puede nginx ejecutar un comando de Unix basado en url?
- 27. Ejecutar un comando debajo del cursor en VIM
- 28. BASH cómo ejecutar un comando en la terminación del script?
- 29. ¿Cómo ejecutar un comando del sistema en Qt?
- 30. ¿Cómo podemos ejecutar un comando personalizado en eclipse?
Si ya existe una regla para compilar 'myfile.out', entonces se queja de que existen múltiples formas de compilar el objetivo. Quiero tener una regla para crear el archivo y otra para modificarla. –
Creo que tener dos reglas para un objetivo es una mala idea. ¿Cómo sabe scons si la regla 'modificar' ha sido invocada si el objetivo existe? Funcionará mejor si tiene dos objetivos, uno para cada regla. O tiene una regla que realiza las acciones 'crear' y 'modificar'. –
Preste atención a los documentos de scon donde dice 'AlwaysBuild' es un nombre engañoso. Todavía hay algunas reglas que Scons evalúa antes de emitir realmente el comando. –