I'm going to open this as an issue because fundamentally this seems to be a problem with cmake-rs - as cmake on its own builds Luau just fine.
Using cmake . and then cmake --build . has no issue from a Windows command prompt, but cmake-rs does this:
Microsoft (R) Build Engine version 16.10.2+857e5a733 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Checking Build System
Ast.cpp
lapi.cpp
laux.cpp
Confusables.cpp
lbaselib.cpp
lbitlib.cpp
lbuiltins.cpp
Lexer.cpp
lcorolib.cpp
ldblib.cpp
ldebug.cpp
ldo.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(1245,1): error C2220: the following warning is treated as an error [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(1275): message : see reference to function template instantiation 'void std::vector<Item,std::allocator<Item>>::_Resize_reallocate<_Ty2>(const unsigned __int64,const _Ty2 &)' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
Item=Luau::AstNameTable::Entry,
_Ty2=Luau::AstNameTable::Entry
]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(1275): message : see reference to function template instantiation 'void std::vector<Item,std::allocator<Item>>::_Resize_reallocate<_Ty2>(const unsigned __int64,const _Ty2 &)' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
Item=Luau::AstNameTable::Entry,
_Ty2=Luau::AstNameTable::Entry
]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(1295): message : see reference to function template instantiation 'void std::vector<Item,std::allocator<Item>>::_Resize<_Ty>(const unsigned __int64,const _Ty2 &)' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
Item=Luau::AstNameTable::Entry,
_Ty=Luau::AstNameTable::Entry,
_Ty2=Luau::AstNameTable::Entry
]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(1295): message : see reference to function template instantiation 'void std::vector<Item,std::allocator<Item>>::_Resize<_Ty>(const unsigned __int64,const _Ty2 &)' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
Item=Luau::AstNameTable::Entry,
_Ty=Luau::AstNameTable::Entry,
_Ty2=Luau::AstNameTable::Entry
]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(1293): message : while compiling class template member function 'void std::vector<Item,std::allocator<Item>>::resize(const unsigned __int64,const _Ty &)' [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
Item=Luau::AstNameTable::Entry,
_Ty=Luau::AstNameTable::Entry
]
C:\Users\LoganDark\CLionProjects\luau\luau-sys\luau\Ast\include\Luau/DenseHash.h(46): message : see reference to function template instantiation 'void std::vector<Item,std::allocator<Item>>::resize(const unsigned __int64,const _Ty &)' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
Item=Luau::AstNameTable::Entry,
_Ty=Luau::AstNameTable::Entry
]
C:\Users\LoganDark\CLionProjects\luau\luau-sys\luau\Ast\include\Luau/DenseHash.h(234): message : see reference to class template instantiation 'std::vector<Item,std::allocator<Item>>' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
Item=Luau::AstNameTable::Entry
]
C:\Users\LoganDark\CLionProjects\luau\luau-sys\luau\Ast\include\Luau/DenseHash.h(286): message : see reference to class template instantiation 'Luau::detail::DenseHashTable<Key,Key,Key,Luau::detail::ItemInterfaceSet<Key>,Hash,Eq>' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
Key=Luau::AstNameTable::Entry,
Hash=Luau::AstNameTable::EntryHash,
Eq=std::equal_to<Luau::AstNameTable::Entry>
]
C:\Users\LoganDark\CLionProjects\luau\luau-sys\luau\Ast\include\Luau/Lexer.h(157): message : see reference to class template instantiation 'Luau::DenseHashSet<Luau::AstNameTable::Entry,Luau::AstNameTable::EntryHash,std::equal_to<Key>>' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
Key=Luau::AstNameTable::Entry
]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(1245,1): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
Location.cpp
C:\Users\LoganDark\CLionProjects\luau\luau-sys\luau\VM\src\ldo.cpp(118,5): error C2220: the following warning is treated as an error [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.VM.vcxproj]
C:\Users\LoganDark\CLionProjects\luau\luau-sys\luau\VM\src\ldo.cpp(118,5): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.VM.vcxproj]
lfunc.cpp
lgc.cpp
linit.cpp
lmathlib.cpp
lmem.cpp
Parser.cpp
lobject.cpp
loslib.cpp
lperf.cpp
C:\Users\LoganDark\CLionProjects\luau\luau-sys\luau\Ast\src\Parser.cpp(154,5): error C2220: the following warning is treated as an error [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
C:\Users\LoganDark\CLionProjects\luau\luau-sys\luau\Ast\src\Parser.cpp(154,5): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
lstate.cpp
lstring.cpp
lstrlib.cpp
Generating Code...
StringUtils.cpp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(765,1): error C2220: the following warning is treated as an error [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(739): message : see reference to function template instantiation 'std::basic_string_view<char,std::char_traits<char>> *std::vector<std::string_view,std::allocator<std::string_view>>::_Emplace_reallocate<_Ty>(std::basic_string_view<char,std::char_traits<char>> *const ,_Ty &&)' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
_Ty=std::basic_string_view<char,std::char_traits<char>>
]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(747): message : see reference to function template instantiation 'std::basic_string_view<char,std::char_traits<char>> *std::vector<std::string_view,std::allocator<std::string_view>>::_Emplace_reallocate<_Ty>(std::basic_string_view<char,std::char_traits<char>> *const ,_Ty &&)' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
_Ty=std::basic_string_view<char,std::char_traits<char>>
]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(761): message : see reference to function template instantiation '_Ty &std::vector<_Ty,std::allocator<_Ty>>::emplace_back<std::basic_string_view<char,std::char_traits<char>>>(std::basic_string_view<char,std::char_traits<char>> &&)' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
_Ty=std::string_view
]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(759): message : while compiling class template member function 'void std::vector<std::string_view,std::allocator<std::string_view>>::push_back(_Ty &&)' [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
_Ty=std::string_view
]
C:\Users\LoganDark\CLionProjects\luau\luau-sys\luau\Ast\src\StringUtils.cpp(111): message : see reference to function template instantiation 'void std::vector<std::string_view,std::allocator<std::string_view>>::push_back(_Ty &&)' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
with
[
_Ty=std::string_view
]
C:\Users\LoganDark\CLionProjects\luau\luau-sys\luau\Ast\src\StringUtils.cpp(91): message : see reference to class template instantiation 'std::vector<std::string_view,std::allocator<std::string_view>>' being compiled [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector(765,1): warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc [C:\Users\LoganDark\CLionProjects\luau\target\debug\build\luau-sys-7f8bb85230e5cd51\out\build\Luau.Ast.vcxproj]
Generating Code...
Compiling...
ltable.cpp
ltablib.cpp
ltm.cpp
lutf8lib.cpp
lvmexecute.cpp
lvmload.cpp
lvmutils.cpp
Generating Code...
I'm going to open this as an issue because fundamentally this seems to be a problem with cmake-rs - as cmake on its own builds Luau just fine.
Using
cmake .
and thencmake --build .
has no issue from a Windows command prompt, but cmake-rs does this:(from https://github.com/Roblox/luau/discussions/123 - where the owners have cut off all outside interaction, so I can't even open a PR anymore)
The exact commands cmake-rs runs are:
Something in here is causing the build to fail. Note that it succeeds without issue in WSL, it's only Cursed Windows that has this problem.