- Add typelib support macro and use it with stdole2. By Jerome Gardou.
svn path=/branches/cmake-bringup/; revision=48914
\r
SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> ${result_defs} ${result_incs} -i <SOURCE> -O coff -o <OBJECT>")\r
endmacro()\r
+\r
+#typelib support\r
+macro(ADD_TYPELIB TARGET)\r
+ FOREACH(SOURCE ${ARGN})\r
+ GET_FILENAME_COMPONENT(FILE ${SOURCE} NAME_WE)\r
+ SET(OBJECT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}.tlb)\r
+ ADD_CUSTOM_COMMAND(\r
+ OUTPUT ${OBJECT}\r
+ COMMAND native-widl -I${REACTOS_SOURCE_DIR}/include/dxsdk -I. -I${REACTOS_SOURCE_DIR}/include -I${REACTOS_SOURCE_DIR}/include/psdk -m32 --win32 -t -T ${OBJECT} ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE}\r
+ DEPENDS native-widl\r
+ )\r
+ LIST(APPEND OBJECTS ${OBJECT})\r
+ ENDFOREACH()\r
+ ADD_CUSTOM_TARGET(${TARGET} ALL DEPENDS ${OBJECTS})\r
+ENDMACRO()\r
ADD_INTERFACE_DEFINITIONS(psdk ${SOURCE})
-ADD_CUSTOM_COMMAND(
- OUTPUT ${REACTOS_BINARY_DIR}/include/psdk/stdole2.tlb
- COMMAND native-widl -I${REACTOS_SOURCE_DIR}/include/dxsdk -I. -I${REACTOS_SOURCE_DIR}/include -I${REACTOS_SOURCE_DIR}/include/psdk -m32 --win32 -t -T ${REACTOS_BINARY_DIR}/include/psdk/stdole2.tlb ${REACTOS_SOURCE_DIR}/include/psdk/stdole2.idl
- DEPENDS native-widl
-)
-
-SET_SOURCE_FILES_PROPERTIES(${REACTOS_BINARY_DIR}/include/psdk/stdole2.tlb PROPERTIES GENERATED TRUE)
-
-ADD_CUSTOM_TARGET(stdole2 ALL DEPENDS ${REACTOS_BINARY_DIR}/include/psdk/stdole2.tlb)
+ADD_TYPELIB(stdole2 stdole2.idl)
void *pfnDeferredFillIn;
SCODE scode;
} EXCEPINFO;
-
+#ifndef __midl
[
odl,
uuid(00000000-0000-0000-C000-000000000046),
HRESULT Clone(
[out] IEnumVARIANT **ppenum);
}
-
+#endif /* !__midl */
typedef [uuid(66504301-BE0F-101A-8BBB-00AA00300CAB), public]
unsigned long OLE_COLOR;
\r
macro(set_rc_compiler)\r
# dummy, this workaround is only needed in mingw due to lack of RC support in cmake\r
-endmacro()
\ No newline at end of file
+endmacro()\r
+\r
+#typelib support\r
+macro(ADD_TYPELIB TARGET)\r
+ FOREACH(SOURCE ${ARGN})\r
+ GET_FILENAME_COMPONENT(FILE ${SOURCE} NAME_WE)\r
+ SET(OBJECT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}.tlb)\r
+ ADD_CUSTOM_COMMAND(\r
+ OUTPUT ${OBJECT}\r
+ COMMAND midl /I ${REACTOS_SOURCE_DIR}/include/dxsdk /I . /I ${REACTOS_SOURCE_DIR}/include /I ${REACTOS_SOURCE_DIR}/include/psdk /win32 /tlb ${OBJECT} ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE}\r
+ )\r
+ LIST(APPEND OBJECTS ${OBJECT})\r
+ ENDFOREACH()\r
+ ADD_CUSTOM_TARGET(${TARGET} ALL DEPENDS ${OBJECTS})\r
+ENDMACRO()
\ No newline at end of file