[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