That was very close to what I wanted. But not to 100%, Im not sure if it is possible to get to what I really want:<div><br></div><div>On one hand, I get one build rule for each tolua file, but it was not associated to the actual tolua file. So I cannot do right click-&gt;compile on the .pkg file.</div>

<div><br></div><div>I can however go further down, locate the matching rule, right click on that and compile.</div><div>So for a large project with hundred of .pgk file, this is not optimal. I would like to be able to do ctrl+F7 to compile the current file for example...</div>

<div><br></div><div>Some slight modifications was needed on the function:</div><div><br></div><div><div>FUNCTION (wrap_tolua outvar)</div><div>    set(outfiles)</div><div>    foreach(in ${ARGN})</div><div>        get_filename_component(inAbs ${in} ABSOLUTE)</div>

<div>        get_filename_component(basename ${in} NAME_WE)</div><div>        get_filename_component(path ${in} PATH)</div><div>        file(MAKE_DIRECTORY ${path}/generated)</div><div>        set(outfile &quot;${path}/generated/generated_${basename}.cpp&quot;)</div>

<div>        list(APPEND outfiles &quot;${outfile}&quot;)</div><div>        add_custom_command(OUTPUT &quot;${outfile}&quot;</div><div>            COMMAND ${TOLUA_EXECUTABLE} -o &quot;${outfile}&quot; -n ${basename} &quot;${inAbs}&quot; -L &quot;lua/access_hook.lua&quot;</div>

<div>            DEPENDS &quot;${inAbs}&quot;</div><div>            WORKING_DIRECTORY &quot;${path}&quot;</div><div>            COMMENT &quot;Wrapping ${basename} with tolua&quot;)</div><div>    endforeach()</div><div>    set(${outvar} ${outfiles} PARENT_SCOPE)</div>

<div>endfunction()</div><div><br></div><div>So unless someone knows how to add a file to a library, associate it with a custom build command, this is what I have to stick to.</div><div><br></div><div>/Anders</div><br><div class="gmail_quote">

On Tue, Aug 31, 2010 at 10:38 PM, Ryan Pavlik <span dir="ltr">&lt;<a href="mailto:rpavlik@iastate.edu">rpavlik@iastate.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">



  
    
    
  
  <div bgcolor="#ffffff" text="#000000">
    You were close:<br>
    <br>
    here&#39;s a function to handle the wrapping - could stick this in the
    Findtolua.cmake file that you&#39;ve hopefully made.<br>
    <br>
    function wrap_tolua(outvar)<br>
        set(outfiles)<br>
        foreach(in ${ARGN})<br>
            get_filename_component(inAbs ${in} ABSOLUTE)<br>
            get_filename_component(basename ${in} NAME_WE)<br>
            set(outfile
    &quot;${CMAKE_CURRENT_BINARY_DIR}/generated_${basename}.cpp&quot;)<br>
            list(APPEND outfile &quot;${outfile}&quot;)<br>
            add_custom_command(OUTPUT &quot;${outfile}&quot;<br>
                COMMAND ${TOLUA_EXECUTABLE} -o &quot;${outfile}&quot; -n
    ${basename} &quot;${inAbs}&quot;<br>
                DEPENDS &quot;${inAbs}&quot;<br>
                COMMENT &quot;Wrapping ${basename} with tolua&quot;)<br>
        endforeach()<br>
        set(${outvar} ${outfiles} PARENT_SCOPE)<br>
    endfunction()<br>
    <br>
    <br>
    Then, to do your example:<br>
    <br>
    find_package(tolua REQUIRED)<br>
    <br>
    wrap_tolua(TOLUA_WRAPPED_SRC math.pkg another.pkg)<br>
    add_library(myLib theMain.cpp ${TOLUA_WRAPPED_SRC})<br>
    <br>
    (This is similar to how Qt and FLTK builds take place.)<br>
    <br>
    Hope this helps!  Please share your find module with this code added
    and tweaked, if needed - thanks!<br>
    <br>
    Ryan<div><div></div><div class="h5"><br>
    <br>
    On 08/31/2010 02:44 PM, Anders Backman wrote:
    </div></div><blockquote type="cite"><div><div></div><div class="h5">Hi all.
      <div><br>
      </div>
      <div>I have a directory of .pkg files to be processed by tolua.
        This in turn generates a bunch of cpp files, which I then link
        into a library.</div>
      <div><br>
      </div>
      <div>My problem right now is that, I would like to generate a
        project, where each .pkg is associated with a custom command, so
        that I in visual studio (for exampel) can &quot;compile&quot; each .pkg
        file individually.</div>
      <div><br>
      </div>
      <div>I have managed to create a library, and to get all the
        generated cpp file associated to the library+a custom target
        command which is executed PRE_BUILD to the library.</div>
      <div>But thats not quite what I would like. Because then I cant
        just compile one .pkg file if I edit it. Using the above
        approach, requires me to build the whole project, which compiles
        ALL .pkg files associated to it, not what I want. I want to
        setup a proper dependency chain, so that If a .pkg file is
        modified, the corresponding &quot;generated&quot;_xx.cpp is generated, and
        the project is linked.</div>
      <div><br>
      </div>
      <div>So I guess Im looking for something like:</div>
      <div><br>
      </div>
      <div>add_library(myLib theMain.cpp </div>
      <div>   generated_math.cpp </div>
      <div>   math.pkg </div>
      <div>)</div>
      <div><br>
      </div>
      <div>
        <div>set_source_files_properties(generated_math.cpp GENERATED)</div>
      </div>
      <div><br>
      </div>
      <div>being able to tell CMake that .pkg files are treated in a
        certain way:</div>
      <div>The command that I want to execute for each .pkg is:</div>
      <div><br>
      </div>
      <div>tolua -o generated_math.cpp<span style="white-space:pre-wrap"> </span>-n math<span style="white-space:pre-wrap"> </span>math.pkg</div>
      <div><br>
      </div>
      <div>So any hints on how to do this?</div>
      <div>I can certainly do this in VisualStudio, adding .pkg files to
        the project, and setting the build events on it, but I need a
        portable solution...</div>
      <div><br>
      </div>
      <div>/A</div>
      </div></div><pre><fieldset></fieldset>
_______________________________________________
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><div class="im">

Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a>

Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a>

Follow this link to subscribe/unsubscribe:
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a></div></pre>
    </blockquote>
    <br>
    <pre cols="72">-- 
Ryan Pavlik
HCI Graduate Student
Virtual Reality Applications Center
Iowa State University

<a href="http://academic.cleardefinition.com" target="_blank">http://academic.cleardefinition.com</a>
<a href="http://rpavlik.youcanbook.me" target="_blank">http://rpavlik.youcanbook.me</a></pre>
  </div>

<br>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br></blockquote></div><br><br clear="all"><br><br>
</div>