@@ -13,15 +13,55 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
1313
1414include (CTest)
1515include (FetchContent)
16+ include (GNUInstallDirs)
17+ include (GenerateExportHeader)
1618include (dependencies)
1719
1820declare_dependencies()
1921
2022find_package (Threads REQUIRED)
2123find_package (Protobuf REQUIRED)
22- find_package (stdexec CONFIG REQUIRED)
2324
2425# only for asio. TODO: make using standalone asio possible
2526find_package (Boost CONFIG REQUIRED)
2627
2728add_subdirectory (cppesphomeapi)
29+ add_subdirectory (example)
30+
31+ include (CMakePackageConfigHelpers)
32+
33+ install (TARGETS cppesphomeapi
34+ EXPORT cppesphomeapiTargets
35+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR} "
36+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR} "
37+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR} "
38+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} "
39+ FILE_SET headers
40+ FILE_SET generated_headers
41+ )
42+
43+ set (config_install_dir "${CMAKE_INSTALL_LIBDIR} /cmake/cppesphomeapi" )
44+
45+ install (EXPORT cppesphomeapiTargets
46+ FILE cppesphomeapiTargets.cmake
47+ NAMESPACE quite::
48+ DESTINATION "${config_install_dir} "
49+ )
50+
51+ configure_package_config_file(
52+ "${CMAKE_CURRENT_SOURCE_DIR} /cmake/Config.cmake.in"
53+ "${CMAKE_CURRENT_BINARY_DIR} /cppesphomeapiConfig.cmake"
54+ INSTALL_DESTINATION "${config_install_dir} "
55+ )
56+
57+ write_basic_package_version_file(
58+ "${CMAKE_CURRENT_BINARY_DIR} /cppesphomeapiConfigVersion.cmake"
59+ VERSION "${CMAKE_PROJECT_VERSION} "
60+ COMPATIBILITY SameMajorVersion
61+ )
62+
63+ install (FILES
64+ "${CMAKE_CURRENT_BINARY_DIR} /cppesphomeapiConfig.cmake"
65+ "${CMAKE_CURRENT_BINARY_DIR} /cppesphomeapiConfigVersion.cmake"
66+ DESTINATION "${config_install_dir} "
67+ )
0 commit comments