Tyler Roscoe said the following on 2/24/2010 6:50 PM:
I would write a wrapper for add_library() and/or add_executable() that
does the normal add_*() stuff and then also sets up the custom command
for generating the lua.*.cc files.
Ok - I just wanted to make sure there wasn't some built-in way of doing it before I plowed ahead with that :)

I.e. the origin file is "lua.pkg";
For target "dbproxy" I want to run "tolua++ -n game
${db_proxy_definitions} ${common_definitions} -o
${Foo_BINARY_DIR}/lua.dbproxy.cc ${Foo_SOURCE_DIR}/lua.pkg"
For target "statsd" I want to run "tolua++ -n game ${statsd_definitions}
${common_definitions} -o ${Foo_BINARY_DIR}/lua.statsd.cc
${Foo_SOURCE_DIR}/lua.pkg"
If these are real examples from your code, I would strongly suggest
normalizing your variable names. If the target is called dbproxy then
Hehe, no, it's not :) And I didn't make it clear where I was just using ${...} to denote "stuff from another place" :)

making all the config variables for that target match the form
dbproxy_WHATEVER lets you say stuff like:

add_library(${this_target} ${${this_target}_SOURCE_FILES} ...)
Hmm - I didn't know you could do that, so I've been doing everything project relative, but then the size of this project and the number of sub-targets, and the huge amount of shared code between targets means that things aren't really organized by target, so all of the targets sit in one top-level project.


- Oliver

_______________________________________________
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