Tue, 05 Oct 2021 11:19:32 +0200
remove convenience macros
Users should write their own wrappers s.t. the type
information does not have to be repeated on every
call site.
1 set(sources
2 allocator.c
3 list.c
4 linked_list.c
5 tree.c
6 )
7 set(headers
8 cx/allocator.h
9 cx/list.h
10 cx/linked_list.h
11 )
13 add_library(ucx SHARED ${sources})
14 add_library(ucx_static STATIC ${sources})
16 target_include_directories(ucx PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
17 target_include_directories(ucx_static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
19 set_target_properties(ucx PROPERTIES SOVERSION 4 VERSION 4.0.0)
20 set_target_properties(ucx_static PROPERTIES VERSION ${CMAKE_PROJECT_VERSION})
22 # it is sufficient to specify the headers for one of the targets
23 set_target_properties(ucx PROPERTIES PUBLIC_HEADER "${headers}")
25 include(GNUInstallDirs)
26 install(TARGETS ucx ucx_static
27 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
28 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
29 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ucx)