[PATCH] D35377: [CMAKE] Speedup developer builds when passing LLVM_APPEND_VC_REV = OFF
Rafael Avila de Espindola via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 18 15:10:28 PDT 2017
Without this patch I get:
% ninja bin/llvm-mc
ninja: no work to do.
But with it there is always
% ninja bin/llvm-mc
[4/1/1] Generating force_version_inc_check
Is this really necessary?
Cheers,
Rafael
don hinton via Phabricator <reviews at reviews.llvm.org> writes:
> hintonda updated this revision to Diff 106963.
> hintonda added a comment.
>
> Fix comments -- NFC.
>
>
> https://reviews.llvm.org/D35377
>
> Files:
> cmake/modules/GenerateVersionFromCVS.cmake
> include/llvm/Support/CMakeLists.txt
>
>
> Index: include/llvm/Support/CMakeLists.txt
> ===================================================================
> --- include/llvm/Support/CMakeLists.txt
> +++ include/llvm/Support/CMakeLists.txt
> @@ -9,7 +9,6 @@
> endfunction()
>
> macro(find_first_existing_vc_file out_var path)
> - if ( LLVM_APPEND_VC_REV )
> find_program(git_executable NAMES git git.exe git.cmd)
> # Run from a subdirectory to force git to print an absolute path.
> execute_process(COMMAND ${git_executable} rev-parse --git-dir
> @@ -30,7 +29,6 @@
> "${path}/.svn/entries" # SVN 1.6
> )
> endif()
> - endif()
> endmacro()
>
> find_first_existing_vc_file(llvm_vc "${LLVM_MAIN_SRC_DIR}")
> @@ -40,22 +38,21 @@
>
> set(get_svn_script "${LLVM_CMAKE_PATH}/GenerateVersionFromCVS.cmake")
>
> -if(DEFINED llvm_vc)
> - # Create custom target to generate the VC revision include.
> - add_custom_command(OUTPUT "${version_inc}"
> - DEPENDS "${llvm_vc}" "${get_svn_script}"
> - COMMAND
> - ${CMAKE_COMMAND} "-DSOURCE_DIR=${LLVM_MAIN_SRC_DIR}"
> - "-DNAME=LLVM_REVISION"
> - "-DHEADER_FILE=${version_inc}"
> - -P "${get_svn_script}")
> -
> - # Mark the generated header as being generated.
> - set_source_files_properties("${version_inc}"
> - PROPERTIES GENERATED TRUE
> - HEADER_FILE_ONLY TRUE)
> -else()
> - file(WRITE "${version_inc}" "")
> -endif()
> +add_custom_command(OUTPUT force_version_inc_check COMMAND ${CMAKE_COMMAND} -E echo_append)
> +
> +# Create custom target to generate the VC revision include.
> +add_custom_command(OUTPUT "${version_inc}"
> + DEPENDS force_version_inc_check "${llvm_vc}" "${get_svn_script}"
> + COMMAND
> + ${CMAKE_COMMAND} "-DSOURCE_DIR=${LLVM_MAIN_SRC_DIR}"
> + "-DLLVM_APPEND_VC_REV=${LLVM_APPEND_VC_REV}"
> + "-DNAME=LLVM_REVISION"
> + "-DHEADER_FILE=${version_inc}"
> + -P "${get_svn_script}")
> +
> +# Mark the generated header as being generated.
> +set_source_files_properties("${version_inc}"
> + PROPERTIES GENERATED TRUE
> + HEADER_FILE_ONLY TRUE)
>
> add_custom_target(llvm_vcsrevision_h DEPENDS "${version_inc}")
> Index: cmake/modules/GenerateVersionFromCVS.cmake
> ===================================================================
> --- cmake/modules/GenerateVersionFromCVS.cmake
> +++ cmake/modules/GenerateVersionFromCVS.cmake
> @@ -1,14 +1,16 @@
> # CMake project that writes Subversion revision information to a header.
> #
> # Input variables:
> -# SRC - Source directory
> -# HEADER_FILE - The header file to write
> +# SOURCE_DIR - Source directory
> +# LLVM_APPEND_VC_REV - Append vc info (ON/OFF)
> +# NAME - Macro name to use
> +# HEADER_FILE - The header file to write
> #
> # The output header will contain macros FIRST_REPOSITORY and FIRST_REVISION,
> # and SECOND_REPOSITORY and SECOND_REVISION if requested, where "FIRST" and
> # "SECOND" are substituted with the names specified in the input variables.
>
> -
> +if (LLVM_APPEND_VC_REV)
>
> # Chop off cmake/modules/GetSVN.cmake
> get_filename_component(LLVM_DIR "${CMAKE_SCRIPT_MODE_FILE}" PATH)
> @@ -32,6 +34,11 @@
>
> append_info(${NAME} "${SOURCE_DIR}")
>
> +else()
> + file(WRITE "${HEADER_FILE}.txt" "")
> +endif()
> +
> +
> # Copy the file only if it has changed.
> execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
> "${HEADER_FILE}.txt" "${HEADER_FILE}")
>
>
> Index: include/llvm/Support/CMakeLists.txt
> ===================================================================
> --- include/llvm/Support/CMakeLists.txt
> +++ include/llvm/Support/CMakeLists.txt
> @@ -9,7 +9,6 @@
> endfunction()
>
> macro(find_first_existing_vc_file out_var path)
> - if ( LLVM_APPEND_VC_REV )
> find_program(git_executable NAMES git git.exe git.cmd)
> # Run from a subdirectory to force git to print an absolute path.
> execute_process(COMMAND ${git_executable} rev-parse --git-dir
> @@ -30,7 +29,6 @@
> "${path}/.svn/entries" # SVN 1.6
> )
> endif()
> - endif()
> endmacro()
>
> find_first_existing_vc_file(llvm_vc "${LLVM_MAIN_SRC_DIR}")
> @@ -40,22 +38,21 @@
>
> set(get_svn_script "${LLVM_CMAKE_PATH}/GenerateVersionFromCVS.cmake")
>
> -if(DEFINED llvm_vc)
> - # Create custom target to generate the VC revision include.
> - add_custom_command(OUTPUT "${version_inc}"
> - DEPENDS "${llvm_vc}" "${get_svn_script}"
> - COMMAND
> - ${CMAKE_COMMAND} "-DSOURCE_DIR=${LLVM_MAIN_SRC_DIR}"
> - "-DNAME=LLVM_REVISION"
> - "-DHEADER_FILE=${version_inc}"
> - -P "${get_svn_script}")
> -
> - # Mark the generated header as being generated.
> - set_source_files_properties("${version_inc}"
> - PROPERTIES GENERATED TRUE
> - HEADER_FILE_ONLY TRUE)
> -else()
> - file(WRITE "${version_inc}" "")
> -endif()
> +add_custom_command(OUTPUT force_version_inc_check COMMAND ${CMAKE_COMMAND} -E echo_append)
> +
> +# Create custom target to generate the VC revision include.
> +add_custom_command(OUTPUT "${version_inc}"
> + DEPENDS force_version_inc_check "${llvm_vc}" "${get_svn_script}"
> + COMMAND
> + ${CMAKE_COMMAND} "-DSOURCE_DIR=${LLVM_MAIN_SRC_DIR}"
> + "-DLLVM_APPEND_VC_REV=${LLVM_APPEND_VC_REV}"
> + "-DNAME=LLVM_REVISION"
> + "-DHEADER_FILE=${version_inc}"
> + -P "${get_svn_script}")
> +
> +# Mark the generated header as being generated.
> +set_source_files_properties("${version_inc}"
> + PROPERTIES GENERATED TRUE
> + HEADER_FILE_ONLY TRUE)
>
> add_custom_target(llvm_vcsrevision_h DEPENDS "${version_inc}")
> Index: cmake/modules/GenerateVersionFromCVS.cmake
> ===================================================================
> --- cmake/modules/GenerateVersionFromCVS.cmake
> +++ cmake/modules/GenerateVersionFromCVS.cmake
> @@ -1,14 +1,16 @@
> # CMake project that writes Subversion revision information to a header.
> #
> # Input variables:
> -# SRC - Source directory
> -# HEADER_FILE - The header file to write
> +# SOURCE_DIR - Source directory
> +# LLVM_APPEND_VC_REV - Append vc info (ON/OFF)
> +# NAME - Macro name to use
> +# HEADER_FILE - The header file to write
> #
> # The output header will contain macros FIRST_REPOSITORY and FIRST_REVISION,
> # and SECOND_REPOSITORY and SECOND_REVISION if requested, where "FIRST" and
> # "SECOND" are substituted with the names specified in the input variables.
>
> -
> +if (LLVM_APPEND_VC_REV)
>
> # Chop off cmake/modules/GetSVN.cmake
> get_filename_component(LLVM_DIR "${CMAKE_SCRIPT_MODE_FILE}" PATH)
> @@ -32,6 +34,11 @@
>
> append_info(${NAME} "${SOURCE_DIR}")
>
> +else()
> + file(WRITE "${HEADER_FILE}.txt" "")
> +endif()
> +
> +
> # Copy the file only if it has changed.
> execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
> "${HEADER_FILE}.txt" "${HEADER_FILE}")
More information about the llvm-commits
mailing list