[CMAKE]
[reactos.git] / include / reactos / idl / CMakeLists.txt
1
2 remove_definitions(-DWINVER=0x502)
3 add_definitions(-DWINVER=0x600)
4
5 include_directories(.)
6
7 get_directory_property(defines COMPILE_DEFINITIONS)
8 get_directory_property(includes INCLUDE_DIRECTORIES)
9
10 foreach(arg ${defines})
11 set(result_defs ${result_defs} -D${arg})
12 endforeach(arg ${defines})
13
14 foreach(arg ${includes})
15 set(result_incs -I${arg} ${result_incs})
16 endforeach(arg ${includes})
17
18 macro (MACRO_IDL_FILES)
19
20 foreach(_in_FILE ${ARGN})
21 get_filename_component(FILE ${_in_FILE} NAME_WE)
22 add_custom_command(
23 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c
24 COMMAND native-widl ${result_incs} ${result_defs} -m32 --win32 -h -H ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.h -s -S ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.idl
25 DEPENDS native-widl)
26 set_source_files_properties(
27 ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c
28 PROPERTIES GENERATED TRUE)
29 add_library(${FILE}_server ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c)
30 add_dependencies(${FILE}_server psdk)
31
32 add_custom_command(
33 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c
34 COMMAND native-widl ${result_incs} ${result_defs} -m32 --win32 -h -H ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h -c -C ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.idl
35 DEPENDS native-widl)
36 set_source_files_properties(
37 ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c
38 PROPERTIES GENERATED TRUE)
39 add_library(${FILE}_client ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c)
40 add_dependencies(${FILE}_client psdk)
41 endforeach(_in_FILE ${ARGN})
42
43 endmacro (MACRO_IDL_FILES)
44
45 list(APPEND SOURCE
46 eventlogrpc.idl
47 lsa.idl
48 pnp.idl
49 svcctl.idl
50 wlansvc.idl)
51
52 MACRO_IDL_FILES(${SOURCE})