public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gao, Liming" <liming.gao@intel.com>
To: Pete Batard <pete@akeo.ie>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [PATCH 1/1] BaseTools: Use VS2017 SDK path if defined and reorganize variables
Date: Thu, 16 Nov 2017 14:48:08 +0000	[thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E17F40A@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <20171116132110.11060-2-pete@akeo.ie>

I agree to separate HOST and ARCH. For this patch, I have minor comment on WINSDK10_BIN. 

DEFINE WINSDK10_BIN       = ENV(WINSDK10_PREFIX)x86
==>
DEFINE WINSDK10_BIN       = ENV(WINSDK10_PREFIX)DEF(VS2017_HOST)

Thanks
Liming
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Pete Batard
> Sent: Thursday, November 16, 2017 9:21 PM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: [edk2] [PATCH 1/1] BaseTools: Use VS2017 SDK path if defined and reorganize variables
> 
> 1. The use of WindowsSdkVerBinPath allows us to access the latest SDK,
>    which we will need when we introduce VS2017 support for AARCH64.
> 2. Make the breakdown between host and target more explicit, and more in
>    line  with how Microsoft reorganized the latest Visual Studio
>    toolchains, by introducing explicit and separate _HOST and _<ARCH>
>    variables.
> 3. Factorize _DLL and _MAKE_PATH as these are host rather than arch
>    dependent.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Pete Batard <pete@akeo.ie>
> ---
>  BaseTools/Conf/tools_def.template | 66 ++++++++++++++++++---------------------
>  BaseTools/set_vsprefix_envs.bat   | 15 ++++-----
>  2 files changed, 39 insertions(+), 42 deletions(-)
> 
> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
> index 4af883463d4f..ad900d821e65 100755
> --- a/BaseTools/Conf/tools_def.template
> +++ b/BaseTools/Conf/tools_def.template
> @@ -74,9 +74,11 @@ DEFINE VS2015x86_BIN    = ENV(VS2015_PREFIX)Vc\bin
>  DEFINE VS2015x86_DLL    = ENV(VS2015_PREFIX)Common7\IDE;DEF(VS2015x86_BIN)
>  DEFINE VS2015x86_BINX64 = DEF(VS2015x86_BIN)\x86_amd64
> 
> -DEFINE VS2017_BIN    = ENV(VS2017_PREFIX)
> -DEFINE VS2017_DLL    = ENV(VS2017_PREFIX)
> -DEFINE VS2017_BINX64 = ENV(VS2017X64_PREFIX)
> +DEFINE VS2017_BIN         = ENV(VS2017_PREFIX)bin
> +DEFINE VS2017_HOST        = x86
> +DEFINE VS2017_BIN_HOST    = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\DEF(VS2017_HOST)
> +DEFINE VS2017_BIN_IA32    = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x86
> +DEFINE VS2017_BIN_X64     = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x64
> 
>  DEFINE WINSDK_BIN       = ENV(WINSDK_PREFIX)
>  DEFINE WINSDKx86_BIN    = ENV(WINSDKx86_PREFIX)
> @@ -98,7 +100,7 @@ DEFINE WINSDK81_BIN       = ENV(WINSDK81_PREFIX)x86\
>  DEFINE WINSDK81x86_BIN    = ENV(WINSDK81x86_PREFIX)x64
> 
>  # Microsoft Visual Studio 2017 Professional Edition
> -DEFINE WINSDK10_BIN       = ENV(WINSDK10_PREFIX)
> +DEFINE WINSDK10_BIN       = ENV(WINSDK10_PREFIX)x86
> 
>  # These defines are needed for certain Microsoft Visual Studio tools that
>  # are used by other toolchains.  An example is that ICC on Windows normally
> @@ -4074,8 +4076,9 @@ NOOPT_VS2015x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
>  ####################################################################################
>  #   VS2017           - Microsoft Visual Studio 2017 professional Edition with Intel ASL
>  *_VS2017_*_*_FAMILY        = MSFT
> +*_VS2017_*_*_DLL           = DEF(VS2017_BIN_HOST)
> 
> -*_VS2017_*_MAKE_PATH       = DEF(VS2017_BIN)\nmake.exe
> +*_VS2017_*_MAKE_PATH       = DEF(VS2017_BIN_HOST)\nmake.exe
>  *_VS2017_*_MAKE_FLAG       = /nologo
>  *_VS2017_*_RC_PATH         = DEF(WINSDK10_BIN)\rc.exe
> 
> @@ -4085,7 +4088,7 @@ NOOPT_VS2015x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
>  *_VS2017_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
>  *_VS2017_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
>  *_VS2017_*_DLINK2_FLAGS    = /WHOLEARCHIVE
> -*_VS2017_*_ASM16_PATH      = DEF(VS2017_BIN)\ml.exe
> +*_VS2017_*_ASM16_PATH      = DEF(VS2017_BIN_IA32)\ml.exe
> 
>  ##################
>  # ASL definitions
> @@ -4100,19 +4103,16 @@ NOOPT_VS2015x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
>  ##################
>  # IA32 definitions
>  ##################
> -*_VS2017_IA32_*_DLL        = DEF(VS2017_DLL)
> -
> -*_VS2017_IA32_MAKE_PATH    = DEF(VS2017_BIN)\nmake.exe
> -*_VS2017_IA32_CC_PATH      = DEF(VS2017_BIN)\cl.exe
> -*_VS2017_IA32_VFRPP_PATH   = DEF(VS2017_BIN)\cl.exe
> -*_VS2017_IA32_ASLCC_PATH   = DEF(VS2017_BIN)\cl.exe
> -*_VS2017_IA32_ASLPP_PATH   = DEF(VS2017_BIN)\cl.exe
> -*_VS2017_IA32_SLINK_PATH   = DEF(VS2017_BIN)\lib.exe
> -*_VS2017_IA32_DLINK_PATH   = DEF(VS2017_BIN)\link.exe
> -*_VS2017_IA32_ASLDLINK_PATH= DEF(VS2017_BIN)\link.exe
> -*_VS2017_IA32_APP_PATH     = DEF(VS2017_BIN)\cl.exe
> -*_VS2017_IA32_PP_PATH      = DEF(VS2017_BIN)\cl.exe
> -*_VS2017_IA32_ASM_PATH     = DEF(VS2017_BIN)\ml.exe
> +*_VS2017_IA32_CC_PATH      = DEF(VS2017_BIN_IA32)\cl.exe
> +*_VS2017_IA32_VFRPP_PATH   = DEF(VS2017_BIN_IA32)\cl.exe
> +*_VS2017_IA32_ASLCC_PATH   = DEF(VS2017_BIN_IA32)\cl.exe
> +*_VS2017_IA32_ASLPP_PATH   = DEF(VS2017_BIN_IA32)\cl.exe
> +*_VS2017_IA32_SLINK_PATH   = DEF(VS2017_BIN_IA32)\lib.exe
> +*_VS2017_IA32_DLINK_PATH   = DEF(VS2017_BIN_IA32)\link.exe
> +*_VS2017_IA32_ASLDLINK_PATH= DEF(VS2017_BIN_IA32)\link.exe
> +*_VS2017_IA32_APP_PATH     = DEF(VS2017_BIN_IA32)\cl.exe
> +*_VS2017_IA32_PP_PATH      = DEF(VS2017_BIN_IA32)\cl.exe
> +*_VS2017_IA32_ASM_PATH     = DEF(VS2017_BIN_IA32)\ml.exe
> 
>        *_VS2017_IA32_MAKE_FLAGS  = /nologo
>    DEBUG_VS2017_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h
> /EHs-c- /GR- /GF /Gy /Zi /Gm
> @@ -4134,18 +4134,16 @@ NOOPT_VS2017_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /O
>  ##################
>  # X64 definitions
>  ##################
> -*_VS2017_X64_*_DLL         = DEF(VS2017_DLL)
> -
> -*_VS2017_X64_CC_PATH       = DEF(VS2017_BINX64)\cl.exe
> -*_VS2017_X64_PP_PATH       = DEF(VS2017_BINX64)\cl.exe
> -*_VS2017_X64_APP_PATH      = DEF(VS2017_BINX64)\cl.exe
> -*_VS2017_X64_VFRPP_PATH    = DEF(VS2017_BINX64)\cl.exe
> -*_VS2017_X64_ASLCC_PATH    = DEF(VS2017_BINX64)\cl.exe
> -*_VS2017_X64_ASLPP_PATH    = DEF(VS2017_BINX64)\cl.exe
> -*_VS2017_X64_ASM_PATH      = DEF(VS2017_BINX64)\ml64.exe
> -*_VS2017_X64_SLINK_PATH    = DEF(VS2017_BINX64)\lib.exe
> -*_VS2017_X64_DLINK_PATH    = DEF(VS2017_BINX64)\link.exe
> -*_VS2017_X64_ASLDLINK_PATH = DEF(VS2017_BINX64)\link.exe
> +*_VS2017_X64_CC_PATH       = DEF(VS2017_BIN_X64)\cl.exe
> +*_VS2017_X64_PP_PATH       = DEF(VS2017_BIN_X64)\cl.exe
> +*_VS2017_X64_APP_PATH      = DEF(VS2017_BIN_X64)\cl.exe
> +*_VS2017_X64_VFRPP_PATH    = DEF(VS2017_BIN_X64)\cl.exe
> +*_VS2017_X64_ASLCC_PATH    = DEF(VS2017_BIN_X64)\cl.exe
> +*_VS2017_X64_ASLPP_PATH    = DEF(VS2017_BIN_X64)\cl.exe
> +*_VS2017_X64_ASM_PATH      = DEF(VS2017_BIN_X64)\ml64.exe
> +*_VS2017_X64_SLINK_PATH    = DEF(VS2017_BIN_X64)\lib.exe
> +*_VS2017_X64_DLINK_PATH    = DEF(VS2017_BIN_X64)\link.exe
> +*_VS2017_X64_ASLDLINK_PATH = DEF(VS2017_BIN_X64)\link.exe
> 
>    DEBUG_VS2017_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c-
> /GR- /GF /Zi /Gm
>  RELEASE_VS2017_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR-
> /GF
> @@ -4167,14 +4165,12 @@ NOOPT_VS2017_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /O
>  # EBC definitions
>  ##################
>  *_VS2017_EBC_*_FAMILY            = INTEL
> -*_VS2017_EBC_*_DLL               = DEF(VS2017_DLL)
> 
> -*_VS2017_EBC_MAKE_PATH           = DEF(VS2017_BIN)\nmake.exe
>  *_VS2017_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
>  *_VS2017_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
>  *_VS2017_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
> -*_VS2017_EBC_SLINK_PATH          = DEF(VS2017_BIN)\link.exe
> -*_VS2017_EBC_DLINK_PATH          = DEF(VS2017_BIN)\link.exe
> +*_VS2017_EBC_SLINK_PATH          = DEF(VS2017_BIN_IA32)\link.exe
> +*_VS2017_EBC_DLINK_PATH          = DEF(VS2017_BIN_IA32)\link.exe
> 
>  *_VS2017_EBC_MAKE_FLAGS          = /nologo
>  *_VS2017_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
> diff --git a/BaseTools/set_vsprefix_envs.bat b/BaseTools/set_vsprefix_envs.bat
> index dbd4e986403b..9ff64dfd241d 100644
> --- a/BaseTools/set_vsprefix_envs.bat
> +++ b/BaseTools/set_vsprefix_envs.bat
> @@ -3,7 +3,7 @@
>  @REM   however it may be executed directly from the BaseTools project folder
>  @REM   if the file is not executed within a WORKSPACE\BaseTools folder.
>  @REM
> -@REM Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
> +@REM Copyright (c) 2016-2017, Intel Corporation. All rights reserved.<BR>
>  @REM
>  @REM This program and the accompanying materials are licensed and made available
>  @REM under the terms and conditions of the BSD License which accompanies this
> @@ -107,15 +107,16 @@ if not defined VS150COMNTOOLS (
> 
>  if defined VCToolsInstallDir (
>    if not defined VS2017_PREFIX (
> -    set "VS2017_PREFIX=%VCToolsInstallDir%bin\HostX86\x86"
> -    set "VS2017X64_PREFIX=%VCToolsInstallDir%bin\HostX86\x64"
> +    set "VS2017_PREFIX=%VCToolsInstallDir%"
>    )
>  )
>  if not defined WINSDK10_PREFIX (
> -  if exist "%ProgramFiles(x86)%\Windows Kits\10\bin\x86" (
> -    set "WINSDK10_PREFIX=%ProgramFiles(x86)%\Windows Kits\10\bin\x86"
> -  ) else if exist "%ProgramFiles%\Windows Kits\10\bin\x86" (
> -    set "WINSDK10_PREFIX=%ProgramFiles%\Windows Kits\10\bin\x86"
> +  if defined WindowsSdkVerBinPath (
> +    set "WINSDK10_PREFIX=%WindowsSdkVerBinPath%"
> +  ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" (
> +    set "WINSDK10_PREFIX=%ProgramFiles(x86)%\Windows Kits\10\bin"
> +  ) else if exist "%ProgramFiles%\Windows Kits\10\bin" (
> +    set "WINSDK10_PREFIX=%ProgramFiles%\Windows Kits\10\bin"
>    )
>  )
> 
> --
> 2.9.3.windows.2
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel


  reply	other threads:[~2017-11-16 14:44 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-16 13:21 [PATCH 0/1] Update for the 2017-10-18 VS2017 proposal Pete Batard
2017-11-16 13:21 ` [PATCH 1/1] BaseTools: Use VS2017 SDK path if defined and reorganize variables Pete Batard
2017-11-16 14:48   ` Gao, Liming [this message]
2017-11-16 15:45     ` Pete Batard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A89E2EF3DFEDB4C8BFDE51014F606A14E17F40A@SHSMSX104.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox