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
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to