[CMake] more targets to run in parallel

Andrea Crotti andrea.crotti.0 at gmail.com
Mon Feb 20 11:00:43 EST 2012


On 02/20/2012 03:42 PM, Eric Noulard wrote:
> You may avoid to create a list in the first place: set(myoptions "one 
> two three") instead of set(myoptions one two three) see cmake 
> --help-command list or you can string(REPLACE ";" " " stringopts 
> "${myoptions}") message(STATUS "${stringopts}") 

So now I ended up with this, where the final command is the list 
concatenation of two other lists,
and then use the replace trick and create a custom_command which should 
run it.

set(GEN_DEPENDENCY_SCRIPT $ENV{PSI_PATH}/devsonly/devsonly/bin/build_app.py)
set(INSTALLED_EGGS_LIST installed_eggs.txt)
set(BUILD_APP_OPTIONS -o ${INSTALLED_EGGS_LIST} -w ${WORKSPACE} 
${APPLICATION})

list(APPEND GEN_DEPENDENCY_CMD ${PYTHON_EXECUTABLE} 
${GEN_DEPENDENCY_SCRIPT} ${BUILD_APP_OPTIONS})

string(REPLACE ";" " " GEN_DEPENDENCY_CMD ${GEN_DEPENDENCY_CMD})

add_custom_command(
   OUTPUT ${INSTALLED_EGGS_LIST}
   COMMAND ${GEN_DEPENDENCY_CMD}
)


But it doesn't work yet, even if the list is actually correct the 
command executed gives this:
/bin/sh: 
/usr/bin/python~/git_projs/PSI_Hamburg/devsonly/devsonly/bin/build_app.py-oinstalled_eggs.txt-w/home/andrea/git_projs/home/andrea/git_projs/Minimum_Drag/airbus.application.minimum_drag: 
No such file or directory

The thing which is not quite clear is what COMMAND takes as option, 
probably not a list but a list
is converted automatically to the arguments that it takes?


More information about the CMake mailing list