{"push_id":806547915,"size":2,"distinct_size":2,"ref":"refs/heads/next","head":"a6d1d7162bb78f212918e04ec90a41df38a10903","before":"124dc4a28d1f51aeff6591697fd34f97ce6b12fa","commits":[{"sha":"6c58ccb9a6b961ad5d230a75182002612ff79698","author":{"email":"fbd1bb53ae91c7d21c5feb88facb5fbef8543d8e@gmail.com","name":"Stephen Kelly"},"message":"cmGlobalGenerator: Initialize generator targets in on construction (#15729)\n\nThe Ninja generator and Visual Studio generators are special-cased for the\nQtAutogen feature.  In order to reduce the number of custom targets, the Visual\nStudio generators prefer to create custom commands instead, and in order to\ncreate appropriate Ninja files, generated rcc files are listed as byproducts.\n\nThis requires the use of the GetConfigCommonSourceFiles API of the\ncmGeneratorTarget for those generators when initializing the autogen target.\nThe initializer method is called from Compute() after creation of the\ncmGeneratorTarget object are created, however the initialization of the object\ndirectory occurs later in the InitGeneratorTargets method.  That means that the\nresulting object locations are computed incorrectly and cached before the\nobject directory is determined, so the generated buildsystem can not find the\nobject files.\n\nThe initialization of the object directory was split from the creation of\ncmGeneratorTarget instances in commit 0e0258c8 (cmGlobalGenerator: Split\ncreation of generator object from initialization., 2015-07-25).  The motivation\nfor the split was to do only what is essential to do early in cases where\ncmGeneratorTargets need to be created at configure-time.  That is required for\nthe purpose of implementing policies CMP0024 and CMP0026, and for\ntry_compile(LINK_LIBRARIES).  However, the split was not really necessary.\n\nCompute the object directory in the cmGeneratorTarget constructor instead.\n\nThe QtAutogen unit test already tests the use of TARGET_OBJECTS with AUTOMOC,\nand that test already passes on Ninja.  The reason it already passes is that\nthe QtAutogen target also uses the AUTORCC feature, and specifies several qrc\nfiles in its SOURCES.  Later in the Compute algorithm (after the\nInitGeneratorTargets call), the rcc files are determined add target->AddSource\nis called.  The AddSource call clears the previously mentioned cache of source\nfiles, causing it to be regenerated when next queried, this time taking account\nof the object directory.\n\nExtend the test suite with a new target which does not make use of AUTORCC with\nqrc files so that the test added alone would break without the fix in this\ncommit.","distinct":true,"url":"https://api.github.com/repos/Kitware/CMake/commits/6c58ccb9a6b961ad5d230a75182002612ff79698"},{"sha":"a6d1d7162bb78f212918e04ec90a41df38a10903","author":{"email":"fbd1bb53ae91c7d21c5feb88facb5fbef8543d8e@gmail.com","name":"Stephen Kelly"},"message":"Merge topic 'fix-qtautogen-with-object-library-Ninja' into next\n\n6c58ccb9 cmGlobalGenerator: Initialize generator targets in on construction (#15729)","distinct":true,"url":"https://api.github.com/repos/Kitware/CMake/commits/a6d1d7162bb78f212918e04ec90a41df38a10903"}]}