Skip to content

Commit efd0096

Browse files
committed
Increase compatibility of CMake build.
1 parent 61df487 commit efd0096

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

CMakeLists.txt

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
55
file(READ VERSION PDA_VERSION)
66
string(STRIP "${PDA_VERSION}" PDA_VERSION)
77
project(pda LANGUAGES C VERSION "${PDA_VERSION}")
8+
math(EXPR SO_VERSION "${pda_VERSION_MAJOR} - ${pda_VERSION_PATCH}")
89

910
# generate config.h
1011
include(CheckIncludeFiles)
@@ -23,11 +24,14 @@ execute_process(
2324
endforeach()
2425

2526
# build userspace library
27+
add_compile_options(-std=gnu99 -Wall -Wunused-result -fno-tree-vectorize)
2628
file(GLOB LIB_SOURCES src/*.c)
2729
add_library(pda-static STATIC ${LIB_SOURCES})
2830
add_library(pda-shared SHARED ${LIB_SOURCES})
2931
set_target_properties(pda-shared
30-
PROPERTIES POSITION_INDEPENDENT_CODE 1)
32+
PROPERTIES POSITION_INDEPENDENT_CODE 1
33+
SOVERSION "${SO_VERSION}"
34+
VERSION "${SO_VERSION}.${pda_VERSION_PATCH}.${pda_VERSION_MINOR}")
3135
set_target_properties(pda-static pda-shared
3236
PROPERTIES OUTPUT_NAME pda CLEAN_DIRECT_OUTPUT 1)
3337
foreach (lib pda-static pda-shared)
@@ -38,8 +42,32 @@ target_include_directories(${lib}
3842
PRIVATE ${PROJECT_BINARY_DIR}/src
3943
)
4044
endforeach()
45+
target_link_libraries(pda-shared PUBLIC pci PUBLIC pthread)
46+
if (${NUMA_AVAIL})
47+
target_link_libraries(pda-shared PUBLIC numa)
48+
endif()
49+
if (${KMOD_AVAIL})
50+
target_link_libraries(pda-shared PUBLIC kmod)
51+
endif()
4152

4253
# specify files to install
4354
install(TARGETS pda-static ARCHIVE DESTINATION lib)
4455
install(TARGETS pda-shared LIBRARY DESTINATION lib)
4556
install(DIRECTORY include/ DESTINATION include)
57+
58+
# build debian package - experimental
59+
set(CPACK_GENERATOR DEB)
60+
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
61+
"CBM FLES FLIB low-level user space access library")
62+
set(CPACK_PACKAGE_NAME libpda)
63+
set(CPACK_PACKAGE_CONTACT
64+
"Jan de Cuveland <[email protected]>")
65+
set(CPACK_PACKAGE_VERSION_MAJOR ${pda_VERSION_MAJOR})
66+
set(CPACK_PACKAGE_VERSION_MINOR ${pda_VERSION_MINOR})
67+
set(CPACK_PACKAGE_VERSION_PATCH ${pda_VERSION_PATCH})
68+
set(CPACK_STRIP_FILES TRUE)
69+
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE amd64)
70+
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.15)")
71+
set(CPACK_DEBIAN_PACKAGE_PRIORITY optional)
72+
set(CPACK_DEBIAN_PACKAGE_SECTION libs)
73+
include(CPack)

0 commit comments

Comments
 (0)