<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Hello,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>short description: I want to have a configuration header file per unit test.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>For this purpose I wrote the following function, which creates a header file in “<span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>${CURRENT_BINARY_DIR}</span>” and copy all test files into the binary directory.<o:p></o:p></p><p class=MsoNormal>Howewer, I got it to work when I use <span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>add_custom_target</span> as pre_build target, but this doesn’t work on *nix systems.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So here is the current function:<o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>function</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(CopyUnitTestFiles projectName)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(UnitTestConfigName </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${projectName}UnitTestConfig"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(UNITTESTCONFIGNAME </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${projectName}UnitTestConfig"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(PROJECT_NAME ${projectName})<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(OUTPUT_FILENAME </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${CMAKE_CURRENT_BINARY_DIR}/${UnitTestConfigName}.cmake"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(HEADER_INPUT_FILENAME </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${CMAKE_SOURCE_DIR}/cmake/UnitTestConfig.h.in"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(HEADER_OUTPUT_FILENAME </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${CMAKE_CURRENT_BINARY_DIR}/${UnitTestConfigName}.h"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(CURRENT_FILENAME </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${OUTPUT_FILENAME}"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(RELATIVE_FILEPATH </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"testfiles/${projectName}"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(INCLUDE_GUARD </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${projectName}_UNITTESTCONFIG_H"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>string</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(</span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>TOUPPER</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> ${INCLUDE_GUARD} INCLUDE_GUARD)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(TARGET_FILE_DIR $<TARGET_FILE_DIR:${projectName}>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(CopyUnitTestFilesProjectName  CopyUnitTestFiles_${projectName})<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>configure_file</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(${CMAKE_SOURCE_DIR}/cmake/UnitTestConfig.cmake.in ${OUTPUT_FILENAME} @ONLY)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>add_custom_target</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(${CopyUnitTestFilesProjectName}<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>                      </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>COMMAND</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> ${CMAKE_COMMAND} -DABSFILEPATH=${TARGET_FILE_DIR} -P ${OUTPUT_FILENAME}<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>                      </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>COMMAND</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> ${CMAKE_COMMAND} -E remove_directory ${TARGET_FILE_DIR}/testfiles/${projectName}<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>                      </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>COMMAND</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data/testfiles ${TARGET_FILE_DIR}/testfiles/${projectName}<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>                     )<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set_property</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(</span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>TARGET</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> ${CopyUnitTestFilesProjectName} </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>PROPERTY</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> FOLDER </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"Custom Targets/CopyUnitTestFiles"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>add_dependencies</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(${projectName} ${CopyUnitTestFilesProjectName})<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>endfunction</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(CopyUnitTestFiles)</span><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The function should be called like:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>project</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(UnitTest1)</span><span style='font-size:9.5pt;font-family:Consolas;color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>add_executable</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(${PROJECT_NAME} ${HEADERS} ${SOURCES})</span><span style='font-size:9.5pt;font-family:Consolas;color:black'><o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>target_link_libraries</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(${PROJECT_NAME} gtest gtest_main)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>CopyUnitTestFiles(${PROJECT_NAME})<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The error message which I get:<o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>-- Configuring done<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>CMake Error: The inter-target dependency graph contains the following strongly connected component (cycle):<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>  </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"CopyUnitTestFiles_UnitTest1"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> of type UTILITY<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    depends on </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"UnitTest1"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> (strong)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>  </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"UnitTest1"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> of type EXECUTABLE<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    depends on </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"CopyUnitTestFiles_UnitTest1"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> (strong)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>At least one of these targets is not a STATIC_LIBRARY.  Cyclic dependencies are allowed only among static libraries.</span><span style='font-size:9.5pt;font-family:Consolas;color:black'><o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>UnitTestConfig.cmake.in:<o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(ProjectName </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"@PROJECT_NAME@"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(UnitTestConfigName </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"@UNITTESTCONFIGNAME@"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(NAMESPACE </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${UnitTestConfigName}"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(UNITTESTNAME </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${ProjectName}"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(RELATIVE_FILEPATH </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"testfiles/${ProjectName}"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(ABSOLUTE_FILEPATH </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${ABSFILEPATH}/testfiles/${ProjectName}"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>set</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(INCLUDE_GUARD </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"${ProjectName}_UNITTESTCONFIG_H"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>string</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(</span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>TOUPPER</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> ${INCLUDE_GUARD} INCLUDE_GUARD)<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    </span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:white;mso-highlight:white'>configure_file</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>(</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"@HEADER_INPUT_FILENAME@"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'> </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white;mso-highlight:white'>"@HEADER_OUTPUT_FILENAME@"</span><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.5pt;font-family:Consolas;color:black'><o:p> </o:p></span></p><p class=MsoNormal>UnitTestConfig.h.in:<o:p></o:p></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>#ifndef @INCLUDE_GUARD@<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>#define @INCLUDE_GUARD@<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>namespace @NAMESPACE@ {<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    const char *const UnitTestName = "@UNITTESTNAME@";<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    const char *const RelativeTestFilesPath = "@RELATIVE_FILEPATH@";<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    const char *const AbsoluteTestFilesPath = "@ABSOLUTE_FILEPATH@";<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    const wchar_t *const UnitTestNameW= L"@UNITTESTNAME@";<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    const wchar_t *const RelativeTestFilesPathW = L"@RELATIVE_FILEPATH@";<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>    const wchar_t *const AbsoluteTestFilesPathW = L"@ABSOLUTE_FILEPATH@";<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>}<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:9.5pt;font-family:Consolas;color:black;background:white;mso-highlight:white'>#endif // @INCLUDE_GUARD@</span><span style='font-size:9.5pt;font-family:Consolas;color:black'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:9.5pt;font-family:Consolas;color:black'><o:p> </o:p></span></p><p class=MsoNormal>It would be great if generator expressions can be used with configure_file to avoid such overhead.<o:p></o:p></p><p class=MsoNormal>Does anyone have an idea on how to solve that?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Best Regards<o:p></o:p></p><p class=MsoNormal>Roman<o:p></o:p></p></div></body></html>