Sync with trunk r65656.
[reactos.git] / cmake / writing_CmakeLists_for_ReactOS.txt
1 CMake is used to build ReactOS.
2
3 Here you will find what you'll need to write nice CMakeLists.txt files for ReactOS.
4 CMake standard functions are available too. See http://www.cmake.org/, or type cmake --help-html in your shell to get the full documentation.
5
6 Optional arguments are marked with [brackets], input is marked with <comparison signs>.
7
8 ---------------------------------------------------------------------------------------------------------------------------------------------
9 set_module_type(<target> <type> [UNICODE] [BASEADDRESS <baseaddress>] [ENTRYPOINT <entrypoint> <stacksize>])
10
11 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.
12
13 ARGUMENTS:
14 <target>: name of the target. The module must have been added with add_executable or add_library before calling this function.
15 <type>: one of win32gui, win32cui, win32dll, win32ocx, cpl, nativecui, nativedll, kernelmodedriver
16 UNICODE: provide this if the module was written for unicode API
17 <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.
18 <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.
19 <stacksize>: Size of stack required for the parameters of <entrypoint>.
20
21 TYPICAL USE:
22 set_module_type(msvcrt win32dll ENTRYPOINT DllMain 12)