19e0d268390f10d3f3461fe6f8c195a575f3b857
[socket_wrapper.git] / src / CMakeLists.txt
1 project(libsocket_wrapper C)
2
3 add_library(socket_wrapper SHARED socket_wrapper.c)
4 target_include_directories(socket_wrapper
5                            PRIVATE
6                                ${CMAKE_BINARY_DIR})
7 target_compile_options(socket_wrapper
8                        PRIVATE
9                           ${DEFAULT_C_COMPILE_FLAGS}
10                           -D_GNU_SOURCE)
11 if (CMAKE_SIZEOF_VOID_P EQUAL 4)
12     target_compile_options(socket_wrapper
13                            PRIVATE
14                            -D_LARGEFILE64_SOURCE)
15 endif()
16
17 target_link_libraries(socket_wrapper
18                       PRIVATE ${SWRAP_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
19
20 set_target_properties(socket_wrapper
21                       PROPERTIES
22                           VERSION ${LIBRARY_VERSION}
23                           SOVERSION ${LIBRARY_SOVERSION})
24 if (DEFINED DEFAULT_LINK_FLAGS)
25     set_target_properties(socket_wrapper
26                           PROPERTIES
27                               LINK_FLAGS ${DEFAULT_LINK_FLAGS})
28 endif()
29
30 install(TARGETS socket_wrapper
31         RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
32         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
33         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
34 )
35
36 set(SOCKET_WRAPPER_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}socket_wrapper${CMAKE_SHARED_LIBRARY_SUFFIX}" PARENT_SCOPE)
37
38 add_library(socket_wrapper_noop SHARED socket_wrapper_noop.c)
39 target_include_directories(socket_wrapper_noop
40                            PRIVATE
41                                ${socket_wrapper_BINARY_DIR}
42                            PUBLIC
43                                $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
44                                $<INSTALL_INTERFACE:include>)
45 target_compile_options(socket_wrapper_noop
46                        PRIVATE
47                           ${DEFAULT_C_COMPILE_FLAGS}
48                           -D_GNU_SOURCE)
49 target_link_libraries(socket_wrapper_noop
50                       PRIVATE ${SWRAP_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
51 set_target_properties(socket_wrapper_noop
52                       PROPERTIES
53                           VERSION ${NOOP_LIBRARY_VERSION}
54                           SOVERSION ${NOOP_LIBRARY_SOVERSION})
55 if (DEFINED DEFAULT_LINK_FLAGS)
56     set_target_properties(socket_wrapper_noop
57                           PROPERTIES
58                               LINK_FLAGS ${DEFAULT_LINK_FLAGS})
59 endif()
60
61 install(TARGETS socket_wrapper_noop
62         EXPORT socket_wrapper_noop-config
63         RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
64         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
65         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
66 )
67
68 install(EXPORT socket_wrapper_noop-config
69         DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/socket_wrapper)
70
71 install(
72     FILES
73         ${CMAKE_CURRENT_SOURCE_DIR}/socket_wrapper.h
74     DESTINATION
75         ${CMAKE_INSTALL_INCLUDEDIR}
76 )