diff --git a/CMakeLists.txt b/CMakeLists.txt index 77b554f..bae0d15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,12 +82,18 @@ file(GLOB_RECURSE FRI_SOURCES RELATIVE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/${FRIClient_SDK_NAME}/src/protobuf_gen/*.pb.c ) +# add FRI library target add_library(FRIClient SHARED ${FRI_SOURCES} +) + +# add nanopb library target under common namespace +add_library(nanopb STATIC ${NANOPB_SOURCES} ) add_library(FRIClient::FRIClient ALIAS FRIClient) # alias for anyone adding this as a submodule +add_library(FRIClient::nanopb ALIAS nanopb) # alias for anyone adding this as a submodule target_include_directories(FRIClient PUBLIC @@ -95,11 +101,21 @@ target_include_directories(FRIClient $ PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${FRIClient_SDK_NAME}/src/base - ${CMAKE_CURRENT_BINARY_DIR}/${FRIClient_SDK_NAME}/src/nanopb-${NANOPB_VERSION} ${CMAKE_CURRENT_BINARY_DIR}/${FRIClient_SDK_NAME}/src/protobuf_gen ${CMAKE_CURRENT_BINARY_DIR}/${FRIClient_SDK_NAME}/src/protobuf ) +target_include_directories(nanopb + PUBLIC + $ + $ +) + +target_link_libraries(FRIClient + PRIVATE + nanopb +) + if(MSVC) target_compile_options(FRIClient PRIVATE @@ -136,7 +152,7 @@ write_basic_package_version_file( COMPATIBILITY SameMajorVersion ) -install(TARGETS FRIClient +install(TARGETS FRIClient nanopb EXPORT FRIClientTargets LIBRARY DESTINATION lib INCLUDES DESTINATION include @@ -147,6 +163,13 @@ install( DESTINATION include ) +install( + DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${FRIClient_SDK_NAME}/src/nanopb-${NANOPB_VERSION}/ + DESTINATION include + FILES_MATCHING + PATTERN *.h +) + install(EXPORT FRIClientTargets FILE FRIClientConfig.cmake NAMESPACE FRIClient::