[Mesa-dev] [PATCH] svga: fix git_sha1.h include path in Android.mk

Mauro Rossi issor.oruam at gmail.com
Tue Jun 6 20:54:23 UTC 2017


2017-06-05 2:29 GMT+02:00 Emil Velikov <emil.l.velikov at gmail.com>:
> On 4 June 2017 at 22:47, Mauro Rossi <issor.oruam at gmail.com> wrote:
>> 2017-05-29 14:30 GMT+02:00 Emil Velikov <emil.l.velikov at gmail.com>:
>>> On 26 May 2017 at 16:15, Mauro Rossi <issor.oruam at gmail.com> wrote:
>>>> Fixes the following building error:
>>>>
>>>> external/mesa/src/gallium/drivers/svga/svga_screen.c:26:10:
>>>> fatal error: 'git_sha1.h' file not found
>>>>          ^
>>>> 1 error generated.
>>> Mauro please add
>>>
>>> Fixes: 1ce3a2723f9 ("svga: Add the ability to log messages to
>>> vmware.log on the host.")
>>>
>>
>> Done in v2
>>
>>>> ---
>>>>  src/gallium/drivers/svga/Android.mk | 4 +++-
>>>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/gallium/drivers/svga/Android.mk b/src/gallium/drivers/svga/Android.mk
>>>> index c50743d509..d19bd59bfe 100644
>>>> --- a/src/gallium/drivers/svga/Android.mk
>>>> +++ b/src/gallium/drivers/svga/Android.mk
>>>> @@ -30,7 +30,9 @@ include $(CLEAR_VARS)
>>>>
>>>>  LOCAL_SRC_FILES := $(C_SOURCES)
>>>>
>>>> -LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
>>>> +LOCAL_C_INCLUDES := \
>>>> +       $(LOCAL_PATH)/include \
>>>> +       $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_dricore,,)/main
>>>>
>>> Haven't looked too closely on the discussion, so pardon if it's
>>> mentioned already.
>>>
>>> Have you considered doing a "dummy" library analogous to libmesa_genxml,
>>> This one one doesn't need to preemptively build libmesa_dricore.
>>>
>>> -Emil
>>
>> Here is v2, compliant to requirements and build tested
>> One line seemed more..short :-)
>> Mauro
>>
> Apologies if I'm getting a bit too nit-picky Mauro.

No problem, I trust your judgement

>
>
>> From 26ea92a07ca410ee9aebb9624399eca2dee49c29 Mon Sep 17 00:00:00 2001
>> From: Mauro Rossi <issor.oruam at gmail.com>
>> Date: Sun, 4 Jun 2017 23:24:59 +0200
>> Subject: [PATCH] svga: fix git_sha1.h include path in Android.mk (v2)
>>
>> Adds libmesa_git_sha1 static (dummy) library to generate git_sha1.h
>> Fixes the following building error:
>>
>> external/mesa/src/gallium/drivers/svga/svga_screen.c:26:10:
>> fatal error: 'git_sha1.h' file not found
>>          ^
>> 1 error generated.
>>
>> Fixes: 1ce3a2723f9 ("svga: Add the ability to log messages to
>> vmware.log on the host.")
>> ---
>>  src/gallium/drivers/svga/Android.mk  |  6 +++-
>>  src/mesa/Android.libmesa_git_sha1.mk | 59 ++++++++++++++++++++++++++++++++++++
>>  src/mesa/Android.mk                  |  1 +
>>  3 files changed, 65 insertions(+), 1 deletion(-)
>>  create mode 100644 src/mesa/Android.libmesa_git_sha1.mk
>>
>> diff --git a/src/gallium/drivers/svga/Android.mk
>> b/src/gallium/drivers/svga/Android.mk
>> index c50743d509..17d37ed178 100644
>> --- a/src/gallium/drivers/svga/Android.mk
>> +++ b/src/gallium/drivers/svga/Android.mk
>> @@ -30,10 +30,14 @@ include $(CLEAR_VARS)
>>
>>  LOCAL_SRC_FILES := $(C_SOURCES)
>>
>> -LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
>> +LOCAL_C_INCLUDES := \
>> + $(LOCAL_PATH)/include \
>> + $(dir $(MESA_GEN_GIT_SHA1_H))
>>
> If libmesa_git_sha1 exports the path this should not be needed, correct?

Affirmative

>
>>  LOCAL_MODULE := libmesa_pipe_svga
>>
>> +LOCAL_STATIC_LIBRARIES += libmesa_git_sha1
>> +
>>  include $(GALLIUM_COMMON_MK)
>>  include $(BUILD_STATIC_LIBRARY)
>>
>> diff --git a/src/mesa/Android.libmesa_git_sha1.mk
>> b/src/mesa/Android.libmesa_git_sha1.mk
>> new file mode 100644
>> index 0000000000..ea6079e92e
>> --- /dev/null
>> +++ b/src/mesa/Android.libmesa_git_sha1.mk
> Can we move this a level up to be alongside the Automake/SCons equivalents?

I would recommend to keep it a the current top level for Android,
which is in src/mesa, all other core libraries are built at that level.

>
>
>> +LOCAL_PATH := $(call my-dir)
>> +
>> +include $(CLEAR_VARS)
>> +
>> +LOCAL_MODULE := libmesa_git_sha1
>> +
>> +LOCAL_MODULE_CLASS := STATIC_LIBRARIES
>> +intermediates := $(call local-generated-sources-dir)
>> +
>> +# dummy.c source file is generated to meet the build system's rules.
>> +LOCAL_GENERATED_SOURCES += $(intermediates)/dummy.c
>> +
>> +$(intermediates)/dummy.c:
>> + @mkdir -p $(dir $@)
>> + @echo "Gen Dummy: $(PRIVATE_MODULE) <= $(notdir $(@))"
>> + $(hide) touch $@
>> +
>> +LOCAL_GENERATED_SOURCES += $(addprefix $(intermediates)/, git_sha1.h)
>> +
>> +$(intermediates)/git_sha1.h: $(wildcard $(MESA_TOP)/.git/logs/HEAD)
>> + @mkdir -p $(dir $@)
>> + @echo "GIT-SHA1: $(PRIVATE_MODULE) <= git"
>> + $(hide) touch $@
>> + $(hide) if which git > /dev/null; then \
>> + git --git-dir $(MESA_TOP)/.git log -n 1 --oneline | \
>> + sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
>> + > $@; \
>> + fi
>> +
> A [nearly] identical hunk in src/mesa/Android.gen.mk can do, now can't it?
> The following one-liner might be needed in
>> +LOCAL_STATIC_LIBRARIES += libmesa_git_sha1
>
>> +LOCAL_STATIC_LIBRARIES += libmesa_git_sha1
>
> LOCAL_STATIC_LIBRARIES += libmesa_git_sha1
>

Sending a v3 which following changes:

- removal of redundant git_sha1.h generation from Android.gen.mk

- the only other place using it for Android is libmesa_dricore in
src/mesa/main/version.c,
so I added libmesa_git_sha1 as dependency.

NOTE: in order to apply v3 a preparation patch is needed to correct
current git_sha1. h generation in any condition,
feel free to merge in one commit.

>
>
>
>> +MESA_GEN_GIT_SHA1_H := $(addprefix $(intermediates)/, git_sha1.h)
>> +
> We can swap this with LOCAL_EXPORT_C_INCLUDE_DIRS?

Replaced in v3 with:

LOCAL_EXPORT_C_INCLUDE_DIRS := $(intermediates)

>
>
>> +include $(MESA_COMMON_MK)
>> +include $(BUILD_STATIC_LIBRARY)
>> diff --git a/src/mesa/Android.mk b/src/mesa/Android.mk
>> index 9a1aef8b28..e89de82f4e 100644
>> --- a/src/mesa/Android.mk
>> +++ b/src/mesa/Android.mk
>> @@ -25,5 +25,6 @@ include $(LOCAL_PATH)/Android.libmesa_glsl_utils.mk
>>  include $(LOCAL_PATH)/Android.libmesa_dricore.mk
>>  include $(LOCAL_PATH)/Android.libmesa_st_mesa.mk
>>  include $(LOCAL_PATH)/Android.libmesa_sse41.mk
>> +include $(LOCAL_PATH)/Android.libmesa_git_sha1.mk
>>
>>  include $(LOCAL_PATH)/program/Android.mk
>> --
>> 2.11.0


More information about the mesa-dev mailing list