2020-11-13 14:46:27 +00:00
|
|
|
cmake_minimum_required(VERSION 3.0)
|
|
|
|
|
|
|
|
project(khat)
|
|
|
|
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}")
|
2022-03-20 14:17:26 +00:00
|
|
|
find_package(PkgConfig REQUIRED)
|
|
|
|
|
|
|
|
pkg_check_modules(HWLOC hwloc REQUIRED)
|
|
|
|
pkg_check_modules(DPDK libdpdk)
|
|
|
|
pkg_check_modules(SPDK spdk_event_bdev spdk_env_dpdk)
|
|
|
|
pkg_check_modules(SPDK_SYS spdk_syslibs)
|
|
|
|
pkg_check_modules(UUID uuid)
|
|
|
|
# get_filename_component(ISAL_LIB_PATH ${SPDK_INCLUDE_DIRS} DIRECTORY)
|
|
|
|
# get_filename_component(ISAL_LIB_PATH ${ISAL_LIB_PATH} DIRECTORY)
|
|
|
|
# set(ISAL_LIB_PATH ${ISAL_LIB_PATH}/isa-l/.libs)
|
2020-11-13 14:46:27 +00:00
|
|
|
|
2020-11-18 01:01:55 +00:00
|
|
|
set(CC_FLAGS -O2 -g -Wall -Wextra -Werror -std=c++11
|
|
|
|
-Wno-deprecated-declarations
|
|
|
|
-Wno-address-of-packed-member
|
2021-02-10 19:06:27 +00:00
|
|
|
-Wno-zero-length-array
|
|
|
|
-Wno-gnu-zero-variadic-macro-arguments
|
|
|
|
-msse4
|
|
|
|
-mavx)
|
|
|
|
|
2020-11-13 14:46:27 +00:00
|
|
|
include_directories(${CMAKE_SOURCE_DIR}/inc)
|
|
|
|
|
2021-02-16 10:14:43 +00:00
|
|
|
set(LIBNM_CC_FLAGS -O2 -g -Wall -Wextra -Werror -std=c++11 -mavx -msse4)
|
2021-02-10 19:06:27 +00:00
|
|
|
set(LIBNTR_C_FLAGS -O2 -g -Wall -Wextra -Werror -std=c11)
|
|
|
|
set(LIBGEN_CC_FLAGS -O2 -g -Wall -Wextra -Werror -std=c++11)
|
|
|
|
|
2022-03-20 14:17:26 +00:00
|
|
|
add_library(ntr STATIC libntr/ntr.c)
|
2021-02-10 19:06:27 +00:00
|
|
|
target_compile_options(ntr PRIVATE ${LIBNTR_C_FLAGS})
|
|
|
|
|
2022-03-20 14:17:26 +00:00
|
|
|
add_library(gen STATIC libgen/generator.cc)
|
2021-02-10 19:06:27 +00:00
|
|
|
target_compile_options(gen PRIVATE ${LIBGEN_CC_FLAGS})
|
|
|
|
|
2022-03-20 14:17:26 +00:00
|
|
|
add_library(nm STATIC libnm/nm.cc libnm/alloc.cc libnm/loadgen.cc libnm/topo.cc)
|
|
|
|
target_include_directories(nm PRIVATE ${HWLOC_INCLUDE_DIRS})
|
|
|
|
target_link_libraries(nm PRIVATE gen ${HWLOC_LINK_LIBRARIES})
|
|
|
|
target_compile_options(nm PRIVATE ${LIBNM_CC_FLAGS} ${HWLOC_CFLAGS})
|
|
|
|
|
|
|
|
add_executable(khat EXCLUDE_FROM_ALL net/khat.cc)
|
|
|
|
target_link_libraries(khat PRIVATE pthread nm ntr ${DPDK_LINK_LIBRARIES})
|
|
|
|
target_compile_options(khat PRIVATE ${CC_FLAGS} ${DPDK_CFLAGS})
|
2021-03-04 03:22:06 +00:00
|
|
|
|
2022-03-20 14:17:26 +00:00
|
|
|
add_executable(cat EXCLUDE_FROM_ALL net/cat.cc)
|
|
|
|
target_link_libraries(cat PRIVATE pthread nm ntr gen ${DPDK_LINK_LIBRARIES})
|
|
|
|
target_compile_options(cat PRIVATE ${CC_FLAGS} ${DPDK_CFLAGS})
|
2020-11-13 14:46:27 +00:00
|
|
|
|
2022-03-20 14:17:26 +00:00
|
|
|
add_executable(rat EXCLUDE_FROM_ALL net/rat.cc)
|
|
|
|
target_link_libraries(rat PRIVATE pthread nm ntr gen ${DPDK_LINK_LIBRARIES})
|
|
|
|
target_compile_options(rat PRIVATE ${CC_FLAGS} ${DPDK_CFLAGS})
|
2020-11-13 14:46:27 +00:00
|
|
|
|
2022-03-28 16:47:46 +00:00
|
|
|
add_executable(birb EXCLUDE_FROM_ALL storage/birb.cc storage/io_gen.cc storage/drivers/bdev.cc storage/drivers/bdev_thread.cc storage/drivers/nvme.cc storage/drivers/nvme_thread.cc)
|
2022-03-20 14:17:26 +00:00
|
|
|
target_include_directories(birb PRIVATE ${SPDK_INCLUDE_DIRS} ${DPDK_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS})
|
|
|
|
target_compile_options(birb PRIVATE ${CC_FLAGS} ${SPDK_CFLAGS} ${UUID_CFLAGS})
|
|
|
|
target_link_directories(birb PRIVATE ${SPDK_LIBRARY_DIRS} ${SPDK_SYS_STATIC_LIBRARY_DIRS} ${UUID_LIBRARY_DIRS})
|
|
|
|
target_link_libraries(birb PRIVATE pthread nm ntr gen -Wl,--whole-archive ${SPDK_LIBRARIES} -Wl,--no-whole-archive ${SPDK_SYS_STATIC_LIBRARIES})
|
2022-02-21 13:41:40 +00:00
|
|
|
|
2022-05-25 10:55:01 +00:00
|
|
|
add_executable(birb_posix EXCLUDE_FROM_ALL storage/birb_posix.cc storage/io_gen.cc)
|
|
|
|
target_compile_options(birb_posix PRIVATE ${CC_FLAGS})
|
|
|
|
target_link_libraries(birb_posix PRIVATE pthread nm ntr gen)
|
2022-03-28 16:47:46 +00:00
|
|
|
|
2022-02-21 13:41:40 +00:00
|
|
|
add_executable(memloadgen util/memloadgen.cc)
|
2022-03-20 14:17:26 +00:00
|
|
|
target_link_libraries(memloadgen PRIVATE pthread nm ntr)
|
2022-05-25 10:55:01 +00:00
|
|
|
target_compile_options(memloadgen PRIVATE ${CC_FLAGS})
|
|
|
|
|
|
|
|
add_executable(test_ts test/ts.cc)
|
|
|
|
set_target_properties(test_ts PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/test)
|
|
|
|
target_link_libraries(test_ts PRIVATE nm)
|
|
|
|
target_compile_options(test_ts PRIVATE ${CC_FLAGS})
|