En mi proyecto tengo un archivo de "esquema" y una utilidad que escribí para generar un archivo de encabezado. Estoy usando cmake y compilación fuera de la fuente para compilar la aplicación.¿Cómo generar un encabezado en la fuente con cmake?
Actualmente tengo que regenerar el archivo de encabezado a mano y luego compilar la aplicación.
Luego presenté estas declaraciones CMakeLists.txt, pero generan el encabezado en el directorio de compilación en lugar de en el directorio de origen.
configure_file(generator.pl generator COPYONLY)
configure_file(schema.txt.in schema.txt COPYONLY)
add_custom_command(
OUTPUT generated.h
COMMAND ./generator schema.txt generated.h
DEPENDS mib_schema.txt.in generator.pl
COMMENT "Regenerating header file..."
)
¿Es posible generar el encabezado en el directorio de origen?
edición (para reflejar la respuesta):
El archivo se puede llegar directamente al calificar plenamente su camino, ya sea con
${CMAKE_CURRENT_SOURCE_DIR}
o:
${CMAKE_CURRENT_BINARY_DIR}
lo tanto, para generar el encabezado en mi directorio de origen, el extracto anterior de CMakeLists.txt se convierte en:
que es realmente más simple. Gracias
--a
Esto es realmente una buena idea. Si puedo guardar el archivo generado en el directorio fuente, se incluye en el paquete fuente, que es exactamente lo que quiero (porque de esa manera los usuarios de mi biblioteca no necesitan generar el archivo, siempre y cuando no modifiquen el generador y/o el archivo de datos fuente.) Esto significa que más personas pueden compilar mi biblioteca. –