-
-MACRO(_PCH_GET_COMPILE_FLAGS _target_name _out_compile_flags _header_filename)
-
- # Add the precompiled header to the build
- get_filename_component(FILE ${_header_filename} NAME)
- set(_gch_filename "${_target_name}_${FILE}.gch")
- list(APPEND ${_out_compile_flags} -c ${_header_filename} -o ${_gch_filename})
-
- # This gets us our includes
- get_directory_property(DIRINC INCLUDE_DIRECTORIES)
- foreach(item ${DIRINC})
- list(APPEND ${_out_compile_flags} -I${item})
- endforeach(item)
-
- # This is a particular bit of undocumented/hacky magic I'm quite proud of
- get_directory_property(_compiler_flags DEFINITIONS)
- string(REPLACE "\ " "\t" _compiler_flags ${_compiler_flags})
- list(APPEND ${_out_compile_flags} ${_compiler_flags})
-
- # This gets any specific definitions that were added with set-target-property
- get_target_property(_target_defs ${_target_name} COMPILE_DEFINITIONS)
- if (_target_defs)
- foreach(item ${_target_defs})
- list(APPEND ${_out_compile_flags} -D${item})
- endforeach(item)
- endif()
-
-ENDMACRO(_PCH_GET_COMPILE_FLAGS)
-
-MACRO(add_pch _target_name _header_filename _src_list)
-
- get_filename_component(FILE ${_header_filename} NAME)
- set(_gch_filename "${_target_name}_${FILE}.gch")
- list(APPEND ${_src_list} ${_gch_filename})
- _PCH_GET_COMPILE_FLAGS(${_target_name} _args ${_header_filename})
- file(REMOVE ${_gch_filename})
- add_custom_command(
- OUTPUT ${_gch_filename}
- COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${_args}
- DEPENDS ${_header_filename})
-
-ENDMACRO(add_pch _target_name _header_filename _src_list)
-
-MACRO(spec2def _target_name _spec_file _def_file)
-
- add_custom_command(
- OUTPUT ${_def_file}
- COMMAND native-winebuild -o ${_def_file} --def -E ${_spec_file} --filename ${_target_name}.dll
- DEPENDS native-winebuild)
- set_source_files_properties(${_def_file} PROPERTIES GENERATED TRUE)
- add_custom_target(${_target_name}_def ALL DEPENDS ${_def_file})
-
-ENDMACRO(spec2def _target_name _spec_file _def_file)
-
-MACRO(CreateBootSectorTarget _target_name _asm_file _object_file)
-
- get_filename_component(OBJECT_PATH ${_object_file} PATH)
- file(MAKE_DIRECTORY ${OBJECT_PATH})
- get_directory_property(defines COMPILE_DEFINITIONS)
- get_directory_property(includes INCLUDE_DIRECTORIES)
-
- foreach(arg ${defines})
- set(result_defs ${result_defs} -D${arg})
- endforeach(arg ${defines})
-
- foreach(arg ${includes})
- set(result_incs -I${arg} ${result_incs})
- endforeach(arg ${includes})
-
- add_custom_command(
- OUTPUT ${_object_file}
- COMMAND nasm -o ${_object_file} ${result_incs} ${result_defs} -f bin ${_asm_file}
- DEPENDS native-winebuild)
- set_source_files_properties(${_object_file} PROPERTIES GENERATED TRUE)
- add_custom_target(${_target_name} ALL DEPENDS ${_object_file})
-
-ENDMACRO(CreateBootSectorTarget _target_name _asm_file _object_file)
+\r
+MACRO(_PCH_GET_COMPILE_FLAGS _target_name _out_compile_flags _header_filename)\r
+\r
+ # Add the precompiled header to the build\r
+ get_filename_component(FILE ${_header_filename} NAME)\r
+ set(_gch_filename "${_target_name}_${FILE}.gch")\r
+ list(APPEND ${_out_compile_flags} -c ${_header_filename} -o ${_gch_filename})\r
+\r
+ # This gets us our includes\r
+ get_directory_property(DIRINC INCLUDE_DIRECTORIES)\r
+ foreach(item ${DIRINC})\r
+ list(APPEND ${_out_compile_flags} -I${item})\r
+ endforeach(item) \r
+\r
+ # This is a particular bit of undocumented/hacky magic I'm quite proud of\r
+ get_directory_property(_compiler_flags DEFINITIONS)\r
+ string(REPLACE "\ " "\t" _compiler_flags ${_compiler_flags})\r
+ list(APPEND ${_out_compile_flags} ${_compiler_flags})\r
+\r
+ # This gets any specific definitions that were added with set-target-property\r
+ get_target_property(_target_defs ${_target_name} COMPILE_DEFINITIONS)\r
+ if (_target_defs)\r
+ foreach(item ${_target_defs})\r
+ list(APPEND ${_out_compile_flags} -D${item})\r
+ endforeach(item)\r
+ endif()\r
+\r
+ENDMACRO(_PCH_GET_COMPILE_FLAGS) \r
+\r
+MACRO(add_pch _target_name _header_filename _src_list)\r
+ \r
+ get_filename_component(FILE ${_header_filename} NAME)\r
+ set(_gch_filename "${_target_name}_${FILE}.gch")\r
+ list(APPEND ${_src_list} ${_gch_filename})\r
+ _PCH_GET_COMPILE_FLAGS(${_target_name} _args ${_header_filename})\r
+ file(REMOVE ${_gch_filename})\r
+ add_custom_command(\r
+ OUTPUT ${_gch_filename}\r
+ COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1} ${_args}\r
+ DEPENDS ${_header_filename})\r
+\r
+ENDMACRO(add_pch _target_name _header_filename _src_list)\r
+\r
+MACRO(spec2def _target_name _spec_file _def_file)\r
+\r
+ add_custom_command(\r
+ OUTPUT ${_def_file}\r
+ COMMAND native-winebuild -o ${_def_file} --def -E ${_spec_file} --filename ${_target_name}.dll\r
+ DEPENDS native-winebuild)\r
+ set_source_files_properties(${_def_file} PROPERTIES GENERATED TRUE)\r
+ add_custom_target(${_target_name}_def ALL DEPENDS ${_def_file})\r
+\r
+ENDMACRO(spec2def _target_name _spec_file _def_file)\r
+\r
+if (NOT MSVC)\r
+MACRO(CreateBootSectorTarget _target_name _asm_file _object_file)\r
+\r
+ get_filename_component(OBJECT_PATH ${_object_file} PATH)\r
+ file(MAKE_DIRECTORY ${OBJECT_PATH})\r
+ get_directory_property(defines COMPILE_DEFINITIONS)\r
+ get_directory_property(includes INCLUDE_DIRECTORIES)\r
+\r
+ foreach(arg ${defines})\r
+ set(result_defs ${result_defs} -D${arg})\r
+ endforeach(arg ${defines})\r
+\r
+ foreach(arg ${includes})\r
+ set(result_incs -I${arg} ${result_incs})\r
+ endforeach(arg ${includes})\r
+\r
+ add_custom_command(\r
+ OUTPUT ${_object_file}\r
+ COMMAND nasm -o ${_object_file} ${result_incs} ${result_defs} -f bin ${_asm_file}\r
+ DEPENDS native-winebuild)\r
+ set_source_files_properties(${_object_file} PROPERTIES GENERATED TRUE)\r
+ add_custom_target(${_target_name} ALL DEPENDS ${_object_file})\r
+\r
+ENDMACRO(CreateBootSectorTarget _target_name _asm_file _object_file)\r
+else()\r
+MACRO(CreateBootSectorTarget _target_name _asm_file _object_file)\r
+ENDMACRO()\r
+endif()\r
+\r
+MACRO(MACRO_IDL_COMPILE_OBJECT OBJECT SOURCE)\r
+ GET_PROPERTY(FLAGS SOURCE ${SOURCE} PROPERTY COMPILE_FLAGS)\r
+ GET_PROPERTY(DEFINES SOURCE ${SOURCE} PROPERTY COMPILE_DEFINITIONS)\r
+ GET_PROPERTY(INCLUDE_DIRECTORIES DIRECTORY PROPERTY INCLUDE_DIRECTORIES)\r
+ FOREACH(DIR ${INCLUDE_DIRECTORIES})\r
+ SET(FLAGS "${FLAGS} -I${DIR}")\r
+ ENDFOREACH()\r
+\r
+ SET(IDL_COMMAND ${CMAKE_IDL_COMPILE_OBJECT})\r
+ STRING(REPLACE "<CMAKE_IDL_COMPILER>" "${CMAKE_IDL_COMPILER}" IDL_COMMAND "${IDL_COMMAND}")\r
+ STRING(REPLACE <FLAGS> "${FLAGS}" IDL_COMMAND "${IDL_COMMAND}")\r
+ STRING(REPLACE "<DEFINES>" "${DEFINES}" IDL_COMMAND "${IDL_COMMAND}")\r
+ STRING(REPLACE "<OBJECT>" "${OBJECT}" IDL_COMMAND "${IDL_COMMAND}")\r
+ STRING(REPLACE "<SOURCE>" "${SOURCE}" IDL_COMMAND "${IDL_COMMAND}")\r
+ SEPARATE_ARGUMENTS(IDL_COMMAND)\r
+\r
+ ADD_CUSTOM_COMMAND(\r
+ OUTPUT ${OBJECT}\r
+ COMMAND ${IDL_COMMAND}\r
+ DEPENDS ${SOURCE}\r
+ VERBATIM\r
+ )\r
+ENDMACRO()\r
+\r
+MACRO(ADD_INTERFACE_DEFINITIONS TARGET)\r
+ FOREACH(SOURCE ${ARGN})\r
+ GET_FILENAME_COMPONENT(FILE ${SOURCE} NAME_WE)\r
+ SET(OBJECT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}.h)\r
+ MACRO_IDL_COMPILE_OBJECT(${OBJECT} ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE})\r
+ LIST(APPEND OBJECTS ${OBJECT})\r
+ ENDFOREACH()\r
+ ADD_CUSTOM_TARGET(${TARGET} ALL DEPENDS ${OBJECTS})\r
+ENDMACRO()\r
-MACRO (MACRO_ADD_PSDK_INTERFACES)
+LIST(APPEND SOURCE
+# access.idl
+ activaut.idl
+# asynot.idl
+# asysta.idl
+ bdaiface.idl
+# binres.idl
+ bits.idl
+ bits1_5.idl
+# cmdbas.idl
+# cmdtxt.idl
+ comcat.idl
+ commoncontrols.idl
+ control.idl
+# crtrow.idl
+ ctxtcall.idl
+# dbccmd.idl
+# dbcses.idl
+# dbdsad.idl
+# dbinit.idl
+# dbprop.idl
+# dbs.idl
+ devenum.idl
+ dimm.idl
+ dispex.idl
+ docobj.idl
+ downloadmgr.idl
+# dyngraph.idl
+ exdisp.idl
+ fusion.idl
+ hlink.idl
+ htiframe.idl
+ iads.idl
+ icftypes.idl
+ imnact.idl
+ imnxport.idl
+ indexsrv.idl
+ mimeinfo.idl
+ mimeole.idl
+ mscoree.idl
+ msdadc.idl
+ mshtmhst.idl
+ msinkaut.idl
+ mstask.idl
+ msxml.idl
+ msxml2.idl
+ netcon.idl
+ netfw.idl
+ oaidl.idl
+ objidl.idl
+ objsafe.idl
+ ocidl.idl
+ ocmm.idl
+ oleacc.idl
+ oledb.idl
+ oleidl.idl
+# opnrst.idl
+ optary.idl
+ perhist.idl
+ propidl.idl
+ propsys.idl
+ pstore.idl
+ richole.idl
+# row.idl
+# rowchg.idl
+# rstbas.idl
+# rstinf.idl
+# rstloc.idl
+ sensevts.idl
+ servprov.idl
+# sesprp.idl
+ shdeprecated.idl
+ shldisp.idl
+ shtypes.idl
+# stdole2.idl
+ strmif.idl
+ structuredquerycondition.idl
+ textstor.idl
+ tom.idl
+ tuner.idl
+ unknwn.idl
+ urlhist.idl
+ urlmon.idl
+ vmr9.idl
+# vmrender.idl
+ wbemcli.idl
+ wia_lh.idl
+ wia_xp.idl
+ wtypes.idl
+ xmldom.idl
+ xmldso.idl
+ xmllite.idl)
- FOREACH(_in_FILE ${ARGN})
-
- GET_FILENAME_COMPONENT(FILE ${_in_FILE} NAME_WE)
-
- ADD_CUSTOM_COMMAND(
- OUTPUT ${REACTOS_BINARY_DIR}/include/psdk/${FILE}.h
- COMMAND native-widl -I${REACTOS_SOURCE_DIR}/include/dxsdk -I. -I${REACTOS_SOURCE_DIR}/include -I${REACTOS_SOURCE_DIR}/include/psdk -m32 --win32 -h -H ${REACTOS_BINARY_DIR}/include/psdk/${FILE}.h ${REACTOS_SOURCE_DIR}/include/psdk/${FILE}.idl
- DEPENDS native-widl
- )
-
- SET_SOURCE_FILES_PROPERTIES(
- ${REACTOS_BINARY_DIR}/include/psdk/${FILE}.h
- PROPERTIES
- GENERATED TRUE
- )
-
- LIST(APPEND PSDK_HEADERS ${REACTOS_BINARY_DIR}/include/psdk/${FILE}.h)
-
- ENDFOREACH(_in_FILE ${ARGN})
-
-ENDMACRO (MACRO_ADD_PSDK_INTERFACES)
-
-file(GLOB_RECURSE SOURCE "*.idl")
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/access.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/asynot.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/asysta.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/binres.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/cmdbas.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/cmdtxt.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/crtrow.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/dbccmd.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/dbcses.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/dbdsad.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/dbinit.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/vmrender.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/sesprp.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/stdole2.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/rstloc.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/rstbas.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/rstinf.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/rowchg.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/row.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/opnrst.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/dyngraph.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/dbs.idl)
-LIST(REMOVE_ITEM SOURCE ${REACTOS_SOURCE_DIR}/include/psdk/dbprop.idl)
-
-MACRO_ADD_PSDK_INTERFACES(${SOURCE})
+if(NOT MSVC)
+ LIST(APPEND SOURCE
+ activscp.idl
+ activdbg.idl
+ asptlb.idl
+ ctfutb.idl
+ mlang.idl
+ msctf.idl
+ mshtml.idl
+ shobjidl.idl
+ wincodec.idl
+ wuapi.idl
+)
+endif()
-ADD_CUSTOM_TARGET(psdk ALL DEPENDS ${PSDK_HEADERS})
+ADD_INTERFACE_DEFINITIONS(psdk ${SOURCE})
ADD_CUSTOM_COMMAND(
OUTPUT ${REACTOS_BINARY_DIR}/include/psdk/stdole2.tlb
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)
\ No newline at end of file
+ADD_CUSTOM_TARGET(stdole2 ALL DEPENDS ${REACTOS_BINARY_DIR}/include/psdk/stdole2.tlb)