r253721 - [CMake] Add support for specifying arguments to the bootstrap build.

Chris Bieneman via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 23 15:24:05 PST 2015


Good to know my spelling is at least consistently wrong :-).

I’ll fix this shortly.

-Chris

> On Nov 20, 2015, at 8:12 PM, Sean Silva <chisophugis at gmail.com> wrote:
> 
> 
> 
> On Fri, Nov 20, 2015 at 2:09 PM, Chris Bieneman via cfe-commits <cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>> wrote:
> Author: cbieneman
> Date: Fri Nov 20 16:09:06 2015
> New Revision: 253721
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=253721&view=rev <http://llvm.org/viewvc/llvm-project?rev=253721&view=rev>
> Log:
> [CMake] Add support for specifying arguments to the bootstrap build.
> 
> This adds support for three types of argument specifications for bootstrap builds:
> 
> (1) Arguments prefixed with BOOTSTRAP_* will be passed through with the leading BOOTSTRAP_ removed.
> (2) CLANG_BOOTSTRAP_PASSTHROUGH can specify a list of variables to be passed through as they are set.
> (3) BOOTSTRAP_DEFAULT_PASSTHROUGH is a list of some default passthrough variables that are always passed through. Those variables include the version string and should only specify variables that are always expected to be the same between the stage1 and stage2
> 
> Modified:
>     cfe/trunk/CMakeLists.txt
> 
> Modified: cfe/trunk/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=253721&r1=253720&r2=253721&view=diff <http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=253721&r1=253720&r2=253721&view=diff>
> ==============================================================================
> --- cfe/trunk/CMakeLists.txt (original)
> +++ cfe/trunk/CMakeLists.txt Fri Nov 20 16:09:06 2015
> @@ -652,6 +652,36 @@ if (CLANG_ENABLE_BOOTSTRAP)
>      set(verbose -DCMAKE_VERBOSE_MAKEFILE=On)
>    endif()
> 
> +  set(BOOTSTRAP_DEFAULT_PASSTHROUGH
> +    PACKAGE_VERSION
> +    LLVM_VERSION_MAJOR
> +    LLVM_VERSION_MINOR
> +    LLVM_VERSION_PATCH
> +    LLVM_VERSION_SUFFIX
> +    CLANG_REPOSITORY_STRING
> +    CMAKE_MAKE_PROGRAM)
> +
> +  # Find all variables that start with BOOTSTRAP_ and populate a variable with
> +  # them.
> +  get_cmake_property(variableNames VARIABLES)
> +  foreach(varaibleName ${variableNames})
> +    if(varaibleName MATCHES "^BOOTSTRAP_")
> +      string(SUBSTRING ${varaibleName} 10 -1 varName)
> +      string(REPLACE ";" "\;" value "${${varaibleName}}")
> +      list(APPEND PASSTHROUGH_VARIABLES
> +        -D${varName}=${value})
> +    endif()
> +  endforeach()
> +
> +  # Populate the passthrough variables
> +  foreach(varaibleName ${CLANG_BOOTSTRAP_PASSTHROUGH} ${BOOTSTRAP_DEFAULT_PASSTHROUGH})
> +    if(${varaibleName})
> 
> typo: "varaibleName".
> 
> I saw one in r253720 as well.
> 
> -- Sean Silva
>  
> +      string(REPLACE ";" "\;" value ${${varaibleName}})
> +      list(APPEND PASSTHROUGH_VARIABLES
> +        -D${varaibleName}=${value})
> +    endif()
> +  endforeach()
> +
>    ExternalProject_Add(bootstrap
>      DEPENDS clang ${LTO_DEP}
>      PREFIX bootstrap
> @@ -664,6 +694,7 @@ if (CLANG_ENABLE_BOOTSTRAP)
>                  # seem to work, so instead I'm passing this through
>                  -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
>                  ${CLANG_BOOTSTRAP_CMAKE_ARGS}
> +                ${PASSTHROUGH_VARIABLES}
>                  -DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++
>                  -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang
>                  -DCMAKE_ASM_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org <mailto:cfe-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151123/cd45ed37/attachment-0001.html>


More information about the cfe-commits mailing list