function(luna_service SOURCE_FILE APP_NAME) 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) install(TARGETS ${APP_NAME} DESTINATION ${LUNA_BASE}/usr/bin) endfunction() add_executable(preinit preinit.cpp) target_compile_options(preinit PRIVATE -Os ${COMMON_FLAGS} -Wno-write-strings) add_dependencies(preinit libc) target_include_directories(preinit PRIVATE ${LUNA_BASE}/usr/include) install(TARGETS preinit DESTINATION ${LUNA_ROOT}/initrd/bin) luna_service(init.cpp init) luna_service(startui.cpp startui)