2023-03-29 16:27:02 +00:00
# The C++ standard library for OS operations (userspace only), so most things that have to do with calling the kernel, or functions that the kernel has no use for.
file ( GLOB HEADERS include/os/*.h )
set ( SOURCES
$ { H E A D E R S }
s r c / A r g u m e n t P a r s e r . c p p
2023-10-06 20:06:34 +00:00
s r c / E v e n t L o o p . c p p
2023-04-12 19:46:10 +00:00
s r c / F i l e . c p p
2023-04-13 16:33:04 +00:00
s r c / F i l e S y s t e m . c p p
2023-04-18 16:16:24 +00:00
s r c / P r o c e s s . c p p
2023-04-28 19:15:41 +00:00
s r c / D i r e c t o r y . c p p
2023-04-13 15:04:59 +00:00
s r c / M a i n . c p p
2023-05-03 15:37:26 +00:00
s r c / P a t h . c p p
2023-05-26 16:22:50 +00:00
s r c / M o d e . c p p
2023-07-08 16:28:04 +00:00
s r c / P r o m p t . c p p
2023-08-14 08:45:00 +00:00
s r c / S e c u r i t y . c p p
2023-08-03 14:39:30 +00:00
s r c / L o c a l S e r v e r . c p p
2023-08-07 20:44:41 +00:00
s r c / L o c a l C l i e n t . c p p
2023-08-14 16:14:35 +00:00
s r c / I P C . c p p
2023-08-29 14:25:30 +00:00
s r c / S h a r e d M e m o r y . c p p
2024-01-05 21:16:50 +00:00
s r c / T i m e r . c p p
2024-09-01 10:40:37 +00:00
s r c / C o n f i g . c p p
2023-03-29 16:27:02 +00:00
)
add_library ( os ${ SOURCES } )
2023-04-07 10:02:49 +00:00
target_compile_options ( os PRIVATE ${ COMMON_FLAGS } )
2023-03-29 16:27:02 +00:00
target_include_directories ( os PUBLIC include/ )
target_include_directories ( os PUBLIC ${ LUNA_BASE } /usr/include )
if ( "${LUNA_ARCH}" MATCHES "x86_64" )
target_compile_definitions ( os PUBLIC ARCH_X86_64 )
endif ( )
2023-08-21 12:06:32 +00:00
add_custom_command (
T A R G E T o s
C O M M A N D " $ { C M A K E _ C O M M A N D } " - E c o p y $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / l i b o s . a $ { L U N A _ B A S E } / u s r / l i b / l i b o s . a
)