Difference between revisions of "CMake"
|Line 2:||Line 2:|
'''Latest version (cmake 2.8.4) is not supported. Please use 2.8.2 until this is fixed!'''
Revision as of 15:30, 5 March 2011
Latest version (cmake 2.8.4) is not supported. Please use 2.8.2 until this is fixed!
Preparing the Build Environment
To build using CMake the cmake-bringup branch must first be checked out. After obtaining the source, the following two subfolders must be created:
Navigate to the tools subfolder in the RosBE folder and copy make.exe to mingw32-make.exe.
To build the branch the build tools must first be compiled using CMake. This needs to be done for the first build and whenever there is a change to the build tools.
cd build cmake -G "MinGW Makefiles" ..\ make cd ..
With the build tools compiled, ReactOS can now be compiled. In the case of CMakeLists being updated it is best to remove the content of the build-ros folder and rebuild ReactOS.
cd build-ros cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain-mingw32.cmake ..\ make
To build a specific module (i.e: "win32k" ) you can follow the next steps: Building Modules
Building Modules much Faster (CMake feature)
NOTE: The following syntax can be used just with Cmake.
Cmake implements a feature that can speed up the modules building process using the Fast syntax. You can use the Fast syntax if your changes just affects one module and does not change any code of others modules that the Desired module depends on. This /fast syntax skips dependency checking before compiling starts, so it is terrible fast ;)
NOTE2: You need at least to have compiled the Desired module once with "make Desired_module " before using the Fast syntax.
One simple example: You have changed just some "win32k" code (Desired module) but you did not change any module that the Desired module depends on(i.e,the PSDK headers),you have also the "Win32k-before-changes" module compiled, then you can use the Fast syntax to compile the new "win32k" module in few seconds.
Warning: The Fast syntax just will look for changes in the Desired module, not checking if any other modules have been modified.
The Fast syntax to build any module is:
If you want to compile Win32k, it would be:
Building a Bootcd
To build a bootcd you can follow the next steps: Building ReactOS
Building a bootcd much Faster
NOTE: This method is just available with CMake.
Thanks to Fast syntax,creating a bootcd is much faster. Before compiling bootcd with Fast syntax you have to be sure that any Dependent module has been compiled previously. "/Fast" skips dependency checking before compiling starts.
Remember: You need at least to have compiled the Desired module once with "make Desired_module " before using the bootcd Fast syntax. Read Building Modules much Faster for more info.
An example: "You have added some changes in win32k module and now you want a bootcd with your new modified win32k.You have,also, the "win32k-before-changes" compiled."
,as your changes are just related to win32k.
Read the following carefully:
It's mandatory to compile at least once with "make bootcd" before using tge Fast syntax. It's mandatory to compile the module changes before invoking bootcd/fast, otherwise your changes won't be added. If your changes are modifying modules that win32k depends on, you should use "make win32k" and then invoke "make bootcd/fast" instead. If your changes are modifying several INDEPENDENT modules, compile all of them with Fast syntax and afterwards a perform a bootcd/fast compilation. This method becomes less practical when you alter many modules.