early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

View File

@@ -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}")

View File

@@ -0,0 +1,34 @@
set(VERSION 2_1_25)
vcpkg_download_distfile(ARCHIVE
URLS "http://download.tinkerforge.com/bindings/c/tinkerforge_c_bindings_${VERSION}.zip"
FILENAME "tinkerforge-${VERSION}.zip"
SHA512 c02b789bd466803d60aeb39a544b0aa17af811377b065a0b273bcfc15c5844f8cfe981d8143743e32bd05470c2c6af297df50924da0d2895a4cdf4bc9e9bd0b8
)
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
REF tinker-${VERSION}
NO_REMOVE_ONE_LEVEL
)
file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION ${SOURCE_PATH})
file(COPY "${CMAKE_CURRENT_LIST_DIR}/tinkerforgeConfig.cmake.in" DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
)
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets()
file(REMOVE_RECURSE
${CURRENT_PACKAGES_DIR}/debug/include
${CURRENT_PACKAGES_DIR}/debug/share
)
file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
vcpkg_copy_pdbs()

View File

@@ -0,0 +1,5 @@
@PACKAGE_INIT@
include ("@PACKAGE_TARGET_INSTALL_DIR@/@PROJECT_NAME@Targets.cmake")
set_and_check(TINKERFORGE_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
check_required_components("@PROJECT_NAME@")

View File

@@ -0,0 +1,7 @@
{
"name": "tinkerforge",
"version": "2.1.25",
"port-version": 2,
"description": "Tinkerforge C API bindings for bricks and bricklets",
"supports": "!uwp"
}