function(luna_app SOURCE_FILE APP_NAME SETUID) add_executable(${APP_NAME} ${SOURCE_FILE}) target_compile_options(${APP_NAME} PRIVATE -Os ${COMMON_FLAGS} -Wno-write-strings) add_dependencies(${APP_NAME} libc) target_include_directories(${APP_NAME} PRIVATE ${LUNA_BASE}/usr/include) target_link_libraries(${APP_NAME} PRIVATE os) if(${SETUID}) install(TARGETS ${APP_NAME} DESTINATION ${LUNA_ROOT}/initrd/bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE SETUID) else() install(TARGETS ${APP_NAME} DESTINATION ${LUNA_ROOT}/initrd/bin) endif() endfunction() luna_app(init.cpp init OFF) luna_app(env.cpp env OFF) luna_app(su.cpp su ON) luna_app(sh.cpp sh OFF) luna_app(cat.cpp cat OFF) luna_app(date.cpp date OFF) luna_app(edit.cpp edit OFF) luna_app(ls.cpp ls OFF) luna_app(chown.cpp chown OFF) luna_app(chmod.cpp chmod OFF) luna_app(mkdir.cpp mkdir OFF) luna_app(rm.cpp rm OFF) luna_app(stat.cpp stat OFF) luna_app(uname.cpp uname OFF) luna_app(base64.cpp base64 OFF)