comparison src/usr/CMakeLists.txt @ 58:f1b965f53d3b

add tools userlists
author tobaru
date Fri, 05 Jul 2019 16:39:01 +0900
parents
children 8f435de13b91
comparison
equal deleted inserted replaced
57:450ee0f18709 58:f1b965f53d3b
1 cmake_minimum_required(VERSION 3.8)
2 project(usr C ASM)
3
4
5 set(CMAKE_C_FLAGS_DEBUG "-O0")
6 add_definitions(${PMAKE_ARGS})
7 set(CMAKE_C_COMPILER "${CBC_COM}")
8
9 include_directories("..")
10
11 macro( GearsCommand )
12 set( _OPTIONS_ARGS )
13 set( _ONE_VALUE_ARGS TARGET )
14 set( _MULTI_VALUE_ARGS SOURCES )
15 cmake_parse_arguments( _Gears "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN} )
16
17 set (_Gears_CBC_SOURCES)
18 set (_Gears_CSOURCES)
19 foreach(i ${_Gears_SOURCES})
20 if (${i} MATCHES "\\.cbc")
21 string(REGEX REPLACE "(.*).cbc" "c/\\1.c" j ${i})
22 add_custom_command (
23 OUTPUT ${j}
24 DEPENDS ${i}
25 COMMAND "perl" "gearsTools/generate_stub.pl" "-o" ${j} ${i}
26 )
27 list(APPEND _Gears_CBC_SOURCES ${j})
28 elseif (${i} MATCHES "\\.cu")
29 string(REGEX REPLACE "(.*).cu" "c/\\1.ptx" j ${i})
30 add_custom_command (
31 OUTPUT ${j}
32 DEPENDS ${i}
33 COMMAND nvcc ${NVCCFLAG} -c -ptx -o ${j} ${i}
34 )
35 list(APPEND _Gears_CBC_SOURCES ${j})
36 else()
37 set(j ${i})
38 list(APPEND _Gears_CSOURCES ${j})
39 endif()
40 endforeach(i)
41
42 add_custom_command (
43 OUTPUT c/${_Gears_TARGET}-context.c
44 DEPENDS ${_Gears_CBC_SOURCES}
45 COMMAND "perl" "gearsTools/generate_context.pl" "-o" ${_Gears_TARGET} ${_Gears_CBC_SOURCES}
46 )
47 add_executable(${_Gears_TARGET} ${_Gears_CBC_SOURCES} ${_Gears_CSOURCES} c/${_Gears_TARGET}-context.c )
48 target_link_libraries(${_Gears_TARGET} ulib)
49 endmacro()
50
51 add_library(ulib STATIC ulib.c usys.c printf.c umalloc.c)
52
53 set(USR_COMMANDS _cat _echo _grep _init _kill _ln _ls _mkdir _rm _sh _stressfs _usertests _wc _zombie _hello)
54
55 foreach(cmd ${USR_COMMANDS)
56 GearsCommand (TARGET ${cmd} SOURCES ${cmd}.c)
57 end foreach(cmd)
58
59 add_custom_command(OUTPUT fs.img
60 COMMAND ./mkfs fs.img ${USR_COMMAND} UNIX
61 DEPENDS ${USR_COMMANDS}
62 )
63