Στις 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