I'm trying to get get CMake to do the equivalent from this Makefile. I'm using 
cp in this simple example, but want to use different commands in my project.

==Makefile==
srcdir=..

hij: a/efg
    cp a/efg hij
a/efg: $(srcdir)/a/abc
    -mkdir a
    cp $(srcdir)/a/abc a/efg
==========

For this I am using two CMakeLists.txt files.

==CMakeLists.txt==
cmake_minimum_required(VERSION 2.8)
add_subdirectory(a)
add_custom_command(
  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/hij
  COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different
    ${CMAKE_CURRENT_BINARY_DIR}/a/efg
    ${CMAKE_CURRENT_BINARY_DIR}/hij
  DEPENDS
    ${CMAKE_CURRENT_BINARY_DIR}/a/efg
  VERBATIM
)
add_custom_target(hij_target ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/hij)
==================
==a/CMakeLists.txt==
add_custom_command(
  OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/efg
  COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different
    ${CMAKE_CURRENT_SOURCE_DIR}/abc
    ${CMAKE_CURRENT_BINARY_DIR}/efg
  DEPENDS
    ${CMAKE_CURRENT_SOURCE_DIR}/abc
  VERBATIM
)
====================

This gives me the error:

make[2]: *** No rule to make target `a/efg', needed by `hij'.  Stop.
make[1]: *** [CMakeFiles/hij_target.dir/all] Error 2
make: *** [all] Error 2

How can cmake be made to understand this simple dependency?

Cheers,
Jos

-- 
Jos van den Oever, software architect
+49 391 25 19 15 53
074 3491911
http://kogmbh.com/legal/
--

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

Reply via email to