diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/physfs | |
Diffstat (limited to 'vcpkg/ports/physfs')
| -rw-r--r-- | vcpkg/ports/physfs/portfile.cmake | 43 | ||||
| -rw-r--r-- | vcpkg/ports/physfs/usage | 10 | ||||
| -rw-r--r-- | vcpkg/ports/physfs/vcpkg-cmake-wrapper.cmake | 6 | ||||
| -rw-r--r-- | vcpkg/ports/physfs/vcpkg.json | 18 |
4 files changed, 77 insertions, 0 deletions
diff --git a/vcpkg/ports/physfs/portfile.cmake b/vcpkg/ports/physfs/portfile.cmake new file mode 100644 index 0000000..3fbba5b --- /dev/null +++ b/vcpkg/ports/physfs/portfile.cmake @@ -0,0 +1,43 @@ +vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO icculus/physfs + REF "release-${VERSION}" + SHA512 e0d84d6ac6bd8f0973149a5add54ed5ed890b5fabb4592ba61b59a3b3e01c05e05f1754f18d7a1c8d72e68777a23cda0c50dc0512cf57a8310a950bf908f54b1 +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PHYSFS_STATIC) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PHYSFS_SHARED) + +set(generator_param "") +if(VCPKG_TARGET_IS_UWP) + set(generator_param WINDOWS_USE_MSBUILD) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + ${generator_param} + OPTIONS + -DPHYSFS_BUILD_STATIC=${PHYSFS_STATIC} + -DPHYSFS_BUILD_SHARED=${PHYSFS_SHARED} + -DPHYSFS_BUILD_TEST=OFF + -DPHYSFS_BUILD_DOCS=OFF +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/PhysFS) +vcpkg_fixup_pkgconfig() + +if(PHYSFS_STATIC) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/physfs.h" "defined(PHYSFS_STATIC)" "1") +else() + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/physfs.h" "dllexport" "dllimport") +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/physfs/usage b/vcpkg/ports/physfs/usage new file mode 100644 index 0000000..39a71fd --- /dev/null +++ b/vcpkg/ports/physfs/usage @@ -0,0 +1,10 @@ +physfs provides CMake targets: + + find_package(PhysFS CONFIG REQUIRED) + target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:PhysFS::PhysFS>,PhysFS::PhysFS,PhysFS::PhysFS-static>) + +physfs is compatible with built-in CMake targets: + + find_package(PhysFS REQUIRED) + target_include_directories(main PRIVATE ${PHYSFS_INCLUDE_DIR}) + target_link_libraries(main PRIVATE ${PHYSFS_LIBRARY}) diff --git a/vcpkg/ports/physfs/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/physfs/vcpkg-cmake-wrapper.cmake new file mode 100644 index 0000000..0cc3981 --- /dev/null +++ b/vcpkg/ports/physfs/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,6 @@ +find_library(PHYSFS_LIBRARY_RELEASE NAMES physfs physfs-static NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH)
+find_library(PHYSFS_LIBRARY_DEBUG NAMES physfs physfs-static NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH)
+include(SelectLibraryConfigurations)
+select_library_configurations(PHYSFS)
+unset(PHYSFS_FOUND)
+_find_package(${ARGS})
diff --git a/vcpkg/ports/physfs/vcpkg.json b/vcpkg/ports/physfs/vcpkg.json new file mode 100644 index 0000000..f614b9a --- /dev/null +++ b/vcpkg/ports/physfs/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "physfs", + "version-semver": "3.2.0", + "port-version": 1, + "description": "a library to provide abstract access to various archives", + "homepage": "https://icculus.org/physfs/", + "license": "Zlib", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |