[CMAKE]
[reactos.git] / gcc.cmake
index 1819531..1dc23f2 100644 (file)
--- a/gcc.cmake
+++ b/gcc.cmake
@@ -108,3 +108,18 @@ macro(set_rc_compiler)
 \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