You could look at my CreateLaunchers.cmake script, in http://github.com/rpavlik/wiimote-head-tracker-gui/tree/master/cmake/ - I use this so that I can click the "run" button in Visual Studio, it produces the files needed to set that up properly. (The only caveat is that you can't have visual studio running when you run a cmake that would create or update the launcher, because Visual Studio overwrites the file we generate when it exits, and it doesn't re-load the file during runtime.)

Ryan

On 10/11/2010 10:39 AM, Michael Hertling wrote:
On 10/11/2010 11:20 AM, Jochen Wilhelmy wrote:
Hi!

Is it possible to define the current working directory of a command line
tool
that is built with cmake? since the build is usually out-of-source I have
to set the current working directory in the ide, e.g visual studio or
xcode. more convenient would be to set it in cmake.



Do you mean in add_custom_command()/add_custom_target() ?
Both have an optional WORKING_DIRECTORY argument.



no, i mean add_executable. when I build and start the directory I'd like to set 
the
working directory that the executable is started in.

-Jochen


I think that you have a misconception with respect to the concept of "working 
directory".

In a Unix-style environment, the "working directory" is determined by the "shell" command 
line interpreter. The actual value is determined only at execution-time. It is not something 
"built-in" to the executable.


No, I mean this very unix-style working directory. Of course this is only a 
debug setting, i.e. it does not influence the
build result. But if I write a command line tool, e.g. a copy, then I have some 
test files to copy and need some arguments
for the copy tool to tell it which files to copy. Therefore it is possible to 
set the working directory and command line
arguments in an ide (visual studio or xcode). For xcode there is even the 
effect that after cmake runs the current
setting is lost which is not the case for visual studio since these settings 
are stored in a separate file.

-Jochen

Are you trying to run the executable with ADD_TEST? In that case the working 
directory is always CMAKE_CURRENT_BINARY_DIR. If you need to change it, create 
a wrapper script (you can do so using the CMake language in order to not depend 
on any other interpreter).

no, just add_executable and then starting the target in debug mode
inside the ide. but maybe add_test is the solution to my
problem, i have to look at it. is this for starting an executable with
some command line arguments?
You might consider to use ADD_CUSTOM_COMMAND(TARGET ...), e.g.:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
PROJECT(CWD C)
FILE(WRITE ${CMAKE_BINARY_DIR}/main.c "
#include<unistd.h>
#include<stdio.h>
int main(void)
{
     char cwd[1000];
     getcwd(cwd,sizeof cwd);
     printf(\"CWD: %s\\n\",cwd);
     return 0;
}
")
ADD_EXECUTABLE(main main.c)
ADD_CUSTOM_COMMAND(TARGET main
     POST_BUILD
     COMMAND main
     WORKING_DIRECTORY /var/tmp)

This runs the executable "main" each time after it has been (re)built
from within the working directory "/var/tmp" - adapt for non-*nices.

Regards,

Michael
_______________________________________________
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


--
Ryan Pavlik
HCI Graduate Student
Virtual Reality Applications Center
Iowa State University

rpav...@iastate.edu
http://academic.cleardefinition.com
Internal VRAC/HCI Site: http://tinyurl.com/rpavlik

_______________________________________________
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