Thanks, Petr. This sounds like what we need, but I must be missing something.

I have:
SET( ZFPE_FILES
    FOO.asm
)
(and of course many more files in that variable). Then later:
add_library(zfpe ${ZFPE_FILES})
set_property(SOURCE FOO.asm PROPERTY OBJECT_DEPENDS BAR.mac)

(all files have explicit paths on them). When I do a cmake, it builds the 
world. Then I change BAR.mac and do a cmake and a make and it doesn't 
reassemble FOO.

This is all complicated somewhat by the additional plumbing I have wrapped 
around it (we're cross-compiling with a two-phase compiler, and so there's some 
other stuff in there), but the cmake and make are both definitely being invoked.

One (of many) things I'm not understanding is where the check for changes to 
BAR takes place. I notice that BAR does not appear in the MakeFile at all.

I tried adding a few MESSAGEs and it's doing the set_property as expected 
(i.e., that code didn't somehow get bypassed).

From: Petr Kmoch [mailto:petr.km...@gmail.com]
Sent: Wednesday, February 05, 2014 3:08 AM
To: Phil Smith
Cc: cmake@cmake.org
Subject: Re: [CMake] Dependencies

Hi Phil.

If your FOO.asm is used as a source file (i.e. it's listed in an 
add_executable() or add_library() command), then you can use the source file 
property OBJECT_DEPENDS for that:
  add_executable(myexe FOO.asm other.file one.more)
  set_property(SOURCE FOO.asm PROPERTY OBJECT_DEPENDS BAR.mac BAZ.mac) #any 
list of dependencies here
As an alternative to set_property(), you can use the weaker, but shorthand 
setter set_source_files_properties() (which can set it for multiple files at 
once).

If they're somehow processed with a custom command/target (i.e. via 
add_custom_command() or add_custom_target() instead of library/executable), you 
can use that command's DEPENDS argument.
Petr

On Tue, Feb 4, 2014 at 7:57 PM, Phil Smith 
<p...@voltage.com<mailto:p...@voltage.com>> wrote:
This is surely something basic, but I'm far from a CMake guru and would rather 
not spend weeks digging to solve something that *seems* like it'll be simple.

We have assembler modules in a project. These use macros, as assembler modules 
are wont to do.

So if module FOO.asm uses macro BAR.mac, and we change BAR, a CMake should 
rebuild FOO. We recognize that we're going to have to define these dependencies 
manually, but I'm assuming/hoping that there's a way to do that in a CMakeLists.

Unfortunately words like "dependency" make lousy search terms!

Can someone point me? Or, even better, give me an example of how to say 
"FOO.asm depends on macro BAR.mac"?

Thanks...
--
...phsiii

Phil Smith III

--

Powered by www.kitware.com<http://www.kitware.com>

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to