11cmake_minimum_required (VERSION 4.0 )
22
3- add_executable (sh
3+ add_executable (sh )
4+ set (sh_src
5+ bltin/echo.c
46 alias.c
57 arith_yacc.c
68 arith_yylex.c
7- builtins.c
89 cd.c
910 error.c
1011 eval.c
@@ -17,8 +18,6 @@ add_executable(sh
1718 main.c
1819 memalloc.c
1920 miscbltin.c
20- mknodes.c
21- mksyntax.c
2221 mystring.c
2322 options.c
2423 output.c
@@ -28,9 +27,12 @@ add_executable(sh
2827 trap.c
2928 var.c)
3029target_sources (sh PRIVATE
30+ ${sh_src}
31+ ${CMAKE_CURRENT_BINARY_DIR } /builtins.c
3132 ${CMAKE_CURRENT_BINARY_DIR } /nodes.c
3233 ${CMAKE_CURRENT_BINARY_DIR } /syntax.c )
3334target_sources (sh PRIVATE
35+ ${CMAKE_CURRENT_BINARY_DIR } /builtins.h
3436 ${CMAKE_CURRENT_BINARY_DIR } /nodes.h
3537 ${CMAKE_CURRENT_BINARY_DIR } /syntax.h
3638 ${CMAKE_CURRENT_BINARY_DIR } /token.h )
@@ -46,6 +48,10 @@ target_include_directories(sh PRIVATE
4648 ${CMAKE_CURRENT_BINARY_DIR }
4749 ../../lib/libedit/src )
4850
51+ add_custom_command (OUTPUT builtins.c builtins.h
52+ COMMAND ${CMAKE_CURRENT_SOURCE_DIR } /mkbuiltins ${CMAKE_CURRENT_SOURCE_DIR }
53+ DEPENDS ${sh_src} )
54+
4955add_custom_command (OUTPUT syntax.c syntax.h
5056 COMMAND ${CMAKE_CURRENT_BINARY_DIR } /mksyntax
5157 DEPENDS mksyntax )
@@ -74,7 +80,8 @@ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/token.h
7480 COMMAND ${CMAKE_CURRENT_SOURCE_DIR } /mktokens )
7581
7682target_link_options (sh PRIVATE
77- -mmacos-version-min=${MACOS_VERSION_MIN} )
83+ -mmacos-version-min=${MACOS_VERSION_MIN}
84+ -L${ROOT_BINARY_DIR}/BSD/lib/ncurses -lncurses )
7885
7986target_link_libraries (sh PRIVATE
8087 ${ROOT_BINARY_DIR } /BSD/lib/libedit/libedit.a )
0 commit comments