[CMake] Re: Ignoring command return code in add_custom_command

Bill Hoffman bill.hoffman at kitware.com
Fri Dec 14 11:41:32 EST 2007


Rodolfo Schulz de Lima wrote:
> Bill Hoffman escreveu:
>> Rodolfo Schulz de Lima wrote:
>>
>>>
>>> function call_command()
>>> {
>>>     -- I think that passing 'COMMAND' is not needed, but it's ok if
>>>     -- one cares about maintaining the cmake script syntax.
>>>     ret = execute_process(COMMAND, "whatever");
>>>     -- do something with ret
>>>     return true; -- or false, to make the build stop
>>> }
>>>
>>> add_custom_command(OUTPUT, "text.cpp" COMMAND call_command);
> 
>> So, how would the above work?  The custom command would have to run 
>> call_command at build time.  That means Xcode, VS, and make would all 
>> have to run call_command.  I would think that would have to be done by 
>> running a script.  Unless you want to translate the lua function into 
>> make, Xcode, VS, etc.  Again, I think this is more of a feature 
>> request, that moving to lua would have no impact on.  You want to put 
>> cmake/lua code into a custom command and have it run during the build.
> 
> No, I said that add_custom_command should run 'call_command' in project 
> creation time, not in build time. This way it would execute 
> 'execute_process', which would generate the required call according to 
> the generator used.
> 

Right, so you want the execute_process to be executed at build time, 
basically convert the lua/cmake to the right code for the generator. 
Really has nothing to do with the language used.  You want the 
call_command function to run at build time.  Your example is simple and 
does two things, calls execute_process and returns a value.  However, 
you could have anything in the function, and it would all have to be 
converted to build time calls.  The easiest way to do that would be to 
run cmake -S at build time.  Anything else would be really hard...

Again, this has nothing to do with lua vs CMake language.


-Bill



More information about the CMake mailing list