@@ -5,6 +5,7 @@ cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
55file (READ VERSION PDA_VERSION)
66string (STRIP "${PDA_VERSION} " PDA_VERSION)
77project (pda LANGUAGES C VERSION "${PDA_VERSION} " )
8+ math (EXPR SO_VERSION "${pda_VERSION_MAJOR} - ${pda_VERSION_PATCH} " )
89
910# generate config.h
1011include (CheckIncludeFiles)
@@ -23,11 +24,14 @@ execute_process(
2324endforeach ()
2425
2526# build userspace library
27+ add_compile_options (-std=gnu99 -Wall -Wunused-result -fno-tree -vectorize)
2628file (GLOB LIB_SOURCES src/*.c)
2729add_library (pda-static STATIC ${LIB_SOURCES} )
2830add_library (pda-shared SHARED ${LIB_SOURCES} )
2931set_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} " )
3135set_target_properties (pda-static pda-shared
3236 PROPERTIES OUTPUT_NAME pda CLEAN_DIRECT_OUTPUT 1)
3337foreach (lib pda-static pda-shared)
@@ -38,8 +42,32 @@ target_include_directories(${lib}
3842 PRIVATE ${PROJECT_BINARY_DIR} /src
3943)
4044endforeach ()
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
4354install (TARGETS pda-static ARCHIVE DESTINATION lib)
4455install (TARGETS pda-shared LIBRARY DESTINATION lib)
4556install (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