diff --git a/CMakeLists.txt b/CMakeLists.txt index cce1f46..17330a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,9 +13,10 @@ if (NOT DEFINED COMPONENT_DIR) project (tinyproto) - include_directories(src) - add_library(tinyproto STATIC ${HEADER_FILES} ${SOURCE_FILES}) + target_include_directories(tinyproto PUBLIC + $ + $) if (EXAMPLES) add_subdirectory(examples/linux/loopback) @@ -27,6 +28,35 @@ if (NOT DEFINED COMPONENT_DIR) add_subdirectory(unittest) endif() + # Install the library and headers + install(DIRECTORY src/ DESTINATION include/tinyproto + FILES_MATCHING + PATTERN "*.h" + PATTERN "*.hpp" + PATTERN "src/hal/single_core" EXCLUDE) + + install(TARGETS tinyproto + EXPORT tinyprotoTargets + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES DESTINATION include) + + install(EXPORT tinyprotoTargets + FILE TinyProtoTargets.cmake + NAMESPACE TinyProto:: + DESTINATION lib/cmake/tinyproto) + + include(CMakePackageConfigHelpers) + configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TinyProtoConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/TinyProtoConfig.cmake + INSTALL_DESTINATION lib/cmake/tinyproto) + + install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/TinyProtoConfig.cmake + DESTINATION lib/cmake/tinyproto) + else() idf_component_register(SRCS ${SOURCE_FILES} diff --git a/cmake/TinyProtoConfig.cmake.in b/cmake/TinyProtoConfig.cmake.in new file mode 100644 index 0000000..dd55570 --- /dev/null +++ b/cmake/TinyProtoConfig.cmake.in @@ -0,0 +1,2 @@ +@PACKAGE_INIT@ +include("${CMAKE_CURRENT_LIST_DIR}/TinyProtoTargets.cmake") \ No newline at end of file