11cmake_minimum_required (VERSION 3.28 )
2- project (yandex-disk-cpp-client)
2+ project (yandex-disk-cpp-client VERSION 1.0.2 )
33
44set (CMAKE_CXX_STANDARD 17)
55set (CMAKE_CXX_STANDARD_REQUIRED ON )
@@ -11,61 +11,77 @@ find_package(CURL CONFIG REQUIRED)
1111
1212file (GLOB SOURCES "src/*.cpp" )
1313
14- add_library (yandex_disk_client STATIC ${SOURCES} )
14+ add_library (yandex-disk-cpp-client STATIC ${SOURCES} )
1515
16- target_include_directories (yandex_disk_client
16+ target_include_directories (yandex-disk-cpp-client
1717 PUBLIC
1818 $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /include >
1919 $<INSTALL_INTERFACE :include >
2020)
2121
22-
23- target_link_libraries (yandex_disk_client
22+ target_link_libraries (yandex-disk-cpp-client
2423 PUBLIC nlohmann_json::nlohmann_json
2524 CURL::libcurl
2625)
2726
2827# === Build each example as a separate executable ===
2928if (BUILD_EXAMPLES)
3029 add_executable (example_basic_usage examples/basic_usage.cpp )
31- target_link_libraries (example_basic_usage PRIVATE yandex_disk_client )
30+ target_link_libraries (example_basic_usage PRIVATE yandex-disk-cpp-client )
3231
3332 add_executable (example_trash_management examples/trash_management.cpp )
34- target_link_libraries (example_trash_management PRIVATE yandex_disk_client )
33+ target_link_libraries (example_trash_management PRIVATE yandex-disk-cpp-client )
3534
3635 add_executable (example_publish_unpublish examples/publish_unpublish.cpp )
37- target_link_libraries (example_publish_unpublish PRIVATE yandex_disk_client )
36+ target_link_libraries (example_publish_unpublish PRIVATE yandex-disk-cpp-client )
3837
3938 add_executable (example_move_rename examples/move_rename.cpp )
40- target_link_libraries (example_move_rename PRIVATE yandex_disk_client )
39+ target_link_libraries (example_move_rename PRIVATE yandex-disk-cpp-client )
4140
4241 add_executable (example_search_files examples/search_files.cpp )
43- target_link_libraries (example_search_files PRIVATE yandex_disk_client )
42+ target_link_libraries (example_search_files PRIVATE yandex-disk-cpp-client )
4443
4544 add_executable (example_directory_upload_download examples/directory_upload_download.cpp )
46- target_link_libraries (example_directory_upload_download PRIVATE yandex_disk_client )
45+ target_link_libraries (example_directory_upload_download PRIVATE yandex-disk-cpp-client )
4746endif ()
4847
4948# === Installing a static library ===
5049
51- install (TARGETS yandex_disk_client
52- EXPORT yandex_disk_client_targets
50+ install (TARGETS yandex-disk-cpp-client
51+ EXPORT yandex-disk-cpp-client- targets
5352 ARCHIVE DESTINATION lib
5453 LIBRARY DESTINATION lib
5554 RUNTIME DESTINATION bin
5655 INCLUDES DESTINATION include
5756)
5857
59- # === Copying all public headlines ===
58+ # === Copying all public headers ===
6059
6160install (DIRECTORY include/ DESTINATION include)
6261
6362# === Exporting targets for find_package() ===
6463
65- install (EXPORT yandex_disk_client_targets
66- FILE yandex_disk_clientTargets .cmake
67- NAMESPACE yandex_disk_client ::
68- DESTINATION lib/cmake/yandex_disk_client
64+ install (EXPORT yandex-disk-cpp-client- targets
65+ FILE yandex-disk-cpp-clientTargets .cmake
66+ NAMESPACE yandex-disk-cpp-client ::
67+ DESTINATION lib/cmake/yandex-disk-cpp-client
6968)
7069
70+ # === CMake package config & version files ===
7171
72+ include (CMakePackageConfigHelpers )
73+ configure_package_config_file (
74+ "${CMAKE_CURRENT_SOURCE_DIR } /cmake/yandex-disk-cpp-clientConfig.cmake.in"
75+ "${CMAKE_CURRENT_BINARY_DIR } /yandex-disk-cpp-clientConfig.cmake"
76+ INSTALL_DESTINATION lib/cmake/yandex-disk-cpp-client
77+ )
78+ write_basic_package_version_file (
79+ "${CMAKE_CURRENT_BINARY_DIR } /yandex-disk-cpp-clientConfigVersion.cmake"
80+ VERSION ${PROJECT_VERSION }
81+ COMPATIBILITY SameMajorVersion
82+ )
83+ install (FILES
84+ "${CMAKE_CURRENT_BINARY_DIR } /yandex-disk-cpp-clientConfig.cmake"
85+ "${CMAKE_CURRENT_BINARY_DIR } /yandex-disk-cpp-clientConfigVersion.cmake"
86+ DESTINATION lib/cmake/yandex-disk-cpp-client
87+ )
0 commit comments