aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/physfs
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/physfs')
-rw-r--r--vcpkg/ports/physfs/portfile.cmake43
-rw-r--r--vcpkg/ports/physfs/usage10
-rw-r--r--vcpkg/ports/physfs/vcpkg-cmake-wrapper.cmake6
-rw-r--r--vcpkg/ports/physfs/vcpkg.json18
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
+ }
+ ]
+}