The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=12438 
====================================================================== 
Reported By:                chrislu
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   12438
Category:                   CMake
Reproducibility:            always
Severity:                   block
Priority:                   immediate
Status:                     new
====================================================================== 
Date Submitted:             2011-09-01 04:20 EDT
Last Modified:              2011-09-01 04:20 EDT
====================================================================== 
Summary:                    add_command _needs_ CONFIGURATION parameter for
multi-target environments
Description: 
Why do i need to jump too such hoops to do a simple thing as to add different
post build commands to release and debug builds... and then it does not even do
what i want.

This just wants to add dll files for release and debug builds to the respective
directories:


get_directory_property(link_dirs LINK_DIRECTORIES)
list(REMOVE_ITEM in_libraries debug optimized general)
list(REMOVE_ITEM link_dirs ${SCHISM_LIBRARY_DIR})
set(conf_list release debug)

foreach(conf ${conf_list})
        foreach(link_lib ${in_libraries})
                set(link_lib_dll ${link_lib}.dll)
                foreach(ldir ${link_dirs})
                        set(dll_path ${ldir}/${conf}/${link_lib_dll})
                        if (EXISTS ${dll_path})
                                # make if fail for the wrong configuration
                                string(REPLACE /${conf}/ "/$<CONFIGURATION>/" 
dll_path ${dll_path})
                                add_custom_command(TARGET ${PROJECT_NAME} 
POST_BUILD
                                                                   COMMAND if 
EXIST ${dll_path} ${CMAKE_COMMAND} -E echo "copying
${link_lib_dll} to ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIGURATION>/"
                                                                   COMMAND if 
EXIST ${dll_path} ${CMAKE_COMMAND} -E copy_if_different
${dll_path} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/$<CONFIGURATION>/)
                        endif (EXISTS ${dll_path})
                endforeach(ldir)
        endforeach(link_lib)
endforeach(conf)


====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2011-09-01 04:20 chrislu        New Issue                                    
======================================================================

_______________________________________________
cmake-developers mailing list
[email protected]
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to