On 1/4/2012 4:03 PM, Michael Jackson wrote:
I robbed this from the HDF5 project which does something very similar to what I 
am doing:

SET (CMD ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}${CFG_INIT}/H5detect${EXE_EXT})

That "seems" to at least point to the proper location. Now to get Visual Studio 
to actually execute the executable.
That is pretty old stuff...

There are better ways to do that in CMake now:

cmake --help-command add_custom_command
....

       Arguments to COMMAND may use "generator expressions" with the syntax
       "$<...>".  Generator expressions are evaluted during build system
       generation to produce information specific to each build
       configuration.  Valid expressions are:

         $<CONFIGURATION>          = configuration name
         $<TARGET_FILE:tgt>        = main file (.exe, .so.1.2, .a)
         $<TARGET_LINKER_FILE:tgt> = file used to link (.a, .lib, .so)
         $<TARGET_SONAME_FILE:tgt> = file with soname (.so.3)

This should work:
  COMMAND $<TARGET_FILE:FilterWidgetCodeGen>

-Bill



--
Mike Jackson<www.bluequartz.net>

On Jan 4, 2012, at 3:54 PM, clin...@elemtech.com wrote:

Have you tried excluding the ".exe" thing?  I thought cmake did the right thing 
for targets used in custom commands.

Clint

----- Reply message -----
From: "Michael Jackson"<mike.jack...@bluequartz.net>
Date: Wed, Jan 4, 2012 1:28 pm
Subject: [CMake] Add Custom COmmand and CMAKE_CFG_INTDIR
To: "cmake@cmake.org List"<cmake@cmake.org>

I am having trouble getting add_custom_Command and CMAKE_CFG_INTDIR to work 
correctly together. This is what I have so far.

# ---------- Setup output Directories -------------------------
SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY
  ${PROJECT_BINARY_DIR}/Bin
  CACHE PATH
  "Single Directory for all Libraries"
  )

# Create our custom executable that will generate most of our QFilterWidget
# classes from information stored in the Filters themselves.
configure_file( ${FilterWidgets_SOURCE_DIR}/CodeGen.cpp.in
                ${FilterWidgets_BINARY_DIR}/FilterWidgetCodeGen.cpp)
add_executable(FilterWidgetCodeGen 
${FilterWidgets_BINARY_DIR}/FilterWidgetCodeGen.cpp)
target_link_libraries(FilterWidgetCodeGen MXA EbsdLib DREAM3DLib)
set(EXE_EXTENSION "")
if (WIN32)
  set (EXE_EXTENSION ".exe")
endif()
# Now run the code to generate the header files which will over write the place
# holder files that were generated from above
add_custom_command(TARGET FilterWidgetCodeGen POST_BUILD
            COMMAND FilterWidgetCodeGen${EXE_EXTENSION}
            WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})


I know this is going to fail on visual studio, which it did. The issue is, what 
combination of CMAKE_CFG_INTDIR and anything else do I use to get this to work?

Thanks
___________________________________________________________
Mike Jackson                    Principal Software Engineer
BlueQuartz Software                            Dayton, Ohio
mike.jack...@bluequartz.net              www.bluequartz.net

--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake



--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake



--
Bill Hoffman
Kitware, Inc.
28 Corporate Drive
Clifton Park, NY 12065
bill.hoff...@kitware.com
http://www.kitware.com
518 881-4905 (Direct)
518 371-3971 x105
Fax (518) 371-4573
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to