1 diff --git a/CMakeLists.txt b/CMakeLists.txt
2 index 6142f91..cfdfa40 100644
5 @@ -53,6 +53,9 @@ set(LIBJUICE_SOURCES
7 ${CMAKE_CURRENT_SOURCE_DIR}/include/juice/juice.h
9 +set(LIBJUICE_PRIVATE_HEADERS
10 + ${CMAKE_CURRENT_SOURCE_DIR}/src/socket.h
14 ${CMAKE_CURRENT_SOURCE_DIR}/test/main.c
15 @@ -70,10 +73,10 @@ set(TESTS_SOURCES
16 set(THREADS_PREFER_PTHREAD_FLAG ON)
17 find_package(Threads REQUIRED)
19 -add_library(juice SHARED ${LIBJUICE_SOURCES})
20 +add_library(juice ${LIBJUICE_SOURCES})
21 set_target_properties(juice PROPERTIES VERSION ${PROJECT_VERSION})
23 -target_include_directories(juice PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
24 +target_include_directories(juice PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
25 target_include_directories(juice PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/juice)
26 target_include_directories(juice PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
27 target_link_libraries(juice PUBLIC Threads::Threads)
28 @@ -97,10 +100,14 @@ endif()
31 find_package(Nettle REQUIRED)
32 + find_path(NETTLE_INCLUDE_PATH "nettle/hmac.h" REQUIRED)
33 + target_include_directories(juice PRIVATE ${NETTLE_INCLUDE_PATH})
34 + target_include_directories(juice-static PRIVATE ${NETTLE_INCLUDE_PATH})
36 target_compile_definitions(juice PRIVATE USE_NETTLE=1)
37 - target_link_libraries(juice PRIVATE Nettle::Nettle)
38 + target_link_libraries(juice PRIVATE nettle)
39 target_compile_definitions(juice-static PRIVATE USE_NETTLE=1)
40 - target_link_libraries(juice-static PRIVATE Nettle::Nettle)
41 + target_link_libraries(juice-static PRIVATE nettle)
43 target_compile_definitions(juice PRIVATE USE_NETTLE=0)
44 target_compile_definitions(juice-static PRIVATE USE_NETTLE=0)
45 @@ -125,8 +132,13 @@ endif()
46 add_library(LibJuice::LibJuice ALIAS juice)
47 add_library(LibJuice::LibJuiceStatic ALIAS juice-static)
49 -install(TARGETS juice LIBRARY DESTINATION lib)
50 +install(TARGETS juice EXPORT libjuice-config
51 + RUNTIME DESTINATION bin
52 + LIBRARY DESTINATION lib
53 + ARCHIVE DESTINATION lib
55 install(FILES ${LIBJUICE_HEADERS} DESTINATION include/juice)
56 +install(FILES ${LIBJUICE_PRIVATE_HEADERS} DESTINATION include/juice/src)
59 target_compile_options(juice PRIVATE -Wall -Wextra)
60 @@ -161,3 +173,8 @@ if(NOT NO_TESTS)
61 target_link_libraries(juice-tests juice)
65 + EXPORT libjuice-config
66 + NAMESPACE LibJuice::
67 + DESTINATION share/cmake/libjuice