Στις 26/6/2012 18:22, ο/η Georgios Petasis έγραψε:
Στις 26/6/2012 17:56, ο/η Georgios Petasis έγραψε:
Hi all,

I am trying to cross-compile an application for windows, in a Fedora 17 box.
I have successfully cross-compiled/installed Tcl/Tk from sources.
And I want to also cross-compile my application, which uses cmake.

Is there a way to convince cmake to use the platform tclsh (in order to run some scripts), but find the includes & libraries that I have cross-compiled for the platform?

Running cmake from the Fedora wrapper "mingw32-cmake" does not work. I also tried to set the following variables:

CMAKE_PREFIX_PATH=/opt/ActiveTcl-8.6
CMAKE_INCLUDE_PATH=/free/cross-compilation-binaries/win32-ix86/tcl/include
CMAKE_LIBRARY_PATH=/free/cross-compilation-binaries/win32-ix86/tcl/lib
CMAKE_PROGRAM_PATH=/opt/ActiveTcl-8.6/bin

But I always get the following:

-- Found Tclsh: /opt/ActiveTcl-8.6/bin/tclsh (found version "8.6")
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:97 (MESSAGE):
  Could NOT find TCL (missing: TCL_LIBRARY TCL_INCLUDE_PATH)
Call Stack (most recent call first):
/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:288 (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake/Modules/FindTCL.cmake:206 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:122 (FIND_PACKAGE)


Any ideas?

George

I have managed to proceed a little bit further, with the following commands:

echo "CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH"
echo "CMAKE_INCLUDE_PATH=$CMAKE_INCLUDE_PATH"
echo "CMAKE_LIBRARY_PATH=$CMAKE_LIBRARY_PATH"
echo "CMAKE_PROGRAM_PATH=$CMAKE_PROGRAM_PATH"
mingw32-cmake -D CMAKE_BUILD_TYPE=$BUILD_TYPE \
              -D PKG_OS_ARCH=$ARCH -D CMAKE_INSTALL_PREFIX=$PREFIX \
              -D TCL_INCLUDE_PATH=$CMAKE_INCLUDE_PATH \
              -D TK_INCLUDE_PATH=$CMAKE_INCLUDE_PATH \
              -D TCL_LIBRARY=$CMAKE_LIBRARY_PATH \
              -D TK_LIBRARY=$CMAKE_LIBRARY_PATH ...

Which gave as output:

CMAKE_PREFIX_PATH=/free/cross-compilation-binaries/win32-ix86/tcl/
CMAKE_INCLUDE_PATH=/free/cross-compilation-binaries/win32-ix86/tcl/include
CMAKE_LIBRARY_PATH=/free/cross-compilation-binaries/win32-ix86/tcl/lib
CMAKE_PROGRAM_PATH=/opt/ActiveTcl-8.6/bin
...
CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files:
TCL_STUB_LIBRARY (ADVANCED)


How to help cmake to define the stubs library path?
Looking inside the /free/cross-compilation-binaries/win32-ix86/tcl/lib folder, the stubs library is named "libtclstub86.a"

George

Finally, defining all the variables myself, seems to solve the problem:

mingw32-cmake -D CMAKE_BUILD_TYPE=$BUILD_TYPE \
              -D PKG_OS_ARCH=$ARCH -D CMAKE_INSTALL_PREFIX=$PREFIX \
              -D TCL_INCLUDE_PATH=$TCL_INCLUDE_PATH \
              -D TK_INCLUDE_PATH=$TCL_INCLUDE_PATH \
              -D TCL_LIBRARY=$TCL_LIB_PATH/libtcl${TCL_VERSION}.a \
              -D TK_LIBRARY=$TCL_LIB_PATH/libtk${TCL_VERSION}.a \
-D TCL_STUB_LIBRARY=$TCL_LIB_PATH/libtclstub${TCL_VERSION}.a \ -D TK_STUB_LIBRARY=$TCL_LIB_PATH/libtkstub${TCL_VERSION}.a ...

Now I have only to check what the output of the compiler is... :-)

George
--

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