View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0013038 | CMake | CMake | public | 2012-03-12 13:04 | 2012-09-03 16:00 | ||||
Reporter | Marcin Wojdyr | ||||||||
Assigned To | Brad King | ||||||||
Priority | normal | Severity | major | Reproducibility | always | ||||
Status | closed | Resolution | no change required | ||||||
Platform | OS | Linux | OS Version | ||||||
Product Version | CMake 2.8.7 | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0013038: cannot set CMAKE_AR when cross-compiling Fortran-only project | ||||||||
Description | I'm trying to cross-compile LAPACK 3.4.0 on Fedora using MinGW cross-compiler. Binutils paths are not set correctly. The CMAKE_AR in cache file is set to /usr/bin/ar, even if I explicitly set in toolchain file SET(CMAKE_AR:FILEPATH /usr/bin/i686-pc-mingw32-ar) or SET(CMAKE_AR /usr/bin/i686-pc-mingw32-ar) The only way to have the paths set correctly is to do: SET(_CMAKE_TOOLCHAIN_PREFIX i686-pc-mingw32-) but this is cmake internal variable. I don't know cmake well, so I may be wrong, but I'd suppose there are two issues here. 1. _CMAKE_TOOLCHAIN_PREFIX is set in CMakeDetermineCCompiler and CMakeDetermineCXXCompiler.cmake, but not in CMakeDetermineFortranCompiler. Most of Fortran projects use also C, so it is set anyway, but LAPACK has only Fortran. 2. CMAKE_AR and CMAKE_RANLIB set explicitly are not respected. Last note: it used to work, I cross-compiled this or previous lapack version with cmake 2.8.5 or 6. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
Relationships | |
Relationships |
Notes | |
(0028897) Brad King (manager) 2012-03-12 15:24 |
In the toolchain file try set(CMAKE_AR /usr/bin/i686-pc-mingw32-ar CACHE FILEPATH "Archiver") and then test with a fresh build tree. |
(0028898) Marcin Wojdyr (reporter) 2012-03-12 16:15 |
It works. Could you explain why? |
(0028899) Brad King (manager) 2012-03-12 16:20 |
CMAKE_AR caches the result for "find_program": http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:find_program [^] "A cache entry named by <VAR> is created to store the result of this command." Read the documentation of the "set" command: http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:set [^] "If CACHE is present, then the <variable> is put in the cache." to see how to set cache values. Please visit the mailing list: http://www.cmake.org/mailman/listinfo/cmake [^] for further help. |
(0030835) David Cole (manager) 2012-09-03 16:00 |
Closing resolved issues that have not been updated in more than 4 months. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2012-03-12 13:04 | Marcin Wojdyr | New Issue | |
2012-03-12 15:24 | Brad King | Note Added: 0028897 | |
2012-03-12 16:15 | Marcin Wojdyr | Note Added: 0028898 | |
2012-03-12 16:20 | Brad King | Note Added: 0028899 | |
2012-03-12 16:20 | Brad King | Status | new => resolved |
2012-03-12 16:20 | Brad King | Resolution | open => no change required |
2012-03-12 16:20 | Brad King | Assigned To | => Brad King |
2012-09-03 16:00 | David Cole | Note Added: 0030835 | |
2012-09-03 16:00 | David Cole | Status | resolved => closed |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |