[CMake] Fwd: Adding custom directories to PATH enviroment

Gabriele Greco gabriele.greco at darts.it
Wed Apr 13 07:04:38 EDT 2011


> And then configure and run it like this:
>
> CMakeLists.txt:
> ---------------
> # ...
> configure_file(foo_wrapper.cmake.in
>    "${CMAKE_CURRENT_BINARY_DIR}/foo_wrapper.cmake" @ONLY)
> add_custom_command(OUTPUT bar
>  COMMAND "${CMAKE_COMMAND}" -P
>    "${CMAKE_CURRENT_BINARY_DIR}/foo_wrapper.cmake"
>  COMMENT "Creating bar")
>
>
> If you need to pass the script variables using the -D flags, make sure
> to pass them before the -P flag, otherwise they are silently ignored.
>
> I hope you get the idea.
>
>

I fear I've not explained enough the problem.

If I understood correctly your solution when in my CMakeLists.txt I execute
the custom command "bar" what I obtain is that "foo" is called.

In my project I have some "IDL" files written in a custom format, those
files require a preprocessing pass to be transformed in .h/.cpp, that I
perform using add_custom_command() inside a macro

ADD_CUSTOM_COMMAND(
     OUTPUT ${PROJECT_SOURCE_DIR}/inc/intf/${_out_FILE}.h
     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_in_FILE}
     COMMAND idlcc
     ARGS -V -S -s ${PROJECT_SOURCE_DIR}/inc/intf
-I${PROJECT_SOURCE_DIR}/inc/intf -I${PROJECT_SOURCE_DIR}/inc
 ${CMAKE_CURRENT_SOURCE_DIR}/${_in_FILE}
 )

The command *idlcc* is bundled within the repository and is in the directory
$PROJECT_SOURCE_DIR/ext_bin/DFC, I can call it directly with a path,
changing

COMMAND idlcc

to

COMMAND ${PROJECT_SOURCE_DIR}/ext_bin/DFC/idlcc

...but the problem is that idlcc calls its "second step", *dfc_idl*, that is
in the same directory, and pretend it to be in the command search path.

the previous makefile used to do:

export PATH=$PROJECT_DIR/ext/bin/DFC:$PATH

The exported path is used by idlcc that is launched from the Makefile and
that can find dfc_idl without problems.

I need to mimic this behaviour in CMake.

It seems a very simple task, I can see similar problems with LD_LIBRARY_PATH
in other projects, it's strange CMake cannot do this in an easy way, that's
why I think I'm missing something.

ATM my solution is to manually do

export PATH=basedir/ext_bin/DFC/idlcc:$PATH
*
*
*BEFORE* building.

-- 
Bye,
 Gabry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20110413/53a1ee8e/attachment-0001.htm>


More information about the CMake mailing list