diff options
Diffstat (limited to 'vcpkg/ports/openctm')
| -rw-r--r-- | vcpkg/ports/openctm/CMakeLists.txt | 57 | ||||
| -rw-r--r-- | vcpkg/ports/openctm/portfile.cmake | 30 | ||||
| -rw-r--r-- | vcpkg/ports/openctm/use-7zip.patch | 24 | ||||
| -rw-r--r-- | vcpkg/ports/openctm/vcpkg.json | 19 |
4 files changed, 130 insertions, 0 deletions
diff --git a/vcpkg/ports/openctm/CMakeLists.txt b/vcpkg/ports/openctm/CMakeLists.txt new file mode 100644 index 0000000..583a559 --- /dev/null +++ b/vcpkg/ports/openctm/CMakeLists.txt @@ -0,0 +1,57 @@ +cmake_minimum_required(VERSION 3.19...3.23) +project( + openctm + VERSION 1.0.3 + LANGUAGES C) + +find_package(7zip CONFIG REQUIRED) + +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) + +target_include_directories( + openctm + PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/lib> + $<INSTALL_INTERFACE:include>) +target_link_libraries(openctm PRIVATE 7zip::7zip) +target_compile_definitions(openctm PRIVATE OPENCTM_BUILD) +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) diff --git a/vcpkg/ports/openctm/portfile.cmake b/vcpkg/ports/openctm/portfile.cmake new file mode 100644 index 0000000..17c29cc --- /dev/null +++ b/vcpkg/ports/openctm/portfile.cmake @@ -0,0 +1,30 @@ +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" + PATCHES + use-7zip.patch +) +file(REMOVE_RECURSE "${SOURCE_PATH}/lib/liblzma") + +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) + +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/unofficial-openctm/unofficial-openctmConfig.cmake" +"# Generated by CMake" +[[# Generated by CMake +include(CMakeFindDependencyMacro) +find_dependency(7zip CONFIG)]]) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") diff --git a/vcpkg/ports/openctm/use-7zip.patch b/vcpkg/ports/openctm/use-7zip.patch new file mode 100644 index 0000000..002d557 --- /dev/null +++ b/vcpkg/ports/openctm/use-7zip.patch @@ -0,0 +1,24 @@ +diff --git a/lib/stream.c b/lib/stream.c
+index 53b1b72..bb47c3b 100644
+--- a/lib/stream.c
++++ b/lib/stream.c
+@@ -310,8 +310,7 @@ int _ctmStreamWritePackedInts(_CTMcontext * self, CTMint * aData,
+ outProps,
+ &outPropsSize,
+ self->mCompressionLevel, // Level (0-9)
+- 0, -1, -1, -1, -1, -1, // Default values (set by level)
+- lzmaAlgo // Algorithm (0 = fast, 1 = normal)
++ 0, -1, -1, -1, -1, -1 // Default values (set by level)
+ );
+
+ // Free temporary array
+@@ -477,8 +476,7 @@ int _ctmStreamWritePackedFloats(_CTMcontext * self, CTMfloat * aData,
+ outProps,
+ &outPropsSize,
+ self->mCompressionLevel, // Level (0-9)
+- 0, -1, -1, -1, -1, -1, // Default values (set by level)
+- lzmaAlgo // Algorithm (0 = fast, 1 = normal)
++ 0, -1, -1, -1, -1, -1 // Default values (set by level)
+ );
+
+ // Free temporary array
diff --git a/vcpkg/ports/openctm/vcpkg.json b/vcpkg/ports/openctm/vcpkg.json new file mode 100644 index 0000000..1b1212d --- /dev/null +++ b/vcpkg/ports/openctm/vcpkg.json @@ -0,0 +1,19 @@ +{ + "name": "openctm", + "version": "1.0.3", + "port-version": 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": "https://openctm.sourceforge.net/", + "license": "Zlib", + "dependencies": [ + "7zip", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |