mirror of
https://github.com/reactos/reactos.git
synced 2026-06-01 17:00:51 +08:00
[BOOTDATA] CMakeLists.txt: Reorganize a bit the add_livecd_shortcut() invocations (#8936)
- Use variables to define and hold the on-disk shortcuts destination directories (the "Profiles/All Users/..."), and use these variables in the `add_livecd_shortcut()` calls; this allows shortening the corresponding lines. - There are currently two shortcuts: "Command Prompt" and "ReactOS Explorer", that are added to more than one destination. Previously, we had to invoke `add_livecd_shortcut()` for each destination. However, each invocation recreated the _**same**_ shortcut file (with the same .lnk file name) in the build directory. To solve this, the `dest` parameter of the `add_livecd_shortcut()` function, is replaced by a `DESTINATION` keyword, whose value is a list of one or more destination directories, where the shortcut should be added.
This commit is contained in:
@@ -59,46 +59,66 @@ add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/livecd/unattend.inf DESTINATION rea
|
||||
|
||||
# LiveImage shortcuts
|
||||
add_custom_target(livecd_links)
|
||||
function(add_livecd_shortcut name app dest)
|
||||
function(add_livecd_shortcut name app)
|
||||
cmake_parse_arguments(_shortcut "" "" "DESTINATION" ${ARGN})
|
||||
if(NOT _shortcut_DESTINATION)
|
||||
message(FATAL_ERROR "You must provide at least one destination")
|
||||
endif()
|
||||
|
||||
add_link(${name} livecd_start.cmd GUID "{450D8FBA-AD25-11D0-98A8-0800361B1103}" CMD_LINE_ARGS ${app} ICON ${app} MINIMIZE)
|
||||
# Only on CMake 3.20+: target_sources(livecd_links PRIVATE ...)
|
||||
set_property(TARGET livecd_links APPEND PROPERTY SOURCES "${CMAKE_CURRENT_BINARY_DIR}/${name}.lnk")
|
||||
add_cd_file(FILE "${CMAKE_CURRENT_BINARY_DIR}/${name}.lnk"
|
||||
TARGET livecd_links
|
||||
DESTINATION ${dest}
|
||||
FOR livecd)
|
||||
|
||||
foreach(dest ${_shortcut_DESTINATION})
|
||||
add_cd_file(FILE "${CMAKE_CURRENT_BINARY_DIR}/${name}.lnk"
|
||||
TARGET livecd_links
|
||||
DESTINATION ${dest}
|
||||
FOR livecd)
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
## NOTE: What would be nice is to create this list using /media/inf/shortcuts.inf
|
||||
## and taking their default english translation!
|
||||
|
||||
add_cd_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/livecd_start.cmd" DESTINATION "Profiles/Default User/My Documents" FOR livecd)
|
||||
add_livecd_shortcut("Read Me" readme.txt "Profiles/All Users/Desktop")
|
||||
add_livecd_shortcut("Command Prompt" cmd.exe "Profiles/All Users/Desktop")
|
||||
add_livecd_shortcut("Device Manager" devmgmt.exe "Profiles/All Users/Start Menu/Programs/Administrative Tools")
|
||||
add_livecd_shortcut("Event Viewer" eventvwr.exe "Profiles/All Users/Start Menu/Programs/Administrative Tools")
|
||||
add_livecd_shortcut("Service Manager" servman.exe "Profiles/All Users/Start Menu/Programs/Administrative Tools")
|
||||
add_livecd_shortcut("System Configuration" msconfig.exe "Profiles/All Users/Start Menu/Programs/Administrative Tools")
|
||||
add_livecd_shortcut("Accessibility Utility Manager" utilman.exe "Profiles/All Users/Start Menu/Programs/Accessories/Accessibility")
|
||||
add_livecd_shortcut("Magnify" magnify.exe "Profiles/All Users/Start Menu/Programs/Accessories/Accessibility")
|
||||
add_livecd_shortcut("On-Screen Keyboard" osk.exe "Profiles/All Users/Start Menu/Programs/Accessories/Accessibility")
|
||||
add_livecd_shortcut("Remote Desktop Connection" mstsc.exe "Profiles/All Users/Start Menu/Programs/Accessories/Communications")
|
||||
add_livecd_shortcut("Multimedia Player" mplay32.exe "Profiles/All Users/Start Menu/Programs/Accessories/Entertainment")
|
||||
add_livecd_shortcut("Sound Recorder" sndrec32.exe "Profiles/All Users/Start Menu/Programs/Accessories/Entertainment")
|
||||
add_livecd_shortcut("Volume Control" sndvol32.exe "Profiles/All Users/Start Menu/Programs/Accessories/Entertainment")
|
||||
add_livecd_shortcut("Character Map" charmap.exe "Profiles/All Users/Start Menu/Programs/Accessories/System Tools")
|
||||
add_livecd_shortcut("Clipboard Viewer" clipbrd.exe "Profiles/All Users/Start Menu/Programs/Accessories/System Tools")
|
||||
add_livecd_shortcut("Keyboard Layout Switcher" kbswitch.exe "Profiles/All Users/Start Menu/Programs/Accessories/System Tools")
|
||||
add_livecd_shortcut("ReactX Diagnostic" dxdiag.exe "Profiles/All Users/Start Menu/Programs/Accessories/System Tools")
|
||||
add_livecd_shortcut("Registry Editor" regedit.exe "Profiles/All Users/Start Menu/Programs/Accessories/System Tools")
|
||||
add_livecd_shortcut("Task Manager" taskmgr.exe "Profiles/All Users/Start Menu/Programs/Accessories/System Tools")
|
||||
add_livecd_shortcut("Calculator" calc.exe "Profiles/All Users/Start Menu/Programs/Accessories")
|
||||
add_livecd_shortcut("Command Prompt" cmd.exe "Profiles/All Users/Start Menu/Programs/Accessories")
|
||||
add_livecd_shortcut("Paint" mspaint.exe "Profiles/All Users/Start Menu/Programs/Accessories")
|
||||
add_livecd_shortcut("Notepad" notepad.exe "Profiles/All Users/Start Menu/Programs/Accessories")
|
||||
add_livecd_shortcut("WordPad" wordpad.exe "Profiles/All Users/Start Menu/Programs/Accessories")
|
||||
add_livecd_shortcut("Solitaire" sol.exe "Profiles/All Users/Start Menu/Programs/Games")
|
||||
add_livecd_shortcut("Spider Solitaire" spider.exe "Profiles/All Users/Start Menu/Programs/Games")
|
||||
add_livecd_shortcut("WineMine" winmine.exe "Profiles/All Users/Start Menu/Programs/Games")
|
||||
add_livecd_shortcut("ReactOS Explorer" explorer.exe "Profiles/All Users/Start Menu/Programs")
|
||||
add_livecd_shortcut("Command Prompt" cmd.exe "Profiles/Default User/Application Data/Microsoft/Internet Explorer/Quick Launch")
|
||||
add_livecd_shortcut("ReactOS Explorer" explorer.exe "Profiles/Default User/Application Data/Microsoft/Internet Explorer/Quick Launch")
|
||||
|
||||
set(dir_allusers_desktop "Profiles/All Users/Desktop")
|
||||
set(dir_startmenu_programs "Profiles/All Users/Start Menu/Programs")
|
||||
set(dir_startmenu_admintools "${dir_startmenu_programs}/Administrative Tools")
|
||||
set(dir_startmenu_accessories "${dir_startmenu_programs}/Accessories")
|
||||
set(dir_startmenu_games "${dir_startmenu_programs}/Games")
|
||||
set(dir_startmenu_accessibility "${dir_startmenu_accessories}/Accessibility")
|
||||
set(dir_startmenu_comms "${dir_startmenu_accessories}/Communications")
|
||||
set(dir_startmenu_entertainment "${dir_startmenu_accessories}/Entertainment")
|
||||
set(dir_startmenu_systemtools "${dir_startmenu_accessories}/System Tools")
|
||||
set(dir_quicklaunch "Profiles/Default User/Application Data/Microsoft/Internet Explorer/Quick Launch")
|
||||
|
||||
add_livecd_shortcut("Read Me" readme.txt DESTINATION "${dir_allusers_desktop}")
|
||||
add_livecd_shortcut("ReactOS Explorer" explorer.exe
|
||||
DESTINATION "${dir_startmenu_programs}" "${dir_quicklaunch}")
|
||||
add_livecd_shortcut("Command Prompt" cmd.exe
|
||||
DESTINATION "${dir_allusers_desktop}" "${dir_startmenu_accessories}" "${dir_quicklaunch}")
|
||||
add_livecd_shortcut("Device Manager" devmgmt.exe DESTINATION "${dir_startmenu_admintools}")
|
||||
add_livecd_shortcut("Event Viewer" eventvwr.exe DESTINATION "${dir_startmenu_admintools}")
|
||||
add_livecd_shortcut("Service Manager" servman.exe DESTINATION "${dir_startmenu_admintools}")
|
||||
add_livecd_shortcut("System Configuration" msconfig.exe DESTINATION "${dir_startmenu_admintools}")
|
||||
add_livecd_shortcut("Accessibility Utility Manager" utilman.exe DESTINATION "${dir_startmenu_accessibility}")
|
||||
add_livecd_shortcut("Magnify" magnify.exe DESTINATION "${dir_startmenu_accessibility}")
|
||||
add_livecd_shortcut("On-Screen Keyboard" osk.exe DESTINATION "${dir_startmenu_accessibility}")
|
||||
add_livecd_shortcut("Remote Desktop Connection" mstsc.exe DESTINATION "${dir_startmenu_comms}")
|
||||
add_livecd_shortcut("Multimedia Player" mplay32.exe DESTINATION "${dir_startmenu_entertainment}")
|
||||
add_livecd_shortcut("Sound Recorder" sndrec32.exe DESTINATION "${dir_startmenu_entertainment}")
|
||||
add_livecd_shortcut("Volume Control" sndvol32.exe DESTINATION "${dir_startmenu_entertainment}")
|
||||
add_livecd_shortcut("Character Map" charmap.exe DESTINATION "${dir_startmenu_systemtools}")
|
||||
add_livecd_shortcut("Clipboard Viewer" clipbrd.exe DESTINATION "${dir_startmenu_systemtools}")
|
||||
add_livecd_shortcut("Keyboard Layout Switcher" kbswitch.exe DESTINATION "${dir_startmenu_systemtools}")
|
||||
add_livecd_shortcut("ReactX Diagnostic" dxdiag.exe DESTINATION "${dir_startmenu_systemtools}")
|
||||
add_livecd_shortcut("Registry Editor" regedit.exe DESTINATION "${dir_startmenu_systemtools}")
|
||||
add_livecd_shortcut("Task Manager" taskmgr.exe DESTINATION "${dir_startmenu_systemtools}")
|
||||
add_livecd_shortcut("Calculator" calc.exe DESTINATION "${dir_startmenu_accessories}")
|
||||
add_livecd_shortcut("Paint" mspaint.exe DESTINATION "${dir_startmenu_accessories}")
|
||||
add_livecd_shortcut("Notepad" notepad.exe DESTINATION "${dir_startmenu_accessories}")
|
||||
add_livecd_shortcut("WordPad" wordpad.exe DESTINATION "${dir_startmenu_accessories}")
|
||||
add_livecd_shortcut("Solitaire" sol.exe DESTINATION "${dir_startmenu_games}")
|
||||
add_livecd_shortcut("Spider Solitaire" spider.exe DESTINATION "${dir_startmenu_games}")
|
||||
add_livecd_shortcut("WineMine" winmine.exe DESTINATION "${dir_startmenu_games}")
|
||||
|
||||
Reference in New Issue
Block a user