The following issue has been SUBMITTED. ====================================================================== http://public.kitware.com/Bug/view.php?id=11332 ====================================================================== Reported By: Rolf Eike Beer Assigned To: ====================================================================== Project: CMake Issue ID: 11332 Category: CMake Reproducibility: always Severity: minor Priority: normal Status: new ====================================================================== Date Submitted: 2010-10-19 06:55 EDT Last Modified: 2010-10-19 06:55 EDT ====================================================================== Summary: No dependency from ADD_CUSTOM_COMMAND to external project Description: The idea is like this: we have an project that generates a couple of files. In a special configuration of another project we need those files as input for a special build step. Those step will take those files, mangle them and will generate a source file at the end. I simulate this by a simple copy below. This is then added as usual to a library (in my example below to a executable, but that doesn't matter). When I run the example below I get:
[ 80%] Built target Subdir_Build make[2]: *** No rule to make target `Subdir_Build', needed by `main.c'. Stop. The project "Subdir_Build" indeed exists, as "make Subdir_Build" runs fine. And it looks for me as it is properly build before the target depending on it. I have found no way to set a dependency on the external project (tried ADD_CUSTOM_COMMAND(DEPENDS), ADD_DEPENDENCIES, and SET_SOURCE_FILES_PROPERTIES). If CMake can't do this it should give at least an error at CMake time. Put this into CMakeLists.txt === snip === PROJECT(MaindirThing C) CMAKE_MINIMUM_REQUIRED(VERSION 2.8.2) INCLUDE(ExternalProject) ExternalProject_Add(Subdir_Build PREFIX "${CMAKE_CURRENT_BINARY_DIR}/build_subdir" SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/subdir" CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/build_subdir/install" INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/build_subdir/install" ) ADD_CUSTOM_COMMAND( OUTPUT "main.c" COMMAND ${CMAKE_COMMAND} ARGS -E copy ${CMAKE_CURRENT_BINARY_DIR}/build_subdir/install/foo ${CMAKE_CURRENT_BINARY_DIR}/main.c DEPENDS Subdir_Build ) ADD_EXECUTABLE(simple_exe main.c) === snap === And this goes to subdir/CMakeLists.txt === snip === PROJECT(SubdirThing NONE) CMAKE_MINIMUM_REQUIRED(VERSION 2.6) FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/foo_file "int main(void)\n{\n return 0;\n}\n") INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/foo_file DESTINATION .) === snap === ====================================================================== Issue History Date Modified Username Field Change ====================================================================== 2010-10-19 06:55 Rolf Eike Beer New Issue ====================================================================== _______________________________________________ cmake-developers mailing list cmake-developers@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers