[CMAKE]
authorSylvain Petreolle <spetreolle@yahoo.fr>
Fri, 22 Oct 2010 13:15:58 +0000 (13:15 +0000)
committerSylvain Petreolle <spetreolle@yahoo.fr>
Fri, 22 Oct 2010 13:15:58 +0000 (13:15 +0000)
Add mkhive to build.
Add livecd target.
Make filename optional in add_mini_target, using the target one as default.
Move MACRO_IDL_FILES to CMakeMacros.cmake.
Add rpcproxy macro.
Build interface definitions headers for epm and irot.

svn path=/branches/cmake-bringup/; revision=49218

CMakeLists.txt
CMakeMacros.cmake
boot/CMakeLists.txt
include/reactos/idl/CMakeLists.txt
include/reactos/wine/CMakeLists.txt [new file with mode: 0644]

index 464a106..2e4d69c 100644 (file)
@@ -40,9 +40,9 @@ add_subdirectory(tools)
 add_subdirectory(lib)
 
 if(NOT MSVC)
-export(TARGETS widl winebuild nci buildno gendib cdmake FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
+export(TARGETS widl winebuild nci buildno gendib cdmake mkhive FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
 else()
-export(TARGETS winebuild nci buildno gendib cdmake FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
+export(TARGETS winebuild nci buildno gendib cdmake mkhive FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake NAMESPACE native- )
 endif()
 
 else()
@@ -97,6 +97,7 @@ include_directories(include/reactos/libs)
 add_subdirectory(include/psdk)
 add_subdirectory(include/dxsdk)
 add_subdirectory(include/reactos/idl)
+add_subdirectory(include/reactos/wine)
 add_subdirectory(include/reactos/mc)
 
 #minicd target
@@ -114,6 +115,25 @@ add_custom_command(
 add_custom_target(minicd DEPENDS ${REACTOS_BINARY_DIR}/minicd.iso)
 add_minicd(${REACTOS_SOURCE_DIR}/boot/bootdata/bootcd.ini "" freeldr.ini)
 
+#livecd target
+set(LIVECD_DIR "${REACTOS_BINARY_DIR}/boot/livecd")
+
+file(MAKE_DIRECTORY "${LIVECD_DIR}")
+file(MAKE_DIRECTORY "${LIVECD_DIR}/loader")
+file(MAKE_DIRECTORY "${LIVECD_DIR}/reactos")
+file(MAKE_DIRECTORY "${LIVECD_DIR}/reactos/fonts")
+file(MAKE_DIRECTORY "${LIVECD_DIR}/reactos/system32")
+file(MAKE_DIRECTORY "${LIVECD_DIR}/reactos/system32/config")
+
+
+
+add_custom_command(
+    OUTPUT ${REACTOS_BINARY_DIR}/livecd.iso
+    COMMAND native-cdmake -v -j -m -b ${CMAKE_CURRENT_BINARY_DIR}/boot/freeldr/bootsect/isoboot.bin ${LIVECD_DIR} REACTOS ${REACTOS_BINARY_DIR}/livecd.iso
+    DEPENDS native-cdmake)
+add_custom_target(livecd DEPENDS ${REACTOS_BINARY_DIR}/livecd.iso)
+add_livecd(${REACTOS_SOURCE_DIR}/boot/bootdata/livecd.ini "" freeldr.ini)
+
 add_subdirectory(base)
 add_subdirectory(boot)
 add_subdirectory(dll)
index 24bd890..880555a 100644 (file)
@@ -116,11 +116,17 @@ MACRO(ADD_INTERFACE_DEFINITIONS TARGET)
   ADD_CUSTOM_TARGET(${TARGET} ALL DEPENDS ${OBJECTS})\r
 ENDMACRO()\r
 \r
-MACRO(add_minicd_target _targetname _dir _nameoncd)\r
+MACRO(add_minicd_target _targetname _dir) # optional parameter: _nameoncd\r
     get_target_property(FILENAME ${_targetname} LOCATION)\r
 \r
+    if("${ARGN}" STREQUAL "")\r
+       get_filename_component(_nameoncd ${FILENAME} NAME)\r
+    else()\r
+       set(_nameoncd ${ARGN})\r
+    endif()\r
+\r
     add_custom_command(\r
-        OUTPUT ${REACTOS_BINARY_DIR}/boot/bootcd/${_dir}/${_nameoncd}        \r
+        OUTPUT ${BOOTCD_DIR}/${_dir}/${_nameoncd}        \r
         COMMAND ${CMAKE_COMMAND} -E copy ${FILENAME} ${BOOTCD_DIR}/${_dir}/${_nameoncd})\r
 \r
     add_custom_target(${_targetname}_minicd DEPENDS ${BOOTCD_DIR}/${_dir}/${_nameoncd})\r
@@ -138,9 +144,115 @@ MACRO(add_minicd FILENAME _dir _nameoncd)
     add_custom_target(${_nameoncd}_minicd DEPENDS ${BOOTCD_DIR}/${_dir}/${_nameoncd})\r
     \r
     add_dependencies(minicd ${_nameoncd}_minicd)\r
-ENDMACRO(add_minicd)
+ENDMACRO(add_minicd)\r
 
 macro(set_cpp)
   include_directories(BEFORE ${REACTOS_SOURCE_DIR}/lib/3rdparty/stlport/stlport)
   set(IS_CPP 1)
-endmacro()\r
+endmacro()
+\r
+MACRO(add_livecd_target _targetname _dir )# optional parameter : _nameoncd\r
+    \r
+    get_target_property(FILENAME ${_targetname} LOCATION)\r
+\r
+    if("${ARGN}" STREQUAL "")\r
+       get_filename_component(_nameoncd ${FILENAME} NAME)\r
+    else()\r
+       set(_nameoncd ${ARGN})\r
+    endif()\r
+\r
+    add_custom_command(\r
+        OUTPUT ${LIVECD_DIR}/${_dir}/${_nameoncd}        \r
+        COMMAND ${CMAKE_COMMAND} -E copy ${FILENAME} ${LIVECD_DIR}/${_dir}/${_nameoncd})\r
+        \r
+    add_custom_target(${_targetname}_livecd DEPENDS ${LIVECD_DIR}/${_dir}/${_nameoncd})\r
+\r
+    add_dependencies(${_targetname}_livecd ${_targetname})\r
+    add_dependencies(livecd ${_targetname}_livecd)\r
+ENDMACRO(add_livecd_target _targetname _dir _nameoncd)\r
+\r
+MACRO(add_livecd FILENAME _dir _nameoncd)\r
+    add_custom_command(\r
+        OUTPUT ${LIVECD_DIR}/${_dir}/${_nameoncd}\r
+        DEPENDS ${FILENAME}\r
+        COMMAND ${CMAKE_COMMAND} -E copy ${FILENAME} ${LIVECD_DIR}/${_dir}/${_nameoncd})\r
+        \r
+    add_custom_target(${_nameoncd}_livecd DEPENDS ${LIVECD_DIR}/${_dir}/${_nameoncd})\r
+    \r
+    add_dependencies(livecd ${_nameoncd}_livecd)\r
+ENDMACRO(add_livecd)\r
+\r
+macro(custom_incdefs)\r
+    if(NOT DEFINED result_incs) #rpc_defines\r
+        get_directory_property(rpc_defines COMPILE_DEFINITIONS)\r
+        get_directory_property(rpc_includes INCLUDE_DIRECTORIES)\r
+\r
+        foreach(arg ${rpc_defines})\r
+            set(result_defs ${result_defs} -D${arg})\r
+        endforeach(arg ${defines})\r
+\r
+        foreach(arg ${rpc_includes})\r
+            set(result_incs -I${arg} ${result_incs})\r
+        endforeach(arg ${includes})\r
+    endif()\r
+endmacro(custom_incdefs)\r
+\r
+macro(rpcproxy TARGET)\r
+    custom_incdefs()\r
+        list(APPEND SOURCE ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_proxy.dlldata.c)\r
+\r
+    foreach(_in_FILE ${ARGN})\r
+        get_filename_component(FILE ${_in_FILE} NAME_WE)\r
+        add_custom_command(\r
+            OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_p.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_p.c\r
+            COMMAND native-widl ${result_incs} ${result_defs} -m32 --win32 -h -H ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_p.h -p -P ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_p.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.idl\r
+            DEPENDS native-widl)\r
+        set_source_files_properties(\r
+            ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_p.c\r
+            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
+        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
+    endforeach(_in_FILE ${ARGN})\r
+    \r
+       add_custom_command(\r
+           OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_proxy.dlldata.c\r
+           COMMAND native-widl ${result_incs} ${result_defs}  -m32 --win32 --dlldata-only --dlldata=${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_proxy.dlldata.c ${IDLS}\r
+           DEPENDS native-widl)\r
+       set_source_files_properties(\r
+           ${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_proxy.dlldata.c\r
+           PROPERTIES GENERATED TRUE)\r
+        \r
+        add_library(${TARGET}_proxy ${SOURCE})\r
+        add_dependencies(${TARGET}_proxy psdk ${PROXY_DEPENDS})\r
+endmacro(rpcproxy)\r
+\r
+macro (MACRO_IDL_FILES)\r
+    custom_incdefs()\r
+    foreach(_in_FILE ${ARGN})\r
+        get_filename_component(FILE ${_in_FILE} NAME_WE)\r
+        add_custom_command(\r
+            OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c\r
+            COMMAND native-widl ${result_incs} ${result_defs} -m32 --win32 -h -H ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.h -s -S ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.idl\r
+            DEPENDS native-widl)\r
+        set_source_files_properties(\r
+            ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c\r
+            PROPERTIES GENERATED TRUE)\r
+        add_library(${FILE}_server ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c)\r
+        add_dependencies(${FILE}_server psdk)\r
+    \r
+        add_custom_command(\r
+            OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c\r
+            COMMAND native-widl ${result_incs} ${result_defs} -m32 --win32 -h -H ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h -c -C ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.idl\r
+            DEPENDS native-widl)\r
+        set_source_files_properties(\r
+            ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c\r
+            PROPERTIES GENERATED TRUE)\r
+        add_library(${FILE}_client ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c)\r
+        add_dependencies(${FILE}_client psdk)\r
+    endforeach(_in_FILE ${ARGN})\r
+\r
+endmacro (MACRO_IDL_FILES)\r
index 5d5cf35..c6d9813 100644 (file)
@@ -206,6 +206,23 @@ target_link_libraries(setupldr
     rtl
     libcntpr)
 
+list(APPEND LIVECD_HIVES
+    ${CMAKE_CURRENT_SOURCE_DIR}/bootdata/livecd.inf
+    ${CMAKE_CURRENT_SOURCE_DIR}/bootdata/hiveinst_i386.inf)
+
+add_custom_command(
+    OUTPUT ${LIVECD_DIR}/reactos/system32/config/sam
+
+    COMMAND native-mkhive ${CMAKE_CURRENT_SOURCE_DIR}/bootdata ${LIVECD_DIR}/reactos/system32/config/ ${ARCH} ${LIVECD_HIVES}
+    DEPENDS native-mkhive)
+
+add_custom_target(livecd_hives DEPENDS ${LIVECD_DIR}/reactos/system32/config/sam)
+
+# Bootcd files
 add_minicd_target(setupldr loader setupldr.sys)
 add_minicd_target(freeldr loader freeldr.sys)
-add_minicd(${CMAKE_CURRENT_SOURCE_DIR}/bootdata/txtsetup.sif reactos txtsetup.sif)
\ No newline at end of file
+add_minicd(${CMAKE_CURRENT_SOURCE_DIR}/bootdata/txtsetup.sif reactos txtsetup.sif)
+
+# Livecd files
+add_livecd_target(setupldr loader)
+add_dependencies(livecd livecd_hives isoboot)
\ No newline at end of file
index 2ae12a9..63e6f20 100644 (file)
@@ -1,52 +1,13 @@
 
-remove_definitions(-DWINVER=0x502)
-add_definitions(-DWINVER=0x600)
-
 include_directories(.)
 
-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})
-
-macro (MACRO_IDL_FILES)
-
-    foreach(_in_FILE ${ARGN})
-        get_filename_component(FILE ${_in_FILE} NAME_WE)
-        add_custom_command(
-            OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c
-            COMMAND native-widl ${result_incs} ${result_defs} -m32 --win32 -h -H ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.h -s -S ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.idl
-            DEPENDS native-widl)
-        set_source_files_properties(
-            ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c
-            PROPERTIES GENERATED TRUE)
-        add_library(${FILE}_server ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_s.c)
-        add_dependencies(${FILE}_server psdk)
-    
-        add_custom_command(
-            OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c
-            COMMAND native-widl ${result_incs} ${result_defs} -m32 --win32 -h -H ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h -c -C ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.idl
-            DEPENDS native-widl)
-        set_source_files_properties(
-            ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.h ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c
-            PROPERTIES GENERATED TRUE)
-        add_library(${FILE}_client ${CMAKE_CURRENT_BINARY_DIR}/${FILE}_c.c)
-        add_dependencies(${FILE}_client psdk)
-    endforeach(_in_FILE ${ARGN})
-
-endmacro (MACRO_IDL_FILES)
-
 list(APPEND SOURCE
     eventlogrpc.idl
     lsa.idl
-    pnp.idl
     svcctl.idl
     wlansvc.idl)
 
 MACRO_IDL_FILES(${SOURCE})
+remove_definitions(-DWINNT=0x502)
+add_definitions(-DWINNT=0x600)
+MACRO_IDL_FILES(pnp.idl)
diff --git a/include/reactos/wine/CMakeLists.txt b/include/reactos/wine/CMakeLists.txt
new file mode 100644 (file)
index 0000000..419aabd
--- /dev/null
@@ -0,0 +1,6 @@
+list(APPEND SOURCE
+    epm.idl
+    irot.idl)
+
+MACRO_IDL_FILES(${SOURCE})
+ADD_INTERFACE_DEFINITIONS(winesdk ${SOURCE})
\ No newline at end of file