Repository navigation
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
62 lines (50 loc) · 1.65 KB
/
Copy pathCMakeLists.txt
File metadata and controls
62 lines (50 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
cmake_minimum_required (VERSION 3.10)
project (cacheSimulator)
# Find required packages
find_package(PkgConfig REQUIRED)
pkg_check_modules(GLIB REQUIRED glib-2.0)
# Find ZSTD library
find_library(ZSTD_LIBRARY
NAMES zstd libzstd
PATHS /usr/local/lib /usr/lib /opt/homebrew/lib
DOC "ZSTD library"
)
find_path(ZSTD_INCLUDE_DIR
NAMES zstd.h
PATHS /usr/local/include /usr/include /opt/homebrew/include
DOC "ZSTD include directory"
)
include_directories(${ZSTD_INCLUDE_DIR})
message(STATUS "ZSTD library: ${ZSTD_LIBRARY}")
message(STATUS "ZSTD include: ${ZSTD_INCLUDE_DIR}")
# Find libCacheSim
find_library(LIBCACHESIM_LIBRARY
NAMES CacheSim libCacheSim
PATHS /usr/local/lib /usr/lib
DOC "libCacheSim unified library"
)
find_path(LIBCACHESIM_INCLUDE_DIR
NAMES libCacheSim.h
PATHS /usr/local/include /usr/include
DOC "libCacheSim include directory"
)
message(STATUS "libCacheSim library: ${LIBCACHESIM_LIBRARY}")
message(STATUS "libCacheSim include: ${LIBCACHESIM_INCLUDE_DIR}")
if(NOT LIBCACHESIM_LIBRARY OR NOT LIBCACHESIM_INCLUDE_DIR)
message(FATAL_ERROR "libCacheSim not found! Please install libCacheSim first.")
endif()
add_executable(cacheSimulator main.c)
target_include_directories(cacheSimulator PRIVATE
${ZSTD_INCLUDE_DIR}
${LIBCACHESIM_INCLUDE_DIR}
)
# Add GLib compile and link flags
target_compile_options(cacheSimulator PRIVATE ${GLIB_CFLAGS_OTHER})
target_include_directories(cacheSimulator PRIVATE ${GLIB_INCLUDE_DIRS})
target_link_directories(cacheSimulator PRIVATE ${GLIB_LIBRARY_DIRS})
target_link_libraries(cacheSimulator
${LIBCACHESIM_LIBRARY}
m
${GLIB_LIBRARIES}
${ZSTD_LIBRARY}
)