Re: [CMake] installing python scripts

2012-07-31 Thread Kyle Husmann
 Call CONFIGURE_FILE() twice, once for the installation
 and once for the build-tree:

Thanks, Michael! That's what I was looking for!

Kyle
--

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


Re: [CMake] installing python scripts

2012-07-30 Thread Michael Wild
On 07/30/2012 02:15 AM, Kyle Husmann wrote:
 Hi all,
 
 In my project I have a python program (call it program.py) that
 references a python module also in my project (call it pymodule).
 program.py gets installed to ${CMAKE_INSTALL_PREFIX}/bin/program and
 pymodule gets installed to ${PYTHON_INSTALL_DIR}.
 
 To make sure the program.py program always finds pymodule, I treat it
 like a config script in cmake and then add the following to the top of
 program.py.in http://program.py.in:
 
 import sys
 sys.path.append(@PYTHON_INSTALL_DIR@)
 import pymodule
 
 This works great, but it means that I can only run program.py after
 running a make install, and running it from the installed location.
 
 My question is, is there are clever way of doing this so that I can run
 program.py from the build directory, without having to install it? (But
 have it still run properly when installed)
 
 Thanks,
 Kyle

Call CONFIGURE_FILE() twice, once for the installation and once for the
build-tree:

set(CONFIG_PY_DIR ${PROJECT_SOURCE_DIR})
configure_file(program.py.in ${PROJECT_BINARY_DIR}/program.py @ONLY)
set(CONFIG_PY_DIR ${PYTHON_INSTALL_DIR})
configure_file(program.py.in
  ${PROJECT_BINARY_DIR}/installFiles/program.py @ONLY)
install(PROGRAMS ${PROJECT_BINARY_DIR}/installFiles/program.py
  DESTINATION bin)


You'll need to replace PYTHON_INSTALL_DIR with CONFIG_PY_DIR in your
program.py.in file, of course. Also, I would replace the
sys.path.append(@CONFIG_PY_DIR@) call with sys.path.insert(0,
@CONFIG_PY_DIR@). There are pros and cons for each...

HTH

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


[CMake] installing python scripts

2012-07-29 Thread Kyle Husmann
Hi all,

In my project I have a python program (call it program.py) that references
a python module also in my project (call it pymodule). program.py gets
installed to ${CMAKE_INSTALL_PREFIX}/bin/program and pymodule gets
installed to ${PYTHON_INSTALL_DIR}.

To make sure the program.py program always finds pymodule, I treat it like
a config script in cmake and then add the following to the top of
program.py.in:

import sys
sys.path.append(@PYTHON_INSTALL_DIR@)
import pymodule

This works great, but it means that I can only run program.py after running
a make install, and running it from the installed location.

My question is, is there are clever way of doing this so that I can run
program.py from the build directory, without having to install it? (But
have it still run properly when installed)

Thanks,
Kyle
--

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