Thanks! The definitely fixed the issue for ALL the platforms. I guess I just 
have not been keeping up with all the additions to CMake. At what version was 
this syntax introduced?
--
Mike Jackson <www.bluequartz.net>

On Jan 4, 2012, at 4:11 PM, Bill Hoffman wrote:

> 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

Reply via email to