diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/tinkerforge/CMakeLists.txt | |
Diffstat (limited to 'vcpkg/ports/tinkerforge/CMakeLists.txt')
| -rw-r--r-- | vcpkg/ports/tinkerforge/CMakeLists.txt | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/vcpkg/ports/tinkerforge/CMakeLists.txt b/vcpkg/ports/tinkerforge/CMakeLists.txt new file mode 100644 index 0000000..3cd9916 --- /dev/null +++ b/vcpkg/ports/tinkerforge/CMakeLists.txt @@ -0,0 +1,68 @@ +cmake_minimum_required (VERSION 3.13 FATAL_ERROR)
+include(GNUInstallDirs)
+
+if(WIN32)
+ set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}")
+endif()
+
+project(tinkerforge LANGUAGES C VERSION 2.1.25)
+
+if(NOT CONFIG_INSTALL_DIR)
+ set(CONFIG_INSTALL_DIR "share/${PROJECT_NAME}/")
+endif()
+if(NOT INCLUDE_INSTALL_DIR)
+ set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}")
+endif()
+if(NOT TARGET_INSTALL_DIR)
+ set(TARGET_INSTALL_DIR "share/${PROJECT_NAME}")
+endif()
+
+
+file(GLOB CPP_FILES source/*.c)
+file(GLOB H_FILES source/*.h)
+file(GLOB DEF_FILE source/*.def)
+
+add_library(${PROJECT_NAME} ${CPP_FILES} ${H_FILES} ${DEF_FILE})
+target_include_directories(${PROJECT_NAME} PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/source>
+ $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}>)
+
+find_package(Threads)
+target_link_libraries(${PROJECT_NAME} PUBLIC Threads::Threads)
+
+if("${CMAKE_SYSTEM_NAME}" MATCHES "Windows")
+ target_link_libraries(${PROJECT_NAME} PUBLIC Ws2_32 advapi32)
+endif()
+##---------------------------------------------------------------------------------------##
+##----- Package definition.
+##---------------------------------------------------------------------------------------##
+include(CMakePackageConfigHelpers)
+
+#Export as Package
+set_target_properties (${PROJECT_NAME} PROPERTIES EXPORT_NAME ${PROJECT_NAME})
+export(TARGETS ${PROJECT_NAME} NAMESPACE ${PROJECT_NAME}:: FILE cmake/${PROJECT_NAME}Targets.cmake)
+export(PACKAGE ${PROJECT_NAME})
+
+#Config files for find_package
+configure_package_config_file(
+ ${PROJECT_NAME}Config.cmake.in cmake/${PROJECT_NAME}Config.cmake
+ INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}/${PROJECT_NAME}Config.cmake"
+ PATH_VARS TARGET_INSTALL_DIR INCLUDE_INSTALL_DIR
+)
+write_basic_package_version_file(cmake/${PROJECT_NAME}ConfigVersion.cmake COMPATIBILITY SameMinorVersion)
+
+#Install the target and all it build outputs.
+install (TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Runtime
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Development
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime
+ PUBLIC_HEADER DESTINATION "${INCLUDE_INSTALL_DIR}" COMPONENT Development
+ BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime)
+#Install public headers
+install(FILES ${H_FILES} DESTINATION "${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}")
+#Install the config files for find_package
+install(FILES "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake"
+ "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake"
+ DESTINATION "${CONFIG_INSTALL_DIR}")
+#install the targets file included by the config
+install(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME}:: DESTINATION "${TARGET_INSTALL_DIR}")
\ No newline at end of file |