<div dir="ltr">Consider the following CMakeLists.txt file (on a Mac, 10.9.1, Xcode 5, Unix Makefiles generator):<div><br></div><div><div>cmake_minimum_required(VERSION 2.8.12)</div><div><br></div><div>project(CustomCommandTest)</div>
<div><br></div><div>add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/test.cpp</div><div><span class="" style="white-space:pre"> </span>COMMAND echo "#include <iostream>" > ${CMAKE_CURRENT_BINARY_DIR}/test.cpp</div>
<div><span class="" style="white-space:pre"> </span>COMMAND echo "" >> ${CMAKE_CURRENT_BINARY_DIR}/test.cpp</div><div><span class="" style="white-space:pre"> </span>COMMAND echo "int main()" >> ${CMAKE_CURRENT_BINARY_DIR}/test.cpp</div>
<div><span class="" style="white-space:pre"> </span>COMMAND echo "{" >> ${CMAKE_CURRENT_BINARY_DIR}/test.cpp</div><div><span class="" style="white-space:pre"> </span>COMMAND echo "<span class="" style="white-space:pre"> </span>std::cout << \"Hello World\" << std::endl;" >> ${CMAKE_CURRENT_BINARY_DIR}/test.cpp</div>
<div><span class="" style="white-space:pre"> </span>COMMAND echo "<span class="" style="white-space:pre"> </span>return 0;" >> ${CMAKE_CURRENT_BINARY_DIR}/test.cpp</div><div><span class="" style="white-space:pre"> </span>COMMAND echo "}" >> ${CMAKE_CURRENT_BINARY_DIR}/test.cpp</div>
<div><span class="" style="white-space:pre"> </span>COMMAND echo "" >> ${CMAKE_CURRENT_BINARY_DIR}/test.cpp</div><div><span class="" style="white-space:pre"> </span>VERBATIM</div><div>)</div><div><br></div>
<div><br></div><div>add_executable(customcommandtest ${CMAKE_CURRENT_BINARY_DIR}/test.cpp)</div><div><br></div><div><br></div><div>add_custom_command(TARGET customcommandtest POST_BUILD</div><div><span class="" style="white-space:pre"> </span>COMMAND $<$<CONFIG:Release>:strip -u -r customcommandtest></div>
<div>)<br></div></div><div><br></div><div><br></div><div>The custom command for the POST_BUILD step should invoke strip to strip the binary of symbols.</div><div><br></div><div>Instead the following output is produced:</div>
<div><br></div><div><p style="margin:0px;font-size:16px;font-family:Monaco;color:rgb(195,55,32);background-color:rgb(0,0,0)">Linking CXX executable customcommandtest</p>
<p style="margin:0px;font-size:16px;font-family:Monaco;color:rgb(245,245,245);background-color:rgb(0,0,0)">/Users/stevew/cmake/install/bin/cmake -E cmake_link_script CMakeFiles/customcommandtest.dir/link.txt --verbose=1</p>
<p style="margin:0px;font-size:16px;font-family:Monaco;color:rgb(245,245,245);background-color:rgb(0,0,0)">/usr/bin/c++ -O3 -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/customcommandtest.dir/test.cpp.o -o customcommandtest </p>
<p style="margin:0px;font-size:16px;font-family:Monaco;color:rgb(245,245,245);background-color:rgb(0,0,0)">"\$<1:strip" -u -r customcommandtest></p><div><br></div><div>Note the “\$<1:strip” -u -r customcommandtest> output from the generator expression.</div>
</div><div><br></div><div>What do I need to change in the POST_BUILD custom command to make the generator expression work correctly?</div><div><br></div><div>Thanks,</div><div><br></div><div>Steve</div></div>