[LLVMdev] compiler-rt CMake build

Brad King brad.king at kitware.com
Wed Feb 26 09:58:16 PST 2014


On 02/26/2014 12:43 PM, Alexey Samsonov wrote:
> Do you think it makes sense to land my ExternalProject_Add patch
> so that others can experiment with it? I can add quit with a
> fatal_error/warning if the build tree rules are generated with Ninja.

Since it is conditional on LLVM_BUILD_EXTERNAL_COMPILER_RT, yes.

> parallelism doesn't work when I run "make check-compiler-rt -j8"
> in the original build tree, presumably because we call
> "cd /path/to/compiler-rt/build/tree && make check-all" there.

Right.  The ExternalProject module has a special case for the
Makefile generators to make with $(MAKE) instead of "make":

 http://cmake.org/gitweb?p=cmake.git;a=blob;f=Modules/ExternalProject.cmake;hb=v2.8.12.2#l846

so that flags like -j propagate automatically.  You could do
that too:

  if(CMAKE_GENERATOR MATCHES "Make")
    set(check_compiler_rt "$(MAKE)" "check-all")
  else()
    set(check_compiler_rt ${CMAKE_COMMAND} --build .
      --target check-all --config $<CONFIGURATION>)
  endif()

  ExternalProject_Get_Property(compiler-rt BINARY_DIR)
  add_custom_target(check-compiler-rt
    COMMAND ${check_compiler_rt}
    DEPENDS compiler-rt
    WORKING_DIRECTORY ${BINARY_DIR}
    VERBATIM
    )

-Brad




More information about the llvm-dev mailing list