[CMake] Problems with parallel builds

Eric Noulard eric.noulard at gmail.com
Thu Nov 18 14:14:13 EST 2010


2010/11/18 David Cole <david.cole at kitware.com>:
> On Thu, Nov 18, 2010 at 1:08 PM, Denis Scherbakov
> <denis_scherbakov at yahoo.com> wrote:
>> Here is a sample CMakeLists.txt to illustrate that two custom targets cannot depend on each other:
>>
>> PROJECT(BUG C)
>>
>> CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
>>
>> ADD_CUSTOM_COMMAND(
>>  OUTPUT  "${CMAKE_CURRENT_BINARY_DIR}/fileOne"
>>  COMMAND "${CMAKE_COMMAND}"
>>     ARGS "-E"
>>          "touch"
>>          "${CMAKE_CURRENT_BINARY_DIR}/fileOne")
>>
>> ADD_CUSTOM_TARGET(targetFileOne DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/fileOne")
>>
>> ADD_CUSTOM_COMMAND(
>>  OUTPUT  "${CMAKE_CURRENT_BINARY_DIR}/fileOne-s"
>>  COMMAND "${CMAKE_COMMAND}"
>>     ARGS "-E"
>>          "touch"
>>          "${CMAKE_CURRENT_BINARY_DIR}/fileOne-s")
>>
>> ADD_CUSTOM_TARGET(targetFileOneS ALL DEPENDS targetFileOne "${CMAKE_CURRENT_BINARY_DIR}/fileOne-s")
[...]


> Instead of:
>> ADD_CUSTOM_TARGET(targetFileOneS ALL DEPENDS targetFileOne "${CMAKE_CURRENT_BINARY_DIR}/fileOne-s")
>
> Try:
> ADD_CUSTOM_TARGET(targetFileOneS ALL DEPENDS
> "${CMAKE_CURRENT_BINARY_DIR}/fileOne-s")
> ADD_DEPENDENCIES(targetFileOneS targetFileOne)

This solution works for me on Linux + CMake 2.8.1 and up.

-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list