Merge pull request #9045 from ChaoJia/new-port-rply

[rply] Add new port
This commit is contained in:
Robert Schumacher 2020-02-06 15:17:16 -08:00 committed by GitHub
commit 5fbfbaf2f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 154 additions and 0 deletions

59
ports/rply/CMakeLists.txt Normal file
View File

@ -0,0 +1,59 @@
cmake_minimum_required (VERSION 3.14)
project ("rply")
set (target_name ${CMAKE_PROJECT_NAME})
set (target_include_prefix "rply")
option (BUILD_SHARED_LIBS "Create ${target_name} as a shared library" ON)
set (CMAKE_DEBUG_POSTFIX "d" CACHE STRING "postfix for debug lib")
include (GNUInstallDirs)
file (GLOB target_headers "*.h")
file (GLOB target_srcs "*.c" )
if (MSVC)
set(sources_msvc "rply.def")
endif()
add_library (${target_name} ${target_srcs} ${target_headers} ${sources_msvc})
target_include_directories (${target_name}
PUBLIC $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
set_target_properties(${target_name} PROPERTIES
C_STANDARD 11
)
if (MSVC)
target_compile_definitions(${target_name} PRIVATE _CRT_SECURE_NO_WARNINGS)
set_target_properties(${target_name} PROPERTIES
VS_DEBUGGER_WORKING_DIRECTORY $<TARGET_FILE_DIR:${target_name}>
)
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${target_name})
endif()
install (TARGETS ${target_name} EXPORT ${target_name}-targets
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install (FILES ${target_headers}
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${target_name}"
CONFIGURATIONS Release
)
install (EXPORT ${target_name}-targets
FILE ${target_name}-targets.cmake
NAMESPACE ${target_name}::
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${target_name}"
)
configure_file(${target_name}-config.cmake.in "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${target_name}-config.cmake" @ONLY)
install(FILES
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${target_name}-config.cmake"
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${target_name}"
)

4
ports/rply/CONTROL Normal file
View File

@ -0,0 +1,4 @@
Source: rply
Version: 1.1.4
Homepage: http://w3.impa.br/~diego/software/rply
Description: ANSI C Library for PLY file format input and output

View File

@ -0,0 +1,22 @@
diff --git a/rply.c b/rply.c
index c4105ef..7c7e72a 100644
--- a/rply.c
+++ b/rply.c
@@ -372,7 +372,7 @@ p_ply ply_open(const char *name, p_ply_error_cb error_cb,
p_ply ply_open_from_file(FILE *fp, p_ply_error_cb error_cb,
long idata, void *pdata) {
- p_ply ply;
+ p_ply ply = NULL;
if (error_cb == NULL) error_cb = ply_error_cb;
assert(fp);
if (!ply_type_check()) {
@@ -475,7 +475,7 @@ p_ply ply_create(const char *name, e_ply_storage_mode storage_mode,
p_ply ply_create_to_file(FILE *fp, e_ply_storage_mode storage_mode,
p_ply_error_cb error_cb, long idata, void *pdata) {
- p_ply ply;
+ p_ply ply = NULL;
assert(fp && storage_mode <= PLY_DEFAULT);
if (!ply_type_check()) {
error_cb(ply, "Incompatible type system");

33
ports/rply/portfile.cmake Normal file
View File

@ -0,0 +1,33 @@
set(VERSION 1.1.4)
vcpkg_download_distfile(ARCHIVE
URLS "http://w3.impa.br/~diego/software/rply/rply-${VERSION}.tar.gz"
FILENAME "rply-${VERSION}.tar.gz"
SHA512 be389780b8ca74658433f271682d91e89709ced588c4012c152ccf4014557692a1afd37b1bd5e567cedf9c412d42721eb0412ff3331f38717e527bd5d29c27a7
)
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
REF ${VERSION}
PATCHES
fix-uninitialized-local-variable.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/rply.def DESTINATION ${SOURCE_PATH})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/rply-config.cmake.in DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
vcpkg_fixup_cmake_targets()
# Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/rply RENAME copyright)

View File

@ -0,0 +1,8 @@
get_filename_component(_RPLY_PREFIX_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
set (_TARGET_NAME "rply")
# IMPORTED targets
include("${_RPLY_PREFIX_DIR}/${_TARGET_NAME}-targets.cmake")
set(_RPLY_PREFIX_DIR)
set(_TARGET_NAME)

28
ports/rply/rply.def Normal file
View File

@ -0,0 +1,28 @@
EXPORTS
ply_get_ply_user_data
ply_open
ply_read_header
ply_set_read_cb
ply_get_argument_element
ply_get_argument_property
ply_get_argument_user_data
ply_get_argument_value
ply_read
ply_get_next_element
ply_get_next_comment
ply_get_next_obj_info
ply_get_element_info
ply_get_next_property
ply_get_property_info
ply_create
ply_add_element
ply_add_property
ply_add_list_property
ply_add_scalar_property
ply_add_comment
ply_add_obj_info
ply_write_header
ply_write
ply_close
ply_open_from_file
ply_create_to_file