<div dir="ltr">Hi Craig,<div><br></div><div>Maybe my problem description was lacking. Below is the function I have. Both CMAKE_INCLUDE_CURRENT_DIR and the target are defined on the same function scope, but this does not seem to work. I need to define CMAKE_INCLUDE_CURRENT_DIR on the parent CMakeLists file.</div><div><br></div><div><div>function(AddTest)</div><div>    set(options)</div><div>    set(oneValueArgs FILE FOLDER)</div><div>    set(multiValueArgs LIBRARIES)</div><div>    cmake_parse_arguments(TEST</div><div>        "${options}"</div><div>        "${oneValueArgs}"</div><div>        "${multiValueArgs}"</div><div>        ${ARGN}</div><div>    )</div><div><br></div><div>    # THIS DOES NOT WORK HERE I NEED TO SET IT IN THE PARENT FOLDER</div><div>    set(CMAKE_INCLUDE_CURRENT_DIR ON)<br></div><div><br></div><div>    get_filename_component(FILE_RAW ${TEST_FILE} NAME_WE)</div><div>    add_executable(${FILE_RAW} ${TEST_FILE})</div><div><br></div><div>    set_target_properties(${FILE_RAW}</div><div>        PROPERTIES</div><div>        CXX_STANDARD 14</div><div>        CXX_EXTENSIONS OFF</div><div>        AUTOMOC ON</div><div>        AUTOUIC ON</div><div>        FOLDER ${TEST_FOLDER}</div><div>    )</div><div><br></div><div>    find_package(Qt5Test)</div><div>    target_link_libraries(${FILE_RAW} ${TEST_LIBRARIES})</div><div><br></div><div>    add_test(NAME ${FILE_RAW} COMMAND ${FILE_RAW})</div><div>endfunction()</div></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 24, 2016 at 3:48 PM, Craig Scott <span dir="ltr"><<a href="mailto:craig.scott@crascit.com" target="_blank">craig.scott@crascit.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">function() introduces a new scope, so if you want changes you make to variables inside the function to be visible outside the function, you need to use set(... PARENT_SCOPE). Alternatively, a macro() does not introduce a new scope, so replacing your function() with a macro() may also yield the behaviour you want (but changing to a macro has other effects, so make sure you read the docs before going down that path). Also note that setting it in one directory does not make it apply to subdirectories as well, in case that matters in your situation.<div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Tue, Oct 25, 2016 at 9:42 AM, Tiago Macarios <span dir="ltr"><<a href="mailto:tiagomacarios@gmail.com" target="_blank">tiagomacarios@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Hi,<div><br></div><div>Does CMAKE_INCLUDE_CURRENT_DIR need to be set outside of a function?<br></div><div><br></div><div>I have a function where I define an executable "add_executable". This executable uses moc'ed Qt clasees, so I need to set CMAKE_INCLUDE_CURRENT_DIR. It seems like I have to set it from the top level script calling the function. If I set it inside the function the compilation fails with a missing moc file.<br></div><div><br></div><div>Any ideas?</div><span class="m_-2420463097592014405HOEnZb"><font color="#888888"><div><br></div><div>Tiago</div></font></span></div>
<br></div></div>--<br>
<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" rel="noreferrer" target="_blank">http://www.cmake.org/Wiki/CMak<wbr>e_FAQ</a><br>
<br>
Kitware offers various services to support the CMake community. For more information on each offering, please visit:<br>
<br>
CMake Support: <a href="http://cmake.org/cmake/help/support.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/su<wbr>pport.html</a><br>
CMake Consulting: <a href="http://cmake.org/cmake/help/consulting.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/co<wbr>nsulting.html</a><br>
CMake Training Courses: <a href="http://cmake.org/cmake/help/training.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/tr<wbr>aining.html</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensou<wbr>rce/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/cmake" rel="noreferrer" target="_blank">http://public.kitware.com/mail<wbr>man/listinfo/cmake</a><span class="HOEnZb"><font color="#888888"><br></font></span></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="m_-2420463097592014405gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Craig Scott<br><div>Melbourne, Australia</div><div><a href="https://crascit.com" target="_blank">https://crascit.com</a><br></div></div></div></div></div></div></div>
</font></span></div>
</blockquote></div><br></div>