Just pushed with slightly change. Thanks.
On Wed, Oct 22, 2014 at 09:27:09AM +0000, Meng, Mengmeng wrote: > Hi, > Thanks for your suggestions. Now I add a judgment whether git repository > exists or not. > > > From 48e5d974ec0bd08b4628c114ad43361fabb0f6e8 Mon Sep 17 00:00:00 2001 > From: Meng Mengmeng <[email protected]> > Date: Thu, 23 Oct 2014 09:09:21 +0800 > Subject: [PATCH] add beignet GIT_HAL1 if there is .git directory > > --- > src/CMakeLists.txt | 7 +++++++ > src/cl_platform_id.h | 10 ++++++++-- > src/git_sha1.sh | 22 ++++++++++++++++++++++ > 3 files changed, 37 insertions(+), 2 deletions(-) > create mode 100755 src/git_sha1.sh > > diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt > index 218420a..0d22589 100644 > --- a/src/CMakeLists.txt > +++ b/src/CMakeLists.txt > @@ -109,6 +109,13 @@ SET(CMAKE_CXX_FLAGS "-DHAS_OCLIcd ${CMAKE_CXX_FLAGS}") > SET(CMAKE_C_FLAGS "-DHAS_OCLIcd ${CMAKE_C_FLAGS}") > endif (OCLIcd_FOUND) > > +set(GIT_SHA1 "git_sha1.h") > +add_custom_command(OUTPUT ${GIT_SHA1} > + COMMAND chmod +x ${CMAKE_CURRENT_SOURCE_DIR}/git_sha1.sh > + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/git_sha1.sh > ${CMAKE_CURRENT_SOURCE_DIR} ${GIT_SHA1} > + ) > +add_custom_target(GIT_SHA1 ALL DEPENDS ${GIT_SHA1}) > + > SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} > -Wl,-Bsymbolic,--allow-shlib-undefined") > > link_directories (${LLVM_LIBRARY_DIR} ${DRM_LIBDIR}) > diff --git a/src/cl_platform_id.h b/src/cl_platform_id.h > index 61b8eab..a7a3e81 100644 > --- a/src/cl_platform_id.h > +++ b/src/cl_platform_id.h > @@ -25,6 +25,7 @@ > #include "cl_extensions.h" > #include "cl_khr_icd.h" > #include "src/OCLConfig.h" > +#include "src/git_sha1.h" > > struct _cl_platform_id { > DEFINE_ICD(dispatch) > @@ -62,10 +63,15 @@ extern cl_int cl_get_platform_info(cl_platform_id > platform, > #define _JOINT(x, y) _STR(x) "." _STR(y) > #define _JOINT3(x, y, z) _STR(x) "." _STR(y) "." _STR(z) > > +#ifdef BEIGNET_GIT_SHA1 > + #define BEIGNET_GIT_SHA1_STRING " (" BEIGNET_GIT_SHA1 ")" > +#else > + #define BEIGNET_GIT_SHA1_STRING > +#endif > > #define LIBCL_DRIVER_VERSION_STRING _JOINT(LIBCL_DRIVER_VERSION_MAJOR, > LIBCL_DRIVER_VERSION_MINOR) > -#define LIBCL_VERSION_STRING "OpenCL " _JOINT(LIBCL_C_VERSION_MAJOR, > LIBCL_C_VERSION_MINOR) " beignet " LIBCL_DRIVER_VERSION_STRING > -#define LIBCL_C_VERSION_STRING "OpenCL C " _JOINT(LIBCL_C_VERSION_MAJOR, > LIBCL_C_VERSION_MINOR) " beignet " LIBCL_DRIVER_VERSION_STRING > +#define LIBCL_VERSION_STRING "OpenCL " _JOINT(LIBCL_C_VERSION_MAJOR, > LIBCL_C_VERSION_MINOR) " beignet " LIBCL_DRIVER_VERSION_STRING > BEIGNET_GIT_SHA1_STRING > +#define LIBCL_C_VERSION_STRING "OpenCL C " _JOINT(LIBCL_C_VERSION_MAJOR, > LIBCL_C_VERSION_MINOR) " beignet " LIBCL_DRIVER_VERSION_STRING > BEIGNET_GIT_SHA1_STRING > > #endif /* __CL_PLATFORM_ID_H__ */ > > diff --git a/src/git_sha1.sh b/src/git_sha1.sh > new file mode 100755 > index 0000000..29cabf3 > --- /dev/null > +++ b/src/git_sha1.sh > @@ -0,0 +1,22 @@ > +#!/bin/bash > + > +SOURCE_DIR=$1 > +FILE=$2 > + > +touch ${SOURCE_DIR}/${FILE}_tmp > +if test -d $1/../.git; then > + if which git > /dev/null; then > + git --git-dir=$1/../.git log -n 1 --oneline | \ > + sed 's/^\([^ ]*\) .*/#define BEIGNET_GIT_SHA1 "git-\1"/' \ > + > ${SOURCE_DIR}/${FILE}_tmp > + fi > +fi > + > +#updating ${SOURCE_DIR}/${FILE} > +if ! cmp -s ${SOURCE_DIR}/${FILE}_tmp ${SOURCE_DIR}/${FILE}; then > + mv ${SOURCE_DIR}/${FILE}_tmp ${SOURCE_DIR}/${FILE} > +else > + rm ${SOURCE_DIR}/${FILE}_tmp > +fi > + > + > -- > 1.9.3 > > > -----Original Message----- > > From: Zhigang Gong [mailto:[email protected]] > > Sent: Wednesday, October 22, 2014 2:44 PM > > To: Meng, Mengmeng > > Cc: [email protected] > > Subject: Re: [Beignet] [PATCH] build beignet with GIT_HAL1 > > > > Thanks for the patch. One major comment is that you need to consider > > where .git does not exist. For example, build from a relased tar ball. > > > > Then the BEIGNET_GIT_SHA1 is not defined, and please be careful don't add > > an empty "()" into the cl version string. > > > > beignet 0.9 (git-xxx) # with .git directory. > > beignet 0.9 # with out .git directory. > > beignet 0.9 () # incorrect version string. > > > > Thanks, > > Zhigang Gong. > > > > On Thu, Oct 23, 2014 at 06:27:08AM +0800, Meng Mengmeng wrote: > > > From: Meng <[email protected]> > > > > > > --- > > > src/CMakeLists.txt | 8 ++++++++ > > > src/cl_platform_id.h | 5 +++-- > > > src/git_sha1.sh | 13 +++++++++++++ > > > 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 > > > src/git_sha1.sh > > > > > > diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index > > > 218420a..0e5969b 100644 > > > --- a/src/CMakeLists.txt > > > +++ b/src/CMakeLists.txt > > > @@ -109,6 +109,14 @@ SET(CMAKE_CXX_FLAGS "-DHAS_OCLIcd > > > ${CMAKE_CXX_FLAGS}") SET(CMAKE_C_FLAGS "-DHAS_OCLIcd > > > ${CMAKE_C_FLAGS}") endif (OCLIcd_FOUND) > > > > > > +set(GIT_SHA1 "git_sha1.h") > > > +add_custom_command(OUTPUT ${GIT_SHA1} > > > + COMMAND chmod +x ${CMAKE_CURRENT_SOURCE_DIR}/git_sha1.sh > > > + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/git_sha1.sh > > > +${CMAKE_CURRENT_SOURCE_DIR} ${GIT_SHA1} > > > + ) > > > +add_custom_target(GIT_SHA1 ALL DEPENDS ${GIT_SHA1}) > > > + > > > + > > > SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} > > > -Wl,-Bsymbolic,--allow-shlib-undefined") > > > > > > link_directories (${LLVM_LIBRARY_DIR} ${DRM_LIBDIR}) diff --git > > > a/src/cl_platform_id.h b/src/cl_platform_id.h index 61b8eab..e40d3a9 > > > 100644 > > > --- a/src/cl_platform_id.h > > > +++ b/src/cl_platform_id.h > > > @@ -25,6 +25,7 @@ > > > #include "cl_extensions.h" > > > #include "cl_khr_icd.h" > > > #include "src/OCLConfig.h" > > > +#include "src/git_sha1.h" > > > > > > struct _cl_platform_id { > > > DEFINE_ICD(dispatch) > > > @@ -64,8 +65,8 @@ extern cl_int cl_get_platform_info(cl_platform_id > > platform, > > > > > > > > > #define LIBCL_DRIVER_VERSION_STRING > > > _JOINT(LIBCL_DRIVER_VERSION_MAJOR, LIBCL_DRIVER_VERSION_MINOR) > > > -#define LIBCL_VERSION_STRING "OpenCL " > > _JOINT(LIBCL_C_VERSION_MAJOR, > > > LIBCL_C_VERSION_MINOR) " beignet " LIBCL_DRIVER_VERSION_STRING > > > -#define LIBCL_C_VERSION_STRING "OpenCL C " > > > _JOINT(LIBCL_C_VERSION_MAJOR, LIBCL_C_VERSION_MINOR) " beignet " > > > LIBCL_DRIVER_VERSION_STRING > > > +#define LIBCL_VERSION_STRING "OpenCL " > > _JOINT(LIBCL_C_VERSION_MAJOR, LIBCL_C_VERSION_MINOR) " beignet " > > LIBCL_DRIVER_VERSION_STRING " (" BEIGNET_GIT_SHA1 ")" > > > +#define LIBCL_C_VERSION_STRING "OpenCL C " > > _JOINT(LIBCL_C_VERSION_MAJOR, LIBCL_C_VERSION_MINOR) " beignet " > > LIBCL_DRIVER_VERSION_STRING " (" BEIGNET_GIT_SHA1 ")" > > > > > > #endif /* __CL_PLATFORM_ID_H__ */ > > > > > > diff --git a/src/git_sha1.sh b/src/git_sha1.sh new file mode 100644 > > > index 0000000..ef6dd66 > > > --- /dev/null > > > +++ b/src/git_sha1.sh > > > @@ -0,0 +1,13 @@ > > > +#!/bin/bash > > > + > > > +SOURCE_DIR=$1 > > > +FILE=$2 > > > +touch ${SOURCE_DIR}/${FILE} > > > +if test -d $1/../.git; then \ > > > + if which git > /dev/null; then \ > > > + git --git-dir=$1/../.git log -n 1 --oneline | \ > > > + sed 's/^\([^ ]*\) .*/#define BEIGNET_GIT_SHA1 > > "git-\1"/' \ > > > + > ${SOURCE_DIR}/${FILE} ; \ > > > + fi \ > > > +fi > > > + > > > -- > > > 1.9.3 > > > > > > _______________________________________________ > > > Beignet mailing list > > > [email protected] > > > http://lists.freedesktop.org/mailman/listinfo/beignet > _______________________________________________ > Beignet mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
