cmake_minimum_required(VERSION 3.31) project(libc C ASM) set(source_dirs core malloc io exec) set(LIBC_STANDALONE FALSE) set(public_include_dirs ${CMAKE_CURRENT_SOURCE_DIR}/include) foreach (dir ${source_dirs}) add_subdirectory(${dir}) set(sources ${sources} ${component_sources}) set(headers ${headers} ${component_headers}) set(public_include_dirs ${public_include_dirs} ${component_public_include_dirs}) endforeach (dir) add_library(libc SHARED ${sources} ${headers}) target_include_directories(libc PUBLIC ${public_include_dirs}) target_link_libraries(libc PRIVATE rosetta libxpc.a liblaunch.a libmagenta.a) target_compile_options(libc PRIVATE -ffreestanding -nostdlib) target_link_options(libc PRIVATE -ffreestanding -nostdlib) target_compile_definitions(libc PRIVATE ENABLE_GLOBAL_HEAP=1 BUILD_SHARED=1) set_target_properties(libc PROPERTIES PREFIX "") install(TARGETS libc)