[CMake] Advice for CMake_import_build_settings

Brad King brad.king at kitware.com
Fri May 23 11:46:34 EDT 2008


Blezek, Daniel J., Ph.D. wrote:
>   I'd like to build and install Insight (though the toolkit is not 
> important) using GCC.  Then I want to build applications using GCC, the 
> Intel compiler, and IBM's XLC compiler.  All should be able to use the 
> GCC-build libraries.  However, CMAKE prohibits this with the 
> CMake_import_build_settings command, which forces the project to change 
> it's compiler, and consequently wreaking havok on my CMakeCache.  This 
> is really frustrating.  I have to build and install 3 versions of 
> Insight, when only one is really needed.
> 
>   My question: Is this behavior strictly necessary?  I can see it may 
> have utility on Windows, but makes less sense in Linux, especially in 
> our case.  Is it possible to augment or override this command, or do I 
> pick it out of our installed libraries?

It used to be necessary to keep inexperienced users from mixing ABIs. 
However, modern C++ compilers (within the last 5 years or so) have a more 
standard ABI so it's not a problem.  In CMake 2.6 you can override the 
behavior by using

   set(CMAKE_OVERRIDE_COMPILER_MISMATCH 1)

before including ITK.  Alternatively for any CMake version you can write

   find_package(ITK REQUIRED)
   set(ITK_BUILD_SETTINGS_FILE)
   include(${ITK_USE_FILE})

The middle line tells the UseITK.cmake file to skip the build settings step.

In the future I plan to get rid of this stuff from ITK and VTK in favor of 
something more reliable.

-Brad


More information about the CMake mailing list