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