<div dir="ltr">I have this chain of makefiles.  It adds a custom rule to build a source file, and then a subdirectory cannot reference that file.<br><div><br></div><div>The first is added custom rule for M:/tmp/cmake-chain/sub/src/sack.c </div><div>and then later cannot find M:/tmp/cmake-chain/sub/src/sack.c</div><div>though it's really referencing it as M:/tmp/cmake-chain/sub/sub2/../src/sack.c</div><div><br></div><div>tested with 3.6.0-rc4 and 3.9.0-rc5</div><div><br></div><div>if the add_custom_rule and add_executable are in the same makefile even if there's a added path to make it not exactly the same source as the 'referencing source' message logs; it works.  </div><div><br></div><div><br></div><div>--- CMakeLists.txt ---</div><div><div><div>cmake_minimum_required(VERSION 2.8)</div></div><div><br></div><div>message( "Adding custom rule for ${CMAKE_CURRENT_SOURCE_DIR}/src/sack.c" )</div><div>  add_custom_command( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/src/sack.c</div><div>  <span class="gmail-Apple-tab-span" style="white-space:pre">                      </span>COMMAND cmake -E echo do something to make src/sack.c</div><div>  )                                   </div><div>add_subdirectory( sub2 )</div></div><div>-------------------------------------<br></div><div><br></div><div>--- sub2/CmakeLists.txt ---</div><div><div>message( "referencing source ${CMAKE_CURRENT_SOURCE_DIR}/../src/sack.c" )</div><div>add_executable( something ${CMAKE_CURRENT_SOURCE_DIR}/../src/sack.c )</div></div><div><br></div><div>-------------------------------------</div><div><br></div><div>--- Truncated output log ------</div><div><div>Adding custom rule for M:/tmp/cmake-chain/sub/src/sack.c</div><div>referencing source M:/tmp/cmake-chain/sub/sub2/../src/sack.c</div><div>-- Configuring done</div><div>CMake Error at sub2/CMakeLists.txt:3 (add_executable):</div><div>  Cannot find source file:</div><div><br></div><div>    M:/tmp/cmake-chain/sub/src/sack.c</div><div><br></div><div>  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp</div><div>  .hxx .in .txx</div></div><div>--------------------------------------</div><div><br></div><div><br></div><div>------ Flat CmakeLists.txt which works ---------------</div><div><div>cmake_minimum_required(VERSION 2.8)</div><div><br></div><div>message( "Adding custom rule for ${CMAKE_CURRENT_SOURCE_DIR}/src/sack.c" )</div><div>  add_custom_command( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/src/sack.c</div><div><span class="gmail-Apple-tab-span" style="white-space:pre">          </span>COMMAND cmake -e echo make file.</div><div>  )                                   </div><div><br></div><div>message( "referencing source ${CMAKE_CURRENT_SOURCE_DIR}/src/sack.c" )</div><div>add_executable( something ${CMAKE_CURRENT_SOURCE_DIR}/sub2/../src/sack.c )</div></div><div><div>--------------------------------------</div></div><div><br></div><div>----- flat cmakelists output.... -----------</div><div><div><div>Adding custom rule for M:/tmp/cmake-chain-flat/src/sack.c</div><div>referencing source M:/tmp/cmake-chain-flat/sub2/../src/sack.c</div><div>-- Configuring done</div></div></div><div><div>--------------------------------------</div></div><div><br></div></div>