Estoy tratando de copiar todos los binarios generados por cmake a un directorio específico. No quiero usar EXECUTABLE_OUTPUT_PATH, mantenerlos en el árbol de construcción facilita el desarrollo.Cmake: use add_custom_command para copiar el binario en una ubicación específica que falló cuando la ubicación no existe
así que uso add_custom_command añadir una copia posterior acumulación
# set the final binary dir
set(PROJECT_BINARY_DIR ${PROJECT_SOURCE_DIR}/bin)
# get name and location of binary, namecan change with os (cf. ".exe" suffix on windows)
GET_TARGET_PROPERTY(EXAMPLE_BIN_NAME example LOCATION)
# copy bin to binary folder
ADD_CUSTOM_COMMAND(TARGET example
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${EXAMPLE_BIN_NAME} ${PROJECT_BINARY_DIR}/.
)
El problema es que en la primera generación no existe la carpeta "bin" (el fallo de copia), pero la carpeta "bin" se crea justo después. Entonces, en la segunda compilación, la copia funciona.
¿Hay alguna manera de hacer que el comando personalizado cree la carpeta bin y luego copie el binario? ¿O es posible tener dos EXECUTABLE_OUTPUT_PATH con cmake?
Gracias!
Ver https://stackoverflow.com/questions/6594796/how-do-i-make- cmake-output-into-a-bin-dir –