Hi - 

I have a question about resolving dependencies when add_custom is used to 
generate files into subdirectories.  Consider the following example 
(substantially simplified from my use case, but it captures the essence of what 
I am trying to do:

In the root of the project, I have the following:

/Foo.cmake:
add_custom_command (OUTPUT Bar/Foo.cpp
                    COMMAND touch Bar/Foo.cpp
                   )

#end /Foo.cmake

/CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)

include (Foo.cmake)
add_subdirectory (Bar)

#end /CMakeLists.txt

In a subdirectory Bar, I have the following:

/Bar/Bar.cmake:
add_library ( Bar SHARED
              Foo.cpp )
#end /Bar/Bar.cmake

/Bar/CMakeLists.txt:
include (Bar.cmake)
#end /Bar/CMakeLists.txt


When I attempt to compile this into makefiles, I get the following diagnostic 
from cmake:

CMake Error at Bar/Bar.cmake:1 (add_library):
  Cannot find source file:

    Foo.cpp

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx
Call Stack (most recent call first):
  Bar/CMakeLists.txt:1 (include)


I understand why that diagnostic is appearing (cmake knows about a Bar/Foo.cpp, 
but not about a Foo.cpp).  Is there some way to get Cmake to automagically 
realize that within the context of Bar.cmake, Foo.cpp and Bar/Foo.cpp are the 
same thing?

thanks,
/-Will

--

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