From 76daaf9fafadec0fbf98c068080cdd15320f4ffb Mon Sep 17 00:00:00 2001 From: Bernhard Feichtinger <43303168+BieHDC@users.noreply.github.com> Date: Fri, 16 Nov 2018 23:26:58 +0100 Subject: [PATCH] [MODULES] Add a convenient option to transfer files into a new installation (#877) Purpose: When doing a PXE BootCD installation, you may be left without networking, usb and a cd drive. This adds an easy way to include a few or more files to the installation which are then present on the disk after the installation and which does not require any change to ReactOS source code/build script files (and no manual editing of boot/bootdata/packages/reactos.dff.in). Proposed changes: Adds a new modules/3rdparty folder which lets the files end up in C:\ReactOS\3rdParty ready for use. --- .gitignore | 1 + boot/bootdata/packages/reactos.dff.in | 1 + modules/CMakeLists.txt | 10 ++++++++++ sdk/cmake/CMakeMacros.cmake | 2 ++ 4 files changed, 14 insertions(+) diff --git a/.gitignore b/.gitignore index 9bed1e86be0..717e06c033a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ modules/optional modules/bootcd_extras modules/livecd_extras modules/hybridcd_extras +modules/3rdparty .cproject .project .settings diff --git a/boot/bootdata/packages/reactos.dff.in b/boot/bootdata/packages/reactos.dff.in index 94248402385..0b550795d56 100644 --- a/boot/bootdata/packages/reactos.dff.in +++ b/boot/bootdata/packages/reactos.dff.in @@ -81,6 +81,7 @@ Signature = "$Windows NT$" 60 = winsxs\x86_reactos.newapi_6595b64144ccf1df_1.0.0.0_none_deadbeef 61 = winsxs\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.0.14393.0_none_deadbeef 62 = Resources\Themes\Modern +63 = 3rdParty .InfEnd diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt index 78123b6aedb..4c68bfb1e5d 100644 --- a/modules/CMakeLists.txt +++ b/modules/CMakeLists.txt @@ -17,6 +17,8 @@ endif() ## Extra files for Boot/Live/Hybrid CD. You need to put them under [boot|live|hybrid]cd_extras ## in the same layout as you want them to be in the CD. +## If you change the content of any of the following folders later on, +## run "cmake ." before compiling. if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/bootcd_extras/) file(GLOB_RECURSE EXTRA_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/bootcd_extras/ ${CMAKE_CURRENT_SOURCE_DIR}/bootcd_extras/*) foreach(item ${EXTRA_FILES}) @@ -35,3 +37,11 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/hybridcd_extras/) add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hybridcd_extras/${item} DESTINATION extras NO_CAB NAME_ON_CD ${item} FOR hybridcd) endforeach(item) endif() + +## Extra files which you need existing on the hard drive after the installation. +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/) + file(GLOB_RECURSE EXTRA_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/ ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/*) + foreach(item ${EXTRA_FILES}) + add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/${item} DESTINATION reactos/3rdParty NAME_ON_CD ${item} FOR bootcd) + endforeach(item) +endif() diff --git a/sdk/cmake/CMakeMacros.cmake b/sdk/cmake/CMakeMacros.cmake index f7eba51794b..f5d2a0befa3 100644 --- a/sdk/cmake/CMakeMacros.cmake +++ b/sdk/cmake/CMakeMacros.cmake @@ -294,6 +294,8 @@ macro(dir_to_num dir var) set(${var} 61) elseif(${dir} STREQUAL reactos/Resources/Themes/Modern) set(${var} 62) + elseif(${dir} STREQUAL reactos/3rdParty) + set(${var} 63) else() message(FATAL_ERROR "Wrong destination: ${dir}") endif()