about summary refs log tree commit diff stats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt51
1 files changed, 51 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..3a94d82 --- /dev/null +++ b/CMakeLists.txt
@@ -0,0 +1,51 @@
1cmake_minimum_required(VERSION 3.18)
2
3project(wifi DESCRIPTION "802.11 Parsing / Generation library" VERSION 0.1)
4
5execute_process(COMMAND git rev-parse --abbrev-ref HEAD OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GITBRANCH)
6execute_process(COMMAND git log -1 --pretty=format:%h OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE GITHASH)
7execute_process(COMMAND date OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE BUILDTIME)
8set(LIBWIFI_VERSION "0.0.1")
9
10message(" ")
11message(" _ _ _ _ __ _ ")
12message("| |(_)| | (_) / _|(_) ")
13message("| | _ | |__ __ __ _ | |_ _ ")
14message("| || || '_ \\ \\ \\ /\\ / /| || _|| | ")
15message("| || || |_| | \\ V V / | || | | | ")
16message("|_||_||_.__/ \\_/\\_/ |_||_| |_| ")
17message("-----------------------------------")
18message("802.11 Parsing / Generation Library")
19message("Version: ${LIBWIFI_VERSION}, Git: ${GITBRANCH} (${GITHASH}), Time: ${BUILDTIME}")
20message(" ")
21
22file(GLOB_RECURSE libwifi_src
23 "src/libwifi/*.h"
24 "src/libwifi/*.c"
25)
26
27set(CMAKE_C_COMPILER "/usr/bin/clang")
28set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu17")
29set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra")
30set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic -Wno-language-extension-token")
31set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes -Wstrict-prototypes")
32set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector-strong")
33
34if (CMAKE_BUILD_TYPE STREQUAL "Debug")
35 message("Building as Debug")
36 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb -O0")
37endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
38
39add_library(wifi SHARED ${libwifi_src})
40
41set_target_properties(wifi PROPERTIES LINKER_LANGUAGE C)
42set_target_properties(wifi PROPERTIES VERSION ${LIBWIFI_VERSION})
43set_target_properties(wifi PROPERTIES SOVERSION 0)
44set_target_properties(wifi PROPERTIES PUBLIC_HEADER src/libwifi.h)
45
46install(DIRECTORY src/libwifi/core/ DESTINATION /usr/include/libwifi/core FILES_MATCHING PATTERN "*.h")
47install(DIRECTORY src/libwifi/parse/ DESTINATION /usr/include/libwifi/parse FILES_MATCHING PATTERN "*.h")
48install(DIRECTORY src/libwifi/gen/ DESTINATION /usr/include/libwifi/gen FILES_MATCHING PATTERN "*.h")
49install(TARGETS wifi LIBRARY DESTINATION /usr/lib PUBLIC_HEADER DESTINATION /usr/include)
50
51add_custom_target(uninstall COMMAND rm -rf /usr/include/libwifi; rm -rf /usr/include/libwifi.h)