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