[CMake] multiple executables

PCJohn peciva at fit.vutbr.cz
Mon Jun 2 17:20:02 EDT 2008


Thanks. VERBATIM was the problem. After, removing it, the code works 
perfectly. Thanks!

Anyway, I am a little bit puzzled with documentation, as it states:

 > In the future VERBATIM may be enabled by default. The only reason
 > it is an option is to preserve compatibility with older CMake code.

I hope, my code will still work in future releases :-) .
So, finally, solved, and it works now! Thanks.
John


David Cole wrote:
> Your initial attempt looks reasonable... Did you try it without the 
> "VERBATIM" argument to the ADD_CUSTOM_COMMAND?
> 
> This sort of copy command should work if invoked from Visual Studio, 
> even with the $(OutDir) reference...
> 
> 
> HTH,
> David
> 
> 
> On Sun, Jun 1, 2008 at 10:29 AM, Pečiva Jan <peciva at fit.vutbr.cz 
> <mailto:peciva at fit.vutbr.cz>> wrote:
> 
>     Dears cmakers,
> 
>     I am about to finish my "dual gui/console" behaviour for
>     InventorTools utilities. Compilation of whole set of executables is
>     perfectly handled by cmake, but final "installation" procedure does
>     not work.
> 
>     Can cmake handle this situation?:
> 
>     1. cmake builds all the executables of the projects
>       "Dual" behaviour requires .com suffix, so all *.com are placed in
>       the build directories. On MSVC, it is usually at
>       build/(project_name)/(debug|release)/*.com
>       This works perfectly.
> 
>     2. The last project makes one .exe for "dual" behaviour. It is called
>       autoconsole.exe. Before using cmake, I copied autoconsole.exe to
>     all other
>       build directories to reside together with their .com and renamed
>     them to
>       the same name as .com except with .exe suffix. This worked
>     perfectly using
>       post-build script, but how to make it with cmake?
> 
>     I unsuccessfully tried two options:
> 
>     - to make post-build step by
> 
>     add_custom_command (TARGET autoconsole
>         POST_BUILD
>         COMMAND ${CMAKE_COMMAND} -E copy
>         ${PROJECT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/autoconsole.exe
>         ${ivview_BINARY_DIR}/${CMAKE_CFG_INTDIR}/ivview.exe
>         COMMENT "Copying executables..." VERBATIM)
> 
>     This does not work because ${CMAKE_CFG_INITDIR} is set to $(IntDir)
>     on Visual Studio. So, the copy command fails because it expect
>     regular path. (And $(IntDir) differs among different debug/release
>     configurations).
> 
>     - to make it part of install process by
> 
>     install (TARGETS autoconsole
>             RUNTIME
>             DESTINATION bin
>             RENAME ivview.exe)
> 
>     It copies the file, but RENAME does not work (It probably works only
>     for PROGRAMS and FILES signatures). I was planning to use this
>     command about ten times to get all the required .exe.
> 
> 
>     Please, is there any way how to proceed, to get all of about ten .exe
>     executables to their places, either with their .com counterparts
>     (preferred), or to final install destination?
> 
>     Thanks,
>     John
> 
>     _______________________________________________
>     CMake mailing list
>     CMake at cmake.org <mailto:CMake at cmake.org>
>     http://www.cmake.org/mailman/listinfo/cmake
> 
> 


More information about the CMake mailing list