On Monday 01 March 2010, Oleg Kravchenko wrote:
> неділя 28 лютий 2010 17:24:48 Alexander Neundorf ви написали:
> > On Saturday 27 February 2010, Oleg Kravchenko wrote:
> > > Hello i am try build tinyxml library by mingw32 on gentoo linux with
> > > cmake: =dev-util/cmake-2.6.4-r3
> > > =dev-util/cmake-2.8.0-r2
> > >
> > > But have this errors:
> > > $ cmake -DCMAKE_TOOLCHAIN_FILE=~/i686-pc-mingw32.cmake -
> > > DDOKAN_INCLUDE_DIR=~/projects/dokan/ -DCMAKE_BUILD_TYPE=Debug .
> > > -- The C compiler identification is GNU
> > > -- The CXX compiler identification is GNU
> > > -- Check for working C compiler: /usr/bin/i686-pc-mingw32-gcc
> > > -- Check for working C compiler: /usr/bin/i686-pc-mingw32-gcc -- works
> > > -- Detecting C compiler ABI info
> > > -- Detecting C compiler ABI info - done
> > > -- Check for working CXX compiler: /usr/bin/i686-pc-mingw32-g++
> > > -- Check for working CXX compiler: /usr/bin/i686-pc-mingw32-g++ --
> > > works -- Detecting CXX compiler ABI info
> > > -- Detecting CXX compiler ABI info - done
> > > -- Configuring done
> > > -- Generating done
> > > -- Build files have been written to: /home/kaa/projects/tinyxml
> > > $ make
> > > [ 12%] Building CXX object
> > > tinyxml_build/CMakeFiles/tinyxml.dir/tinystr.cpp.obj
> > > [ 25%] Building CXX object
> > > tinyxml_build/CMakeFiles/tinyxml.dir/tinyxml.cpp.obj
> > > [ 37%] Building CXX object
> > > tinyxml_build/CMakeFiles/tinyxml.dir/tinyxmlerror.cpp.obj
> > > [ 50%] Building CXX object
> > > tinyxml_build/CMakeFiles/tinyxml.dir/tinyxmlparser.cpp.obj
> > > Linking CXX static library
> > > /home/kaa/projects/sqlfs/target/Debug/libtinyxml.a Error running link
> > > command: No such file or directory
> > > make[2]: *** [/home/kaa/projects/win32/target/Debug/libtinyxml.a] Error
> > > 2 make[1]: *** [tinyxml_build/CMakeFiles/tinyxml.dir/all] Error 2 make:
> > > *** [all] Error 2
> > >
> > > I "fix" problem by patching CMakeFindBinUtils.cmake
> > >
> > > Please fix and release 2.6.x and 2.8.x version
> >
> > Strange.
> > Please apply the attached patch to CMakeDetermineCCompiler.cmake and run
> >  cmake again on a fresh build dir, and post the output.
> >
> > Alex
>
> Hello! In attachment output log.

Thanks.
Attached is another small patch for CMakeFindBinutils.cmake. Please apply and 
post again the output.
I think what happens is the following:
cmake determines the toolchain prefix and the location correctly  
("i686-pc-mingw32-" and "/usr/bin" respectively).
Then it goes into CMakeFindBinutils.cmake to search for ar. But since you have 
already set this in your toolchain file, the find_program() call doesn't 
search for it (since it is already set).
Since it doesn't search for it, the CMAKE_AR variable doesn't get stored in 
the cache, so it is empty later on.

Let's see if we can verify this with the attached patch.

Alex
diff --git a/Modules/CMakeFindBinUtils.cmake b/Modules/CMakeFindBinUtils.cmake
index d27c978..0343431 100644
--- a/Modules/CMakeFindBinUtils.cmake
+++ b/Modules/CMakeFindBinUtils.cmake
@@ -29,6 +29,8 @@
 # (To distributed this file outside of CMake, substitute the full
 #  License text for the above reference.)
 
+message(STATUS "FindBinUtils ar: -${CMAKE_AR}- toolchain prefix: -${_CMAKE_TOOLCHAIN_PREFIX}-")
+
 # if it's the MS C/CXX compiler, search for link
 IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC" 
    OR "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC"
@@ -43,7 +45,11 @@ ELSE("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC"
    OR "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC"
    OR "${CMAKE_GENERATOR}" MATCHES "Visual Studio")
 
+  message(STATUS "Searching for the tools...")
+
   FIND_PROGRAM(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ar HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
+  
+  message(STATUS "Found ar: -${CMAKE_AR}-")
 
   FIND_PROGRAM(CMAKE_RANLIB NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ranlib HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
   IF(NOT CMAKE_RANLIB)
_______________________________________________
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