1cmake_minimum_required(VERSION 3.21) 2project(musl_benchmark) 3 4set(TARGET_NAME musl_benchmark) 5set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -std=c++17") 6set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --verbose") 7 8set(benchmark_DIR ../../third_party_benchmark/build) 9find_package(benchmark REQUIRED) 10 11#add_subdirectory(Benchmark/musl) 12#include(Benchmark/musl) 13 14if (APPLE) 15message(STATUS "In apple system build...") 16else() 17message(FATAL_ERROR "Only for apple system build...") 18endif() 19set(EXCLUDE_FILES 20 libc_eventfd.cpp 21 libc_inotify.cpp 22 libc_ioctl.cpp 23 libc_pthread.cpp 24 libc_random.cpp 25 libc_sched.cpp 26 libc_signal.cpp 27 libc_syscall.cpp 28 libc_sysinfo.cpp 29 libc_time.cpp 30 libc_unistd.cpp 31 libc_dlopen.cpp 32 socket_test.cpp 33 libc_epoll.cpp) 34 35file(GLOB SOURCE_FILES musl/*.cpp) 36foreach(IT IN LISTS EXCLUDE_FILES) 37 list(FILTER SOURCE_FILES EXCLUDE REGEX "${IT}") 38endforeach() 39message(WARNING "glob source files: ${SOURCE_FILES}") 40 41add_executable(${TARGET_NAME} ${SOURCE_FILES}) 42target_include_directories(${TARGET_NAME} 43 AFTER 44 PRIVATE ./musl 45 PRIVATE ../../third_party_cjson) 46 47target_link_libraries(${TARGET_NAME} 48 PRIVATE 49 benchmark::benchmark 50 ${CMAKE_CURRENT_SOURCE_DIR}/../../third_party_cJSON/build/libcjson.dylib) 51 52add_executable(musl_dlopen musl/libc_dlopen.cpp) 53 54target_link_libraries(musl_dlopen 55 PRIVATE 56 benchmark::benchmark) 57