r222393 - [CMake] Always include the Clang repo version, just like the autoconf build.
Nico Weber
thakis at chromium.org
Wed Nov 19 17:24:11 PST 2014
Nice!
But .svn/entries doesn't seem to be touched when I `svn up` my llvm
checkout.
On Wed, Nov 19, 2014 at 2:03 PM, Jordan Rose <jordan_rose at apple.com> wrote:
> Author: jrose
> Date: Wed Nov 19 16:03:48 2014
> New Revision: 222393
>
> URL: http://llvm.org/viewvc/llvm-project?rev=222393&view=rev
> Log:
> [CMake] Always include the Clang repo version, just like the autoconf
> build.
>
> Now that LLVM's helper script GetSVN.cmake actually works consistently,
> there's no reason not to use it. We avoid having to regenerate
> SVNVersion.inc
> every time by marking it as dependent on Git's reflog or SVN's entries
> file.
>
> This should end most of the issues of the AST format changing and breaking
> old module files: CMake-Clang should now detect that the version changed
> just
> like Autoconf-Clang has.
>
> Based on r190557. Depends on LLVM r222391.
>
> Modified:
> cfe/trunk/lib/Basic/CMakeLists.txt
>
> Modified: cfe/trunk/lib/Basic/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/CMakeLists.txt?rev=222393&r1=222392&r2=222393&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Basic/CMakeLists.txt (original)
> +++ cfe/trunk/lib/Basic/CMakeLists.txt Wed Nov 19 16:03:48 2014
> @@ -4,6 +4,48 @@ set(LLVM_LINK_COMPONENTS
> Support
> )
>
> +# Figure out if we can track VC revisions.
> +function(find_first_existing_file out_var)
> + foreach(file ${ARGN})
> + if(EXISTS "${file}")
> + set(${out_var} "${file}" PARENT_SCOPE)
> + return()
> + endif()
> + endforeach()
> +endfunction()
> +
> +find_first_existing_file(llvm_vc
> + "${LLVM_MAIN_SRC_DIR}/.git/logs/HEAD"
> + "${LLVM_MAIN_SRC_DIR}/.svn/entries")
> +find_first_existing_file(clang_vc
> + "${CLANG_SOURCE_DIR}/.git/logs/HEAD"
> + "${CLANG_SOURCE_DIR}/.svn/entries")
> +
> +if(DEFINED llvm_vc AND DEFINED clang_vc)
> + # Create custom target to generate the VC revision include.
> + add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc"
> + DEPENDS "${llvm_vc}" "${clang_vc}"
> + COMMAND
> + ${CMAKE_COMMAND} "-DFIRST_SOURCE_DIR=${LLVM_MAIN_SRC_DIR}"
> + "-DFIRST_NAME=LLVM"
> + "-DSECOND_SOURCE_DIR=${CLANG_SOURCE_DIR}"
> + "-DSECOND_NAME=SVN"
> +
> "-DHEADER_FILE=${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc"
> + -P "${LLVM_MAIN_SRC_DIR}/cmake/modules/GetSVN.cmake")
> +
> + # Mark the generated header as being generated.
> + set_source_files_properties("${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc"
> + PROPERTIES GENERATED TRUE
> + HEADER_FILE_ONLY TRUE)
> +
> + # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
> + set_source_files_properties(Version.cpp
> + PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")
> + set(version_inc "${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")
> +else()
> + set(version_inc)
> +endif()
> +
> add_clang_library(clangBasic
> Attributes.cpp
> Builtins.cpp
> @@ -29,30 +71,6 @@ add_clang_library(clangBasic
> VersionTuple.cpp
> VirtualFileSystem.cpp
> Warnings.cpp
> + ${version_inc}
> )
>
> -# Determine Subversion revision.
> -# FIXME: This only gets updated when CMake is run, so this revision number
> -# may be out-of-date!
> -if( NOT IS_SYMLINK "${CLANG_SOURCE_DIR}" ) # See PR 8437
> - find_package(Subversion)
> -endif()
> -if (Subversion_FOUND AND EXISTS "${CLANG_SOURCE_DIR}/.svn")
> - set(FIRST_SOURCE_DIR ${LLVM_MAIN_SRC_DIR})
> - set(FIRST_REPOSITORY LLVM_REPOSITORY)
> - set(SECOND_SOURCE_DIR ${CLANG_SOURCE_DIR})
> - set(SECOND_REPOSITORY SVN_REPOSITORY)
> - set(HEADER_FILE ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc)
> - include(GetSVN)
> -
> - # Mark the generated header as being generated.
> - message(STATUS "Expecting header to go in
> ${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc")
> - set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/SVNVersion.inc
> - PROPERTIES GENERATED TRUE
> - HEADER_FILE_ONLY TRUE)
> -
> - # Tell Version.cpp that it needs to build with -DHAVE_SVN_VERSION_INC.
> - set_source_files_properties(Version.cpp
> - PROPERTIES COMPILE_DEFINITIONS "HAVE_SVN_VERSION_INC")
> -
> -endif()
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141119/4affd190/attachment.html>
More information about the cfe-commits
mailing list