cmake_minimum_required(VERSION 3.00) project(libc) set(C 99) set(CMAKE_NASM_COMPILE_OBJECT "nasm -o ") add_library(libc) add_library(libc_asm OBJECT) target_include_directories(libc PRIVATE inc) file(GLOB_RECURSE libc_src_c "src/**.c") file(GLOB_RECURSE libc_inc "inc/**.h") file(GLOB_RECURSE libc_src_asm "src/**.asm") target_compile_options(libc PRIVATE -g -fno-stack-protector -fno-stack-check -ffreestanding -m64 -march=x86-64 -mabi=sysv) target_link_options(libc PRIVATE -Bsymbolic -nostdlib -shared -fno-stack-protector) enable_language(ASM_NASM) set(CAN_USE_ASSEMBLER TRUE) set_target_properties(libc PROPERTIES PREFIX "") set_target_properties(libc PROPERTIES SUFFIX ".so") target_sources(libc_asm PRIVATE ${libc_src_asm}) target_sources(libc PRIVATE ${libc_src_c} ${libc_inc} $)