reactos/cmake/writing_CmakeLists_for_ReactOS.txt
Hermès Bélusca-Maïto e1ef078741 Create this branch to work on loading of different Kernel-Debugger DLL providers, and see whether it is possible to move KDBG from ntoskrnl to a new DLL called, say, KDROSDBG.DLL.
The idea then would be to have the following behaviour (when specifying the following options in the kernel command line):

/DEBUGPORT=COMi --> load KDCOM.DLL and use COMi port (i == 1,2,3,4) if possible.
/DEBUGPORT=FOO  --> load KDFOO.DLL (useful for KDUSB.DLL, KD1394.DLL, KDBAZIS.DLL for VirtualKD, etc...)
/DEBUGPORT=ROSDBG:[COMi|SCREEN|FILE|GDB|...] --> load KDROSDBG.DLL which contains the ROS kernel debugger, and use COMi or SCREEN or... as output port.

svn path=/branches/kd++/; revision=58883
2013-04-28 13:26:45 +00:00

23 lines
1.5 KiB
Plaintext

CMake is used to build ReactOS.
Here you will find what you'll need to write nice CMakeLists.txt files for ReactOS.
CMake standard functions are available too. See http://www.cmake.org/, or type cmake --help-html in your shell to get the full documentation.
Optional arguments are marked with [brackets], input is marked with <comparison signs>.
---------------------------------------------------------------------------------------------------------------------------------------------
set_module_type(<target> <type> [UNICODE] [BASEADDRESS <baseaddress>] [ENTRYPOINT <entrypoint> <stacksize>])
This set the type of the module, and take cares of setting common linker options or definitions to the specified target, module file extension, etc. Please always use this when adding a module to reactos build.
ARGUMENTS:
<target>: name of the target. The module must have been added with add_executable or add_library before calling this function.
<type>: one of win32gui, win32cui, win32dll, win32ocx, cpl, nativecui, nativedll, kernelmodedriver
UNICODE: provide this if the module was written for unicode API
<baseaddress>: provide this if you want your module to have a different base address than the defualt one (according to <type>). For win32dll modules, please use baseaddress.cmake instead.
<entrypoint>: name of the function which will be the entr point of the module. If it's not provided, it's guessed from the module type.
<stacksize>: Size of stack required for the parameters of <entrypoint>.
TYPICAL USE:
set_module_type(msvcrt win32dll ENTRYPOINT DllMain 12)