• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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