Minimal System setup

All development related issues welcome

Moderator: Moderator Team

vicmarcal
Test Team
Posts: 2733
Joined: Mon Jul 07, 2008 12:35 pm

Re: Minimal System setup

Post by vicmarcal »

Devs are working in Visual Studio compatibility.
The old Rosbe was using Rbuild as "orchestra director", which was notcompatible with Visual Studio.
After a titanic work, they were able to ditch Rbuild and move to cmake. Now Reactos is compillable with Visual Studio compiler and Gcc. There is work to be done if we want to launch the compilation from the IDE.
But yes, one of the objectives is Visuak Studio IDE support.
hbelusca
Developer
Posts: 1204
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Minimal System setup

Post by hbelusca »

If you have Visual Studio and you absolutely want it, just :
- check-out somewhere the existing ReactOS source,
- open VS command prompt,
- create an output directory where to create some output files,
- in this directory, do:

Code: Select all

<path_to_ROS_source>\configure VSSolution
and you will, in a simple way, get the needed VS files.

You forget that we use CMake to generate build files out of "portable" CMakeLists.txt files ("portable" in the sense, independent of the build automation tools you're using, in a compiler-independent method).
hbelusca
Developer
Posts: 1204
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Minimal System setup

Post by hbelusca »

Then, concerning using Visual Studio to do ReactOS debugging, it is "as complicated" as when you do debugging of a program running on a version of Windows in a virtual machine. To debug device-drivers, you'll need WinDbg or, if you still want to use Visual Studio, have either VS 2012 which allows you to debug drivers directly in it or, if you have VS <= 2010, use http://visualddk.sysprogs.org/ which is a little bit hard to configure and may not work on ReactOS.
BlackRabbit
Posts: 128
Joined: Sat Dec 22, 2012 7:36 am

Re: Minimal System setup

Post by BlackRabbit »

I deliberately avoided building ReactOS until now, so 5 minutes ago was my first attempt to do an actual build. I already had the source tree downloaded, so I created a directory called mydir under the ReactOS source tree and, while inside mydir, tried:

..\configure VSSolution

I get the error:

Unable to find cmake, if it is installed, check your PATH variable.

This is not surprising, since I have not yet integrated cmake.

And that illustrates my original point.

The problem is not that I do not know how to read the ReactOS instructions on build, download cmake, understand dependencies, etc. [In fact, 3 hours ago, I was working on a modified version of the algorithm that is used to managed dependencies by make utilities: fast generation of directed-acyclic graphs using breadth-first-search + non-Dikjstra shortest path computation]. The point is that, it is unnecessary, especially for a novice. The amount of time from typing in the SVN URL into Visual Studio, for example, to running Notepad.EXE, could be 30 minutes or less, for someone with basic understanding of how to build and run an application under Visual Studio:

However, this statement must be qualified, because, as you pointed out, there is the need for portability of the build system. So I have a suggestion (see below).
Then, concerning using Visual Studio to do ReactOS debugging, it is "as complicated" as when you do debugging of a program running on a version of Windows in a virtual machine. To debug device-drivers, you'll need WinDbg or, if you still want to use Visual Studio, have either VS 2012 which allows you to debug drivers directly in it or, if you have VS <= 2010, use http://visualddk.sysprogs.org/ which is a little bit hard to configure and may not work on ReactOS.
This is one of the reasons that I did not attempt to build or execute ReactOS (yet). I suspected that, if the build was not integrated with Visual Studio (in the full sense), then the execute-and-test cycle would be accordingly different. Two thoughts come to mind regarding the ease of debugging, considering that some of the code is user-mode, and some of it is kernel-mode:
  • For kernel-mode code, obviously, the best situation is to run ReactOS inside a virtual machine, with something like visualddk, as you mentioned.
  • For user-mode code, I would imagine that, in most cases, it would be easier simply to execute the application on the host machine. There are at least two sub-cases here:
    • The application is to be executed against the KERNEL32.DLL/USER32.DLL/SHLWAPI.DLL/etc. of Microsoft Windows.
    • The application is to be executed against the KERNEL32.DLL/USER32.DLL/SHLWAPI.DLL/etc. of ReactOS.
    The first case has benefit, despite not using ReactOS as much, obviously. Less-experienced programmers would take comfort in knowing that, when their user-mode application crashes, it is not because there is a problem in the ReactOS Win32 user-mode subsystem. At most, the bug might be in a ReactOS statically-linked library, but more likely, it is the programmer's code itself that is the problem, which will be easy to debug using the normal Visual Studio debug cycle. But the second case also has benefit, because even if it is ReactOS code, the code is still user-mode code, and so can be fixed, right from inside Visual Studio, recompiled from within Visual Studio, tested from within Visual Studio, and committed from within Visual Studio. It would not be too difficult to make it easy to alternate between these two sub-cases.
Suggestion:

Changing from cmake is too disruptive, of course. I think a strategy that would make sense, and would not interfere with cmake, would be to integrate Visual Studio while cmake remains the main build process, especially for veterans. Using Visual Studio in parallel would not cause problems because almost all other developers would be editing files that are essentially unrelated to the build structure. Of course, files might be added, etc., but this would remain under the extant process, and the Visual Studio build system would simply track whatever already exists.
hbelusca
Developer
Posts: 1204
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Minimal System setup

Post by hbelusca »

Hmmm just to clarify a bit, CMake is given with RosBE so, you have the choice of either downloading CMake by itself, then install it somewhere... or, download RosBE and you'll get it. But for the latter solution, add to PATH the path where RosBE binaries are installed, namely (e.g.): C:\RosBE\Bin .
And we'll never drop away CMake because many of ReactOS users and developers use Linux as host and development platform. They build ReactOS with GCC.
tothpaul
Posts: 8
Joined: Wed Dec 19, 2012 6:48 am

Re: Minimal System setup

Post by tothpaul »

Hello,

From my point of view:

- I do not realy want to compile ReactOS, it's just a way to have the last release from the source code.
- I'm a Delphi developper, I do have a version of free version of Visual Studio on my laptops, but 90% of the time, I can't just open a Solution to build it, they are some prerequisite that my system doesnt match or I don't have the right version of VS for the project. I'm unfamiliar with the error messages and don't know how to fix them, , even for basic setups stuff.

I think the easiest solution would be a program that downloads everything needed, launches the compilation and gives an error report. From this point of view the many warnings of the project is not done to simplify things.

RosBE almost do that already, lacks a procedure to download the SVN tree, a dialog box to choose the type of compilation and a GO button :) Something like the menu driven compilation of the Linux kernel...BTW I do not understand why so many Linux application requires ".\configure" ".\make" and .\make install" instead of just a "\.install" :)
User avatar
EmuandCo
Developer
Posts: 4731
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: Minimal System setup

Post by EmuandCo »

Errrr, type "help" and check the ssvn command... theres your solution!

".\configure" Autoconf writes a makefile specific for your GCC / Binutils / mingw Version and other environmental specialities of your system.
".\make" Builds the stuff
".\make install" Installs the built stuff
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
tothpaul
Posts: 8
Joined: Wed Dec 19, 2012 6:48 am

Re: Minimal System setup

Post by tothpaul »

I'm not a beginner, I just don't like C :)

I did build ReactOS, as well as Linux Kernel, Apache & cie, but for a newbie, a single Install.exe that call "ssvn create" "configure Ninja" and "ninja bootcd" is just easier :)
User avatar
EmuandCo
Developer
Posts: 4731
Joined: Sun Nov 28, 2004 7:52 pm
Location: Germany, Bavaria, Steinfeld
Contact:

Re: Minimal System setup

Post by EmuandCo »

Well IMO a newbie does not need to build from source. This is a compiler suite for ppl who plan to do changes on the code or need it for regression testing. Everyone else should load it from the nightly site.
ReactOS is still in alpha stage, meaning it is not feature-complete and is recommended only for evaluation and testing purposes.

If my post/reply offends or insults you, be sure that you know what sarcasm is...
hbelusca
Developer
Posts: 1204
Joined: Sat Dec 26, 2009 10:36 pm
Location: Zagreb, Croatia

Re: Minimal System setup

Post by hbelusca »

EmuandCo wrote:Errrr, type "help" and check the ssvn command... theres your solution!

".\configure" Autoconf writes a makefile specific for your GCC / Binutils / mingw Version and other environmental specialities of your system.
".\make" Builds the stuff
".\make install" Installs the built stuff
Nowadays the preferred solution (if you're using RosBE 2.1) is:

.\configure Ninja
cd host-tools
ninja
cd ..\reactos
ninja
ninja bootcd (for the bootcd)
ninja livecd (for the livecd)

(see this: http://reactos.org/forum/viewtopic.php? ... f6c#p97987 for more information).
Post Reply

Who is online

Users browsing this forum: No registered users and 23 guests