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@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to