diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2018-02-22 05:16:06 -0800 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2018-02-22 05:16:06 -0800 |
| commit | 1f9c73454bfdf26f70f6976bc633deecc3bef22a (patch) | |
| tree | 7d6827d8f0181a802431801e4cc078a8a0bff78c | |
| parent | fe41bfecd6bee02d16347802436a72e12b244d6d (diff) | |
| download | vcpkg-1f9c73454bfdf26f70f6976bc633deecc3bef22a.tar.gz vcpkg-1f9c73454bfdf26f70f6976bc633deecc3bef22a.zip | |
[mman] Fix static linkage. Fixes #2856.
| -rw-r--r-- | ports/mman/CONTROL | 2 | ||||
| -rw-r--r-- | ports/mman/mman-static.patch | 33 | ||||
| -rw-r--r-- | ports/mman/portfile.cmake | 19 |
3 files changed, 46 insertions, 8 deletions
diff --git a/ports/mman/CONTROL b/ports/mman/CONTROL index 85eb7c8d3..f0ff4ec69 100644 --- a/ports/mman/CONTROL +++ b/ports/mman/CONTROL @@ -1,3 +1,3 @@ Source: mman
-Version: git-f5ff813
+Version: git-f5ff813-1
Description: A light implementation of the mmap functions for MinGW.
diff --git a/ports/mman/mman-static.patch b/ports/mman/mman-static.patch new file mode 100644 index 000000000..ce7be4976 --- /dev/null +++ b/ports/mman/mman-static.patch @@ -0,0 +1,33 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4696ad4..a72bbce 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -8,6 +8,10 @@ option (BUILD_TESTS "tests?" OFF) + set (headers mman.h) + set (sources mman.c) + ++if(NOT BUILD_SHARED_LIBS) ++ add_definitions(-DMMANSHARED_EXPORT=) ++endif() ++ + add_library (mman ${sources}) + + install (TARGETS mman RUNTIME DESTINATION bin +diff --git a/mman.h b/mman.h +index 4065bc6..435ea26 100644 +--- a/mman.h ++++ b/mman.h +@@ -15,11 +15,13 @@ + #include <_mingw.h> + #endif + ++#if !defined(MMANSHARED_EXPORT) + #if defined(MMAN_LIBRARY) + #define MMANSHARED_EXPORT __declspec(dllexport) + #else + #define MMANSHARED_EXPORT __declspec(dllimport) + #endif ++#endif + + /* Determine offset type */ + #include <stdint.h> diff --git a/ports/mman/portfile.cmake b/ports/mman/portfile.cmake index f0616f44d..88c23348e 100644 --- a/ports/mman/portfile.cmake +++ b/ports/mman/portfile.cmake @@ -8,16 +8,15 @@ vcpkg_from_github( HEAD_REF master
)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- set(ENABLE_SHARED OFF)
-else()
- set(ENABLE_SHARED ON)
-endif()
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/mman-static.patch
+)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
- -DBUILD_SHARED_LIBS=${ENABLE_SHARED}
+ PREFER_NINJA
)
vcpkg_install_cmake()
@@ -25,4 +24,10 @@ vcpkg_install_cmake() file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/mman RENAME copyright)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(READ ${CURRENT_PACKAGES_DIR}/include/sys/mman.h _contents)
+ string(REPLACE "__declspec(dllimport)" "" _contents "${_contents}")
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/sys/mman.h "${_contents}")
+endif()
+
vcpkg_copy_pdbs()
|
