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} $)