[WELCOME]: Follow-up to r73590: Load a "welcome.ini" configuration file inside the...
[reactos.git] / reactos / boot / bootdata / CMakeLists.txt
index f5c2f0e..400a9ec 100644 (file)
@@ -1,7 +1,7 @@
 
 add_subdirectory(packages)
 
-#common hives
+# Common hives
 
 add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/txtsetup.sif DESTINATION reactos NO_CAB FOR bootcd regtest)
 
@@ -14,31 +14,51 @@ add_registry_inf(
     hivebcd.inf)
 
 
-#regtest
+# Regtest
 add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/bootcdregtest/regtest.cmd DESTINATION reactos/bin FOR all)
 
-#autorun.inf
+# 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)
 
-#icon.ico
+# icon.ico
 add_cd_file(FILE ${CMAKE_CURRENT_SOURCE_DIR}/icon.ico DESTINATION root NO_CAB NOT_IN_HYBRIDCD FOR all hybridcd)
 
-#readme.txt
+# 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 reactos FOR all)
 
-#freeldr.ini
+# Welcome.exe optional custom configuration (only for HybridCD)
+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)
+
+    # Convert the translation files (name format: xx-YY.ini) into UTF-16
+    file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/welcome_config)
+    file(GLOB I18N_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/welcome_config/ ${CMAKE_CURRENT_SOURCE_DIR}/welcome_config/*-*.ini)
+    foreach(_file ${I18N_FILES})
+        set(_converted_file ${CMAKE_CURRENT_BINARY_DIR}/welcome_config/${_file})
+        set(_source_file ${CMAKE_CURRENT_SOURCE_DIR}/welcome_config/${_file})
+        add_custom_command(OUTPUT "${_converted_file}"
+                           COMMAND native-utf16le "${_source_file}" "${_converted_file}"
+                           DEPENDS native-utf16le "${_source_file}")
+        add_cd_file(TARGET converted_welcome_i18n_files FILE ${_converted_file} DESTINATION bootcd/reactos/welcome NO_CAB NAME_ON_CD ${_file} FOR hybridcd)
+        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)
 
-#unattend
+# 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)
 
-#LiveCD shortcuts
+# LiveCD 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")