From 5036a09e2262553d4e389bf1b0f307faa35d3852 Mon Sep 17 00:00:00 2001
From: David Sidrane <david_s5@nscdg.com>
Date: Thu, 29 Nov 2018 15:05:51 -0800
Subject: [PATCH] Add support from cromfs generation

---
 ROMFS/CMakeLists.txt | 56 ++++++++++++++++++++++++++++++++++++--------
 1 file changed, 46 insertions(+), 10 deletions(-)

diff --git a/ROMFS/CMakeLists.txt b/ROMFS/CMakeLists.txt
index bcc4fb58a6..062ef498eb 100644
--- a/ROMFS/CMakeLists.txt
+++ b/ROMFS/CMakeLists.txt
@@ -189,17 +189,53 @@ add_custom_command(OUTPUT romfs.img romfs.txt
 	COMMENT "ROMFS: generating image"
 	)
 
-# create nsh_romfsimg.c
-find_program(XXD xxd)
-if(NOT XXD)
-    message(FATAL_ERROR "xxd not found")
+if(CONFIG_FS_CROMFS)
+	#TODO:build gencromfs tool from nuttx and path to it.
+	find_program(GENCROMFS gencromfs)
+	if(NOT GENCROMFS)
+		message(FATAL_ERROR "gencromfs not found")
+	endif()
+	# create nsh_romfsimg.c
+	add_custom_command(OUTPUT nsh_romfsimg.c
+		COMMAND ${CMAKE_COMMAND} -E remove -f nsh_romfsimg.c
+		COMMAND ${GENCROMFS} ${romfs_gen_root_dir}  nsh_romfsimg.c
+		DEPENDS
+			${romfs_gen_root_dir}/init.d/rcS
+			${romfs_gen_root_dir}/init.d/rc.autostart
+			romfs_extras.stamp
+			romfs_pruned.stamp
+		COMMENT "ROMFS: generating image"
+		)
+
+else()
+	find_program(GENROMFS genromfs)
+	if(NOT GENROMFS)
+		message(FATAL_ERROR "genromfs not found")
+	endif()
+	# create romfs.img
+	add_custom_command(OUTPUT romfs.img romfs.txt
+		COMMAND ${CMAKE_COMMAND} -E remove -f romfs.img romfs.txt
+		COMMAND ${GENROMFS} -f romfs.img -d ${romfs_gen_root_dir} -V "NSHInitVol" -v > romfs.txt 2>&1
+		DEPENDS
+			${romfs_gen_root_dir}/init.d/rcS
+			${romfs_gen_root_dir}/init.d/rc.autostart
+			romfs_extras.stamp
+		COMMENT "ROMFS: generating image"
+		)
+
+		# create nsh_romfsimg.c
+		find_program(XXD xxd)
+		if(NOT XXD)
+		    message(FATAL_ERROR "xxd not found")
+		endif()
+		add_custom_command(OUTPUT nsh_romfsimg.c
+			COMMAND ${CMAKE_COMMAND} -E remove -f nsh_romfsimg.c
+			COMMAND ${XXD} -i romfs.img nsh_romfsimg.c
+			COMMAND sed 's/unsigned/const unsigned/g' nsh_romfsimg.c > nsh_romfsimg.c.tmp && ${CMAKE_COMMAND} -E rename nsh_romfsimg.c.tmp nsh_romfsimg.c
+			DEPENDS romfs.img
+			)
 endif()
-add_custom_command(OUTPUT nsh_romfsimg.c
-	COMMAND ${CMAKE_COMMAND} -E remove -f nsh_romfsimg.c
-	COMMAND ${XXD} -i romfs.img nsh_romfsimg.c
-	COMMAND sed 's/unsigned/const unsigned/g' nsh_romfsimg.c > nsh_romfsimg.c.tmp && ${CMAKE_COMMAND} -E rename nsh_romfsimg.c.tmp nsh_romfsimg.c
-	DEPENDS romfs.img
-	)
+
 
 add_library(romfs STATIC nsh_romfsimg.c)
 add_dependencies(romfs prebuild_targets)
-- 
GitLab