aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2020-02-06 15:17:16 -0800
committerGitHub <noreply@github.com>2020-02-06 15:17:16 -0800
commit5fbfbaf2f43392a33d1651b31d13dd014b0b1752 (patch)
tree4f4c91de9420529840da5ba352b1b199107c60c7
parentabd170d8e502a0fe6cd55792f207b3aae369d37b (diff)
parent3c84e1a8724daa7d3360a10e02994f269292d00a (diff)
downloadvcpkg-5fbfbaf2f43392a33d1651b31d13dd014b0b1752.tar.gz
vcpkg-5fbfbaf2f43392a33d1651b31d13dd014b0b1752.zip
Merge pull request #9045 from ChaoJia/new-port-rply
[rply] Add new port
-rw-r--r--ports/rply/CMakeLists.txt59
-rw-r--r--ports/rply/CONTROL4
-rw-r--r--ports/rply/fix-uninitialized-local-variable.patch22
-rw-r--r--ports/rply/portfile.cmake33
-rw-r--r--ports/rply/rply-config.cmake.in8
-rw-r--r--ports/rply/rply.def28
6 files changed, 154 insertions, 0 deletions
diff --git a/ports/rply/CMakeLists.txt b/ports/rply/CMakeLists.txt
new file mode 100644
index 000000000..8885a79c4
--- /dev/null
+++ b/ports/rply/CMakeLists.txt
@@ -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}"
+)
diff --git a/ports/rply/CONTROL b/ports/rply/CONTROL
new file mode 100644
index 000000000..0caedadfb
--- /dev/null
+++ b/ports/rply/CONTROL
@@ -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
diff --git a/ports/rply/fix-uninitialized-local-variable.patch b/ports/rply/fix-uninitialized-local-variable.patch
new file mode 100644
index 000000000..f23ad8450
--- /dev/null
+++ b/ports/rply/fix-uninitialized-local-variable.patch
@@ -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");
diff --git a/ports/rply/portfile.cmake b/ports/rply/portfile.cmake
new file mode 100644
index 000000000..665b9e300
--- /dev/null
+++ b/ports/rply/portfile.cmake
@@ -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)
+
diff --git a/ports/rply/rply-config.cmake.in b/ports/rply/rply-config.cmake.in
new file mode 100644
index 000000000..303034207
--- /dev/null
+++ b/ports/rply/rply-config.cmake.in
@@ -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)
diff --git a/ports/rply/rply.def b/ports/rply/rply.def
new file mode 100644
index 000000000..8662c2421
--- /dev/null
+++ b/ports/rply/rply.def
@@ -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