terralang / terra

Terra is a low-level system programming language that is embedded in and meta-programmed by the Lua programming language.
terralang.org
Other
2.72k stars 201 forks source link

RFC: Deprecate NMake build on Windows #403

Closed elliottslaughter closed 4 years ago

elliottslaughter commented 5 years ago

Related to #383, now that we support CMake on Windows it would be nice to get rid of the old NMake build, particularly because NMake is even less full-featured than regular Make is.

As far as I know the CMake build on Windows is full-featured, so I'm not aware of any reason to put this off except to give time to let the CMake build get tested in the wild.

Windows users: please test CMake now and make sure it works for you.

slaughterj commented 5 years ago

Related to #383, now that we support CMake on Windows it would be nice to get rid of the old NMake build, particularly because NMake is even less full-featured than regular Make is.

As far as I know the CMake build on Windows is full-featured, so I'm not aware of any reason to put this off except to give time to let the CMake build get tested in the wild.

Windows users: please test CMake now and make sure it works for you.

I have attempted to try the CMake build on windows, unfortunately I'm not that well versed in its usage and do not know how to let it know how to find the llvm+clang I've built from source and/or the one from https://github.com/Mx7f/llvm-package-windows/releases. I know about the find package script but am assuming that it's just for llvm+clang installed through the windows installer?

elliottslaughter commented 5 years ago

You can use the variable CMAKE_PREFIX_PATH to hint to CMake where it should look for LLVM. You can just point that to whatever directory you unpacked or installed LLVM to.

You also currently need to specify -DTERRA_SLIB_INCLUDE_LLVM=OFF -DTERRA_SLIB_INCLUDE_LUAJIT=OFF when you run CMake (I should really make these the default on Windows so you don't need to remember this).

elliottslaughter commented 4 years ago

Please see the instructions at https://github.com/terralang/terra#building-terra and reply if the Windows instructions are missing anything.

elliottslaughter commented 4 years ago

Similar to https://github.com/terralang/terra/issues/383, I'm planning on going forward with this. Speak now if you have any objections. The implications will be similar to what I've outlined at the top of #383, except I may do the final removal even more quickly since NMake is such a hacky build system, even more than Make.

elliottslaughter commented 4 years ago

I'm going to consider NMake hereby deprecated. I pushed a formal deprecation notice to CHANGES.md.

elliottslaughter commented 3 years ago

NMake has been formally deprecated for about 10 months now, and this issue was first submitted nearly 18 months ago. I'm planning on finally going through with the removal of NMake support, most likely at the same time as I remove LLVM 3.5 (see https://github.com/terralang/terra/issues/456). I never heard any objections to this issue, but certainly if there are any, let me know.

ErikMcClure commented 3 years ago

I haven't tried recently, but I know i've managed to compile terra using cmake on windows, so I don't rely on nmake anymore anyway, and even if the cmake file ends up getting messy I can probably fix it.

elliottslaughter commented 3 years ago

The PR to finally remove this code is at #489. I should still do a release beforehand so that we have a definitive "last supported" point for this code before it's removed though.

elliottslaughter commented 3 years ago

489 has been merged and this code has finally been removed. The last supported release was 1.0.0-beta3.