[vlc-devel] [PATCH] package/win32: use VLC_DEPLOYMENT_TARGET_CFLAGS environment variable to pass CFLAGS

Marvin Scholz epirat07 at gmail.com
Wed Dec 11 15:37:19 CET 2019



On 11 Dec 2019, at 15:33, Steve Lhomme wrote:

> And here is the environment I use to build with PDBs:
>
> VLC_DEPLOYMENT_TARGET_CFLAGS="-O0 -fdebug-prefix-map='/mnt/c/'='c:/' 
> -Werror=incompatible-pointer-types -Werror=partial-availability 
> -Werror=invalid-command-line-argument"
> VLC_DEPLOYMENT_TARGET_CXXFLAGS="-O0 -fdebug-prefix-map='/mnt/c/'='c:/' 
> -Werror=incompatible-pointer-types -Werror=partial-availability 
> -Werror=invalid-command-line-argument"
>

Looks ok but it really should not be named VLC_DEPLOYMENT_TARGET_* as 
thats
specific to the iOS/macOS stuff where it hold the deployment target 
flags and
has no meaning whatsoever for windows. So maybe just go with VLC_EXTRA_*
or such?

>
> On 2019-12-11 15:28, Steve Lhomme wrote:
>> This is similar to a patch I already submitted. I cleaned up a bit 
>> and also use the environment variables to set the CFLAGS/CXXFLAGS 
>> when building VLC, since we can't put anything in CFLAGS/CXXFLAGS.
>>
>> I added -Werror=missing-field-initializers when building VLC to spot 
>> errors when some structure changes but the fields are not updated 
>> accordingly (saved me a few times). It kinda works with contribs, but 
>> we don't want to refuse a config if it doesn't build with this flag.
>>
>> On 2019-12-11 15:24, Steve Lhomme wrote:
>>> So that Meson doesn't try to pick them.
>>>
>>> Similar to 5c76f3478cb038a550de21f6267d57c55c963391 on macos.
>>> ---
>>>   extras/package/win32/build.sh | 37 
>>> ++++++++++++++++++++++++++++++++++-
>>>   1 file changed, 36 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/extras/package/win32/build.sh 
>>> b/extras/package/win32/build.sh
>>> index 9607fcfe058..96c567743f9 100755
>>> --- a/extras/package/win32/build.sh
>>> +++ b/extras/package/win32/build.sh
>>> @@ -106,6 +106,34 @@ else
>>>       COMPILING_WITH_CLANG=0
>>>   fi
>>> +# Write config.mak for contribs
>>> +# Globals:
>>> +#   VLC_DEPLOYMENT_TARGET_CFLAGS
>>> +#   VLC_DEPLOYMENT_TARGET_CXXFLAGS
>>> +#   VLC_DEPLOYMENT_TARGET_LDFLAGS
>>> +write_config_mak()
>>> +{
>>> +    # Flags to be used for C-like compilers (C, C++, Obj-C)
>>> +    local clike_flags="$VLC_DEPLOYMENT_TARGET_CFLAGS"
>>> +
>>> +    # local vlc_cppflags="-arch $ARCH"
>>> +    local vlc_cflags="$clike_flags"
>>> +    local vlc_cxxflags="$VLC_DEPLOYMENT_TARGET_CXXFLAGS 
>>> $clike_flags"
>>> +    local vlc_objcflags="$clike_flags"
>>> +
>>> +    local vlc_ldflags="$VLC_DEPLOYMENT_TARGET_LDFLAGS"
>>> +
>>> +    echo "Creating makefile..."
>>> +    test -e config.mak && unlink config.mak
>>> +    exec 3>config.mak || return $?
>>> +
>>> +    printf '# This file was automatically generated!\n\n' >&3
>>> +    printf '%s := %s\n' "CFLAGS" "${vlc_cflags}" >&3
>>> +    printf '%s := %s\n' "CXXFLAGS" "${vlc_cxxflags}" >&3
>>> +    printf '%s := %s\n' "OBJCFLAGS" "${vlc_objcflags}" >&3
>>> +    printf '%s := %s\n' "LDFLAGS" "${vlc_ldflags}" >&3
>>> +}
>>> +
>>>   info "Building extra tools"
>>>   mkdir -p extras/tools
>>>   cd extras/tools
>>> @@ -147,6 +175,11 @@ fi
>>>   if [ "$RELEASE" != "yes" ]; then
>>>        CONTRIBFLAGS="$CONTRIBFLAGS --disable-optim"
>>>   fi
>>> +
>>> +# Write config.mak with flags for the build and compiler overrides
>>> +# Set flag to error on partial availability
>>> +write_config_mak
>>> +
>>>   ${SCRIPT_PATH}/../../../contrib/bootstrap --host=$TRIPLET 
>>> $CONTRIBFLAGS
>>>   # Rebuild the contribs or use the prebuilt ones
>>> @@ -190,7 +223,9 @@ if [ ! -z "$WITH_PDB" ]; then
>>>       CONFIGFLAGS="$CONFIGFLAGS --enable-pdb"
>>>   fi
>>> -${SCRIPT_PATH}/configure.sh --host=$TRIPLET 
>>> --with-contrib=../contrib/$TRIPLET $CONFIGFLAGS
>>> +${SCRIPT_PATH}/configure.sh --host=$TRIPLET 
>>> --with-contrib=../contrib/$TRIPLET $CONFIGFLAGS \
>>> +    CFLAGS="$VLC_DEPLOYMENT_TARGET_CFLAGS 
>>> -Werror=missing-field-initializers" \
>>> +    CXXFLAGS="$VLC_DEPLOYMENT_TARGET_CXXFLAGS 
>>> -Werror=missing-field-initializers"
>>>   info "Compiling"
>>>   make -j$JOBS
>>> -- 
>>> 2.17.1
>>>
>>> _______________________________________________
>>> vlc-devel mailing list
>>> To unsubscribe or modify your subscription options:
>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list