Minimal System setup
Moderator: Moderator Team
Re: Minimal System setup
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.
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.
Re: Minimal System setup
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:
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).
- 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
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).
Re: Minimal System setup
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.
-
- Posts: 128
- Joined: Sat Dec 22, 2012 7:36 am
Re: Minimal System setup
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).
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.
..\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).
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: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.
- 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.
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.
Re: Minimal System setup
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.
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.
Re: Minimal System setup
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"
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"
- EmuandCo
- Developer
- Posts: 4731
- Joined: Sun Nov 28, 2004 7:52 pm
- Location: Germany, Bavaria, Steinfeld
- Contact:
Re: Minimal System setup
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
".\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...
If my post/reply offends or insults you, be sure that you know what sarcasm is...
Re: Minimal System setup
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
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
- EmuandCo
- Developer
- Posts: 4731
- Joined: Sun Nov 28, 2004 7:52 pm
- Location: Germany, Bavaria, Steinfeld
- Contact:
Re: Minimal System setup
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...
If my post/reply offends or insults you, be sure that you know what sarcasm is...
Re: Minimal System setup
Nowadays the preferred solution (if you're using RosBE 2.1) is: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
.\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).
Who is online
Users browsing this forum: No registered users and 23 guests