[llvm-dev] FYI: Ninja-build user may use CMake-3.9

Tobias Grosser via llvm-dev llvm-dev at lists.llvm.org
Thu Jul 20 12:10:37 PDT 2017


Very cool. Thanks Nakamura!

Best,
Tobias

On Thu, Jul 20, 2017, at 05:31 PM, NAKAMURA Takumi via llvm-dev wrote:
> This is useful for developer who uses multicore builder.
> https://cmake.org/cmake/help/v3.9/release/3.9.html#other-changes
> 
> 
>    - The Ninja
>    <https://cmake.org/cmake/help/v3.9/generator/Ninja.html#generator:Ninja>
> generator
>    has loosened the dependencies of object compilation. Object
>    compilation now
>    depends only on custom targets and custom commands associated with
>    libraries on which the object’s target depends and no longer depends
>    on the
>    libraries themselves. Source files in dependent targets may now
>    compile
>    without waiting for their targets’ dependencies to link.
> 
> With BUILD_SHARED_LIBS, compiling units don't wait for preceding shared
> libs.
> See also; http://bb.pgr.jp/builders/i686-mingw32-RA-on-linux
> Regardless of BUILD_SHARED_LIBS, compile units in add_executable() don't
> wait for preceding libraries,
> but targets by add_dependencies().
> 
> It doesn't break anything in llvm tree. Assume;
>   add_executable(foo foo.cpp)
>   target_link_libraries(foo LLVMCore) # depends on intrinsics_gen
> Compiling foo.cpp doesn't wait for LLVMCore, but intrinsics_gen.
> Linking foo waits for LLVMCore.
> 
> I have been working for cutting dependencies to increase parallelism.
> For example, I introduced ENABLE_OBJLIB.
> See also, https://reviews.llvm.org/rL305635
> Ninja with CMake-3.9 doesn't require parallelize with objlib.
> 
> I love ninja-build.
> 
> Thanks,
> Takumi
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list