diff options
Diffstat (limited to '')
-rw-r--r-- | src/CMakeLists.txt | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..dc3770e --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,83 @@ +add_compile_options(-Wall) +add_compile_definitions(BSD=1 SHELL) + +add_compile_options(-include ${CMAKE_BINARY_DIR}/config.h) +include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) + +set( + CFILES + alias.c arith_yacc.c arith_yylex.c cd.c error.c eval.c exec.c expand.c + histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c + mystring.c options.c parser.c redir.c show.c trap.c output.c + bltin/printf.c system.c bltin/test.c bltin/times.c var.c +) + +add_executable( + dash + ${CFILES} + alias.h arith_yacc.h bltin/bltin.h cd.h error.h eval.h exec.h + expand.h + init.h input.h jobs.h machdep.h mail.h main.h memalloc.h miscbltin.h + myhistedit.h mystring.h options.h output.h parser.h redir.h shell.h + show.h system.h trap.h var.h + builtins.c builtins.h init.c nodes.c nodes.h signames.c syntax.c syntax.h +) + +install(TARGETS dash) +install(FILES dash.1 TYPE MAN RENAME man1/dash.1) + +add_executable(mkinit EXCLUDE_FROM_ALL mkinit.c) +add_executable(mksyntax EXCLUDE_FROM_ALL mksyntax.c token.h) +add_executable(mknodes EXCLUDE_FROM_ALL mknodes.c) +add_executable(mksignames EXCLUDE_FROM_ALL mksignames.c) + +add_custom_command( + OUTPUT token.h token_vars.h + COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/mktokens + DEPENDS mktokens + VERBATIM +) +add_custom_command( + OUTPUT builtins.def + COMMAND ${CMAKE_C_COMPILER} + "-D$<JOIN:$<TARGET_PROPERTY:dash,COMPILE_DEFINITIONS>,;-D>" + $<TARGET_PROPERTY:dash,COMPILE_OPTIONS> + -E -x c ${CMAKE_CURRENT_SOURCE_DIR}/builtins.def.in + -o ${CMAKE_CURRENT_BINARY_DIR}/builtins.def + DEPENDS builtins.def.in ${CMAKE_BINARY_DIR}/config.h + VERBATIM + COMMAND_EXPAND_LISTS +) +add_custom_command( + OUTPUT builtins.c builtins.h + COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/mkbuiltins + ${CMAKE_CURRENT_BINARY_DIR}/builtins.def + DEPENDS mkbuiltins builtins.def + VERBATIM +) +list(TRANSFORM CFILES PREPEND "${CMAKE_CURRENT_SOURCE_DIR}/") +add_custom_command( + OUTPUT init.c + COMMAND mkinit ${CFILES} + DEPENDS ${CFILES} + VERBATIM + COMMAND_EXPAND_LISTS +) +add_custom_command( + OUTPUT nodes.c nodes.h + COMMAND mknodes + ${CMAKE_CURRENT_SOURCE_DIR}/nodetypes + ${CMAKE_CURRENT_SOURCE_DIR}/nodes.c.pat + DEPENDS nodetypes nodes.c.pat + VERBATIM +) +add_custom_command( + OUTPUT syntax.c syntax.h + COMMAND mksyntax + VERBATIM +) +add_custom_command( + OUTPUT signames.c + COMMAND mksignames + VERBATIM +) |