Chris Bieneman wrote:

> (resending now that I’ve subscribed to cmake-developers)
> 
> Hello CMake-Developers,
> 
> I’m a contributor to the LLVM project working on improving our CMake-based
> build process, and I had a request I wanted to discuss with your
> community.
> 
> This is related to a feature request I filed
> (http://public.kitware.com/Bug/view.php?id=15679
> <http://public.kitware.com/Bug/view.php?id=15679>), and one of the efforts
> I’ve been driving in the LLVM community
> (http://lists.llvm.org/pipermail/llvm-dev/2015-July/088751.html
> <http://lists.llvm.org/pipermail/llvm-dev/2015-July/088751.html>).
> 
> The complication for us is that because we’re building a compiler, and we
> can be targeting multiple operating systems and architectures within the
> same build, we want to be able to leverage CMake’s ability to detect the
> toolchain and target capabilities, which means invoking CMake multiple
> times.

What exactly do you mean by 'detect the toolchain and target capabilities'? 
What are the needs? Detecting things by running the compiler, or making use 
of the knowledge that is hardcoded into CMake Modules files?

> One of our common uses is building clang. When we build clang it is built
> with the ability to target a set of architectures. We then need to use the
> just-built clang to build the runtime libraries for each of the supported
> targets (which may not match the host operating system or architecture).

You might investigate doing something like

 # Don't let CMake use the c++ compiler for .cpp files in this directory
 unset(CMAKE_CXX_SOURCE_FILE_EXTENSIONS)

 set(CMAKE_CompilerRT_COMPILER $<TARGET_FILE:JustBuiltClang>)
 # Use the just built clang to build C++ files:
 set(CMAKE_CompilerRT_SOURCE_FILE_EXTENSIONS cpp)
 enable_language(CompilerRT)

 # Language is CompilerRT, not CXX, so JustBuiltClang is used
 add_library(compiler-rt compiler-rt.cpp)

and some other hacks maybe. Note that the above won't work currently because 
CMAKE_FOO_COMPILER does not support generator expressions. I also haven't 
tried it.

Thanks,

Steve.



-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to