2023-03-29 18:27:02 +02: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 22:06:34 +02:00
s r c / E v e n t L o o p . c p p
2023-04-12 21:46:10 +02:00
s r c / F i l e . c p p
2023-04-13 18:33:04 +02:00
s r c / F i l e S y s t e m . c p p
2023-04-18 18:16:24 +02:00
s r c / P r o c e s s . c p p
2023-04-28 21:15:41 +02:00
s r c / D i r e c t o r y . c p p
2023-04-13 17:04:59 +02:00
s r c / M a i n . c p p
2023-05-03 17:37:26 +02:00
s r c / P a t h . c p p
2023-05-26 18:22:50 +02:00
s r c / M o d e . c p p
2023-07-08 18:28:04 +02:00
s r c / P r o m p t . c p p
2023-08-14 10:45:00 +02:00
s r c / S e c u r i t y . c p p
2023-08-03 16:39:30 +02:00
s r c / L o c a l S e r v e r . c p p
2023-08-07 22:44:41 +02:00
s r c / L o c a l C l i e n t . c p p
2023-08-14 18:14:35 +02:00
s r c / I P C . c p p
2023-08-29 16:25:30 +02:00
s r c / S h a r e d M e m o r y . c p p
2024-01-05 22:16:50 +01:00
s r c / T i m e r . c p p
2023-03-29 18:27:02 +02:00
)
add_library ( os ${ SOURCES } )
2023-04-07 12:02:49 +02:00
target_compile_options ( os PRIVATE ${ COMMON_FLAGS } )
2023-03-29 18:27:02 +02: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 14:06:32 +02: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
)