From 35c4e5db52c4d2441cc36993f906c8b4cf9a842a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Sun, 15 May 2011 07:50:26 +0000 Subject: [PATCH] [CMAKE] - add livecd target svn path=/branches/cmake-bringup/; revision=51751 --- CMakeLists.txt | 4 ---- CMakeMacros.cmake | 18 ++++++++++++++++++ boot/CMakeLists.txt | 16 +++++++++++++--- boot/bootdata/CMakeLists.txt | 14 +++++++++++++- 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b62f464fe20..90c2f79d542 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -106,10 +106,6 @@ else() # IDL macros for widl/midl include(cmake/idl-support.cmake) - #Some useful variables - set(LIVECD_DIR "${REACTOS_BINARY_DIR}/boot/livecd") - set(BOOTCD_DIR "${REACTOS_BINARY_DIR}/boot/bootcd") - # Activate support for assembly source files enable_language(ASM) diff --git a/CMakeMacros.cmake b/CMakeMacros.cmake index 794e80b4fb8..b11786daad4 100644 --- a/CMakeMacros.cmake +++ b/CMakeMacros.cmake @@ -157,4 +157,22 @@ function(add_cd_file) endif() endif() endif() #end bootcd + + #do we add it to livecd? + list(FIND _CD_FOR livecd __cd) + if(NOT __cd EQUAL -1) + #manage dependency + if(_CD_TARGET) + add_dependencies(livecd ${_CD_TARGET}) + endif() + foreach(item ${_CD_FILE}) + file(APPEND ${REACTOS_BINARY_DIR}/boot/livecd.cmake "file(COPY \"${item}\" DESTINATION \"\${CD_DIR}/${_CD_DESTINATION}\")\n") + endforeach() + if(_CD_NAME_ON_CD) + get_filename_component(__file ${_CD_FILE} NAME) + #rename it in the cd tree + file(APPEND ${REACTOS_BINARY_DIR}/boot/livecd.cmake "file(RENAME \${CD_DIR}/${_CD_DESTINATION}/${__file} \${CD_DIR}/${_CD_DESTINATION}/${_CD_NAME_ON_CD})\n") + endif() + endif() #end livecd + endfunction() diff --git a/boot/CMakeLists.txt b/boot/CMakeLists.txt index 6a2d7ad30dc..ee28a08fd09 100644 --- a/boot/CMakeLists.txt +++ b/boot/CMakeLists.txt @@ -1,4 +1,4 @@ - +##bootcd #clear it out file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bootcd.cmake "file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bootcd)\n") @@ -6,8 +6,18 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bootcd.cmake add_custom_target(bootcd ${CMAKE_COMMAND} -D CD_DIR=${CMAKE_CURRENT_BINARY_DIR}/bootcd -P ${CMAKE_CURRENT_BINARY_DIR}/bootcd.cmake - COMMAND native-cdmake -v -j -m -b ${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin ${BOOTCD_DIR} REACTOS ${REACTOS_BINARY_DIR}/bootcd.iso - #DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/bootcd.cmake + COMMAND native-cdmake -v -j -m -b ${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin ${CMAKE_CURRENT_BINARY_DIR}/bootcd REACTOS ${REACTOS_BINARY_DIR}/bootcd.iso + VERBATIM) + +##livecd +#clear it out +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake + "file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/livecd)\n") + +add_custom_target(livecd + ${CMAKE_COMMAND} -D CD_DIR=${CMAKE_CURRENT_BINARY_DIR}/livecd + -P ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake + COMMAND native-cdmake -v -j -m -b ${CMAKE_CURRENT_BINARY_DIR}/freeldr/bootsect/isoboot.bin ${CMAKE_CURRENT_BINARY_DIR}/livecd REACTOS ${REACTOS_BINARY_DIR}/livecd.iso VERBATIM) add_subdirectory(freeldr) diff --git a/boot/bootdata/CMakeLists.txt b/boot/bootdata/CMakeLists.txt index cd04a760432..62eff1c0787 100644 --- a/boot/bootdata/CMakeLists.txt +++ b/boot/bootdata/CMakeLists.txt @@ -7,7 +7,7 @@ add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivedef_${ARCH}.inf DESTINATION rea add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesft_${ARCH}.inf DESTINATION reactos NO_CAB NAME_ON_CD hivesft.inf FOR bootcd) add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hivesys_${ARCH}.inf DESTINATION reactos NO_CAB NAME_ON_CD hivesys.inf FOR bootcd) -# bootcd/livecd hives +# livecd hives list(APPEND CD_HIVES ${CMAKE_CURRENT_SOURCE_DIR}/livecd.inf ${CMAKE_CURRENT_SOURCE_DIR}/hiveinst_${ARCH}.inf) @@ -16,8 +16,20 @@ add_custom_target(livecd_hives native-mkhive ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${ARCH} ${CD_HIVES} DEPENDS native-mkhive ${CD_HIVES}) +add_cd_file( + FILE ${CMAKE_CURRENT_BINARY_DIR}/sam + ${CMAKE_CURRENT_BINARY_DIR}/default + ${CMAKE_CURRENT_BINARY_DIR}/security + ${CMAKE_CURRENT_BINARY_DIR}/software + ${CMAKE_CURRENT_BINARY_DIR}/system + TARGET livecd_hives + DESTINATION reactos/system32/config + FOR livecd) + #regtest add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcdregtest/regtest.cmd DESTINATION reactos/bin FOR all) #freeldr.ini add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcd.ini DESTINATION root NO_CAB NAME_ON_CD freeldr.ini FOR bootcd) +add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/livecd.ini DESTINATION root NAME_ON_CD freeldr.ini FOR livecd) +