[CMake] Re: Custom build step
pepone.onrez
pepone.onrez at gmail.com
Sat Jan 19 10:43:34 EST 2008
I solve the problem by adding the move step in the same ADD_CUSTOM_COMAND
Here is the new code. Any ideas for
#BEGIN
MACRO ( GENERATE_SLICE2CPP_RULES GENERATED_CPP_LIST GENERATED_HEADER_LIST )
FOREACH( SLICE_SOURCE_BASENAME ${ARGN} )
APPEND( GEN_SLICE_RULES_SLICE_DEPENDS
"${SLICE_SOURCE_DIR}/${PROJECT_NAMESPACE}/${SLICE_SOURCE_BASENAME}" )
ENDFOREACH( SLICE_SOURCE_BASENAME ${ARGN} )
FOREACH( SLICE_SOURCE_BASENAME ${ARGN} )
SET( SLICE_SOURCE
"${SLICE_SOURCE_DIR}/${PROJECT_NAMESPACE}/${SLICE_SOURCE_BASENAME}" )
SET( DEPENDS ${GEN_SLICE_RULES_SLICE_DEPENDS} )
STRING( REGEX REPLACE "\\.ice" .cpp SOURCE_OUTPUT_BASENAME
"${SLICE_SOURCE_BASENAME}" )
STRING( REGEX REPLACE "\\.ice" .h HEADER_OUTPUT_BASENAME
"${SLICE_SOURCE_BASENAME}" )
MESSAGE ( STATUS "Source file to generate:
${SOURCE_OUTPUT_BASENAME}" )
MESSAGE ( STATUS "Header file to generate:
${HEADER_OUTPUT_BASENAME}" )
ADD_CUSTOM_COMMAND(
OUTPUT ${PROJECT_SOURCE_DIR}/src/${SOURCE_OUTPUT_BASENAME}
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAMESPACE}/${HEADER_OUTPUT_BASENAME}
COMMAND ${SLICE2CPP_COMMAND} ${SLICE_ARGS} ${SLICE_SOURCE}
COMMAND ${MOVE_FILE_COMMAND}
${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_OUTPUT_BASENAME}
${PROJECT_SOURCE_DIR}/src/${SOURCE_OUTPUT_BASENAME}
COMMAND ${MOVE_FILE_COMMAND}
${CMAKE_CURRENT_BINARY_DIR}/${HEADER_OUTPUT_BASENAME}
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAMESPACE}/${HEADER_OUTPUT_BASENAME}
DEPENDS ${DEPENDS}
COMMENT "-- Generating ${SOURCE_OUTPUT_BASENAME}
${HEADER_OUTPUT_BASENAME} file from ${SLICE_SOURCE_BASENAME}")
APPEND ( "${GENERATED_CPP_LIST}"
"${PROJECT_SOURCE_DIR}/src/${SOURCE_OUTPUT_BASENAME}" )
APPEND ( "${GENERATED_HEADER_LIST}"
"${PROJECT_SOURCE_DIR}/include/${PROJECT_NAMESPACE}/${HEADER_OUTPUT_BASENAME}"
)
ENDFOREACH( SLICE_SOURCE_BASENAME ${ARGN} )
ENDMACRO ( GENERATE_SLICE2CPP_RULES GENERATED_CPP_LIST GENERATED_HEADER_LIST
)
#END
When i try to separate the command that move generated files in other
ADD_CUSTOM_COMMAND call
i get this error:
pepone at sirius ~/proyects/ydra-ipluginservice/build $ make
[ 50%] -- Generating IPluginService.cpp IPluginService.h file from
IPluginService.ice
make[2]: *** No rule to make target `../src/IPluginService.cpp', needed by
`CMakeFiles/IPluginService.dir/depend.make.mark'. Stop.
make[1]: *** [CMakeFiles/IPluginService.dir/all] Error 2
make: *** [all] Error 2
Here is the cmake macro when i get the error.
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_OUTPUT_BASENAME}
${CMAKE_CURRENT_BINARY_DIR}/${HEADER_OUTPUT_BASENAME}
COMMAND ${SLICE2CPP_COMMAND} ${SLICE_ARGS} ${SLICE_SOURCE}
DEPENDS ${DEPENDS}
COMMENT "-- Generating ${SOURCE_OUTPUT_BASENAME}
${HEADER_OUTPUT_BASENAME} file from ${SLICE_SOURCE_BASENAME}")
ADD_CUSTOM_COMMAND(
OUTPUT ${PROJECT_SOURCE_DIR}/src/${SOURCE_OUTPUT_BASENAME}
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAMESPACE}/${HEADER_OUTPUT_BASENAME}
COMMAND ${MOVE_FILE_COMMAND}
${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_OUTPUT_BASENAME}
${PROJECT_SOURCE_DIR}/src/${SOURCE_OUTPUT_BASENAME}
COMMAND ${MOVE_FILE_COMMAND}
${CMAKE_CURRENT_BINARY_DIR}/${HEADER_OUTPUT_BASENAME}
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAMESPACE}/${HEADER_OUTPUT_BASENAME}
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_OUTPUT_BASENAME}
${CMAKE_CURRENT_BINARY_DIR}/${HEADER_OUTPUT_BASENAME}
COMMENT "-- Moving generated file ${SOURCE_OUTPUT_BASENAME} to
${PROJECT_SOURCE_DIR}/src")
Any ideas why this fail when ADD_CUSTOM_COMMAND is break in tow
ADD_CUSTOM_COMMAND
Thanks in advance
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/cmake/attachments/20080119/6d80ae1b/attachment.htm
More information about the CMake
mailing list