[sword-devel] cmake python bindings user location

Ben cricketc at gmail.com
Thu Jun 20 06:04:41 MST 2013


On 06/19/2013 08:35 PM, Greg Hellings wrote:
>
>
>
> On Wed, Jun 19, 2013 at 7:18 PM, Ben <cricketc at gmail.com
> <mailto:cricketc at gmail.com>> wrote:
>
>     On 06/19/2013 10:00 AM, Greg Hellings wrote:
>
>
>
>
>         On Mon, Jun 17, 2013 at 6:14 AM, Ben <cricketc at gmail.com
>         <mailto:cricketc at gmail.com>
>         <mailto:cricketc at gmail.com <mailto:cricketc at gmail.com>>> wrote:
>
>              On 06/16/2013 11:55 PM, Greg Hellings wrote:
>
>
>
>
>                  On Sun, Jun 16, 2013 at 9:22 PM, <cricketc at gmail.com
>         <mailto:cricketc at gmail.com>
>                  <mailto:cricketc at gmail.com <mailto:cricketc at gmail.com>>
>                  <mailto:cricketc at gmail.com <mailto:cricketc at gmail.com>
>         <mailto:cricketc at gmail.com <mailto:cricketc at gmail.com>>>> wrote:
>
>                       Hey Greg,
>
>                       I'm building the python bindings with cmake 2.6.4. I'm
>                  trying to
>                       specify a user location, but it doesn't work with
>         current svn -
>                       SWORD_PYTHON_INSTALL_DIR is always just "OFF",
>         even if I pass a
>                       value through the cmake command. If I pass "1" as the
>                  value, then
>                       SWORD_PYTHON_INSTALL_DIR gets set, but it's
>         obviously not
>                  what I'm
>                       looking for.
>
>                       If I comment out the OPTION setting in
>         cmake/options.cmake,
>                  it seems
>                       to work properly for me.
>
>
>                  What exact command line are you invoking CMake with?
>         And are you
>                  doing
>                  it from a clean configuration directory (e.g. new dir
>         or "rm -rf
>                  * .*"
>                  beforehand)? CMake is very unfriendly towards attempts to
>                  reconfigure a
>                  directory.
>
>
>
>              cmake -DCMAKE_INSTALL_PREFIX="~/____sword-cmake-build/install"
>              -DLIBSWORD_LIBRARY_TYPE="____Shared" -DSWORD_BUILD_TESTS=Yes
>              -DSWORD_BINDINGS=Python
>              -DSWORD_PYTHON_INSTALL_DIR=~/____sword-cmake-build/install
>
>              -DSWORD_BUILD_EXAMPLES=Yes /path/to/svn/sword
>
>              Yes, it's a clean directory.
>
>              I output the value of SWORD_PYTHON_INSTALL_DIR, and it says the
>              value is "OFF". Again, if I remove the OPTION command in
>              options.cmake, then it takes the value that I pass in from the
>              command line.
>
>
>              -Ben
>
>
>         I was misusing the CMake OPTION command. Turns out it only works for
>         ON/OFF values and cannot handle arbitrary strings. I have
>         updated the
>         handling to hopefully work as intended. Can you give it a whirl
>         and let
>         me know if it is now working better for you?
>
>
>     That part looks OK to me now, but I get a different error:
>
>     -- Installing:
>     /home/me/sword-cmake-build/__install/lib/sword/1.6.2_icu_/__translit_Latin_Ugaritic.res
>     -- Installing:
>     /home/me/sword-cmake-build/__install/lib/sword/1.6.2_icu_/__translit_swordindex.res
>     running install
>     running build
>     running build_py
>     running build_ext
>     running install_lib
>     creating /home/me/sword-cmake-build/__install/lib64
>     creating /home/me/sword-cmake-build/__install/lib64/python
>     copying build/lib.linux-x86_64-2.6/___Sword.so ->
>     /home/me/sword-cmake-build/__install/lib64/python
>     copying build/lib.linux-x86_64-2.6/__Sword.py ->
>     /home/me/sword-cmake-build/__install/lib64/python
>     byte-compiling
>     /home/me/sword-cmake-build/__install/lib64/python/Sword.py to Sword.pyc
>     running install_egg_info
>     Writing
>     /home/me/sword-cmake-build/__install/lib64/python/sword-1.__6.2-py2.6.egg-info
>     -- Installing: /usr/local/bin/addld
>     CMake Error at utilities/cmake_install.cmake:__41 (FILE):
>        file INSTALL cannot copy file
>     "/home/me/sword-cmake-build/__utilities/addld"
>        to "/usr/local/bin/addld".
>     Call Stack (most recent call first):
>        cmake_install.cmake:275 (INCLUDE)
>
>     I think maybe ${SWORD_INSTALL_DIR} should be changed to ${PREFIX} in
>     utilities/CMakeLists.txt?
>
>
> Good catch - looks like I accidentally grep'd for the wrong string when
> I was making sure I had gotten them all. I have added the additional
> option of BINDIR that captures the appropriate value. You can try again
> now, if you'd like.

Looks good.

>
>     Also, I'm not sure it's causing anything to fail, but the name of
>     the icu directory seems to be missing something (1.6.2_icu_).
>
>
> Hmm, maybe. I'm very un-knowledgeable on what the ICU stuff all is
> supposed to be. That could explain the missing data warnings I see when
> I run the modules frequently. I'll look into that.

OK. I tried running make tests, but the osistest doesn't seem to be 
included. It'd be nice to get the test suite passing.

As a start for fixing osistest, I added osistest to the list of test 
programs in tests/CMakeLists.txt, and the following command to 
tests/testsuite/CMakeLists.txt:
COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/*.xml ${CMAKE_CURRENT_BINARY_DIR}

osistest still fails for me, but I'm not sure it's related to cmake at 
all. May not be worth holding up the release if the tests pass for others.

-Ben



More information about the sword-devel mailing list