@@ -119,27 +119,43 @@ if(MSVC)
119
119
if(VSCOMNTOOLS STREQUAL "")
120
120
message(WARNING "Environment variable VSCOMNTOOLS not defined and vswhere.exe could not be found. Is Visual Studio properly installed?")
121
121
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)
125
124
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()
128
132
endif()
129
133
130
134
if(EXISTS ${VS_VCVARSALL_BAT})
131
- message(STATUS "Found vcvarsall.bat")
132
135
set(MEGA_MSVC_VCVARSALL_BAT ${VS_VCVARSALL_BAT})
133
136
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}")
138
147
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()
140
156
endif()
141
157
else()
142
- message(WARNING "Could not find vsvarsall .bat")
158
+ message(WARNING "Could not find VsDevCmd.bat nor vcvarsall .bat")
143
159
endif()
144
160
endif()
145
161
@@ -316,6 +332,7 @@ if(MSVC AND NOT MEGA_ARM64)
316
332
call \"${MEGA_MSVC_VCVARSALL_BAT}\" ${MEGA_MSVC_VCVARSALL_BAT_ARG}
317
333
)
318
334
cd \"${MEGA_LUAJIT_SOURCE_DIR}/src\"
335
+ cl
319
336
msvcbuild.bat debug amalg
320
337
")
321
338
0 commit comments