From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: None (no SPF record) identity=mailfrom; client-ip=2a00:1450:400c:c09::229; helo=mail-wm0-x229.google.com; envelope-from=pete@akeo.ie; receiver=edk2-devel@lists.01.org Received: from mail-wm0-x229.google.com (mail-wm0-x229.google.com [IPv6:2a00:1450:400c:c09::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id F179320355206 for ; Thu, 16 Nov 2017 05:17:12 -0800 (PST) Received: by mail-wm0-x229.google.com with SMTP id 9so9823540wme.4 for ; Thu, 16 Nov 2017 05:21:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akeo-ie.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=OYxXwQ8aww8Y2mG1IHNufBayGG+UOVdjgh8FlyV6WG8=; b=ZYsi+DJI9yUD+Y484rnXA3+nkhzSe/QUV2zyJ6RNgrV36izLqk0OdcfmVfqX9Nv3Os jRFa0F7QBu4E3SA5IkV134ylmDAy1k5Aw3B/wpW/qzcw6j709+SBL6yeuvv72VEQoNdU gKOTZ5O5UQNnr7q+3JvtyF/F/30Jg7W65d9zK8TI9QAVlZEzWT26wmu72IpNUR44yznK uUwwo02JSC5JNdm0EWPlrP/ws2DrgfwRuPScpSRSZFwoAQ3fyXTJV0a3O6iDFA6zNQqq clf8BHntFDzRODcTHGhQCPqlNCW1Xihv5mhE3gCtZ7vQ3rYwOIGtypJQqS6QYME6E9gW teWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=OYxXwQ8aww8Y2mG1IHNufBayGG+UOVdjgh8FlyV6WG8=; b=fz9tmXlORvjzUE+tIEWBnn5X+eooV8xoaOgJdG7/vAb22Z5aukw+GBhVZnDywCjJ4C arr+mGEbJ+FHpQLZ3j7fVtvrhUXxZTq9qErYxeZKuuYKenMcbjN0rS4FDkr9bOks4UyK Cs0bJs3SsUSrvcl4aJIQrKbs23sbzV3kgJTImjS1V+jI3i/UKeyPZt/W18u2b272yYs+ SoBEJWf0z8RVmQ6UBJ7p+z1nFmHoysFJQg3cU5eZWdyI1UwKfbVComHGuCHHOrhCfOCW izUNgzZw7hoOnk1GpJ2EfGM4sdBhQ8Ag9z11bX8R4T5niEwDtBNCkXjQ4Eov8Q0RUnD4 Zesg== X-Gm-Message-State: AJaThX5q8Xizy9OyU+8UxiW8I150lcHEq16bGDNLC7VOIt1nB/ifLGOk UtPbHLwAe94tRWqgCSIiWRMWAaQ9RSk= X-Google-Smtp-Source: AGs4zMbtH+xtFhOgqDrN/nn29Tw2swEtltrKwBAmeM/fweZTNt+hucE0nK+RZ4qMH6D9ix0uNnhChQ== X-Received: by 10.80.157.141 with SMTP id w13mr2843610ede.151.1510838481035; Thu, 16 Nov 2017 05:21:21 -0800 (PST) Received: from localhost.localdomain ([84.203.65.190]) by smtp.gmail.com with ESMTPSA id l4sm1334097edc.20.2017.11.16.05.21.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 16 Nov 2017 05:21:20 -0800 (PST) From: Pete Batard To: edk2-devel@lists.01.org Cc: liming.gao@intel.com Date: Thu, 16 Nov 2017 13:21:10 +0000 Message-Id: <20171116132110.11060-2-pete@akeo.ie> X-Mailer: git-send-email 2.9.3.windows.2 In-Reply-To: <20171116132110.11060-1-pete@akeo.ie> References: <20171116132110.11060-1-pete@akeo.ie> Subject: [PATCH 1/1] BaseTools: Use VS2017 SDK path if defined and reorganize variables X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Nov 2017 13:17:13 -0000 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 _ 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 --- 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.
+@REM Copyright (c) 2016-2017, Intel Corporation. All rights reserved.
@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