--- /dev/null
+cmake_minimum_required (VERSION 3.13 FATAL_ERROR)\r
+include(GNUInstallDirs)\r
+\r
+if(WIN32)\r
+ set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}")\r
+endif()\r
+\r
+project(tinkerforge LANGUAGES C VERSION 2.1.25)\r
+\r
+if(NOT CONFIG_INSTALL_DIR)\r
+ set(CONFIG_INSTALL_DIR "share/${PROJECT_NAME}/")\r
+endif()\r
+if(NOT INCLUDE_INSTALL_DIR)\r
+ set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}")\r
+endif()\r
+if(NOT TARGET_INSTALL_DIR)\r
+ set(TARGET_INSTALL_DIR "share/${PROJECT_NAME}")\r
+endif()\r
+\r
+\r
+file(GLOB CPP_FILES source/*.c)\r
+file(GLOB H_FILES source/*.h)\r
+file(GLOB DEF_FILE source/*.def)\r
+\r
+add_library(${PROJECT_NAME} ${CPP_FILES} ${H_FILES} ${DEF_FILE})\r
+target_include_directories(${PROJECT_NAME} PUBLIC\r
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/source>\r
+ $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}>)\r
+ \r
+find_package(Threads)\r
+target_link_libraries(${PROJECT_NAME} PUBLIC Threads::Threads)\r
+\r
+if("${CMAKE_SYSTEM_NAME}" MATCHES "Windows")\r
+ target_link_libraries(${PROJECT_NAME} PUBLIC Ws2_32 advapi32)\r
+endif()\r
+##---------------------------------------------------------------------------------------##\r
+##----- Package definition. \r
+##---------------------------------------------------------------------------------------##\r
+include(CMakePackageConfigHelpers)\r
+\r
+#Export as Package\r
+set_target_properties (${PROJECT_NAME} PROPERTIES EXPORT_NAME ${PROJECT_NAME})\r
+export(TARGETS ${PROJECT_NAME} NAMESPACE ${PROJECT_NAME}:: FILE cmake/${PROJECT_NAME}Targets.cmake)\r
+export(PACKAGE ${PROJECT_NAME})\r
+\r
+#Config files for find_package\r
+configure_package_config_file(\r
+ ${PROJECT_NAME}Config.cmake.in cmake/${PROJECT_NAME}Config.cmake\r
+ INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}/${PROJECT_NAME}Config.cmake"\r
+ PATH_VARS TARGET_INSTALL_DIR INCLUDE_INSTALL_DIR\r
+)\r
+write_basic_package_version_file(cmake/${PROJECT_NAME}ConfigVersion.cmake COMPATIBILITY SameMinorVersion)\r
+\r
+#Install the target and all it build outputs.\r
+install (TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets \r
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Runtime\r
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Development\r
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime\r
+ PUBLIC_HEADER DESTINATION "${INCLUDE_INSTALL_DIR}" COMPONENT Development\r
+ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime)\r
+#Install public headers\r
+install(FILES ${H_FILES} DESTINATION "${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}")\r
+#Install the config files for find_package\r
+install(FILES "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"\r
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"\r
+ DESTINATION "${CONFIG_INSTALL_DIR}")\r
+#install the targets file included by the config\r
+install(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME}:: DESTINATION "${TARGET_INSTALL_DIR}")
\ No newline at end of file