- Add typelib support macro and use it with stdole2. By Jerome Gardou.

svn path=/branches/cmake-bringup/; revision=48914
This commit is contained in:
Amine Khaldi 2010-09-28 13:32:41 +00:00
parent c0c597d9c6
commit 9a79b1e80d
4 changed files with 33 additions and 12 deletions

View file

@ -108,3 +108,18 @@ macro(set_rc_compiler)
SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> ${result_defs} ${result_incs} -i <SOURCE> -O coff -o <OBJECT>")
endmacro()
#typelib support
macro(ADD_TYPELIB TARGET)
FOREACH(SOURCE ${ARGN})
GET_FILENAME_COMPONENT(FILE ${SOURCE} NAME_WE)
SET(OBJECT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}.tlb)
ADD_CUSTOM_COMMAND(
OUTPUT ${OBJECT}
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}
DEPENDS native-widl
)
LIST(APPEND OBJECTS ${OBJECT})
ENDFOREACH()
ADD_CUSTOM_TARGET(${TARGET} ALL DEPENDS ${OBJECTS})
ENDMACRO()

View file

@ -109,12 +109,4 @@ endif()
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)

View file

@ -61,7 +61,7 @@ library stdole
void *pfnDeferredFillIn;
SCODE scode;
} EXCEPINFO;
#ifndef __midl
[
odl,
uuid(00000000-0000-0000-C000-000000000046),
@ -139,7 +139,7 @@ library stdole
HRESULT Clone(
[out] IEnumVARIANT **ppenum);
}
#endif /* !__midl */
typedef [uuid(66504301-BE0F-101A-8BBB-00AA00300CAB), public]
unsigned long OLE_COLOR;

View file

@ -64,4 +64,18 @@ SET(CMAKE_CXX_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od")
macro(set_rc_compiler)
# dummy, this workaround is only needed in mingw due to lack of RC support in cmake
endmacro()
endmacro()
#typelib support
macro(ADD_TYPELIB TARGET)
FOREACH(SOURCE ${ARGN})
GET_FILENAME_COMPONENT(FILE ${SOURCE} NAME_WE)
SET(OBJECT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}.tlb)
ADD_CUSTOM_COMMAND(
OUTPUT ${OBJECT}
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}
)
LIST(APPEND OBJECTS ${OBJECT})
ENDFOREACH()
ADD_CUSTOM_TARGET(${TARGET} ALL DEPENDS ${OBJECTS})
ENDMACRO()