Skip to content

Commit 30c0659

Browse files
committed
Merge branch 'vsdevcmd'
2 parents c663769 + a4d8d6f commit 30c0659

File tree

1 file changed

+29
-12
lines changed

1 file changed

+29
-12
lines changed

CMakeLists.txt

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -119,27 +119,43 @@ if(MSVC)
119119
if(VSCOMNTOOLS STREQUAL "")
120120
message(WARNING "Environment variable VSCOMNTOOLS not defined and vswhere.exe could not be found. Is Visual Studio properly installed?")
121121
else()
122-
# Find vcvarsall.bat.
123-
get_filename_component(VS_VCVARSALL_BAT ${VSCOMNTOOLS}/../../VC/Auxiliary/Build/vcvarsall.bat ABSOLUTE)
124-
122+
# Find VsDevCmd.bat
123+
get_filename_component(VS_VCVARSALL_BAT ${VSCOMNTOOLS}/VsDevCmd.bat ABSOLUTE)
125124
if(NOT(EXISTS ${VS_VCVARSALL_BAT}))
126-
# older VS versions have it here
127-
get_filename_component(VS_VCVARSALL_BAT ${VSCOMNTOOLS}/../../VC/vcvarsall.bat ABSOLUTE)
125+
# Find vcvarsall.bat.
126+
get_filename_component(VS_VCVARSALL_BAT ${VSCOMNTOOLS}/../../VC/Auxiliary/Build/vcvarsall.bat ABSOLUTE)
127+
128+
if(NOT(EXISTS ${VS_VCVARSALL_BAT}))
129+
# older VS versions have it here
130+
get_filename_component(VS_VCVARSALL_BAT ${VSCOMNTOOLS}/../../VC/vcvarsall.bat ABSOLUTE)
131+
endif()
128132
endif()
129133

130134
if(EXISTS ${VS_VCVARSALL_BAT})
131-
message(STATUS "Found vcvarsall.bat")
132135
set(MEGA_MSVC_VCVARSALL_BAT ${VS_VCVARSALL_BAT})
133136

134-
if(MEGA_X86)
135-
set(MEGA_MSVC_VCVARSALL_BAT_ARG "x86")
136-
elseif(MEGA_ARM64)
137-
set(MEGA_MSVC_VCVARSALL_BAT_ARG "x86_arm64")
137+
if(VS_VCVARSALL_BAT MATCHES "VsDevCmd")
138+
message(STATUS "Found VsDevCmd.bat")
139+
if(MEGA_X86)
140+
set(MEGA_MSVC_VCVARSALL_BAT_ARG "-arch=x86")
141+
else()
142+
set(MEGA_MSVC_VCVARSALL_BAT_ARG "-arch=amd64")
143+
endif()
144+
math(EXPR VS_TOOLCHAIN_VERSION_MAJOR "${VSVERSION} / 10")
145+
math(EXPR VS_TOOLCHAIN_VERSION_MINOR "${VSVERSION} % 10")
146+
set(MEGA_MSVC_VCVARSALL_BAT_ARG "${MEGA_MSVC_VCVARSALL_BAT_ARG} -vcvars_ver=${VS_TOOLCHAIN_VERSION_MAJOR}.${VS_TOOLCHAIN_VERSION_MINOR}")
138147
else()
139-
set(MEGA_MSVC_VCVARSALL_BAT_ARG "x86_amd64")
148+
message(STATUS "Found vcvarsall.bat")
149+
if(MEGA_X86)
150+
set(MEGA_MSVC_VCVARSALL_BAT_ARG "x86")
151+
elseif(MEGA_ARM64)
152+
set(MEGA_MSVC_VCVARSALL_BAT_ARG "x86_arm64")
153+
else()
154+
set(MEGA_MSVC_VCVARSALL_BAT_ARG "x86_amd64")
155+
endif()
140156
endif()
141157
else()
142-
message(WARNING "Could not find vsvarsall.bat")
158+
message(WARNING "Could not find VsDevCmd.bat nor vcvarsall.bat")
143159
endif()
144160
endif()
145161

@@ -316,6 +332,7 @@ if(MSVC AND NOT MEGA_ARM64)
316332
call \"${MEGA_MSVC_VCVARSALL_BAT}\" ${MEGA_MSVC_VCVARSALL_BAT_ARG}
317333
)
318334
cd \"${MEGA_LUAJIT_SOURCE_DIR}/src\"
335+
cl
319336
msvcbuild.bat debug amalg
320337
")
321338

0 commit comments

Comments
 (0)