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

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