mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-26 19:33:31 +00:00
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
34 lines
1.4 KiB
CMake
34 lines
1.4 KiB
CMake
|
|
file(GLOB welcome_rc_deps res/*.*)
|
|
add_rc_deps(welcome.rc ${welcome_rc_deps})
|
|
add_executable(welcome welcome.c welcome.rc)
|
|
set_module_type(welcome win32gui UNICODE)
|
|
add_importlibs(welcome gdi32 user32 shell32 msvcrt kernel32 ntdll)
|
|
|
|
# Reduce the required subsystem to WinNT 4.0 for i386 builds only.
|
|
if(ARCH STREQUAL "i386")
|
|
if(MSVC)
|
|
# NOTE: We cannot use the following command:
|
|
# target_link_options(welcome PRIVATE "/SUBSYSTEM:WINDOWS,4.00")
|
|
# because it would act at the level of the LINK.EXE linker flags,
|
|
# which only accepts a subsystem version >= 5.10 (Windows XP+) on
|
|
# latest MSVC versions.
|
|
# So to work around this problem, we use a post-build command by
|
|
# employing EDITBIN.EXE that does not check the subsystem version.
|
|
#
|
|
add_custom_command(
|
|
TARGET welcome POST_BUILD
|
|
COMMAND editbin.exe /NOLOGO /SUBSYSTEM:WINDOWS,4.00 $<TARGET_FILE:welcome> > NUL
|
|
VERBATIM)
|
|
else()
|
|
# The binutils linker does not set a lower limit on the subsystem.
|
|
# Otherwise we would use: objcopy --subsystem windows:4.00 $<TARGET_FILE:welcome>
|
|
target_link_options(welcome PRIVATE "-Wl,--subsystem,windows:4.00")
|
|
endif()
|
|
endif()
|
|
|
|
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)
|