[new port] Add openctm (#24680)

* New port: openctm

* Change openctm from "version-semver" to "version"

Co-authored-by: Frank <65999885+FrankXie05@users.noreply.github.com>

* Update openctm versions file

* Use ${PORT} instead of openctm directly

* Put CMake configs in the unofficial namespace.

* dos2unix

Co-authored-by: Frank <65999885+FrankXie05@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
This commit is contained in:
Dennis 2022-05-18 08:06:15 +02:00 committed by GitHub
parent 2247b397fa
commit 68c6835c82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 111 additions and 0 deletions

View File

@ -0,0 +1,60 @@
cmake_minimum_required(VERSION 3.19...3.23)
project(
openctm
VERSION 1.0.3
LANGUAGES C)
set(PUBLIC_HEADERS lib/openctm.h lib/openctmpp.h)
add_library(
openctm
lib/compressMG1.c
lib/compressMG2.c
lib/compressRAW.c
lib/openctm.c
lib/stream.c
lib/liblzma/Alloc.c
lib/liblzma/LzFind.c
lib/liblzma/LzmaDec.c
lib/liblzma/LzmaEnc.c
lib/liblzma/LzmaLib.c)
target_include_directories(
openctm
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/lib>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/lib/liblzma>
$<INSTALL_INTERFACE:include>)
target_compile_definitions(openctm PRIVATE OPENCTM_BUILD LZMA_PREFIX_CTM)
if(NOT BUILD_SHARED_LIBS)
target_compile_definitions(openctm PUBLIC OPENCTM_STATIC)
endif()
target_compile_features(openctm PRIVATE c_std_99)
set_target_properties(openctm PROPERTIES C_VISIBILITY_PRESET hidden
PUBLIC_HEADER "${PUBLIC_HEADERS}")
include(GNUInstallDirs)
install(
TARGETS openctm
EXPORT unofficial-openctmConfig
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" COMPONENT dev)
include(CMakePackageConfigHelpers)
set(VERSION_FILE_PATH "${CMAKE_CURRENT_BINARY_DIR}/unofficial-openctmConfigVersion.cmake")
write_basic_package_version_file(
"${VERSION_FILE_PATH}"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)
install(FILES "${VERSION_FILE_PATH}" DESTINATION share/unofficial-openctm)
install(FILES ${PUBLIC_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
install(
EXPORT unofficial-openctmConfig
FILE unofficial-openctmConfig.cmake
NAMESPACE unofficial::openctm::
DESTINATION share/unofficial-openctm)
export(PACKAGE openctm)

View File

@ -0,0 +1,21 @@
vcpkg_from_sourceforge(
OUT_SOURCE_PATH SOURCE_PATH
REPO openctm
REF OpenCTM-1.0.3
SHA512 fdfa08d19ecbfea99ba01aa2032e941ed6313394a96bd69f8984c2d2d079d836c616471d2bdf6f40175e75659f3ad0ba41502bc3d8224091472f40893ea8746e
FILENAME "OpenCTM-1.0.3-src.tar.bz2"
)
file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-openctm)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

17
ports/openctm/vcpkg.json Normal file
View File

@ -0,0 +1,17 @@
{
"name": "openctm",
"version": "1.0.3",
"description": "OpenCTM — the Open Compressed Triangle Mesh file format — is a file format, a software library and a tool set for compression of 3D triangle meshes.",
"homepage": "http://openctm.sourceforge.net/",
"license": "Zlib",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}

View File

@ -5100,6 +5100,10 @@
"baseline": "1.4.2", "baseline": "1.4.2",
"port-version": 2 "port-version": 2
}, },
"openctm": {
"baseline": "1.0.3",
"port-version": 0
},
"opencv": { "opencv": {
"baseline": "4.5.5", "baseline": "4.5.5",
"port-version": 0 "port-version": 0

9
versions/o-/openctm.json Normal file
View File

@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "ea30144a8ad57cb95b0603de14e4dc8e9f7b2ea2",
"version": "1.0.3",
"port-version": 0
}
]
}