[REACTOS] Merge our bootcd and livecd into an all-in-one ReactOS BootCD (#7313)

CORE-9069, CORE-13525, RELEASE-11

This new BootCD contains the functionality of both the original bootcd
(text-mode 1st-stage installer) and the livecd (that will include the
1st-stage GUI installer later).
Our separate livecd ISOs become obsolete, and this completely removes
the need for the so-called "hybridcd" ISO.

Some details:

- The "hybridcd" build target is completely removed, since now the new
  BootCD *is* basically what we used to call "hybridcd".

- The "livecd" build target is kept so far (to minimize the code changes),
  but internally I start to refer to it as "LiveImage", and is reduced
  to a minimum.

  A minimal non-bootable "liveimg.iso" is built (but currently not
  included within the BootCD). Its purpose will be to implement the
  "ReactOS Live" functionality as a RAMDISK.
  (We currently don't support other file formats apart from ISO and
  flat disk for a RAMDISK).

  The "ReactOS Live" (non-RAMDISK) is implemented by adding to the
  BootCD file tree the files from the LiveImage.
  These files add two root directories, "Profiles" and "reactos"
  (which is the SystemRoot for the non-ramdisk LiveImage).

- The minimal text-mode ReactOS installation used for the 1st-stage
  installer, including USETUP itself, and the executable for the
  1st-stage GUI installer and the reactos.cab (installation source),
  are moved to the root directory called "i386" (ideally, one directory
  per architecture).

- The "bootcdregtest" target, i.e. the ISOs we feed our testbots with,
  are left untouched, i.e. they are only constituted of the 1st-stage
  text-mode installation only, but placed in a per-architecture root
  directory ("i386", etc. as for the bootcd).

- Remove the ACPI APIC/SMP entries from bootcd.ini. They will be made
  available via the Advanced Boot Options F8 menu in Debug builds, for
  testing purposes only, in a subsequent commit.

This commit is based upon an older SVN one:
svn path=/branches/setup_improvements/; revision=75273
This commit is contained in:
Hermès Bélusca-Maïto
2017-07-03 17:53:23 +00:00
parent 16e6da0e96
commit b2e33f26eb
30 changed files with 216 additions and 399 deletions

View File

@@ -70,7 +70,7 @@ jobs:
- name: Build
run: echo 'cmake --build ${{github.workspace}}/build -- -k0' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
- name: Generate ISOs
run: echo 'cmake --build ${{github.workspace}}/build --target bootcd --target livecd' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
run: echo 'cmake --build ${{github.workspace}}/build --target bootcd' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
- name: Print ccache statistics
run: ccache -s
- name: Upload ISOs
@@ -79,7 +79,6 @@ jobs:
name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
path: |
build/bootcd.iso
build/livecd.iso
build-msvc:
strategy:
@@ -127,14 +126,13 @@ jobs:
- name: Build
run: cmake --build build -- -k0
- name: Generate ISOs
run: cmake --build build --target bootcd --target livecd
run: cmake --build build --target bootcd
- name: Upload ISOs
uses: actions/upload-artifact@v5
with:
name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
path: |
build/bootcd.iso
build/livecd.iso
- name: Upload debug symbols
if: ${{ matrix.config == 'Debug' }}
uses: actions/upload-artifact@v5
@@ -295,14 +293,13 @@ jobs:
- name: Build
run: cmake --build build -- -k0
- name: Generate ISOs
run: cmake --build build --target bootcd --target livecd
run: cmake --build build --target bootcd
- name: Upload ISOs
uses: actions/upload-artifact@v5
with:
name: reactos-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
path: |
build/bootcd.iso
build/livecd.iso
- name: Upload debug symbols
if: ${{ matrix.config == 'Debug' }}
uses: actions/upload-artifact@v5
@@ -334,4 +331,4 @@ jobs:
cd build
cmake -G "Visual Studio 17 2022" -A Win32 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src
- name: Build
run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd
run: cmake --build ${{github.workspace}}\build --target bootcd

1
.gitignore vendored
View File

@@ -3,7 +3,6 @@ output-*
modules/optional
modules/bootcd_extras
modules/livecd_extras
modules/hybridcd_extras
modules/3rdparty
modules/[Aa][Hh][Kk]_[Tt]ests
.cache

View File

@@ -3,17 +3,6 @@
// Hover to view descriptions of existing attributes.
"version": "0.2.0",
"configurations": [
{
"type": "cppdbg",
"request": "launch",
"name": "livecd (qemu)",
"preLaunchTask": "launch livecd",
"miDebuggerServerAddress": "localhost:9091",
"miDebuggerArgs": "-l 15 -ex 'set sysroot ${workspaceRoot}/build/symbols'",
"program": "${workspaceRoot}/build/ntoskrnl/ntoskrnl.exe",
"cwd": "${workspaceRoot}/build",
"miDebuggerPath": "i686-w64-mingw32-gdb"
},
{
"type": "cppdbg",
"request": "launch",

View File

@@ -1,18 +1,19 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build livecd",
"label": "build bootcd",
"type": "shell",
"command": "ninja livecd",
"command": "ninja bootcd",
"options": {
"cwd": "${workspaceFolder}/build"
},
"group": "build",
"problemMatcher": [
{
"base": "$gcc",
"owner": "cpp",
"fileLocation": ["relative", "${workspaceFolder}/build"],
"pattern": {
@@ -26,43 +27,6 @@
}
]
},
{
"label": "build bootcd",
"type": "shell",
"command": "ninja bootcd",
"options": {
"cwd": "${workspaceFolder}/build"
},
"group": "build",
"problemMatcher": [
{
"base": "$gcc",
"fileLocation": ["relative", "${workspaceFolder}/build"],
},
]
},
{
"label": "launch livecd",
"type": "process",
"options": {
"cwd": "${workspaceFolder}/build"
},
"dependsOn": [
"build livecd"
],
"dependsOrder": "sequence",
"command": "qemu-system-i386",
"args": [
"-cdrom", "livecd.iso",
"-chardev", "socket,port=9091,host=localhost,server,nowait,id=char0",
"-serial", "chardev:char0",
"-nic", "user,model=e1000",
"-boot", "d",
"-chardev", "socket,path=/tmp/livecd_dbg,server,nowait,id=char1", "-serial", "chardev:char1",
"-daemonize"
],
"problemMatcher": []
},
{
"label": "launch bootcd",
"type": "process",

View File

@@ -380,7 +380,7 @@ Enable this if the module uses typeid or dynamic_cast. You will probably need to
# Create the registry hives
create_registry_hives()
# Create {bootcd, livecd, bootcdregtest}.lst
# Create {bootcd, bootcdregtest, livecd}.lst
create_iso_lists()
file(MAKE_DIRECTORY ${REACTOS_BINARY_DIR}/sdk/include/reactos)

View File

@@ -27,4 +27,7 @@ if(ARCH STREQUAL "i386")
endif()
endif()
add_cd_file(TARGET welcome DESTINATION reactos NO_CAB FOR bootcd)
add_cd_file(TARGET welcome DESTINATION reactos FOR all)
# welcome.exe renamed as setup.exe for the BootCD
add_cd_file(TARGET welcome DESTINATION root NO_CAB NAME_ON_CD setup.exe FOR bootcd)

View File

@@ -5,5 +5,5 @@ add_subdirectory(bootdata)
add_subdirectory(freeldr)
add_subdirectory(rtl)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/remaster.cmd DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR bootcd livecd hybridcd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/remaster.sh DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR bootcd livecd hybridcd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/remaster.cmd DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR bootcd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/remaster.sh DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR bootcd)

View File

@@ -140,7 +140,6 @@ endfunction()
## BootCD
# Create the file list
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bootcd.cmake.lst "")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bootcd.cmake.lst "${CMAKE_CURRENT_BINARY_DIR}/empty\n")
add_custom_target(bootcd
@@ -148,12 +147,11 @@ add_custom_target(bootcd
${ISO_COMMON_OPTIONS} ${ISO_BOOT_OPTIONS} ${ISO_BOOT_FILES_OPTIONS} ${ISO_LAYOUT_OPTIONS}
-path-list ${CMAKE_CURRENT_BINARY_DIR}/bootcd.$<CONFIG>.lst
COMMAND native-isohybrid -b ${_isombr_file} -t 0x96 ${REACTOS_BINARY_DIR}/bootcd.iso
DEPENDS isombr native-isohybrid native-mkisofs
DEPENDS isombr native-isohybrid native-mkisofs livecd
VERBATIM)
## BootCDRegTest
# Create the file list
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bootcdregtest.cmake.lst "")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bootcdregtest.cmake.lst "${CMAKE_CURRENT_BINARY_DIR}/empty\n")
add_custom_target(bootcdregtest
@@ -164,12 +162,10 @@ add_custom_target(bootcdregtest
DEPENDS isombr native-isohybrid native-mkisofs
VERBATIM)
## LiveCD
## LiveImage -- Constitutes a small RAMDISK ISO, and is also merged with the BootCD
# Create the file list
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake.lst "")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake.lst "${CMAKE_CURRENT_BINARY_DIR}/empty\n")
# Create TEMP dir
# Create TEMP directory
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake.lst "reactos/TEMP=${CMAKE_CURRENT_BINARY_DIR}/empty\n")
# Create user profile directories
@@ -177,33 +173,15 @@ add_allusers_profile_dirs(${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake.lst "Profiles
add_user_profile_dirs(${CMAKE_CURRENT_BINARY_DIR}/livecd.cmake.lst "Profiles" "Default User")
add_custom_target(livecd
COMMAND native-mkisofs -quiet -o ${REACTOS_BINARY_DIR}/livecd.iso
${ISO_COMMON_OPTIONS} ${ISO_BOOT_OPTIONS} ${ISO_BOOT_FILES_OPTIONS} ${ISO_LAYOUT_OPTIONS}
COMMAND native-mkisofs -quiet -o ${REACTOS_BINARY_DIR}/liveimg.iso
${ISO_COMMON_OPTIONS} ${ISO_LAYOUT_OPTIONS}
-path-list ${CMAKE_CURRENT_BINARY_DIR}/livecd.$<CONFIG>.lst
COMMAND native-isohybrid -b ${_isombr_file} -t 0x96 ${REACTOS_BINARY_DIR}/livecd.iso
DEPENDS isombr native-isohybrid native-mkisofs
VERBATIM)
## HybridCD
# Create the file list
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.cmake.lst "")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.cmake.lst "${CMAKE_CURRENT_BINARY_DIR}/empty\n")
# Create user profile directories
add_allusers_profile_dirs(${CMAKE_CURRENT_BINARY_DIR}/hybridcd.cmake.lst "livecd/Profiles")
add_user_profile_dirs(${CMAKE_CURRENT_BINARY_DIR}/hybridcd.cmake.lst "livecd/Profiles" "Default User")
add_custom_target(hybridcd
COMMAND native-mkisofs -quiet -o ${REACTOS_BINARY_DIR}/hybridcd.iso
${ISO_COMMON_OPTIONS} ${ISO_BOOT_OPTIONS} ${ISO_BOOT_FILES_OPTIONS} ${ISO_LAYOUT_OPTIONS}
-path-list ${CMAKE_CURRENT_BINARY_DIR}/hybridcd.$<CONFIG>.lst
COMMAND native-isohybrid -b ${_isombr_file} -t 0x96 ${REACTOS_BINARY_DIR}/hybridcd.iso
DEPENDS bootcd livecd
DEPENDS native-mkisofs
VERBATIM)
if(DEFINED EFI_PLATFORM_ID)
# For devices such as USB drives, add also the EFI boot image into efi/boot.
add_cd_file(TARGET efisys FILE ${CMAKE_CURRENT_BINARY_DIR}/efisys.bin DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR bootcd regtest livecd hybridcd)
add_cd_file(TARGET uefildr DESTINATION efi/boot NO_CAB NAME_ON_CD boot${EFI_PLATFORM_ID}.efi FOR livecd hybridcd)
add_cd_file(TARGET efisys FILE ${CMAKE_CURRENT_BINARY_DIR}/efisys.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET uefildr DESTINATION efi/boot NO_CAB NAME_ON_CD boot${EFI_PLATFORM_ID}.efi FOR bootcd regtest)
endif()

View File

@@ -1,14 +1,14 @@
add_subdirectory(packages)
# Common hives
# Setup settings file
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/txtsetup.sif DESTINATION reactos NO_CAB FOR bootcd regtest)
add_custom_target(converted_caroots_inf DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/caroots.inf)
utf16le_convert(${CMAKE_CURRENT_SOURCE_DIR}/caroots.inf ${CMAKE_CURRENT_BINARY_DIR}/caroots.inf)
add_cd_file(TARGET converted_caroots_inf FILE ${CMAKE_CURRENT_BINARY_DIR}/caroots.inf DESTINATION reactos NO_CAB FOR bootcd regtest)
# Common hives
add_registry_inf(
hivecls.inf
hivedef.inf
@@ -16,26 +16,24 @@ add_registry_inf(
hivesys.inf
hivebcd.inf)
# Regtest
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcdregtest/regtest.cmd DESTINATION reactos/bin FOR all)
# autorun.inf
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/autorun-bootcd.inf DESTINATION root NO_CAB NOT_IN_HYBRIDCD NAME_ON_CD autorun.inf FOR bootcd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/autorun-livecd.inf DESTINATION root NO_CAB NOT_IN_HYBRIDCD NAME_ON_CD autorun.inf FOR livecd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/autorun-hybridcd.inf DESTINATION root NO_CAB NOT_IN_HYBRIDCD NAME_ON_CD autorun.inf FOR hybridcd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/autorun.inf DESTINATION root NO_CAB FOR bootcd)
# icon.ico
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/icon.ico DESTINATION root NO_CAB NOT_IN_HYBRIDCD FOR all hybridcd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/icon.ico DESTINATION root NO_CAB FOR bootcd)
# readme.txt
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/readme.txt DESTINATION root NO_CAB NOT_IN_HYBRIDCD FOR all hybridcd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/readme.txt DESTINATION root NO_CAB FOR bootcd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/readme.txt DESTINATION reactos FOR all)
# Welcome.exe optional custom configuration (only for HybridCD)
## NOTE: The root setup.exe file is a renamed welcome.exe for BootCD purposes.
# welcome.exe optional custom configuration (only for LiveImage)
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/welcome_config/)
# Copy the main configuration file
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/welcome_config/welcome.ini DESTINATION bootcd/reactos NO_CAB FOR hybridcd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/welcome_config/welcome.ini DESTINATION reactos NO_CAB FOR livecd)
# Convert the translation files (name format: xx-YY.ini) into UTF-16
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/welcome_config)
@@ -44,23 +42,21 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/welcome_config/)
set(_converted_file ${CMAKE_CURRENT_BINARY_DIR}/welcome_config/${_file})
set(_source_file ${CMAKE_CURRENT_SOURCE_DIR}/welcome_config/${_file})
utf16le_convert(${_source_file} ${_converted_file})
add_cd_file(TARGET converted_welcome_i18n_files FILE ${_converted_file} DESTINATION bootcd/reactos/welcome NO_CAB NAME_ON_CD ${_file} FOR hybridcd)
add_cd_file(TARGET converted_welcome_i18n_files FILE ${_converted_file} DESTINATION reactos/welcome NO_CAB NAME_ON_CD ${_file} FOR livecd)
list(APPEND _converted_welcome_i18n_files ${_converted_file})
endforeach(_file)
add_custom_target(converted_welcome_i18n_files DEPENDS ${_converted_welcome_i18n_files})
endif()
# freeldr.ini
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcd.ini DESTINATION root NO_CAB NOT_IN_HYBRIDCD NAME_ON_CD freeldr.ini FOR bootcd regtest)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/livecd.ini DESTINATION root NOT_IN_HYBRIDCD NAME_ON_CD freeldr.ini FOR livecd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/hybridcd.ini DESTINATION root NAME_ON_CD freeldr.ini FOR hybridcd)
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}/bootcd_regtest.ini DESTINATION root NO_CAB NAME_ON_CD freeldr.ini FOR regtest)
# Unattend
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcdregtest/unattend.inf DESTINATION reactos NO_CAB FOR regtest)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcd/unattend.inf DESTINATION reactos NO_CAB FOR bootcd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/livecd/unattend.inf DESTINATION reactos NO_CAB FOR livecd)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcdregtest/unattend.inf DESTINATION reactos NO_CAB FOR regtest)
# LiveCD shortcuts
# LiveImage shortcuts
macro(add_livecd_shortcut name app dest)
add_link(NAME ${name} CMD_LINE_ARGS ${app} ICON ${app} PATH livecd_start.cmd GUID "{450D8FBA-AD25-11D0-98A8-0800361B1103}" MINIMIZE)
list(APPEND LIVECD_SHORTCUTS "${CMAKE_CURRENT_BINARY_DIR}/${name}.lnk")

View File

@@ -1,3 +0,0 @@
[autorun]
open=reactos\welcome.exe
icon=icon.ico

View File

@@ -1,3 +0,0 @@
[autorun]
open=bootcd\reactos\welcome.exe
icon=icon.ico

View File

@@ -1,3 +1,3 @@
[autorun]
shellexecute=readme.txt
open=setup.exe
icon=icon.ico

View File

@@ -1,16 +1,24 @@
[FREELOADER]
DefaultOS=Setup
TimeOut=0
DefaultOS=LiveImg_Debug
TimeOut=10
[Display]
TitleText=ReactOS Setup
TitleText=ReactOS Boot Media
MinimalUI=Yes
[Operating Systems]
Setup="Setup"
Setup="ReactOS Setup (Text Mode)"
LiveImg="ReactOS Live Environment (Graphics Mode)"
LiveImg_RamDisk="ReactOS Live Environment (Graphics Mode) in RAM"
;; The following options are for testing and development:
Setup_Debug="Setup (Debug)"
Setup_Aacpi="Setup ACPI APIC (Debug)"
Setup_Screen="Setup (Screen)"
Setup_Screen="Setup (Screen Debug)"
LiveImg_Debug="Live Environment (Debug)"
LiveImg_VBoxDebug="Live Environment (VBox Debug)"
LiveImg_Screen="Live Environment (Screen Debug)"
; The following entry is an example template:
;LiveImg_LogFile="Live Environment (Log file)"
[Setup]
BootType=ReactOSSetup
@@ -19,10 +27,37 @@ BootType=ReactOSSetup
BootType=ReactOSSetup
Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /NOGUIBOOT /SIFOPTIONSOVERRIDE
[Setup_Aacpi]
BootType=ReactOSSetup
Options=/HAL=halaacpi.dll /DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /NOGUIBOOT /SIFOPTIONSOVERRIDE
[Setup_Screen]
BootType=ReactOSSetup
Options=/DEBUG /DEBUGPORT=SCREEN /SIFOPTIONSOVERRIDE
[LiveImg]
BootType=Windows2003
SystemPath=\reactos
Options=/FASTDETECT /MININT
[LiveImg_RamDisk]
BootType=Windows2003
SystemPath=ramdisk(0)\reactos
Options=/FASTDETECT /MININT /RDPATH= /RDEXPORTASCD
;Options=/FASTDETECT /MININT /RDPATH=liveimg.iso /RDEXPORTASCD
[LiveImg_Debug]
BootType=Windows2003
SystemPath=\reactos
Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /FASTDETECT /MININT
[LiveImg_VBoxDebug]
BootType=Windows2003
SystemPath=\reactos
Options=/DEBUG /DEBUGPORT=VBOX /SOS /FASTDETECT /MININT
[LiveImg_Screen]
BootType=Windows2003
SystemPath=\reactos
Options=/DEBUG /DEBUGPORT=SCREEN /SOS /FASTDETECT /MININT
;[LiveImg_LogFile]
;BootType=Windows2003
;SystemPath=\reactos
;Options=/DEBUG /DEBUGPORT=FILE:\Device\HarddiskX\PartitionY\debug.log /SOS /FASTDETECT /MININT

View File

@@ -1,7 +1,7 @@
[Unattend]
Signature = "$ReactOS$"
; Set UnattendSetupEnabled to yes in order to get unattended setup working
; Set UnattendSetupEnabled to yes in order to get unattended setup working.
; yes - unattend setup enabled
; no - unattend setup disabled
UnattendSetupEnabled = no
@@ -22,62 +22,58 @@ FullName="MyName"
ComputerName="MYCOMPUTERNAME"
;AdminPassword="MyPassword"
; TimeZone is set GMT as default
; TimeZone is set to GMT as default.
TimeZoneIndex=85
; enable this setting to disable daylight saving changes
; DisableAutoDaylightTimeSet = 1
; Enable this setting to disable daylight saving changes.
;DisableAutoDaylightTimeSet = 1
; enable this setting to format the selected partition
; Enable this setting to format the selected partition.
; 1 - format enabled
; 0 - format disabled
FormatPartition=1
; enable this setting to automatically create a partition
; during installation
; Enable this setting to automatically create a partition during installation.
; 1 - enabled
; 0 - disabled
AutoPartition = 1
; choose default file system type
; Choose default file system type.
; 0 - FAT
; 1 - BtrFS
FsType = 0
; enable this setting to disable Gecko install
; Enable this setting to disable Gecko install.
; yes - disabled
; no - enabled
DisableGeckoInst = no
; set this option to automatically
; specify language in 2nd mode setup
; see hivesys.inf for available languages
; Set this option to automatically specify language in 2nd mode setup.
; See hivesys.inf for available languages.
LocaleID = 409
; set product option
; 0: ReactOS Server
; 1: ReactOS Workstation
; Set product option.
; 0 - ReactOS Server
; 1 - ReactOS Workstation
ProductOption = 0
; Enable this section to automatically launch programs
; after 3rd boot
; [GuiRunOnce]
; %SystemRoot%\system32\cmd.exe
; Enable this section to automatically launch programs after 3rd boot.
;[GuiRunOnce]
;%SystemRoot%\system32\cmd.exe
; Enable this section to change resolution / bpp
; setting a value to 0 or skipping it will leave it unchanged
; [Display]
; BitsPerPel = 32
; XResolution = 1440
; YResolution = 900
; VRefresh = 0
; Enable this section to change resolution / bpp.
; Setting a value to 0 or skipping it will leave it unchanged.
;[Display]
;BitsPerPel = 32
;XResolution = 1440
;YResolution = 900
;VRefresh = 0
; enable this section to add environment variables
; Enable this section to add environment variables.
;[Env]
;WINETEST_PLATFORM=reactos
; Enable this section to enable the default ReactOS theme
; [Shell]
; DefaultThemesOff = no
; CustomDefaultThemeFile = "%WINDIR%\Resources\Themes\Lautus\lautus.msstyles"
; Enable this section to enable the default ReactOS theme.
;[Shell]
;DefaultThemesOff = no
;CustomDefaultThemeFile = "%WINDIR%\Resources\Themes\Lautus\lautus.msstyles"

View File

@@ -0,0 +1,13 @@
[FREELOADER]
DefaultOS=Setup
TimeOut=0
[Display]
TitleText=ReactOS Setup
MinimalUI=Yes
[Operating Systems]
Setup="Setup"
[Setup]
BootType=ReactOSSetup

View File

@@ -1,7 +1,7 @@
[Unattend]
Signature = "$ReactOS$"
; Set UnattendSetupEnabled to yes in order to get unattended setup working
; Set UnattendSetupEnabled to yes in order to get unattended setup working.
; yes - unattend setup enabled
; no - unattend setup disabled
UnattendSetupEnabled = yes
@@ -22,36 +22,32 @@ FullName="MyName"
ComputerName="MYCOMPUTERNAME"
;AdminPassword="MyPassword"
; TimeZone is set GMT as default
; TimeZone is set to GMT as default.
TimeZoneIndex=85
; enable this setting to disable daylight saving changes
; DisableAutoDaylightTimeSet = 1
; Enable this setting to disable daylight saving changes.
;DisableAutoDaylightTimeSet = 1
; enable this setting to format the selected partition
; Enable this setting to format the selected partition.
; 1 - format enabled
; 0 - format disabled
FormatPartition=1
; enable this setting to automatically create a partition
; during installation
; Enable this setting to automatically create a partition during installation.
; 1 - enabled
; 0 - disabled
AutoPartition = 1
; choose default file system type
; Choose default file system type.
; 0 - FAT
; 1 - BtrFS
FsType = 0
; set this option to automatically
; specify language in 2nd mode setup
; see hivesys.inf for available languages
; Set this option to automatically specify language in 2nd mode setup.
; See hivesys.inf for available languages.
LocaleID = 409
; enable this section to automatically launch programs
; after 3rd boot
;
; Enable this section to automatically launch programs after 3rd boot.
[GuiRunOnce]
%SystemRoot%\system32\cmd.exe /c "regtest.cmd"
@@ -60,4 +56,3 @@ BitsPerPel = 16
XResolution = 800
YResolution = 600
VRefresh = 0

View File

@@ -1,51 +1,52 @@
[FREELOADER]
DefaultOS=LiveCD_Debug
TimeOut=5
DefaultOS=LiveImg_Debug
TimeOut=10
[Display]
TitleText=ReactOS CD boot
TitleText=ReactOS CD-ROM Boot
MinimalUI=Yes
[Operating Systems]
Setup="Setup"
Setup="ReactOS Setup (Text Mode)"
Setup_Debug="Setup (Debug)"
Setup_Screen="Setup (Screen)"
LiveCD="LiveCD"
LiveCD_Debug="LiveCD (Debug)"
LiveCD_Screen="LiveCD (Screen)"
LiveCD_LogFile="LiveCD (Log file)"
Setup_Screen="Setup (Screen Debug)"
LiveImg="ReactOS Live Environment (Graphics Mode)"
LiveImg_Debug="Live Environment (Debug)"
LiveImg_Screen="Live Environment (Screen Debug)"
; The following entry is an example template:
;LiveImg_LogFile="Live Environment (Log file)"
[Setup]
BootType=ReactOSSetup
SystemPath=multi(0)disk(0)cdrom(0)\reactos
SystemPath=multi(0)disk(0)cdrom(0)\
Options=/HAL=halpc98.dll
[Setup_Debug]
BootType=ReactOSSetup
SystemPath=multi(0)disk(0)cdrom(0)\reactos
SystemPath=multi(0)disk(0)cdrom(0)\
Options=/HAL=halpc98.dll /DEBUG /DEBUGPORT=COM1 /BAUDRATE=9600 /NOGUIBOOT /SIFOPTIONSOVERRIDE
[Setup_Screen]
BootType=ReactOSSetup
SystemPath=multi(0)disk(0)cdrom(0)\reactos
SystemPath=multi(0)disk(0)cdrom(0)\
Options=/HAL=halpc98.dll /DEBUG /DEBUGPORT=SCREEN /SIFOPTIONSOVERRIDE
[LiveCD]
[LiveImg]
BootType=Windows2003
SystemPath=multi(0)disk(0)cdrom(0)\reactos
Options=/HAL=halpc98.dll /MININT
[LiveCD_Debug]
[LiveImg_Debug]
BootType=Windows2003
SystemPath=multi(0)disk(0)cdrom(0)\reactos
Options=/HAL=halpc98.dll /DEBUG /DEBUGPORT=COM1 /BAUDRATE=9600 /SOS /MININT
[LiveCD_Screen]
[LiveImg_Screen]
BootType=Windows2003
SystemPath=multi(0)disk(0)cdrom(0)\reactos
Options=/HAL=halpc98.dll /DEBUG /DEBUGPORT=SCREEN /SOS /MININT
[LiveCD_LogFile]
BootType=Windows2003
SystemPath=multi(0)disk(0)cdrom(0)\reactos
Options=/HAL=halpc98.dll /DEBUG /DEBUGPORT=FILE:\Device\HarddiskX\PartitionY\debug.log /SOS /MININT
;[LiveImg_LogFile]
;BootType=Windows2003
;SystemPath=multi(0)disk(0)cdrom(0)\reactos
;Options=/HAL=halpc98.dll /DEBUG /DEBUGPORT=FILE:\Device\HarddiskX\PartitionY\debug.log /SOS /MININT

View File

@@ -1,68 +0,0 @@
[FREELOADER]
DefaultOS=Setup
TimeOut=5
[Display]
TitleText=ReactOS Hybrid-CD
MinimalUI=Yes
[Operating Systems]
Setup="Setup"
Setup_Debug="Setup (Debug)"
Setup_Screen="Setup (Screen)"
LiveCD="LiveCD"
LiveCD_Debug="LiveCD (Debug)"
LiveCD_Screen="LiveCD (Screen)"
LiveCD_LogFile="LiveCD (Log file)"
LiveCD_RamDisk="LiveCD in RAM"
LiveCD_RamDisk_Debug="LiveCD in RAM (Debug)"
LiveCD_RamDisk_Screen="LiveCD in RAM (Screen)"
[Setup]
BootType=ReactOSSetup
SystemPath=\bootcd
[Setup_Debug]
BootType=ReactOSSetup
SystemPath=\bootcd
Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /NOGUIBOOT /SIFOPTIONSOVERRIDE
[Setup_Screen]
BootType=ReactOSSetup
SystemPath=\bootcd
Options=/DEBUG /DEBUGPORT=SCREEN /SIFOPTIONSOVERRIDE
[LiveCD]
BootType=Windows2003
SystemPath=\livecd\reactos
Options=/MININT
[LiveCD_Debug]
BootType=Windows2003
SystemPath=\livecd\reactos
Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /MININT
[LiveCD_Screen]
BootType=Windows2003
SystemPath=\livecd\reactos
Options=/DEBUG /DEBUGPORT=SCREEN /SOS /MININT
[LiveCD_LogFile]
BootType=Windows2003
SystemPath=\livecd\reactos
Options=/DEBUG /DEBUGPORT=FILE:\Device\HarddiskX\PartitionY\debug.log /SOS /MININT
[LiveCD_RamDisk]
BootType=Windows2003
SystemPath=ramdisk(0)\reactos
Options=/MININT /RDPATH=livecd\livecd.iso /RDEXPORTASCD
[LiveCD_RamDisk_Debug]
BootType=Windows2003
SystemPath=ramdisk(0)\reactos
Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /MININT /RDPATH=livecd\livecd.iso /RDEXPORTASCD
[LiveCD_RamDisk_Screen]
BootType=Windows2003
SystemPath=ramdisk(0)\reactos
Options=/DEBUG /DEBUGPORT=SCREEN /SOS /MININT /RDPATH=livecd\livecd.iso /RDEXPORTASCD

View File

@@ -1,51 +0,0 @@
[FREELOADER]
DefaultOS=LiveCD_Debug
TimeOut=5
[Display]
TitleText=ReactOS LiveCD
MinimalUI=Yes
[Operating Systems]
LiveCD="LiveCD"
LiveCD_Debug="LiveCD (Debug)"
LiveCD_Macpi="LiveCD ACPI SMP (Debug)"
LiveCD_Aacpi="LiveCD ACPI APIC (Debug)"
LiveCD_VBoxDebug="LiveCD (VBox Debug)"
LiveCD_Screen="LiveCD (Screen)"
LiveCD_LogFile="LiveCD (Log file)"
[LiveCD]
BootType=Windows2003
SystemPath=\reactos
Options=/FASTDETECT /MININT
[LiveCD_Debug]
BootType=Windows2003
SystemPath=\reactos
Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /FASTDETECT /MININT
[LiveCD_Macpi]
BootType=Windows2003
SystemPath=\reactos
Options=/HAL=halmacpi.dll /KERNEL=ntkrnlmp.exe /DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /FASTDETECT /MININT
[LiveCD_Aacpi]
BootType=Windows2003
SystemPath=\reactos
Options=/HAL=halaacpi.dll /DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /FASTDETECT /MININT
[LiveCD_VBoxDebug]
BootType=Windows2003
SystemPath=\reactos
Options=/DEBUG /DEBUGPORT=VBOX /SOS /FASTDETECT /MININT
[LiveCD_Screen]
BootType=Windows2003
SystemPath=\reactos
Options=/DEBUG /DEBUGPORT=SCREEN /SOS /FASTDETECT /MININT
[LiveCD_LogFile]
BootType=Windows2003
SystemPath=\reactos
Options=/DEBUG /DEBUGPORT=FILE:\Device\HarddiskX\PartitionY\debug.log /SOS /FASTDETECT /MININT

View File

@@ -1,13 +1,11 @@
[Unattend]
Signature = "$ReactOS$"
; Set UnattendSetupEnabled to yes in order to boot the livecd immediately to desktop
; Set UnattendSetupEnabled to yes in order to boot the LiveImage immediately to desktop.
; yes - unattend setup enabled
; no - unattend setup disabled
UnattendSetupEnabled = no
; set this option to automatically
; specify language in the language setup
; see hivesys.inf for available languages
; Set this option to automatically specify language in the language setup.
; See hivesys.inf for available languages.
LocaleID = 409

View File

@@ -15,12 +15,10 @@ Signature = "$Windows NT$"
_1 = %cdname%,%cdtagfile%,,""
[SourceDisksNames.x86]
;1 = %cdname%,%cdtagfilei%,,\i386
1 = %cdname%,%cdtagfilei%,,\reactos
1 = %cdname%,%cdtagfilei%,,\i386
[SourceDisksNames.amd64]
;1 = %cdname%,%cdtagfilea%,,\amd64
1 = %cdname%,%cdtagfilei%,,\reactos
1 = %cdname%,%cdtagfilea%,,\amd64
;
; The directories listed in the [Directories] or [WinntDirectories] sections
@@ -43,7 +41,7 @@ _1 = %cdname%,%cdtagfile%,,""
[DiskSpaceRequirements]
; Required free system partition disk space in MB
FreeSysPartDiskSpace=450
FreeSysPartDiskSpace = 450
;
; The [SourceDisksFiles] section lists all the files available to the
@@ -221,7 +219,7 @@ disk = disk.sys
inport = inport.sys
[Cabinets]
Cabinet=reactos.cab
Cabinet = reactos.cab
[SetupData]
DefaultPath = \ReactOS
@@ -488,7 +486,6 @@ Default = "XT-, AT- or extended keyboard (83-105 keys)"
00000490 = "Walon"
;00000435 = "Zulu"
[KeyboardLayout]
0000041C = "Albanian"
00000401 = "Arabic (101)"
@@ -677,4 +674,8 @@ AddReg = registry.inf,AddReg
DelReg = registry.inf,DelReg
AddReg = registry.inf,AddReg
[Strings]
cdname = "ReactOS Installation Media"
productname = "ReactOS"
; EOF

View File

@@ -1,4 +1,3 @@
[Welcome]
DisplayCheckBox = 0
DisplayExitButton = 1

View File

@@ -31,16 +31,16 @@ if(ARCH STREQUAL "i386" OR ARCH STREQUAL "amd64")
CreateBootSectorTarget(isobtrt ${CMAKE_CURRENT_SOURCE_DIR}/isobtrt.S ${CMAKE_CURRENT_BINARY_DIR}/isobtrt.bin 7000)
CreateBootSectorTarget(isombr ${CMAKE_CURRENT_SOURCE_DIR}/isombr.S ${CMAKE_CURRENT_BINARY_DIR}/isombr.bin 7000)
add_cd_file(TARGET dosmbr DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/dosmbr.bin FOR bootcd regtest)
add_cd_file(TARGET ext DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/ext.bin FOR bootcd regtest)
add_cd_file(TARGET extldr DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/extldr.sys FOR bootcd regtest)
add_cd_file(TARGET btrfsvbr DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/btrfs.bin FOR bootcd regtest)
add_cd_file(TARGET fat DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/fat.bin FOR bootcd regtest)
add_cd_file(TARGET fat32 DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/fat32.bin FOR bootcd regtest)
add_cd_file(TARGET ntfsvbr DESTINATION loader NO_CAB FILE ${CMAKE_CURRENT_BINARY_DIR}/ntfs.bin FOR bootcd regtest)
add_cd_file(TARGET isoboot DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FILE ${CMAKE_CURRENT_BINARY_DIR}/isoboot.bin FOR all hybridcd)
add_cd_file(TARGET isobtrt DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FILE ${CMAKE_CURRENT_BINARY_DIR}/isobtrt.bin FOR bootcd regtest)
add_cd_file(TARGET isombr DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FILE ${CMAKE_CURRENT_BINARY_DIR}/isombr.bin FOR all hybridcd)
add_cd_file(TARGET dosmbr FILE ${CMAKE_CURRENT_BINARY_DIR}/dosmbr.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET ext FILE ${CMAKE_CURRENT_BINARY_DIR}/ext.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET extldr FILE ${CMAKE_CURRENT_BINARY_DIR}/extldr.sys DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET btrfsvbr FILE ${CMAKE_CURRENT_BINARY_DIR}/btrfs.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET fat FILE ${CMAKE_CURRENT_BINARY_DIR}/fat.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET fat32 FILE ${CMAKE_CURRENT_BINARY_DIR}/fat32.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET ntfsvbr FILE ${CMAKE_CURRENT_BINARY_DIR}/ntfs.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET isoboot FILE ${CMAKE_CURRENT_BINARY_DIR}/isoboot.bin DESTINATION loader NO_CAB FOR bootcd)
add_cd_file(TARGET isobtrt FILE ${CMAKE_CURRENT_BINARY_DIR}/isobtrt.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET isombr FILE ${CMAKE_CURRENT_BINARY_DIR}/isombr.bin DESTINATION loader NO_CAB FOR bootcd)
elseif(ARCH STREQUAL "arm")
add_custom_target(fat
COMMAND exit 1

View File

@@ -3,4 +3,4 @@ add_executable(fdebug fdebug.c rs232.c fdebug.rc)
add_dependencies(fdebug psdk)
set_module_type(fdebug win32gui UNICODE)
add_importlibs(fdebug comdlg32 user32 gdi32 msvcrt kernel32)
add_cd_file(TARGET fdebug DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR bootcd livecd hybridcd)
add_cd_file(TARGET fdebug DESTINATION loader NO_CAB FOR bootcd)

View File

@@ -255,4 +255,4 @@ else()
add_custom_target(freeldr ALL DEPENDS freeldr_pe)
endif()
add_cd_file(TARGET freeldr FILE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR bootcd livecd hybridcd regtest)
add_cd_file(TARGET freeldr FILE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.sys DESTINATION loader NO_CAB FOR bootcd regtest)

View File

@@ -97,4 +97,4 @@ endif()
add_dependencies(rosload bugcodes asm xdk)
add_cd_file(TARGET rosload DESTINATION loader NO_CAB FOR bootcd regtest livecd hybridcd)
add_cd_file(TARGET rosload DESTINATION loader NO_CAB FOR bootcd regtest)

View File

@@ -21,4 +21,4 @@ add_executable(installfreeldr EXCLUDE_FROM_ALL
set_module_type(installfreeldr win32cui)
add_importlibs(installfreeldr msvcrt kernel32)
add_cd_file(TARGET installfreeldr DESTINATION loader NO_CAB NOT_IN_HYBRIDCD FOR bootcd livecd hybridcd)
add_cd_file(TARGET installfreeldr DESTINATION loader NO_CAB FOR bootcd)

View File

@@ -19,8 +19,8 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/AHK_Tests/)
add_subdirectory(AHK_Tests)
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.
## Extra files for the Boot/Live CD. You need to put them under "[boot|live]cd_extras"
## using 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/)
@@ -35,12 +35,6 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/livecd_extras/)
add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/livecd_extras/${item} DESTINATION extras NO_CAB NAME_ON_CD ${item} FOR livecd)
endforeach(item)
endif()
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/hybridcd_extras/)
file(GLOB_RECURSE EXTRA_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/hybridcd_extras/ ${CMAKE_CURRENT_SOURCE_DIR}/hybridcd_extras/*)
foreach(item ${EXTRA_FILES})
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/)

View File

@@ -253,7 +253,7 @@ macro(dir_to_num dir var)
endmacro()
function(add_cd_file)
cmake_parse_arguments(_CD "NO_CAB;NOT_IN_HYBRIDCD" "DESTINATION;NAME_ON_CD;TARGET" "FILE;FOR" ${ARGN})
cmake_parse_arguments(_CD "NO_CAB" "DESTINATION;NAME_ON_CD;TARGET" "FILE;FOR" ${ARGN})
if(NOT (_CD_TARGET OR _CD_FILE))
message(FATAL_ERROR "You must provide a target or a file to install!")
endif()
@@ -288,7 +288,9 @@ function(add_cd_file)
if(NOT __cd EQUAL -1)
# whether or not we should put it in reactos.cab or directly on cd
if(_CD_NO_CAB)
# directly on cd
# directly on cd - replace the "reactos/" directory name by the current build architecture name
# WARNING: CMake REGEXes are always case-sensitive!
string(REGEX REPLACE "^reactos([\\\\/]+|$)" "${ARCH}\\1" _CD_ARCH_DESTINATION "${_CD_DESTINATION}")
foreach(item ${_CD_FILE})
if(_CD_NAME_ON_CD)
# rename it in the cd tree
@@ -296,11 +298,7 @@ function(add_cd_file)
else()
get_filename_component(__file ${item} NAME)
endif()
set_property(GLOBAL APPEND PROPERTY BOOTCD_FILE_LIST "${_CD_DESTINATION}/${__file}=${item}")
# add it also into the hybridcd if not specified otherwise
if(NOT _CD_NOT_IN_HYBRIDCD)
set_property(GLOBAL APPEND PROPERTY HYBRIDCD_FILE_LIST "bootcd/${_CD_DESTINATION}/${__file}=${item}")
endif()
set_property(GLOBAL APPEND PROPERTY BOOTCD_FILE_LIST "${_CD_ARCH_DESTINATION}/${__file}=${item}")
endforeach()
# manage dependency
if(_CD_TARGET)
@@ -338,37 +336,17 @@ function(add_cd_file)
get_filename_component(__file ${item} NAME)
endif()
set_property(GLOBAL APPEND PROPERTY LIVECD_FILE_LIST "${_CD_DESTINATION}/${__file}=${item}")
# add it also into the hybridcd if not specified otherwise
if(NOT _CD_NOT_IN_HYBRIDCD)
set_property(GLOBAL APPEND PROPERTY HYBRIDCD_FILE_LIST "livecd/${_CD_DESTINATION}/${__file}=${item}")
endif()
endforeach()
endif() #end livecd
# do we need also to add it to hybridcd?
list(FIND _CD_FOR hybridcd __cd)
if(NOT __cd EQUAL -1)
# manage dependency
if(_CD_TARGET)
add_dependencies(hybridcd ${_CD_TARGET})
endif()
foreach(item ${_CD_FILE})
if(_CD_NAME_ON_CD)
# rename it in the cd tree
set(__file ${_CD_NAME_ON_CD})
else()
get_filename_component(__file ${item} NAME)
endif()
set_property(GLOBAL APPEND PROPERTY HYBRIDCD_FILE_LIST "${_CD_DESTINATION}/${__file}=${item}")
endforeach()
endif() #end hybridcd
# do we add it to regtest?
list(FIND _CD_FOR regtest __cd)
if(NOT __cd EQUAL -1)
# whether or not we should put it in reactos.cab or directly on cd
if(_CD_NO_CAB)
# directly on cd
# directly on cd - replace the "reactos/" directory name by the current build architecture name
# WARNING: CMake REGEXes are always case-sensitive!
string(REGEX REPLACE "^reactos([\\\\/]+|$)" "${ARCH}\\1" _CD_ARCH_DESTINATION "${_CD_DESTINATION}")
foreach(item ${_CD_FILE})
if(_CD_NAME_ON_CD)
# rename it in the cd tree
@@ -376,7 +354,7 @@ function(add_cd_file)
else()
get_filename_component(__file ${item} NAME)
endif()
set_property(GLOBAL APPEND PROPERTY BOOTCDREGTEST_FILE_LIST "${_CD_DESTINATION}/${__file}=${item}")
set_property(GLOBAL APPEND PROPERTY BOOTCDREGTEST_FILE_LIST "${_CD_ARCH_DESTINATION}/${__file}=${item}")
endforeach()
# manage dependency
if(_CD_TARGET)
@@ -395,15 +373,16 @@ function(add_cd_file)
endfunction()
function(create_iso_lists)
# generate reactos.cab before anything else
# Generate reactos.cab before anything else
get_property(_filelist GLOBAL PROPERTY REACTOS_CAB_DEPENDS)
# begin with reactos.inf. We want this command to be always executed, so we pretend it generates another file although it will never do.
# Begin with reactos.inf. We want this command to be always executed, so we pretend it generates another file although it will never do.
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf ${CMAKE_CURRENT_BINARY_DIR}/__some_non_existent_file
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${REACTOS_BINARY_DIR}/boot/bootdata/packages/reactos.inf ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf
DEPENDS ${REACTOS_BINARY_DIR}/boot/bootdata/packages/reactos.inf reactos_cab_inf)
# Now build reactos.cab itself
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/reactos.cab
COMMAND native-cabman -C ${REACTOS_BINARY_DIR}/boot/bootdata/packages/reactos.dff -RC ${CMAKE_CURRENT_BINARY_DIR}/reactos.inf -N -P ${REACTOS_SOURCE_DIR}
@@ -412,25 +391,23 @@ function(create_iso_lists)
add_custom_target(reactos_cab DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/reactos.cab)
add_dependencies(reactos_cab reactos_cab_inf)
# Add reactos.cab into the BootCD
add_cd_file(
TARGET reactos_cab
FILE ${CMAKE_CURRENT_BINARY_DIR}/reactos.cab
DESTINATION reactos
NO_CAB FOR bootcd regtest)
if(FALSE) ## Disabled until we want a RAMDISK ISO
# Add the LiveImage into the BootCD
add_cd_file(
FILE ${CMAKE_CURRENT_BINARY_DIR}/livecd.iso
DESTINATION livecd
FOR hybridcd)
get_property(_filelist GLOBAL PROPERTY BOOTCD_FILE_LIST)
string(REPLACE ";" "\n" _filelist "${_filelist}")
file(APPEND ${REACTOS_BINARY_DIR}/boot/bootcd.cmake.lst "${_filelist}")
unset(_filelist)
file(GENERATE
OUTPUT ${REACTOS_BINARY_DIR}/boot/bootcd.$<CONFIG>.lst
INPUT ${REACTOS_BINARY_DIR}/boot/bootcd.cmake.lst)
TARGET livecd
FILE ${CMAKE_CURRENT_BINARY_DIR}/liveimg.iso
DESTINATION root
NO_CAB FOR bootcd)
endif()
# Write the LiveImage file list
get_property(_filelist GLOBAL PROPERTY LIVECD_FILE_LIST)
string(REPLACE ";" "\n" _filelist "${_filelist}")
file(APPEND ${REACTOS_BINARY_DIR}/boot/livecd.cmake.lst "${_filelist}")
@@ -439,14 +416,21 @@ function(create_iso_lists)
OUTPUT ${REACTOS_BINARY_DIR}/boot/livecd.$<CONFIG>.lst
INPUT ${REACTOS_BINARY_DIR}/boot/livecd.cmake.lst)
get_property(_filelist GLOBAL PROPERTY HYBRIDCD_FILE_LIST)
# Write the BootCD file list
get_property(_filelist GLOBAL PROPERTY BOOTCD_FILE_LIST)
string(REPLACE ";" "\n" _filelist "${_filelist}")
file(APPEND ${REACTOS_BINARY_DIR}/boot/hybridcd.cmake.lst "${_filelist}")
file(APPEND ${REACTOS_BINARY_DIR}/boot/bootcd.cmake.lst "${_filelist}")
unset(_filelist)
# Also, append the file contents list of the LiveImage to the BootCD file list
file(APPEND ${REACTOS_BINARY_DIR}/boot/bootcd.cmake.lst "\n")
file(READ ${REACTOS_BINARY_DIR}/boot/livecd.cmake.lst _filelist)
file(APPEND ${REACTOS_BINARY_DIR}/boot/bootcd.cmake.lst "${_filelist}")
unset(_filelist)
file(GENERATE
OUTPUT ${REACTOS_BINARY_DIR}/boot/hybridcd.$<CONFIG>.lst
INPUT ${REACTOS_BINARY_DIR}/boot/hybridcd.cmake.lst)
OUTPUT ${REACTOS_BINARY_DIR}/boot/bootcd.$<CONFIG>.lst
INPUT ${REACTOS_BINARY_DIR}/boot/bootcd.cmake.lst)
# Write the BootCDRegTest file list
get_property(_filelist GLOBAL PROPERTY BOOTCDREGTEST_FILE_LIST)
string(REPLACE ";" "\n" _filelist "${_filelist}")
file(APPEND ${REACTOS_BINARY_DIR}/boot/bootcdregtest.cmake.lst "${_filelist}")
@@ -889,7 +873,7 @@ function(create_registry_hives)
FILE ${CMAKE_BINARY_DIR}/boot/bootdata/BCD
TARGET bcd_hive
DESTINATION efi/boot
NO_CAB FOR bootcd regtest livecd)
NO_CAB FOR bootcd regtest)
endif()
endfunction()