diff options
| -rw-r--r-- | ports/msix/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | ports/msix/CONTROL | 5 | ||||
| -rw-r--r-- | ports/msix/install-cmake.patch | 35 | ||||
| -rw-r--r-- | ports/msix/portfile.cmake | 46 | ||||
| -rw-r--r-- | ports/xerces-c/portfile.cmake | 2 | ||||
| -rw-r--r-- | ports/xerces-c/usage | 4 |
6 files changed, 92 insertions, 1 deletions
diff --git a/ports/msix/CMakeLists.txt b/ports/msix/CMakeLists.txt new file mode 100644 index 000000000..4c193bbb3 --- /dev/null +++ b/ports/msix/CMakeLists.txt @@ -0,0 +1 @@ +add_custom_target(LIBS)
\ No newline at end of file diff --git a/ports/msix/CONTROL b/ports/msix/CONTROL new file mode 100644 index 000000000..52ec64556 --- /dev/null +++ b/ports/msix/CONTROL @@ -0,0 +1,5 @@ +Source: msix +Version: 1.0 +Build-Depends: xerces-c, zlib +Description: The MSIX Packaging SDK project is an effort to enable developers on a variety of platforms to pack and unpack packages for the purposes of distribution from either the Microsoft Store, or their own content distribution networks. + The MSIX Packaging APIs that a client app would use to interact with .msix/.appx packages are a subset of those documented here. See sample/ExtractContentsSample/ExtractContentsSample.cpp for additional details. diff --git a/ports/msix/install-cmake.patch b/ports/msix/install-cmake.patch new file mode 100644 index 000000000..e44cc9b3c --- /dev/null +++ b/ports/msix/install-cmake.patch @@ -0,0 +1,35 @@ +diff --git a/src/msix/CMakeLists.txt b/src/msix/CMakeLists.txt
+index 586c140..41a24ae 100644
+--- a/src/msix/CMakeLists.txt
++++ b/src/msix/CMakeLists.txt
+@@ -129,6 +129,17 @@ set(LIB_SOURCES
+ # Define the library
+ add_library(${LIBRARY_NAME} SHARED ${LIB_SOURCES} ${LIB_PUBLIC_HEADERS} ${LIB_PRIVATE_HEADERS})
+
++if(INSTALL_LIBMSIX)
++ install(TARGETS ${LIBRARY_NAME}
++ RUNTIME DESTINATION bin
++ LIBRARY DESTINATION lib
++ ARCHIVE DESTINATION lib
++ )
++ if(INSTALL_HEADERS)
++ install(FILES ${LIB_PUBLIC_HEADERS} DESTINATION include)
++ endif()
++endif()
++
+ # specify that this library is to be built with C++14
+ set_property(TARGET ${LIBRARY_NAME} PROPERTY CXX_STANDARD 14)
+
+@@ -149,8 +160,10 @@ include_directories(
+ ${CMAKE_PROJECT_ROOT}/lib/xerces/src
+ )
+
+-target_link_libraries(${PROJECT_NAME} PRIVATE zlibstatic)
+-target_link_libraries(${PROJECT_NAME} PRIVATE xerces-c)
++find_package(ZLIB REQUIRED)
++find_package(XercesC REQUIRED)
++target_link_libraries(${PROJECT_NAME} PRIVATE ZLIB::ZLIB)
++target_link_libraries(${PROJECT_NAME} PRIVATE XercesC::XercesC)
+
+ IF(AOSP)
+ target_link_libraries(${PROJECT_NAME} PRIVATE -latomic)
diff --git a/ports/msix/portfile.cmake b/ports/msix/portfile.cmake new file mode 100644 index 000000000..552d57699 --- /dev/null +++ b/ports/msix/portfile.cmake @@ -0,0 +1,46 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + message("msix only supports dynamic library linkage") + set(VCPKG_LIBRARY_LINKAGE "dynamic") +endif() +if(VCPKG_CRT_LINKAGE STREQUAL "static") + message(FATAL_ERROR "msix only supports dynamic crt linkage") +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Microsoft/msix-packaging + REF v1.0 + SHA512 11abf60da3414ce59f4347df8b2872ad6aa8a3c1e077f6e0be5c66ce90f14340cec5e58c30fb42ed17a10d5296dc0718bb8cddd665bdc20359bf7f0be4b0b4dc + HEAD_REF master +) + +file(REMOVE_RECURSE ${SOURCE_PATH}/lib) +file(MAKE_DIRECTORY ${SOURCE_PATH}/lib) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/lib) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/install-cmake.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON + -DWIN32=ON + -DINSTALL_LIBMSIX=ON + OPTIONS_RELEASE + -DINSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +file(INSTALL + ${SOURCE_PATH}/LICENSE + DESTINATION ${CURRENT_PACKAGES_DIR}/share/msix RENAME copyright) + +vcpkg_copy_pdbs() + diff --git a/ports/xerces-c/portfile.cmake b/ports/xerces-c/portfile.cmake index 5623e9518..c0a4166fb 100644 --- a/ports/xerces-c/portfile.cmake +++ b/ports/xerces-c/portfile.cmake @@ -52,7 +52,7 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xercesc/NLS) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/xercesc/util/MsgLoaders/ICU/resources) # Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/xerces-c) +file(COPY ${SOURCE_PATH}/LICENSE ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/xerces-c) file(RENAME ${CURRENT_PACKAGES_DIR}/share/xerces-c/LICENSE ${CURRENT_PACKAGES_DIR}/share/xerces-c/copyright) vcpkg_copy_pdbs()
\ No newline at end of file diff --git a/ports/xerces-c/usage b/ports/xerces-c/usage new file mode 100644 index 000000000..70333bf7c --- /dev/null +++ b/ports/xerces-c/usage @@ -0,0 +1,4 @@ +The package xerces-c is compatible with built-in CMake targets:
+
+ find_package(XercesC REQUIRED)
+ target_link_libraries(main PRIVATE XercesC::XercesC)
|
