[CMake] Delivery target
Michael Wild
themiwi at gmail.com
Wed Jan 5 08:45:31 EST 2011
On 01/05/2011 02:13 PM, Reinhard Thies wrote:
> On Wednesday 05 January 2011 12:32:52 David Cole wrote:
>> You can't depend on "package", but you can do this as your custom
>> target's command:
>>
>> cmake --build . --target package --config Release
>> scp ...
>>
> that the way I have it
> ADD_CUSTOM_TARGET(delivery
> rm -rf ${CMAKE_PROJECT_NAME}*.tar.gz
> COMMAND make package
> COMMAND scp ${CMAKE_PROJECT_NAME}*.tar.gz ds:/srv/repos/bin
> )
>
> I just thought there might be a better way.
>
> thx,
> Reinhard
If you *know* that you *always*
- have a POSIX shell
- use a Makefile generator
- have scp installed on host and target machine
then things are fine, otherwise this will fail. If you used
find_program(SCP_EXECUTABLE scp)
if(SCP_EXECUTABLE)
add_custom_target(delivery
COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_PROJECT_NAME}*.tar.gz
COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR}
--target package
--config Release
COMMAND ${SCP_EXECUTABLE} ${CMAKE_PROJECT_NAME}*.tar.gz
ds:/srv/repos/bin)
else()
message(SEND_ERROR "Require scp for the delivery target")
endif()
you at least wouldn't require a POSIX shell, don't have to care about
the build system and check that you actually have scp.
HTH
Michael
More information about the CMake
mailing list