1 cmake_minimum_required(VERSION 2.8)
4 include(CMakeMacros.cmake)
6 set(CMAKE_INCLUDE_CURRENT_DIR ON)
7 set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
8 set(CMAKE_SHARED_LIBRARY_PREFIX "")
10 set(CMAKE_SKIP_PREPROCESSED_SOURCE_RULES TRUE)
11 set(CMAKE_SKIP_ASSEMBLY_SOURCE_RULES TRUE)
13 add_definitions(-D__REACTOS__)
15 if(NOT CMAKE_CROSSCOMPILING)
17 add_definitions(-DTARGET_i386)
18 add_definitions(-fshort-wchar)
20 include_directories(${REACTOS_SOURCE_DIR}/tools/unicode)
21 include_directories(include)
22 include_directories(include/host)
23 include_directories(include/reactos)
24 include_directories(include/reactos/wine)
25 include_directories(${REACTOS_BINARY_DIR}/include)
27 add_subdirectory(tools)
30 export(TARGETS widl winebuild nci buildno gendib cdmake FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
40 # Activate support for assembly source files
43 # Activate language support for resource files
46 set(IMPORT_EXECUTABLES "${REACTOS_SOURCE_DIR}/build/ImportExecutables.cmake" CACHE FILEPATH "Host executables")
47 include(${IMPORT_EXECUTABLES})
54 add_definitions(-DDBG=${DBG} -DKDBG=${KDBG})
57 add_definitions(-D_SEH_ENABLE_TRACE)
60 if((DBG MATCHES 1) OR (KDBG MATCHES 1))
62 endif((DBG MATCHES 1) OR (KDBG MATCHES 1))
65 add_definitions(-DWINVER=0x502 -D_WIN32_IE=0x600 -D_WIN32_WINNT=0x502 -D_WIN32_WINDOWS=0x502 -D_SETUPAPI_VER=0x502)
68 add_definitions(-D_M_IX86 -D_X86_ -D__i386__)
71 add_definitions(-DUSE_COMPILER_EXCEPTIONS)
72 add_definitions(-D_USE_32BIT_TIME_T)
74 include_directories(include)
75 include_directories(include/psdk)
76 include_directories(include/dxsdk)
77 include_directories(${REACTOS_BINARY_DIR}/include)
78 include_directories(${REACTOS_BINARY_DIR}/include/dxsdk)
79 include_directories(${REACTOS_BINARY_DIR}/include/psdk)
80 include_directories(${REACTOS_BINARY_DIR}/include/reactos)
81 include_directories(include/crt)
83 include_directories(include/crt/msc)
85 include_directories(include/crt/mingw32)
87 include_directories(include/ddk)
88 include_directories(include/ndk)
89 include_directories(include/reactos)
90 include_directories(include/reactos/libs)
92 add_subdirectory(include/psdk)
93 add_subdirectory(include/dxsdk)
94 add_subdirectory(include/reactos/idl)
95 add_subdirectory(include/reactos/mc)
97 add_subdirectory(base)
98 add_subdirectory(boot)
100 add_subdirectory(drivers)
101 add_subdirectory(hal)
102 add_subdirectory(lib)
103 add_subdirectory(ntoskrnl)
104 add_subdirectory(subsystems)
106 # nci generated intermediate files
108 list(APPEND nci_output
109 ${REACTOS_BINARY_DIR}/ntoskrnl/include/internal/napi.h
110 ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/include/napi.h
111 ${REACTOS_BINARY_DIR}/lib/ntdllsys/ntdll.S
112 ${REACTOS_BINARY_DIR}/ntoskrnl/ex/zw.S
113 ${REACTOS_BINARY_DIR}/lib/win32ksys/win32k.S
114 ${REACTOS_BINARY_DIR}/dll/ntdll/def/ntsys.pspec)
116 list(APPEND nci_folders
117 ${CMAKE_CURRENT_BINARY_DIR}/dll/ntdll/def
118 ${CMAKE_CURRENT_BINARY_DIR}/lib/ntdllsys/ntdll
119 ${CMAKE_CURRENT_BINARY_DIR}/lib/win32ksys
120 ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl/include/internal
121 ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl/ex
122 ${CMAKE_CURRENT_BINARY_DIR}/subsystems/win32/win32k/include)
124 file(MAKE_DIRECTORY ${nci_folders})
128 COMMAND native-nci -arch ${ARCH} ${REACTOS_SOURCE_DIR}/ntoskrnl/sysfuncs.lst ${REACTOS_SOURCE_DIR}/subsystems/win32/win32k/w32ksvc.db ${nci_output}
129 DEPENDS native-nci ${nci_folders})
131 set_source_files_properties(${nci_output} PROPERTIES GENERATED TRUE)
133 add_custom_target(ntdll_S ALL DEPENDS ${REACTOS_BINARY_DIR}/lib/ntdllsys/ntdll.S)
134 add_custom_target(win32k_S ALL DEPENDS ${REACTOS_BINARY_DIR}/lib/win32ksys/win32k.S)
135 add_custom_target(ntsys_pspec ALL DEPENDS ${REACTOS_BINARY_DIR}/dll/ntdll/def/ntsys.pspec)
136 add_custom_target(kernel_napi ALL DEPENDS ${REACTOS_BINARY_DIR}/ntoskrnl/include/internal/napi.h)
137 add_custom_target(subsystem_napi ALL DEPENDS ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/include/napi.h)
138 add_custom_target(kernel_zw ALL DEPENDS ${REACTOS_BINARY_DIR}/ntoskrnl/ex/zw.S)
140 file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/include/reactos)
143 OUTPUT ${REACTOS_BINARY_DIR}/include/reactos/buildno.h
144 COMMAND native-buildno ${REACTOS_BINARY_DIR}/include/reactos/buildno.h
145 DEPENDS ${REACTOS_SOURCE_DIR}/include/reactos/version.h)
147 add_custom_target(buildno_header ALL DEPENDS ${REACTOS_BINARY_DIR}/include/reactos/buildno.h)
149 file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib)
151 list(APPEND OUTPUT_FILES
152 ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib/dib8gen.c
153 ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib/dib16gen.c
154 ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib/dib32gen.c)
157 OUTPUT ${OUTPUT_FILES}
158 COMMAND native-gendib ${REACTOS_BINARY_DIR}/subsystems/win32/win32k/dib
159 DEPENDS native-gendib)
161 add_custom_target(gendib_generated ALL DEPENDS ${OUTPUT_FILES})