[CMAKE]
[reactos.git] / CMakeMacros.cmake
index a6014ce..896129a 100644 (file)
@@ -36,7 +36,7 @@ macro(idl_compile_object OBJECT SOURCE)
     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
-  \r
+\r
     foreach(DIR ${INCLUDE_DIRECTORIES})\r
         set(FLAGS "${FLAGS} -I${DIR}")\r
     endforeach()\r
@@ -73,7 +73,7 @@ macro(add_minicd_target _targetname _dir) # optional parameter: _nameoncd
     else()\r
         set(_nameoncd ${ARGN})\r
     endif()\r
-    \r
+\r
     file(APPEND ${REACTOS_BINARY_DIR}/boot/ros_minicd_target.txt "${_targetname}\t${_dir}\t${_nameoncd}\n")\r
 endmacro()\r
 \r
@@ -96,7 +96,7 @@ macro(add_livecd_target _targetname _dir )# optional parameter : _nameoncd
     else()\r
         set(_nameoncd ${ARGN})\r
     endif()\r
-    \r
+\r
     file(APPEND ${REACTOS_BINARY_DIR}/boot/ros_livecd_target.txt "${_targetname}\t${_dir}\t${_nameoncd}\n")\r
 endmacro()\r
 \r
@@ -149,7 +149,7 @@ macro(add_cab FILENAME _num)
     file(APPEND ${REACTOS_BINARY_DIR}/boot/ros_cab.txt "${FILENAME}\t${_num}\n")\r
     cab_to_dir(${_num} _dir)\r
     add_livecd(${FILENAME} ${_dir})\r
-endmacro()    \r
+endmacro()\r
 \r
 macro(custom_incdefs)\r
     if(NOT DEFINED result_incs) #rpc_defines\r
@@ -181,6 +181,13 @@ macro(rpcproxy TARGET)
             PROPERTIES GENERATED TRUE)\r
         list(APPEND SOURCE ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_p.c)\r
         list(APPEND IDLS ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.idl)\r
+<<<<<<< .mine\r
+        list(APPEND PROXY_DEPENDS ${TARGET}_${FILE}_p)\r
+        add_custom_target(${TARGET}_${FILE}_p\r
+            DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_p.c)\r
+        #add_dependencies(${TARGET}_proxy ${TARGET}_${FILE}_p)\r
+=======\r
+>>>>>>> .r50241\r
     endforeach()\r
 \r
     add_custom_command(\r
@@ -190,6 +197,12 @@ macro(rpcproxy TARGET)
     set_source_files_properties(\r
         ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_proxy.dlldata.c\r
         PROPERTIES GENERATED TRUE)\r
+<<<<<<< .mine\r
+\r
+    add_library(${TARGET}_proxy ${SOURCE})\r
+    add_dependencies(${TARGET}_proxy psdk ${PROXY_DEPENDS})\r
+=======\r
+>>>>>>> .r50241\r
 endmacro()\r
 \r
 macro(idl_files)\r
@@ -205,7 +218,7 @@ macro(idl_files)
             PROPERTIES GENERATED TRUE)\r
         add_library(${FILE}_server ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c)\r
         add_dependencies(${FILE}_server psdk)\r
-    \r
+\r
         add_custom_command(\r
             OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c\r
             COMMAND ${IDL_COMPILER} ${result_incs} ${result_defs} ${IDL_FLAGS} ${IDL_HEADER_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h ${IDL_CLIENT_ARG} ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.idl\r
@@ -241,3 +254,30 @@ macro(add_idl_interface IDL_FILE)
         DEPENDS ${IDL_FILE})\r
     set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${FILE}_i.c PROPERTIES GENERATED TRUE)\r
 endmacro()\r
+\r
+macro(add_dependency_node _node)\r
+    if(GENERATE_DEPENDENCY_GRAPH)\r
+        get_target_property(_type ${_node} TYPE)\r
+        if(_type MATCHES SHARED_LIBRARY)\r
+            file(APPEND ${REACTOS_BINARY_DIR}/dependencies.graphml "    <node id=\"${_node}\"/>\n")\r
+        endif()\r
+     endif()\r
+endmacro()\r
+\r
+macro(add_dependency_edge _source _target)\r
+    if(GENERATE_DEPENDENCY_GRAPH)\r
+        get_target_property(_type ${_source} TYPE)\r
+        if(_type MATCHES SHARED_LIBRARY)\r
+            file(APPEND ${REACTOS_BINARY_DIR}/dependencies.graphml "    <edge source=\"${_source}\" target=\"${_target}\"/>\n")\r
+        endif()\r
+    endif()\r
+endmacro()\r
+\r
+macro(add_dependency_header)\r
+    file(APPEND ${REACTOS_BINARY_DIR}/dependencies.graphml "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<graphml>\n  <graph id=\"ReactOS dependencies\" edgedefault=\"directed\">\n")\r
+    add_dependency_node(ntdll)\r
+endmacro()\r
+\r
+macro(add_dependency_footer)\r
+    file(APPEND ${REACTOS_BINARY_DIR}/dependencies.graphml "  </graph>\n</graphml>\n")\r
+endmacro()\r