On 03/04/2012 12:14 AM, Ajay Panyala wrote: > No, it wouldn't; check it out: > > % touch a > % rm -f b > % ls b > ls: cannot access b: No such file or directory > % cmake -E copy_if_different a b > % ls b > b > % cksum a b > 4294967295 0 a > 4294967295 0 b > > It works with one file, but I have 4 files that are generated. > I have 4 cmake -E copy_if_different commands, one for each file. > Only the last file is not copied (if similar). The others are copied > even if they are the same. > > I verfied that they are the same with a diff. > > Any idea what might be happening here ?
Please provide a minimal but complete example for this issue. Regards, Michael > On Sat, Mar 3, 2012 at 2:47 PM, Michael Hertling <[email protected]>wrote: > >> On 03/03/2012 10:36 PM, Ajay Panyala wrote: >>> Try "cmake -E copy_if_different ..." >>> >>> cmake -E copy_if_different build/test1.c build/tests/test1.c >>> >>> That would work when make is run atleast once. >>> When running make for the 1st time test1.c was never >>> copied to build/tests before. So I would be comparing a file with >>> another non-existant file and that would result in an error halting >>> the make process. >> >> No, it wouldn't; check it out: >> >> % touch a >> % rm -f b >> % ls b >> ls: cannot access b: No such file or directory >> % cmake -E copy_if_different a b >> % ls b >> b >> % cksum a b >> 4294967295 0 a >> 4294967295 0 b >> >> Regards, >> >> Michael >> >>> On Sat, Mar 3, 2012 at 1:20 PM, Hendrik Sattler <[email protected] >>> wrote: >>> >>>> Am Samstag, 3. März 2012, 21:41:49 schrieb Ajay Panyala: >>>>> I have a custom target which runs a command to generate >>>>> a C source file say test1.c >>>>> >>>>> ADD_CUSTOM_TARGET(TestGen ALL >>>>> COMMAND genExec ${PROJECT_SOURCE_DIR}/Main.java >>>>> DEPENDS ${PROJECT_SOURCE_DIR}/Main.java >>>>> ) >>>>> >>>>> And I have a custom command that moves the generated *test1.c * >>>>> to a new directory inside the build directory. >>>>> >>>>> ADD_CUSTOM_COMMAND( >>>>> TARGET TestGen >>>>> POST_BUILD >>>>> COMMAND mv >>>>> ARGS ${PROJECT_BINARY_DIR}/test1.c ${PROJECT_BINARY_DIR}/tests/ >>>>> ) >>>>> >>>>> Each time I run make, the custom target is run (since custom targets >> are >>>>> always >>>>> out-of-date). But I want to avoid moving the new test1.c generated each >>>>> time if build/test1.c is the same as build/tests/test1.c since there >> are >>>>> other targets >>>>> like add_executable and add_library later in the CMakelists file that >> are >>>>> re-built >>>>> each time since they depend on test1.c >>>> >>>> Try "cmake -E copy_if_different ..." >>>> >>>> HS -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake
