cmake-rs
cmake-rs copied to clipboard
Cannot correctly build Luau - disables a required flag /EHsc when vanilla cmake does not
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...
(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:
"cmake" "C:\\Users\\LoganDark\\CLionProjects\\luau\\luau-sys\\luau" "-G" "Visual Studio 16 2019" "-Thost=x64" "-Ax64" "-DLUAU_BUILD_CLI=OFF" "-DLUAU_BUILD_TESTS=OFF" "-DCMAKE_INSTALL_PREFIX=C:\\Users\\LoganDark\\CLionProjects\\luau\\target\\debug\\build\\luau-sys-7f8bb85230e5cd51\\out" "-DCMAKE_C_FLAGS= -nologo -MD -Brepro" "-DCMAKE_C_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_ASM_FLAGS= -nologo -MD -Brepro" "-DCMAKE_ASM_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_BUILD_TYPE=Debug"
"cmake" "--build" "." "--target" "ALL_BUILD" "--config" "Debug" "--parallel" "12"
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.
The same thing happens to me with assimp
.
I just add the flag for now