Mercurial > hg > Members > anatofuz > CbC_xv6
diff src/usr/CMakeLists.txt @ 58:f1b965f53d3b
add tools userlists
author | tobaru |
---|---|
date | Fri, 05 Jul 2019 16:39:01 +0900 |
parents | |
children | 8f435de13b91 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/usr/CMakeLists.txt Fri Jul 05 16:39:01 2019 +0900 @@ -0,0 +1,63 @@ +cmake_minimum_required(VERSION 3.8) +project(usr C ASM) + + +set(CMAKE_C_FLAGS_DEBUG "-O0") +add_definitions(${PMAKE_ARGS}) +set(CMAKE_C_COMPILER "${CBC_COM}") + +include_directories("..") + +macro( GearsCommand ) + set( _OPTIONS_ARGS ) + set( _ONE_VALUE_ARGS TARGET ) + set( _MULTI_VALUE_ARGS SOURCES ) + cmake_parse_arguments( _Gears "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN} ) + + set (_Gears_CBC_SOURCES) + set (_Gears_CSOURCES) + foreach(i ${_Gears_SOURCES}) + if (${i} MATCHES "\\.cbc") + string(REGEX REPLACE "(.*).cbc" "c/\\1.c" j ${i}) + add_custom_command ( + OUTPUT ${j} + DEPENDS ${i} + COMMAND "perl" "gearsTools/generate_stub.pl" "-o" ${j} ${i} + ) + list(APPEND _Gears_CBC_SOURCES ${j}) + elseif (${i} MATCHES "\\.cu") + string(REGEX REPLACE "(.*).cu" "c/\\1.ptx" j ${i}) + add_custom_command ( + OUTPUT ${j} + DEPENDS ${i} + COMMAND nvcc ${NVCCFLAG} -c -ptx -o ${j} ${i} + ) + list(APPEND _Gears_CBC_SOURCES ${j}) + else() + set(j ${i}) + list(APPEND _Gears_CSOURCES ${j}) + endif() + endforeach(i) + + add_custom_command ( + OUTPUT c/${_Gears_TARGET}-context.c + DEPENDS ${_Gears_CBC_SOURCES} + COMMAND "perl" "gearsTools/generate_context.pl" "-o" ${_Gears_TARGET} ${_Gears_CBC_SOURCES} + ) + add_executable(${_Gears_TARGET} ${_Gears_CBC_SOURCES} ${_Gears_CSOURCES} c/${_Gears_TARGET}-context.c ) + target_link_libraries(${_Gears_TARGET} ulib) +endmacro() + +add_library(ulib STATIC ulib.c usys.c printf.c umalloc.c) + +set(USR_COMMANDS _cat _echo _grep _init _kill _ln _ls _mkdir _rm _sh _stressfs _usertests _wc _zombie _hello) + +foreach(cmd ${USR_COMMANDS) + GearsCommand (TARGET ${cmd} SOURCES ${cmd}.c) +end foreach(cmd) + +add_custom_command(OUTPUT fs.img + COMMAND ./mkfs fs.img ${USR_COMMAND} UNIX + DEPENDS ${USR_COMMANDS} +) +