diff --git a/boot/bootdata/CMakeLists.txt b/boot/bootdata/CMakeLists.txt index d11367da036..4517feacf9e 100644 --- a/boot/bootdata/CMakeLists.txt +++ b/boot/bootdata/CMakeLists.txt @@ -58,14 +58,16 @@ add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcdregtest/unattend.inf DESTINAT add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/livecd/unattend.inf DESTINATION reactos NO_CAB FOR livecd) # 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") +add_custom_target(livecd_links) +function(add_livecd_shortcut name app dest) + 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) -endmacro(add_livecd_shortcut) +endfunction() ## NOTE: What would be nice is to create this list using /media/inf/shortcuts.inf ## and taking their default english translation! @@ -100,5 +102,3 @@ add_livecd_shortcut("WineMine" winmine.exe "Profiles/All Users/Start Menu/Progra 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") - -add_custom_target(livecd_links DEPENDS ${LIVECD_SHORTCUTS}) diff --git a/sdk/cmake/CMakeMacros.cmake b/sdk/cmake/CMakeMacros.cmake index 8b83b710a87..3f8cd915c66 100644 --- a/sdk/cmake/CMakeMacros.cmake +++ b/sdk/cmake/CMakeMacros.cmake @@ -53,11 +53,8 @@ function(add_message_headers _type) endforeach() endfunction() -function(add_link) - cmake_parse_arguments(_LINK "MINIMIZE" "NAME;PATH;CMD_LINE_ARGS;ICON;GUID" "" ${ARGN}) - if(NOT _LINK_NAME OR NOT _LINK_PATH) - message(FATAL_ERROR "You must provide name and path") - endif() +function(add_link name path) + cmake_parse_arguments(_LINK "MINIMIZE" "CMD_LINE_ARGS;ICON;GUID" "" ${ARGN}) if(_LINK_CMD_LINE_ARGS) set(_LINK_CMD_LINE_ARGS -c ${_LINK_CMD_LINE_ARGS}) @@ -76,11 +73,9 @@ function(add_link) endif() add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_LINK_NAME}.lnk - COMMAND native-mkshelllink -o ${CMAKE_CURRENT_BINARY_DIR}/${_LINK_NAME}.lnk ${_LINK_CMD_LINE_ARGS} ${_LINK_ICON} ${_LINK_GUID} ${_LINK_MINIMIZE} ${_LINK_PATH} + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${name}.lnk + COMMAND native-mkshelllink -o ${CMAKE_CURRENT_BINARY_DIR}/${name}.lnk ${_LINK_CMD_LINE_ARGS} ${_LINK_ICON} ${_LINK_GUID} ${_LINK_MINIMIZE} ${path} DEPENDS native-mkshelllink) - set_source_files_properties( - ${CMAKE_CURRENT_BINARY_DIR}/${_LINK_NAME}.lnk PROPERTIES GENERATED TRUE) endfunction() #