Building Arras on Windows #183
Replies: 10 comments 5 replies
|
Regarding point 3, I see that ArrasCore::execute is Linux-only, so I guess that answers that question. Is it ok to leave it out entirely when porting to Windows? |
|
Hi Brian,
|
|
Update: I've now got 16 out of 21 Arras modules building on Windows. Of the remaining 5, one just has .dll export problems, very easy to fix. The other 4 will need some actual code updates/rewrites. We'll see how that goes, but I'm very happy with the progress so far! |
|
Further update: 17 out of 21 Arras modules now build on Windows. The vast majority of the problems were due to .dll function exports, but that's all fixed now. I've also made a few code changes here and there as mentioned above (Sleep(), gettimeofday(), etc). Of the 4 modules remaining, arras4_node has 24 errors, arras4_router 78, node_router 77 and node_session 3. All of these errors are due to Linux commands that don't work on Windows, such as kill() and poll(). 78 sounds like a lot, but it's mostly Visual Studio objecting to the same thing in several different ways. All in all I'd say it's just a few dozen lines total. The task now is to find Windows replacements for these commands. I've had some luck with solutions that people have posted on GitHub and elsewhere, so hopefully that will continue. |
|
@jlanz I've now successfully compiled (most) of Arras on Windows! I have 18 libraries built plus arras4_router.exe. I ran into trouble with arras4_node. As mentioned above, the CMake generate step fails as a result of ArrasCore::execute in two CMakeLists.txt files. I found a few lines in another CMakeLists.txt implying this module is intended for Linux only. That led me to comment out ArrasCore::execute and finish the generation step. That allowed me to get as far as I have. However, arras4_node seems to require ProcessManager, which in turn requires the execute module. I'm not sure I'm understanding this correctly, it's a complicated business and I'm trying to piece together an understanding as best I can. From the readme, it looks like arras4_node is needed only on the render node side of things. Ultimately I want to send jobs from Windows and render on Linux only, so I'm thinking arras4_node on Windows is irrelevant in my case. Am I on the right track with this? I'd be happy to leave Arras mostly complete (missing arras4_node only) and move on to other parts of the project. |
|
@jlanz Following up on my above questions, I'm working on mcrt_dataio right now. I'm following the project order listed here: #106 However, the mcrt_dataio CMakeLists.txt shows McrtDenoise and SceneRdl2 as dependencies even though they're not in the first 4-item list. Is this an oversight in that project order or should those two dependencies be removed when building on Windows? Thank you! |
|
@jlanz Looking ahead to the next two in the list, Hydra and mcrt_computation, I see that they additionally list Moonray and Moonshine as dependencies. Can you please confirm if the original project order is accurate or if there are some dependencies missing from the list? Right now it looks to me like I'd have to add Moonray, Moonshine, McrtDenoise and SceneRdl2 at the very least. |
|
@jlanz I've hit a wall with scene_rdl2. I got it to successfully generate with Ninja without any unusual warnings. However, upon trying to build the project Ninja isn't happy:
I've tried lots of searches and LLMs, but building with Ninja and ISPC on Windows is such an esoteric thing that there is almost no related info that I can find. Do you have any suggestions? Thanks! |
|
@jlanz I'm still at an impasse with the ISPC stuff. I've been in touch with some ISPC experts and it looks like there's no chance in the near future of CMake being able to generate a VS solution when ISPC is involved. So, I'm stuck with Ninja. Do you have any suggestions how to proceed? What build system do you use internally for Windows? I would have thought that since Ninja generated everything successfully it would build, but no such luck. Like I said, this is esoteric stuff and I can't find anything helpful online. I've made such good progress up until this point that I hate to give up now. Thanks! |
|
Hi @BrianHanke - we don't build for Windows internally and I am not sure I can be of much help. I do know that in some early Windows tests one of our developers mentioned that he used ninja, but unfortunately I don't know much more. |
Uh oh!
There was an error while loading. Please reload this page.
Howdy all, I'm giving myself a fresh start on MoonRay for Windows. I recently built it on Rocky 9 in WSL and was surprised and pleased by how well MR works in that environment. So, I'm going to try the Hydra -> Arras -> MR on Linux route.
I've got the Arras dependencies installed via vcpkg. Configuring and generating the VS 2022 solution with CMake works fine. Before I continue, I've got a few general questions:
ArrasCore::executein two CMakeLists.txt files a few levels deep in the distributed folder. I just commented them out for now and CMake was able to finish, but I imagine this will have to be addressed at some point. Any idea whyexecutewas a problem but not any of the others (arras4_log,network, etc)?Many thanks!
All reactions