diff --git a/CHANGELOG.md b/CHANGELOG.md index f591f4bae6..75d89f6ac1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,134 @@ +vcpkg (0.0.90) +-------------- + * Add ports: + - caffe2 0.8.1 + - date 2.2 + - jsonnet 2017-09-02-11cf9fa9f2fe8acbb14b096316006082564ca580 + - kf5plotting 5.37.0 + - units 2.3.0 + - winpcap 4.1.3-1 + * Update ports: + - arrow apache-arrow-0.4.0-2 -> 0.6.0 + - benchmark 1.1.0-1 -> 1.2.0 + - cppwinrt feb2017_refresh-14393 -> spring_2017_creators_update_for_vs_15.3 + - llvm 4.0.0-1 -> 5.0.0-1 + - luafilesystem 1.6.3-1 -> 1.7.0.2 + - opencv 3.2.0-4 -> 3.3.0-4 + - paho-mqtt 1.2.0-1 -> 1.2.0-2 + - protobuf 3.4.0-2 -> 3.4.1-1 + - qt5 5.8-5 -> 5.8-6 + - sfml 2.4.2-1 -> 2.4.2-2 + - xlnt 0.9.4-1 -> 1.1.0-1 + - zlib 1.2.11-1 -> 1.2.11-2 + * Bump required version & auto-downloaded version of `cmake` to 3.9.3 (was 3.9.1). Noteable changes: + - Fix codepage issues + - FindBoost: Add support for Boost 1.65.0 and 1.65.1 + * `vcpkg edit`: Fix inspected locations for VSCode + +-- vcpkg team SUN, 24 Sep 2017 03:30:00 -0800 + + +vcpkg (0.0.89) +-------------- + * Update ports: + - boost 1.65-1 -> 1.65.1 + - chmlib 0.40 -> 0.40-1 + - pybind11 2.1.0-2 -> 2.2.0 + - sciter 4.0.2-1 -> 4.0.3 + - sqlite3 3.19.1-2 -> 3.20.1 + * `vcpkg` now warns if the built version of the `vcpkg.exe` itself is outdated + * Update to latest python 3.5 + * `vcpkg install` improvements: + - Add `--keep-going` option to keep going if a package fails to install + - Add elapsed time to each invidial package as well as total time + - Add a counter to the install (e.g. Starting package 3/12: ) + * `vcpkg edit` now checks more location for VSCode Insiders + +-- vcpkg team WED, 14 Sep 2017 16:00:00 -0800 + + +vcpkg (0.0.88) +-------------- + * `vcpkg_configure_cmake` has been modified to embed debug symbols within static libraries (using the /Z7 option). Most of the libraries in `vcpkg` had their versions bumped due to this. + * `vcpkg_configure_meson` has been modified in the same manner. + +-- vcpkg team SAT, 09 Sep 2017 00:30:00 -0800 + + +vcpkg (0.0.87) +-------------- + * Add ports: + - console-bridge 0.3.2-1 + - leptonica 1.74.4 + - tesseract 3.05.01 + - urdfdom 1.0.0-1 + - urdfdom-headers 1.0.0-1 + * Update ports: + - ace 6.4.4 -> 6.4.5 + - c-ares 1.12.1-dev-40eb41f-1 -> 1.13.0 + - glslang 1c573fbcfba6b3d631008b1babc838501ca925d3-2 -> 3a21c880500eac21cdf79bef5b80f970a55ac6af + - grpc 1.4.1 -> 1.6.0 + - libuv 1.14.0 -> 1.14.1 + - meschach -> 1.2b + - openblas v0.2.20 -> v0.2.20-1 + - openssl 1.0.2l-1 -> 1.0.2l-2 + - protobuf 3.3.0-3 -> 3.4.0-1 + - qt5 5.8-4 -> 5.8-5 + - shaderc 2df47b51d83ad83cbc2e7f8ff2b56776293e8958-1 -> 12fb656ab20ea9aa06e7084a74e5ff832b7ce2da + - spirv-tools 1.1-f72189c249ba143c6a89a4cf1e7d53337b2ddd40 -> v2017.1-dev-7e2d26c77b606b21af839b37fd21381c4a669f23 + - xxhash 0.6.2 -> 0.6.3 + - zeromq 4.2.2 -> 20170908-18498f620f0f6d4076981ea16eb5760fe4d28dc2 + * Add new function `vcpkg_from_bitbucket` which the Bitbucket equivalent of `vcpkg_from_github` + +-- vcpkg team FRI, 08 Sep 2017 22:00:00 -0800 + + +vcpkg (0.0.86) +-------------- + * Add ports: + - bigint 2010.04.30 + - butteraugli 2017-09-02-8c60a2aefa19adb + - ccd 2.0.0-1 (Renamed from libccd) + - fadbad 2.1.0 + - fcl 0.5.0-1 + - guetzli 2017-09-02-cb5e4a86f69628 + - gumbo 0.10.1 + - libmicrohttpd 0.9.55 + - libstemmer 2017-9-02 + - libunibreak 4.0 + - lodepng 2017-09-01-8a0f16afe74a6a + - meschach + - nlopt 2.4.2-c43afa08d~vcpkg1 + - picosha2 2017-09-01-c5ff159b6 + - piex 2017-09-01-473434f2dd974978b + - pthreads 2.9.1 + - tinythread 1.1 + - tinyxml 2.6.2-1 + * Removed ports: + - libccd 2.0.0 (Renamed to ccd) + * Update ports: + - ace 6.4.3 -> 6.4.4 + - boost 1.65 -> 1.65-1 + - cairo 1.15.6 -> 1.15.8 + - gdk-pixbuf 2.36.6 -> 2.36.9 + - glib 2.52.2 -> 2.52.3 + - gtk 3.22.15 -> 3.22.19 + - jxrlib 1.1-2 -> 1.1-3 + - paho-mqtt Version 1.1.0 (Paho 1.2) -> 1.2.0 + - pango 1.40.6 -> 1.40.11 + - shaderc 2df47b51d83ad83cbc2e7f8ff2b56776293e8958 -> 2df47b51d83ad83cbc2e7f8ff2b56776293e8958-1 + * Fix warnings in bootstrap-vcpkg.ps1 + * Fix codepage related issues with ninja/cmake + * Improve handling for non-ascii environments + * Configurations names are now more tolerant: + - If a configuration name is prefixed with "Release", then it is compatible with "Release" + - If a configuration name is prefixed with "Debug", then it is compatible with "Debug" + * `vcpkg edit`: Improve detection of VSCode and add better messages when no path is found + * Fixes and improvements in the `vcpkg` tool itself + +-- vcpkg team MON, 04 Sep 2017 02:00:00 -0800 + + vcpkg (0.0.85) -------------- * Add ports: diff --git a/docs/about/faq.md b/docs/about/faq.md index 8234216e06..88f88bad04 100644 --- a/docs/about/faq.md +++ b/docs/about/faq.md @@ -50,7 +50,9 @@ By saving the changes to the portfile (and checking them in), you'll get the sam Yes. While Vcpkg will only produce the standard "Release" and "Debug" configurations when building a library, you can get integration support for your projects' custom configurations, in addition to your project's standard configurations. -The MSBuild $(VcpkgConfiguration) macro, if not set in your project, will identify either the "Release" or the "Debug" configuration. You only need to override this macro in your project file (.vcxproj) to declare the compatibility between your configuration, and the target standard configuration. +First of all, Vcpkg will automatically assume any custom configuration starting with "Release" (resp. "Debug") as a configuration that is compatible with the standard "Release" (resp. "Debug") configuration and will act accordingly. + +For other configurations, you only need to override the MSBuild `$(VcpkgConfiguration)` macro in your project file (.vcxproj) to declare the compatibility between your configuration, and the target standard configuration. For example, you can add support for your "MyRelease" configuration by adding in your project file: ``` diff --git a/docs/maintainers/control-files.md b/docs/maintainers/control-files.md index e446fe6fa7..17cb50311c 100644 --- a/docs/maintainers/control-files.md +++ b/docs/maintainers/control-files.md @@ -42,10 +42,10 @@ Unlike dpkg, Vcpkg does not distinguish between build-only dependencies and runt *For example: websocketpp is a header only library, and thus does not require any dependencies at install time. However, downstream users need boost and openssl to make use of the library. Therefore, websocketpp lists boost and openssl as dependencies* -Dependencies can be filtered based on the target triplet to support different requirements on Windows Desktop versus the Universal Windows Platform. Currently, the string inside brackets is substring-compared against the triplet name. __This will change in a future version to not depend on the triplet name.__ +Dependencies can be filtered based on the target triplet to support different requirements on Windows Desktop versus the Universal Windows Platform. Currently, the string inside parentheses is substring-compared against the triplet name. __This will change in a future version to not depend on the triplet name.__ Example: ```no-highlight -Build-Depends: zlib [windows], openssl [windows], boost [windows], websocketpp [windows] +Build-Depends: zlib (windows), openssl (windows), boost (windows), websocketpp (windows) ``` diff --git a/ports/abseil/CMakeLists.txt b/ports/abseil/CMakeLists.txt new file mode 100644 index 0000000000..34b69817a3 --- /dev/null +++ b/ports/abseil/CMakeLists.txt @@ -0,0 +1,77 @@ +cmake_minimum_required(VERSION 3.8) +project(abseil CXX) + +add_definitions(-DNOMINMAX) + +set(CMAKE_DEBUG_POSTFIX d) +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + +option(INSTALL_HEADERS "Install header files" ON) + +function(add_sublibrary LIB) + file(GLOB_RECURSE SOURCES "absl/${LIB}/*.cc") + list(FILTER SOURCES EXCLUDE REGEX "_test") + file(GLOB HEADERS "absl/${LIB}/*.h") + file(GLOB INTERNAL_HEADERS "absl/${LIB}/internal/*.h") + + if(SOURCES) + add_library(${LIB} ${SOURCES}) + set_target_properties(${LIB} PROPERTIES OUTPUT_NAME "absl_${LIB}") + target_include_directories(${LIB} PUBLIC $ $) + else() + add_library(${LIB} INTERFACE) + target_include_directories(${LIB} INTERFACE $ $) + endif() + + + install(TARGETS ${LIB} EXPORT unofficial-abseil-targets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) + + if(INSTALL_HEADERS) + if(HEADERS) + install(FILES ${HEADERS} DESTINATION "include/absl/${LIB}") + endif() + if(INTERNAL_HEADERS) + install(FILES ${INTERNAL_HEADERS} DESTINATION "include/absl/${LIB}/internal") + endif() + endif() +endfunction() + +function(target_link_public_libraries A) + get_target_property(A_TYPE ${A} TYPE) + if(A_TYPE STREQUAL INTERFACE_LIBRARY) + target_link_libraries(${A} INTERFACE ${ARGN}) + else() + target_link_libraries(${A} PUBLIC ${ARGN}) + endif() +endfunction() + +add_sublibrary(base) +add_sublibrary(meta) +add_sublibrary(algorithm) +add_sublibrary(container) +add_sublibrary(memory) +add_sublibrary(strings) +add_sublibrary(debugging) +add_sublibrary(numeric) +add_sublibrary(types) +add_sublibrary(utility) + +target_link_public_libraries(algorithm base meta) +target_link_public_libraries(container algorithm base memory) +target_link_public_libraries(memory meta) +target_link_public_libraries(meta base) +target_link_public_libraries(numeric base) +target_link_public_libraries(strings base memory meta numeric) +target_link_public_libraries(types base utility meta algorithm strings) +target_link_public_libraries(utility base meta) + +install( + EXPORT unofficial-abseil-targets + FILE unofficial-abseil-config.cmake + NAMESPACE unofficial::abseil:: + DESTINATION share/unofficial-abseil +) \ No newline at end of file diff --git a/ports/abseil/CONTROL b/ports/abseil/CONTROL new file mode 100644 index 0000000000..fb37a8caed --- /dev/null +++ b/ports/abseil/CONTROL @@ -0,0 +1,6 @@ +Source: abseil +Version: 2017-09-28 +Description: an open-source collection designed to augment the C++ standard library. + Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives. + In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we've found through usage in the Google code base. We denote those cases clearly within the library code we provide you. + Abseil is not meant to be a competitor to the standard library; we've just found that many of these utilities serve a purpose within our code base, and we now want to provide those resources to the C++ community as a whole. diff --git a/ports/abseil/fix-intrin.patch b/ports/abseil/fix-intrin.patch new file mode 100644 index 0000000000..285adde0f2 --- /dev/null +++ b/ports/abseil/fix-intrin.patch @@ -0,0 +1,12 @@ +diff --git a/absl/base/optimization.h b/absl/base/optimization.h +index db8beaf..aaaffa4 100644 +--- a/absl/base/optimization.h ++++ b/absl/base/optimization.h +@@ -46,6 +46,7 @@ + // GCC will not tail call given inline volatile assembly. + #define ABSL_BLOCK_TAIL_CALL_OPTIMIZATION() __asm__ __volatile__("") + #elif defined(_MSC_VER) ++#include + // The __nop() intrinsic blocks the optimisation. + #define ABSL_BLOCK_TAIL_CALL_OPTIMIZATION() __nop() + #else diff --git a/ports/abseil/portfile.cmake b/ports/abseil/portfile.cmake new file mode 100644 index 0000000000..8c9e81aa37 --- /dev/null +++ b/ports/abseil/portfile.cmake @@ -0,0 +1,38 @@ +include(vcpkg_common_functions) + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "Abseil currently only supports being built for desktop") +endif() + +message("NOTE: THIS PORT IS USING AN UNOFFICIAL BUILDSYSTEM. THE BINARY LAYOUT AND CMAKE INTEGRATION WILL CHANGE IN THE FUTURE.") +message("To use from cmake:\n find_package(unofficial-abseil REQUIRED)\n link_libraries(unofficial::abseil::strings)") + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO abseil/abseil-cpp + REF cdf20caa491f59c0a35a8d8fbec0d948e4bc7e4c + SHA512 04889e7804b644821d0bf5d1b13f15a072e748bf0465442c64528e014c71f415544e9146c9518f9fe7bb14a295b18f293c3f7b672f6a51dba9909f3b74667fae + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-intrin.patch" +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DINSTALL_HEADERS=OFF +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-abseil) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/abseil ${CURRENT_PACKAGES_DIR}/share/unofficial-abseil) + +vcpkg_copy_pdbs() + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/abseil RENAME copyright) diff --git a/ports/ace/CONTROL b/ports/ace/CONTROL index 7a620f3c65..80af89d8a8 100644 --- a/ports/ace/CONTROL +++ b/ports/ace/CONTROL @@ -1,3 +1,3 @@ Source: ace -Version: 6.4.3 +Version: 6.4.5 Description: The ADAPTIVE Communication Environment diff --git a/ports/ace/portfile.cmake b/ports/ace/portfile.cmake index 6763cc370b..fece3ebcc8 100644 --- a/ports/ace/portfile.cmake +++ b/ports/ace/portfile.cmake @@ -5,9 +5,9 @@ endif() include(vcpkg_common_functions) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/ACE_wrappers/ace) vcpkg_download_distfile(ARCHIVE - URLS "http://download.dre.vanderbilt.edu/previous_versions/ACE-6.4.4.zip" - FILENAME "ACE-6.4.4.zip" - SHA512 82628a73b736a14b3ee33fb859e26370ffd7df88bda4890fe490736160d3ce393f7e61183cd8cd7a91a83bc31c4bd263aa887168543f9f89fde080dc3650a4ed + URLS "http://download.dre.vanderbilt.edu/previous_versions/ACE-6.4.5.zip" + FILENAME "ACE-6.4.5.zip" + SHA512 cce1681fc35efdefb8b88a49b743ffcaecfe8f146dcf6c78393aed29c8853e77b062bced4a2fb457eba74bf5834511611cc40da2320c6094793cb8c2b6df3d2a ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/alembic/CONTROL b/ports/alembic/CONTROL index c12a592179..b9d6ed50dd 100644 --- a/ports/alembic/CONTROL +++ b/ports/alembic/CONTROL @@ -1,4 +1,4 @@ Source: alembic -Version: 1.7.1-3 +Version: 1.7.1-4 Build-Depends: ilmbase, hdf5 Description: Alembic is an open framework for storing and sharing scene data that includes a C++ library, a file format, and client plugins and applications. http://alembic.io/ diff --git a/ports/allegro5/CONTROL b/ports/allegro5/CONTROL index 4bb51ae4ec..8f078909a1 100644 --- a/ports/allegro5/CONTROL +++ b/ports/allegro5/CONTROL @@ -1,4 +1,4 @@ Source: allegro5 -Version: 5.2.2.0 +Version: 5.2.2.0-1 Description: Allegro is a cross-platform library mainly aimed at video game and multimedia programming. It handles common, low-level tasks such as creating windows, accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform. However, Allegro is not a game engine: you are free to design and structure your program as you like. -Build-Depends: opengl, zlib, freetype, libogg, libvorbis, libflac, openal-soft, libpng, bzip2, physfs, libtheora, opus, opusfile \ No newline at end of file +Build-Depends: opengl, zlib, freetype, libogg, libvorbis, libflac, openal-soft, libpng, bzip2, physfs, libtheora, opus, opusfile diff --git a/ports/anax/CONTROL b/ports/anax/CONTROL index ce3da2f57b..12be38d111 100644 --- a/ports/anax/CONTROL +++ b/ports/anax/CONTROL @@ -1,3 +1,3 @@ Source: anax -Version: 2.1.0-1 +Version: 2.1.0-3 Description: An open source C++ entity system. diff --git a/ports/anax/portfile.cmake b/ports/anax/portfile.cmake index ef14f72648..8881957fc3 100644 --- a/ports/anax/portfile.cmake +++ b/ports/anax/portfile.cmake @@ -8,13 +8,13 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/anax-2.1.0) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/miguelmartin75/anax/archive/v2.1.0.zip" - FILENAME "anax-2.1.0.zip" - SHA512 89f2df64add676ab48a19953b95d8eae1da9c8c5f3c0f6bc757a3bc99af6e4360c56c12d27d12c672ccd754b1f53a5e271533b381641f20e8cf3ca8ddda6cd1a +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO miguelmartin75/anax + REF v2.1.0 + SHA512 b573733b5f9634bf8cfc5b0715074f9a8ee29ecb48dc981d9371254a1f6ff8afbbb9ba6aa0877d53e518e5486ecc398a6d331fb9b5dbfd17d8707679216e11a3 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} @@ -23,8 +23,8 @@ vcpkg_apply_patches( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS - -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON + OPTIONS + -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON ) vcpkg_install_cmake() @@ -34,3 +34,5 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/anax) file(RENAME ${CURRENT_PACKAGES_DIR}/share/anax/LICENSE ${CURRENT_PACKAGES_DIR}/share/anax/copyright) + +vcpkg_copy_pdbs() \ No newline at end of file diff --git a/ports/angle/CONTROL b/ports/angle/CONTROL index a7e261bb1e..38f8c7c602 100644 --- a/ports/angle/CONTROL +++ b/ports/angle/CONTROL @@ -1,4 +1,4 @@ Source: angle -Version: 2017-06-14-8d471f-1 +Version: 2017-06-14-8d471f-2 Description: A conformant OpenGL ES implementation for Windows, Mac and Linux. The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support. diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake index aebf528dd7..ab7ebd8286 100644 --- a/ports/angle/portfile.cmake +++ b/ports/angle/portfile.cmake @@ -13,7 +13,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/angle REF 8d471f907d8d4ec1d46bc9366493bd76c11c1870 - SHA512 b9235d2a98330bc8533c3fe871129e7235c680420eac16610eae4ca7224c5284313ab6377f30ddfb8a2da39b69f3ef0d16023fe1e7cec3fc2198f4eb4bdccb26 + SHA512 b4670caeeaa5d662bc82702eb5f620123812ea6b5d82f57a65df54ae25cdaa5c9ff0fdb592448b07569d9c09af3d3c51b0b2f135c5800d1845b425009656bf18 HEAD_REF master ) vcpkg_apply_patches( diff --git a/ports/apr-util/CONTROL b/ports/apr-util/CONTROL index e61eb36531..81814a2ca2 100644 --- a/ports/apr-util/CONTROL +++ b/ports/apr-util/CONTROL @@ -1,4 +1,4 @@ Source: apr-util -Version: 1.6.0 +Version: 1.6.0-1 Description: Apache Portable Runtime (APR) project mission is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementation Build-Depends: expat, apr, openssl diff --git a/ports/apr/CONTROL b/ports/apr/CONTROL index ac1b7d5c33..94581eab04 100644 --- a/ports/apr/CONTROL +++ b/ports/apr/CONTROL @@ -1,3 +1,3 @@ Source: apr -Version: 1.6.2 +Version: 1.6.2-1 Description: The Apache Portable Runtime (APR) is a C library that forms a system portability layer that covers many operating systems. diff --git a/ports/arrow/CONTROL b/ports/arrow/CONTROL index 717360d121..78cbf2a18e 100644 --- a/ports/arrow/CONTROL +++ b/ports/arrow/CONTROL @@ -1,4 +1,4 @@ Source: arrow -Version: apache-arrow-0.4.0-1 -Build-Depends: boost +Version: 0.6.0 +Build-Depends: boost, flatbuffers, rapidjson, zlib, lz4, brotli, zstd, snappy, gflags Description: Apache Arrow is a columnar in-memory analytics layer designed to accelerate big data. It houses a set of canonical in-memory representations of flat and hierarchical data along with multiple language-bindings for structure manipulation. It also provides IPC and common algorithm implementations. diff --git a/ports/arrow/all.patch b/ports/arrow/all.patch new file mode 100644 index 0000000000..6e0d175c31 --- /dev/null +++ b/ports/arrow/all.patch @@ -0,0 +1,130 @@ +diff --git a/cmake_modules/FindBrotli.cmake b/cmake_modules/FindBrotli.cmake +index f2e714c..2e475dc 100644 +--- a/cmake_modules/FindBrotli.cmake ++++ b/cmake_modules/FindBrotli.cmake +@@ -65,16 +65,13 @@ if (BROTLI_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR BROTLI_LIBRARIES)) + set(BROTLI_FOUND TRUE) + get_filename_component( BROTLI_LIBS ${BROTLI_LIBRARY_ENC} PATH ) + set(BROTLI_LIB_NAME brotli) +- if (MSVC AND NOT BROTLI_MSVC_STATIC_LIB_SUFFIX) +- set(BROTLI_MSVC_STATIC_LIB_SUFFIX _static) +- endif() + set(BROTLI_STATIC_LIB +- ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} +- ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} +- ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}) +- set(BROTLI_STATIC_LIBRARY_ENC ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}) +- set(BROTLI_STATIC_LIBRARY_DEC ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}) +- set(BROTLI_STATIC_LIBRARY_COMMON ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${BROTLI_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}) ++ ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${CMAKE_STATIC_LIBRARY_SUFFIX} ++ ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${CMAKE_STATIC_LIBRARY_SUFFIX} ++ ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${CMAKE_STATIC_LIBRARY_SUFFIX}) ++ set(BROTLI_STATIC_LIBRARY_ENC ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${CMAKE_STATIC_LIBRARY_SUFFIX}) ++ set(BROTLI_STATIC_LIBRARY_DEC ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${CMAKE_STATIC_LIBRARY_SUFFIX}) ++ set(BROTLI_STATIC_LIBRARY_COMMON ${BROTLI_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${BROTLI_LIB_NAME}common${CMAKE_STATIC_LIBRARY_SUFFIX}) + set(BROTLI_SHARED_LIB + ${BROTLI_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}enc${CMAKE_SHARED_LIBRARY_SUFFIX} + ${BROTLI_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${BROTLI_LIB_NAME}dec${CMAKE_SHARED_LIBRARY_SUFFIX} +diff --git a/cmake_modules/FindFlatbuffers.cmake b/cmake_modules/FindFlatbuffers.cmake +index 804f479..ff9bde1 100644 +--- a/cmake_modules/FindFlatbuffers.cmake ++++ b/cmake_modules/FindFlatbuffers.cmake +@@ -53,6 +53,7 @@ endif () + + find_program(FLATBUFFERS_COMPILER flatc + "${FLATBUFFERS_HOME}/bin" ++ "${FLATBUFFERS_HOME}/tools" + /usr/local/bin + /usr/bin + NO_DEFAULT_PATH +diff --git a/cmake_modules/FindLz4.cmake b/cmake_modules/FindLz4.cmake +index 07707cf..9cbf67d 100644 +--- a/cmake_modules/FindLz4.cmake ++++ b/cmake_modules/FindLz4.cmake +@@ -29,15 +29,7 @@ elseif ( Lz4_HOME ) + list( APPEND _lz4_roots ${Lz4_HOME} ) + endif() + +-if (MSVC AND NOT LZ4_MSVC_STATIC_LIB_SUFFIX) +- set(LZ4_MSVC_STATIC_LIB_SUFFIX "_static") +-endif() +- +-set(LZ4_STATIC_LIB_SUFFIX +- "${LZ4_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") +- +-set(LZ4_STATIC_LIB_NAME +- ${CMAKE_STATIC_LIBRARY_PREFIX}lz4${LZ4_STATIC_LIB_SUFFIX}) ++set(LZ4_STATIC_LIB_NAME lz4) + + find_path(LZ4_INCLUDE_DIR NAMES lz4.h + PATHS ${_lz4_roots} +diff --git a/cmake_modules/FindSnappy.cmake b/cmake_modules/FindSnappy.cmake +index 867963c..8a432db 100644 +--- a/cmake_modules/FindSnappy.cmake ++++ b/cmake_modules/FindSnappy.cmake +@@ -55,7 +55,7 @@ if (SNAPPY_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR SNAPPY_LIBRARIES)) + set(SNAPPY_HEADER_NAME snappy.h) + set(SNAPPY_HEADER ${SNAPPY_INCLUDE_DIR}/${SNAPPY_HEADER_NAME}) + set(SNAPPY_LIB_NAME snappy) +- set(SNAPPY_STATIC_LIB ${SNAPPY_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_LIB_NAME}${SNAPPY_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}) ++ set(SNAPPY_STATIC_LIB ${SNAPPY_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) + set(SNAPPY_SHARED_LIB ${SNAPPY_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${SNAPPY_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}) + else () + set(SNAPPY_FOUND FALSE) +diff --git a/cmake_modules/FindZLIB.cmake b/cmake_modules/FindZLIB.cmake +index 78b84f2..eb09001 100644 +--- a/cmake_modules/FindZLIB.cmake ++++ b/cmake_modules/FindZLIB.cmake +@@ -62,11 +62,11 @@ if (ZLIB_INCLUDE_DIR AND (PARQUET_MINIMAL_DEPENDENCY OR ZLIB_LIBRARIES)) + set(ZLIB_LIB_NAME z) + if (MSVC) + if (NOT ZLIB_MSVC_STATIC_LIB_SUFFIX) +- set(ZLIB_MSVC_STATIC_LIB_SUFFIX libstatic) ++ set(ZLIB_MSVC_STATIC_LIB_SUFFIX lib) + endif() + set(ZLIB_MSVC_SHARED_LIB_SUFFIX lib) + endif() +- set(ZLIB_STATIC_LIB ${ZLIB_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${ZLIB_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}) ++ set(ZLIB_STATIC_LIB ${ZLIB_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${ZLIB_MSVC_SHARED_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}) + set(ZLIB_SHARED_LIB ${ZLIB_LIBS}/${CMAKE_SHARED_LIBRARY_PREFIX}${ZLIB_LIB_NAME}${ZLIB_MSVC_SHARED_LIB_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}) + else () + set(ZLIB_FOUND FALSE) +diff --git a/cmake_modules/FindZSTD.cmake b/cmake_modules/FindZSTD.cmake +index 02a0c39..73c61b5 100644 +--- a/cmake_modules/FindZSTD.cmake ++++ b/cmake_modules/FindZSTD.cmake +@@ -29,21 +29,11 @@ elseif ( ZStd_HOME ) + list( APPEND _zstd_roots ${ZStd_HOME} ) + endif() + +-if (MSVC AND NOT ZSTD_MSVC_STATIC_LIB_SUFFIX) +- set(ZSTD_MSVC_STATIC_LIB_SUFFIX "_static") +-endif() +- +-set(ZSTD_STATIC_LIB_SUFFIX +- "${ZSTD_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") +- +-set(ZSTD_STATIC_LIB_NAME +- ${CMAKE_STATIC_LIBRARY_PREFIX}zstd${ZSTD_STATIC_LIB_SUFFIX}) +- + find_path(ZSTD_INCLUDE_DIR NAMES zstd.h + PATHS ${_zstd_roots} + NO_DEFAULT_PATH + PATH_SUFFIXES "include" ) +-find_library(ZSTD_STATIC_LIB NAMES ${ZSTD_STATIC_LIB_NAME} lib${ZSTD_STATIC_LIB_NAME} ++find_library(ZSTD_STATIC_LIB NAMES libzstd libzstd_static zstd zstd_static + PATHS ${_zstd_roots} + NO_DEFAULT_PATH + PATH_SUFFIXES "lib" ) +diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake +index a888e92..0fe3629 100644 +--- a/cmake_modules/ThirdpartyToolchain.cmake ++++ b/cmake_modules/ThirdpartyToolchain.cmake +@@ -119,6 +119,7 @@ endif() + set(Boost_DEBUG TRUE) + set(Boost_USE_MULTITHREADED ON) + set(Boost_ADDITIONAL_VERSIONS ++ "1.65.0" "1.65" + "1.64.0" "1.64" + "1.63.0" "1.63" + "1.62.0" "1.61" diff --git a/ports/arrow/portfile.cmake b/ports/arrow/portfile.cmake index f5cdb1ae49..c70a3cdc3f 100644 --- a/ports/arrow/portfile.cmake +++ b/ports/arrow/portfile.cmake @@ -7,17 +7,39 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apache/arrow - REF apache-arrow-0.4.0 - SHA512 cdd67a884528b088688d88c0627b9c13077215e234dd0772797f0bf63319ffc18533276d52110a37a0938d32f006023b74dce93e71d34b1e0003a86761cea6ee + REF apache-arrow-0.6.0 + SHA512 c0e89b959dfe75e895a3427edd4eee663be5ee542e9ea13f7311d0775fe7a00188eafa07ba524e3d3c0a71fc8e11213f10fe4ebfdf451754816062249ffa7f3d HEAD_REF master ) set(CPP_SOURCE_PATH "${SOURCE_PATH}/cpp") +vcpkg_apply_patches( + SOURCE_PATH ${CPP_SOURCE_PATH} + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/all.patch" +) + + +string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" ARROW_BUILD_SHARED) +string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "static" ARROW_BUILD_STATIC) + vcpkg_configure_cmake( SOURCE_PATH ${CPP_SOURCE_PATH} OPTIONS -DARROW_BUILD_TESTS=off + -DRAPIDJSON_HOME=${CURRENT_INSTALLED_DIR} + -DFLATBUFFERS_HOME=${CURRENT_INSTALLED_DIR} + -DARROW_ZLIB_VENDORED=ON + -DBROTLI_HOME=${CURRENT_INSTALLED_DIR} + -DLZ4_HOME=${CURRENT_INSTALLED_DIR} + -DZSTD_HOME=${CURRENT_INSTALLED_DIR} + -DSNAPPY_HOME=${CURRENT_INSTALLED_DIR} + -DBOOST_ROOT=${CURRENT_INSTALLED_DIR} + -DGFLAGS_HOME=${CURRENT_INSTALLED_DIR} + -DZLIB_HOME=${CURRENT_INSTALLED_DIR} + -DARROW_BUILD_STATIC=${ARROW_BUILD_STATIC} + -DARROW_BUILD_SHARED=${ARROW_BUILD_SHARED} ) vcpkg_install_cmake() diff --git a/ports/assimp/CONTROL b/ports/assimp/CONTROL index 9e036df33c..f13d2ee202 100644 --- a/ports/assimp/CONTROL +++ b/ports/assimp/CONTROL @@ -1,4 +1,4 @@ Source: assimp -Version: 4.0.0-1 +Version: 4.0.0-2 Description: The Open Asset import library Build-Depends: zlib diff --git a/ports/atk/CONTROL b/ports/atk/CONTROL index 149c564a75..0af45eab49 100644 --- a/ports/atk/CONTROL +++ b/ports/atk/CONTROL @@ -1,4 +1,4 @@ Source: atk -Version: 2.24.0 +Version: 2.24.0-1 Description: GNOME Accessibility Toolkit Build-Depends: glib, gettext diff --git a/ports/aubio/CONTROL b/ports/aubio/CONTROL index 55b20f655d..34fcaa4952 100644 --- a/ports/aubio/CONTROL +++ b/ports/aubio/CONTROL @@ -1,4 +1,4 @@ Source: aubio -Version: 0.46~alpha-2 +Version: 0.46~alpha-3 Description: Aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio. Build-Depends: ffmpeg, libsndfile, libogg, libflac, libvorbis diff --git a/ports/aws-sdk-cpp/CONTROL b/ports/aws-sdk-cpp/CONTROL index 18de04d46f..251e7bdf9c 100644 --- a/ports/aws-sdk-cpp/CONTROL +++ b/ports/aws-sdk-cpp/CONTROL @@ -1,3 +1,3 @@ Source: aws-sdk-cpp -Version: 1.0.61 +Version: 1.0.61-1 Description: AWS SDK for C++ diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake index 93c7a72654..3a8f9b464f 100644 --- a/ports/aws-sdk-cpp/portfile.cmake +++ b/ports/aws-sdk-cpp/portfile.cmake @@ -3,7 +3,7 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/aws-sdk-cpp-1.0.61) vcpkg_download_distfile(ARCHIVE URLS "https://github.com/aws/aws-sdk-cpp/archive/1.0.61.tar.gz" FILENAME "aws-sdk-cpp-1.0.61.tar.gz" - SHA512 aef0a85a32db24dc4fba0fc49c2533074580f3df628e787ff0808f03deea5dac42e19b1edc966706784e98cfed17a350c3eff4f222df7cc756065be56d1fc6a6 + SHA512 75f3570d8e8c08624b69d8254e156829030a36a7c4aa4b783d895e7c209b2a46b6b9ce822e6d9e9f649b171cf64988f0ad18ce0a55eb39c50d68a7880568078a ) vcpkg_extract_source_archive(${ARCHIVE}) @@ -50,4 +50,4 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) endif() # Handle copyright -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/aws-sdk-cpp RENAME copyright) \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/aws-sdk-cpp RENAME copyright) diff --git a/ports/azure-storage-cpp/CONTROL b/ports/azure-storage-cpp/CONTROL index 94126a3664..1917bad6db 100644 --- a/ports/azure-storage-cpp/CONTROL +++ b/ports/azure-storage-cpp/CONTROL @@ -1,5 +1,5 @@ Source: azure-storage-cpp -Version: 3.0.0-2 +Version: 3.0.0-3 Build-Depends: cpprestsdk, atlmfc Description: Microsoft Azure Storage Client SDK for C++ - A client library for working with Microsoft Azure storage services including blobs, files, tables, and queues. This client library enables working with the Microsoft Azure storage services which include the blob service for storing binary and text data, the file service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client. Microsoft Azure Storage team's blog - http://blogs.msdn.com/b/windowsazurestorage/ \ No newline at end of file + A client library for working with Microsoft Azure storage services including blobs, files, tables, and queues. This client library enables working with the Microsoft Azure storage services which include the blob service for storing binary and text data, the file service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client. Microsoft Azure Storage team's blog - http://blogs.msdn.com/b/windowsazurestorage/ diff --git a/ports/benchmark/CONTROL b/ports/benchmark/CONTROL index 21f36fe43d..03052ce7f0 100644 --- a/ports/benchmark/CONTROL +++ b/ports/benchmark/CONTROL @@ -1,3 +1,3 @@ Source: benchmark -Version: 1.1.0 -Description: A library to support the benchmarking of functions, similar to unit-tests. \ No newline at end of file +Version: 1.2.0 +Description: A library to support the benchmarking of functions, similar to unit-tests. diff --git a/ports/benchmark/fix-cmakelists.patch b/ports/benchmark/fix-cmakelists.patch deleted file mode 100644 index f1d72fdc3a..0000000000 --- a/ports/benchmark/fix-cmakelists.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 4038875..94d2aea 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -28,17 +28,20 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - endif() - - # Expose public API --target_include_directories(benchmark PUBLIC ${PROJECT_SOURCE_DIR}/include) -+target_include_directories(benchmark PRIVATE ${PROJECT_SOURCE_DIR}/include) - - # Install target (will install the library to specified CMAKE_INSTALL_PREFIX variable) - install( - TARGETS benchmark -+ EXPORT benchmarkTargets - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib - RUNTIME DESTINATION bin -- COMPONENT library) -+ INCLUDES DESTINATION include) - - install( - DIRECTORY "${PROJECT_SOURCE_DIR}/include/benchmark" - DESTINATION include - FILES_MATCHING PATTERN "*.*h") -+ -+install(EXPORT benchmarkTargets NAMESPACE benchmark:: DESTINATION share/benchmark) diff --git a/ports/benchmark/portfile.cmake b/ports/benchmark/portfile.cmake index d8fc98a7ef..c3159ef8b4 100644 --- a/ports/benchmark/portfile.cmake +++ b/ports/benchmark/portfile.cmake @@ -12,30 +12,38 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/benchmark - REF v1.1.0 - SHA512 533061531e6a37723a626addc9e779018c4c2cfc8634ae45860eec0d3800103b5b562f865ac1dc0c8dbe045579b81e59de887e1c48318cebf160f03c18321831 + REF v1.2.0 + SHA512 859063669fd84e847f04624013f0b2b734d75d90cada247682eaf345b86c88a9bc2320250e128f2361e37f402b3fb56a18c493ec6038973744a005a452d693ba HEAD_REF master ) +vcpkg_download_distfile(PATCH + URLS "https://github.com/efcs/benchmark/commit/536b0b82b8ec12fc7e17e6d243633618f294a739.diff" + FILENAME google-benchmark-1.2.0-536b0b82.patch + SHA512 ed42cc0014741c8039c0fca5b4317b2ed09d06a25c91f49a48be6dce921e39469b002c088794c1ea73dc759166e20cb685b47f809ba28dddd95b5f3263be03cd +) + vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch" + PATCHES + "${PATCH}" ) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS - -DBENCHMARK_ENABLE_TESTING=OFF + -DBENCHMARK_ENABLE_TESTING=OFF ) vcpkg_install_cmake() vcpkg_copy_pdbs() -vcpkg_fixup_cmake_targets() +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/benchmark) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/benchmark) diff --git a/ports/bigint/CMakeLists.txt b/ports/bigint/CMakeLists.txt new file mode 100644 index 0000000000..cb62597eff --- /dev/null +++ b/ports/bigint/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.8.0) +project(bigint) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +include_directories(".") + +set( + bigint_srcs + BigUnsigned.cc + BigInteger.cc + BigIntegerAlgorithms.cc + BigUnsignedInABase.cc + BigIntegerUtils.cc +) + +set( + bigint_hh + NumberlikeArray.hh + BigUnsigned.hh + BigInteger.hh + BigIntegerAlgorithms.hh + BigUnsignedInABase.hh + BigIntegerLibrary.hh +) + +add_library(bigint ${bigint_srcs}) + +install( + TARGETS bigint + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES ${bigint_hh} DESTINATION include/bigint) +endif() diff --git a/ports/bigint/CONTROL b/ports/bigint/CONTROL new file mode 100644 index 0000000000..4079363f15 --- /dev/null +++ b/ports/bigint/CONTROL @@ -0,0 +1,3 @@ +Source: bigint +Version: 2010.04.30-1 +Description: C++ Big Integer Library diff --git a/ports/bigint/portfile.cmake b/ports/bigint/portfile.cmake new file mode 100644 index 0000000000..8a710aa542 --- /dev/null +++ b/ports/bigint/portfile.cmake @@ -0,0 +1,27 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(WARNING "Dynamic not supported building static") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/bigint-2010.04.30) +vcpkg_download_distfile(ARCHIVE + URLS "https://mattmccutchen.net/bigint/bigint-2010.04.30.tar.bz2" + FILENAME "bigint-2010.04.30.tar.bz2" + SHA512 bb64380e51991f97a2489c04801ab4372f795b5e23870ad12d71087f1a2afba9b32f74dcdbdcb5228ebf0dd74a37185285bac7653dd3c62d6118d63c298689af +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/bigint RENAME copyright) diff --git a/ports/blaze/portfile.cmake b/ports/blaze/portfile.cmake index 3225e99d4b..a8fc5ab1e2 100644 --- a/ports/blaze/portfile.cmake +++ b/ports/blaze/portfile.cmake @@ -1,13 +1,13 @@ #header-only library include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/blaze-3.2) -vcpkg_download_distfile(ARCHIVE - URLS "https://bitbucket.org/blaze-lib/blaze/downloads/blaze-3.2.tar.gz" - FILENAME "blaze-3.2.tar.gz" - SHA512 33d2bb0a49a33e71c88a45ab9e8418160c09b877b3ebe5ff7aa48ec0973e28e8a282374604d56f1b5cf2722946e4ca84aa2b401a341240a2ab9debd72505148e +vcpkg_from_bitbucket( + OUT_SOURCE_PATH SOURCE_PATH + REPO blaze-lib/blaze + REF v3.2 + SHA512 f9a50c454125fe194f0d1fb259c5440c82068d41880a228fbd15fe383b6ef4198557daa406a08809065eedf223fc0c55d2309cc00ef549a3fc1a2a89e6d4b445 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) # Copy the blaze header files file(COPY "${SOURCE_PATH}/blaze" diff --git a/ports/bond/CONTROL b/ports/bond/CONTROL index 9007113f3a..e69c925d60 100644 --- a/ports/bond/CONTROL +++ b/ports/bond/CONTROL @@ -1,5 +1,5 @@ Source: bond Maintainer: bond@microsoft.com -Version: 6.0.0 +Version: 6.0.0-1 Description: Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services. Build-Depends: boost, rapidjson diff --git a/ports/boost/CONTROL b/ports/boost/CONTROL index 8200d54d15..4fc7efdecf 100644 --- a/ports/boost/CONTROL +++ b/ports/boost/CONTROL @@ -1,4 +1,4 @@ Source: boost -Version: 1.65-1 +Version: 1.65.1 Description: Peer-reviewed portable C++ source libraries Build-Depends: zlib, bzip2 diff --git a/ports/boost/portfile.cmake b/ports/boost/portfile.cmake index 3ed0ed9c56..f153aaf69a 100644 --- a/ports/boost/portfile.cmake +++ b/ports/boost/portfile.cmake @@ -1,26 +1,19 @@ include(vcpkg_common_functions) set(VERSION 1_65) -set(VERSION2 1.65.0) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/boost_${VERSION}_0) +set(VERSION_FULL 1_65_1) +set(VERSION2 1.65.1) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/boost_${VERSION_FULL}) ###################### # Acquire and arrange sources ###################### vcpkg_download_distfile(ARCHIVE_FILE - URLS "https://sourceforge.net/projects/boost/files/boost/${VERSION2}/boost_${VERSION}_0.7z" "http://dl.bintray.com/boostorg/release/${VERSION2}/source/boost_${VERSION}_0.7z" - FILENAME "boost_${VERSION}_0.7z" - SHA512 41909136371b3aac53fc06ae92404bd52adde4cbda9337886433d197059105208b67331abf6ca8dc45e4d28679733b5c01fc701cba17516c7134c97785cc5f7e + URLS "https://sourceforge.net/projects/boost/files/boost/${VERSION2}/boost_${VERSION_FULL}.7z" "http://dl.bintray.com/boostorg/release/${VERSION2}/source/boost_${VERSION_FULL}.7z" + FILENAME "boost_${VERSION_FULL}.7z" + SHA512 b1d9264ec74dd75c68176f5a2d2da33a2c1e3162842cc61a07ac8ed1ebb953855cece4faf72ce99b490b665e813b839e35c7fc8026f2f9cb31b106fb8bab2a9c ) vcpkg_extract_source_archive(${ARCHIVE_FILE}) -# apply boost combined hotfix -vcpkg_download_distfile(HOTFIX_PATCH - URLS "https://raw.githubusercontent.com/boostorg/website/6c3b630f2c621b78d983e882cefae7ffdf8383b8/patches/1_65_0/boost_1_65_0.patch" - FILENAME "boost_1_65_0.patch" - SHA512 8f9e654d0ee4d30b38b62b99ebfbbdeccd156c168656e1256b846bd21a3cb36d675396bd48d3f7a18d6cffba80932d40590d12e7ca1a4b51db343b3a0a39a3fd -) -vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} PATCHES ${HOTFIX_PATCH}) - # apply boost range hotfix vcpkg_download_distfile(DIFF URLS "https://github.com/boostorg/range/commit/e7ebe14707130cda7b72e0ae5e93b17157fdb6a2.diff" diff --git a/ports/box2d/portfile.cmake b/ports/box2d/portfile.cmake index c84c333876..122290251b 100644 --- a/ports/box2d/portfile.cmake +++ b/ports/box2d/portfile.cmake @@ -21,7 +21,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO erincatto/Box2D REF 374664b2a4ce2e7c24fbad6e1ed34bebcc9ab6bc - SHA512 ae2bbee66644eea91d0e92156a4bece44053dfa8fd6b8630712a73b92210d4c75153df94e3386c64c49796b001af1ad7dee44868c16368b114567e1f6931d242 + SHA512 39074bab01b36104aa685bfe39b40eb903d9dfb54cc3ba8098125db5291f55a8a9e578fc59563b2e8743abbbb26f419be7ae1524e235e7bd759257f99ff96bda HEAD_REF master ) diff --git a/ports/brotli/CONTROL b/ports/brotli/CONTROL index 75a2973a00..25bc036a83 100644 --- a/ports/brotli/CONTROL +++ b/ports/brotli/CONTROL @@ -1,3 +1,3 @@ Source: brotli -Version: 0.6.0 +Version: 0.6.0-1 Description: a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling. diff --git a/ports/bullet3/CONTROL b/ports/bullet3/CONTROL index 6320c6578b..92b55db2e1 100644 --- a/ports/bullet3/CONTROL +++ b/ports/bullet3/CONTROL @@ -1,3 +1,3 @@ Source: bullet3 -Version: 2.86.1 +Version: 2.86.1-1 Description: Bullet Physics is a professional collision detection, rigid body, and soft body dynamics library diff --git a/ports/butteraugli/CMakeLists.txt b/ports/butteraugli/CMakeLists.txt new file mode 100644 index 0000000000..3bd8a6c37f --- /dev/null +++ b/ports/butteraugli/CMakeLists.txt @@ -0,0 +1,43 @@ +cmake_minimum_required(VERSION 3.8.0) +project(butteraugli) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX) +endif() + + + +find_package(JPEG REQUIRED) +find_package(PNG REQUIRED) + +include_directories("." ${JPEG_INCLUDE_DIR} ${PNG_INCLUDE_DIRS}) + +if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + + +add_library(butteraugli_lib butteraugli/butteraugli.cc) + +add_executable(butteraugli butteraugli/butteraugli_main.cc) + +target_link_libraries(butteraugli butteraugli_lib ${JPEG_LIBRARIES} ${PNG_LIBRARIES}) + + +install( + TARGETS butteraugli_lib + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_TOOLS) + install ( + TARGETS butteraugli + RUNTIME DESTINATION tools/butteraugli + ) +endif() + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES butteraugli/butteraugli.h DESTINATION include/butteraugli) +endif() diff --git a/ports/butteraugli/CONTROL b/ports/butteraugli/CONTROL new file mode 100644 index 0000000000..fe951714b1 --- /dev/null +++ b/ports/butteraugli/CONTROL @@ -0,0 +1,4 @@ +Source: butteraugli +Version: 2017-09-02-8c60a2aefa19adb-1 +Description: butteraugli estimates the psychovisual difference between two images +Build-Depends: libpng, libjpeg-turbo diff --git a/ports/butteraugli/missing_header.patch b/ports/butteraugli/missing_header.patch new file mode 100644 index 0000000000..11d314fad9 --- /dev/null +++ b/ports/butteraugli/missing_header.patch @@ -0,0 +1,12 @@ +diff --git "a/butteraugli/butteraugli_main.cc" "b/butteraugli/butteraugli_main.cc" +index f38af1d..ebf3197 100644 +--- "a/butteraugli/butteraugli_main.cc" ++++ "b/butteraugli/butteraugli_main.cc" +@@ -2,6 +2,7 @@ + #include + #include + #include ++#include + #include "butteraugli/butteraugli.h" + + extern "C" { diff --git a/ports/butteraugli/portfile.cmake b/ports/butteraugli/portfile.cmake new file mode 100644 index 0000000000..a4b6fcfdda --- /dev/null +++ b/ports/butteraugli/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/butteraugli + REF 8c60a2aefa19adb40e457be5358d7cc93205c72f + SHA512 ff3d8fd952d291b51dab60cef6fa46b723c4a7b649c3df70f89c63febce865dc6a2e5f95ca165ea4424fed52a57c2d76c918eb31646c44ba34a0fa51a003c9dd + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/missing_header.patch" + ) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/butteraugli) + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/butteraugli RENAME copyright) diff --git a/ports/bzip2/CONTROL b/ports/bzip2/CONTROL index 1c7303c229..613d3f2517 100644 --- a/ports/bzip2/CONTROL +++ b/ports/bzip2/CONTROL @@ -1,3 +1,3 @@ Source: bzip2 -Version: 1.0.6-1 +Version: 1.0.6-2 Description: High-quality data compressor. diff --git a/ports/c-ares/CONTROL b/ports/c-ares/CONTROL index db04bd3fa1..6b729a5d94 100644 --- a/ports/c-ares/CONTROL +++ b/ports/c-ares/CONTROL @@ -1,4 +1,4 @@ Source: c-ares -Version: 1.12.1-dev-40eb41f-1 +Version: 1.13.0-1 Description: A C library for asynchronous DNS requests -Build-Depends: \ No newline at end of file +Build-Depends: diff --git a/ports/c-ares/portfile.cmake b/ports/c-ares/portfile.cmake index 86c4ba442d..d78878857f 100644 --- a/ports/c-ares/portfile.cmake +++ b/ports/c-ares/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO c-ares/c-ares - REF 40eb41f522eb9a86f9397352f10d1e63c89f2c54 - SHA512 901d7da97098f79d13ae8d72c85936bd15fbd6b65399c247462ad5367ac85ff32c90325998c21364f959e1bde2c8b7dbc9d9d7524ea34e6bc48dfb3854c199e1 + REF cares-1_13_0 + SHA512 0ee8a45772c64701d0e860cd84925cef8938a319b3004e02e86af900cbd9e07609940bc474a46bf4252b9b7e3815e1951de8f0eb16718074ec1d39c2105a2abe HEAD_REF master ) diff --git a/ports/caffe2/CONTROL b/ports/caffe2/CONTROL new file mode 100644 index 0000000000..d09de8e6d6 --- /dev/null +++ b/ports/caffe2/CONTROL @@ -0,0 +1,4 @@ +Source: caffe2 +Version: 0.8.1 +Build-Depends: lmdb, gflags, glog, eigen3, protobuf +Description: Caffe2 is a lightweight, modular, and scalable deep learning framework. diff --git a/ports/caffe2/msvc-fixes.patch b/ports/caffe2/msvc-fixes.patch new file mode 100644 index 0000000000..446dbd44ee --- /dev/null +++ b/ports/caffe2/msvc-fixes.patch @@ -0,0 +1,396 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8054d98..35934f5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -56,6 +56,14 @@ option(USE_ROCKSDB "Use RocksDB" ON) + option(USE_SNPE "Use Qualcomm's SNPE library" OFF) + option(USE_THREADS "Use Threads" ON) + option(USE_ZMQ "Use ZMQ" OFF) ++if(MSVC) ++ if(BUILD_BUILD_SHARED_LIBS) ++ set(USE_STATIC_RUNTIME_DEFAULT OFF) ++ else() ++ set(USE_STATIC_RUNTIME_DEFAULT ON) ++ endif() ++ option(USE_STATIC_RUNTIME "Link to the static runtime (/MT) instead of dynamic (/MD)" ${USE_STATIC_RUNTIME_DEFAULT}) ++endif() + + # External projects + include(ExternalProject) +@@ -99,7 +107,7 @@ else() + foreach(flag_var + CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) +- if (NOT ${BUILD_SHARED_LIBS}) ++ if (USE_STATIC_RUNTIME) + if(${flag_var} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endif(${flag_var} MATCHES "/MD") +diff --git a/caffe2/core/logging.cc b/caffe2/core/logging.cc +index 1b4468e..1379f3a 100644 +--- a/caffe2/core/logging.cc ++++ b/caffe2/core/logging.cc +@@ -117,7 +117,7 @@ using fLB::FLAGS_logtostderr; + + #endif // CAFFE2_USE_GFLAGS + +-CAFFE2_DEFINE_int(caffe2_log_level, google::ERROR, ++CAFFE2_DEFINE_int(caffe2_log_level, google::GLOG_ERROR, + "The minimum log level that caffe2 will output."); + + // Google glog's api does not have an external function that allows one to check +@@ -134,15 +134,23 @@ bool IsGoogleLoggingInitialized(); + namespace caffe2 { + bool InitCaffeLogging(int* argc, char** argv) { + if (*argc == 0) return true; +- if (!::google::glog_internal_namespace_::IsGoogleLoggingInitialized()) { ++#if !(defined(_MSC_VER) && defined(GLOG_IS_A_DLL)) ++ // IsGoogleLoggingInitialized is not exported from the glog DLL ++ // so we can't call it. If our program calls InitGoogleLogging twice glog will ++ // abort it. ++ if (!::google::glog_internal_namespace_::IsGoogleLoggingInitialized()) ++#endif ++ { + ::google::InitGoogleLogging(argv[0]); ++#if !defined(_MSC_VER) + ::google::InstallFailureSignalHandler(); ++#endif + } + // If caffe2_log_level is set and is lower than the min log level by glog, + // we will transfer the caffe2_log_level setting to glog to override that. + FLAGS_minloglevel = std::min(FLAGS_caffe2_log_level, FLAGS_minloglevel); + // If caffe2_log_level is explicitly set, let's also turn on logtostderr. +- if (FLAGS_caffe2_log_level < google::ERROR) { ++ if (FLAGS_caffe2_log_level < google::GLOG_ERROR) { + FLAGS_logtostderr = 1; + } + // Also, transfer the caffe2_log_level verbose setting to glog. +@@ -154,7 +162,7 @@ bool InitCaffeLogging(int* argc, char** argv) { + + void ShowLogInfoToStderr() { + FLAGS_logtostderr = 1; +- FLAGS_minloglevel = std::min(FLAGS_minloglevel, google::INFO); ++ FLAGS_minloglevel = std::min(FLAGS_minloglevel, google::GLOG_INFO); + } + } // namespace caffe2 + +diff --git a/caffe2/core/logging_is_google_glog.h b/caffe2/core/logging_is_google_glog.h +index 7dd2b4f..2df4435 100644 +--- a/caffe2/core/logging_is_google_glog.h ++++ b/caffe2/core/logging_is_google_glog.h +@@ -8,7 +8,7 @@ + // it. Some mobile platforms do not like stl_logging, so we add an + // overload in that case as well. + +-#if !defined(__CUDACC__) && !defined(CAFFE2_USE_MINIMAL_GOOGLE_GLOG) ++#if !defined(__CUDARCH__) && !defined(CAFFE2_USE_MINIMAL_GOOGLE_GLOG) + #include + #else // !defined(__CUDACC__) && !!defined(CAFFE2_USE_MINIMAL_GOOGLE_GLOG) + +diff --git a/caffe2/image/image_input_op.h b/caffe2/image/image_input_op.h +index 9604e98..7d90014 100644 +--- a/caffe2/image/image_input_op.h ++++ b/caffe2/image/image_input_op.h +@@ -214,13 +214,13 @@ ImageInputOp::ImageInputOp( + + // hard-coded PCA eigenvectors and eigenvalues, based on RBG channel order + color_lighting_eigvecs_.push_back( +- std::vector{-144.7125, 183.396, 102.2295}); ++ std::vector{-144.7125f, 183.396f, 102.2295f}); + color_lighting_eigvecs_.push_back( +- std::vector{-148.104, -1.1475, -207.57}); ++ std::vector{-148.104f, -1.1475f, -207.57f}); + color_lighting_eigvecs_.push_back( +- std::vector{-148.818, -177.174, 107.1765}); ++ std::vector{-148.818f, -177.174f, 107.1765f}); + +- color_lighting_eigvals_ = std::vector{0.2175, 0.0188, 0.0045}; ++ color_lighting_eigvals_ = std::vector{0.2175f, 0.0188f, 0.0045f}; + + CAFFE_ENFORCE_GT(batch_size_, 0, "Batch size should be nonnegative."); + if (use_caffe_datum_) { +diff --git a/caffe2/operators/batch_matmul_op.cc b/caffe2/operators/batch_matmul_op.cc +index c2e578d..28cf030 100644 +--- a/caffe2/operators/batch_matmul_op.cc ++++ b/caffe2/operators/batch_matmul_op.cc +@@ -34,7 +34,7 @@ size (C x K x N) where C is the batch size and i ranges from 0 to C-1. + b_dim1 = in[1].dims(2); + } + return vector { +- CreateTensorShape(vector { ++ CreateTensorShape(vector { + in[0].dims(0), a_dim0, b_dim1}, + in[0].data_type()) + }; +diff --git a/caffe2/operators/layer_norm_op.cu b/caffe2/operators/layer_norm_op.cu +index df13fc3..68bbc97 100644 +--- a/caffe2/operators/layer_norm_op.cu ++++ b/caffe2/operators/layer_norm_op.cu +@@ -252,8 +252,8 @@ bool LayerNormGradientOp::DoRunWithType() { + auto* ginput = Output(0); + + const auto canonical_axis = norm_inputs.canonical_axis_index(axis_); +- const int left = norm_inputs.size_to_dim(canonical_axis); +- const int right = norm_inputs.size_from_dim(canonical_axis); ++ const TIndex left = norm_inputs.size_to_dim(canonical_axis); ++ const TIndex right = norm_inputs.size_from_dim(canonical_axis); + + ginput->ResizeLike(norm_inputs); + std::vector stats_dims( +@@ -261,7 +261,7 @@ bool LayerNormGradientOp::DoRunWithType() { + stats_dims.push_back(1); + dmean_.Resize(stats_dims); + dstdev_.Resize(stats_dims); +- gscratch_.Resize(std::vector{left, right}); ++ gscratch_.Resize(std::vector{left, right}); + + std::vector segs(left + 1); + std::iota(segs.begin(), segs.end(), 0); +@@ -291,7 +291,7 @@ bool LayerNormGradientOp::DoRunWithType() { + dout.data(), + gscratch_.mutable_data()); + +- dstdev_.Resize(vector{left, 1}); ++ dstdev_.Resize(vector{left, 1}); + // dstdev = reduce(temp1) + allocScratchAndReduce( + gscratch_.data(), +diff --git a/caffe2/operators/lengths_top_k_op.cc b/caffe2/operators/lengths_top_k_op.cc +index c871d53..bad741a 100644 +--- a/caffe2/operators/lengths_top_k_op.cc ++++ b/caffe2/operators/lengths_top_k_op.cc +@@ -14,7 +14,7 @@ bool LengthsTopKOp::RunOnDevice() { + + output_topk_values->Resize(N * k_); + output_topk_indices->Resize(N * k_); +- std::vector output_dims = std::vector({N, k_}); ++ std::vector output_dims = std::vector({N, k_}); + output_topk_values->Reshape(output_dims); + output_topk_indices->Reshape(output_dims); + T* output_topk_values_data = output_topk_values->template mutable_data(); +diff --git a/caffe2/operators/pool_op_cudnn.cu b/caffe2/operators/pool_op_cudnn.cu +index a380d8d..b0cd326 100644 +--- a/caffe2/operators/pool_op_cudnn.cu ++++ b/caffe2/operators/pool_op_cudnn.cu +@@ -467,6 +467,15 @@ class CuDNNPoolGradientOp : public ConvPoolOpBase { + cudnnPoolingDescriptor_t pooling_desc_; + cudnnPoolingMode_t mode_; + ++// MSVC defines IN and OUT in minwindef.h ++#ifdef IN ++#undef IN ++#endif ++ ++#ifdef OUT ++#undef OUT ++#endif ++ + // Input: X, Y, dY + // Output: dX + INPUT_TAGS(IN, OUT, OUT_GRAD); +diff --git a/caffe2/operators/recurrent_op_cudnn.cc b/caffe2/operators/recurrent_op_cudnn.cc +index 7777813..58bc8c3 100644 +--- a/caffe2/operators/recurrent_op_cudnn.cc ++++ b/caffe2/operators/recurrent_op_cudnn.cc +@@ -115,10 +115,11 @@ void RecurrentBaseOp::initialize( + + // RNN setup + { +- CUDNN_ENFORCE(cudnnSetRNNDescriptor( ++// Do not use #if condition inside CUDNN_ENFORCE ++// to avoid macro expansion errors. + #if CUDNN_MAJOR >= 7 ++CUDNN_ENFORCE(cudnnSetRNNDescriptor( + cudnn_wrapper_.inline_cudnn_handle(), +-#endif + rnnDesc_, + hiddenSize, + numLayers, +@@ -126,10 +127,19 @@ void RecurrentBaseOp::initialize( + rnnInput, + rnnDirection, + rnnMode, +-#if CUDNN_MAJOR >= 7 + CUDNN_RNN_ALGO_STANDARD, // TODO: verify correctness / efficiency. +-#endif + cudnnTypeWrapper::type)); ++#else ++ CUDNN_ENFORCE(cudnnSetRNNDescriptor( ++ rnnDesc_, ++ hiddenSize, ++ numLayers, ++ dropoutDesc_, ++ rnnInput, ++ rnnDirection, ++ rnnMode, ++ cudnnTypeWrapper::type)); ++#endif // CUDNN_MAJOR >= 7 + } + // X setup + { +diff --git a/caffe2/utils/CMakeLists.txt b/caffe2/utils/CMakeLists.txt +index f90af5a..919a638 100644 +--- a/caffe2/utils/CMakeLists.txt ++++ b/caffe2/utils/CMakeLists.txt +@@ -27,6 +27,10 @@ exclude(Caffe2_CPU_SRCS "${Caffe2_CPU_SRCS}" ${Caffe2_GPU_SRCS}) + # will directly link nnpack pthreadpool. + file(GLOB_RECURSE tmp pthreadpool*) + exclude(Caffe2_CPU_SRCS "${Caffe2_CPU_SRCS}" ${tmp}) ++if(MSVC) ++ file(GLOB_RECURSE tmp *ThreadPool.cc) ++ exclude(Caffe2_CPU_SRCS "${Caffe2_CPU_SRCS}" ${tmp}) ++endif() + + # ---[ GPU test files + file(GLOB_RECURSE tmp *_gpu_test.cc) +diff --git a/caffe2/utils/GpuBitonicSort.cuh b/caffe2/utils/GpuBitonicSort.cuh +index f52bb50..a199bcb 100644 +--- a/caffe2/utils/GpuBitonicSort.cuh ++++ b/caffe2/utils/GpuBitonicSort.cuh +@@ -39,9 +39,11 @@ __device__ inline void bitonicSort(K* keys, + // Assume the sort is taking place in shared memory + // static_assert(Power2SortSize * (sizeof(K) + sizeof(V)) < 32768, + // "sort data too large (>32768 bytes)"); +- static_assert(math::integerIsPowerOf2(Power2SortSize), ++ static_assert(math::integerIsPowerOf2( ++ std::integral_constant::value), + "sort size must be power of 2"); +- static_assert(math::integerIsPowerOf2(ThreadsPerBlock), ++ static_assert(math::integerIsPowerOf2( ++ std::integral_constant::value), + "threads in block must be power of 2"); + + // If what we are sorting is too small, then not all threads +@@ -107,7 +109,8 @@ __device__ inline void warpBitonicSort(K* keys, + // Smaller sorts should use a warp shuffle sort + static_assert(Power2SortSize > kWarpSize, + "sort not large enough"); +- static_assert(math::integerIsPowerOf2(Power2SortSize), ++ static_assert(math::integerIsPowerOf2( ++ std::integral_constant::value), + "sort size must be power of 2"); + static_assert(Power2SortSize <= kMaxBitonicSortSize, + "sort size <= 4096 only supported"); +diff --git a/caffe2/utils/math.h b/caffe2/utils/math.h +index 6c352dc..a1eda9d 100644 +--- a/caffe2/utils/math.h ++++ b/caffe2/utils/math.h +@@ -426,18 +426,10 @@ constexpr T roundUp(T a, T b) { + return divUp(a, b) * b; + } + +-// Returns true if the given integer type is a power-of-2 (positive only) +-// Note(jiayq): windows reported an error per +-// https://github.com/caffe2/caffe2/issues/997 +-// and as a result will make it a macro. +-#ifdef _MSC_VER +-#define integerIsPowerOf2(v) ((v) && !((v) & ((v) - 1))) +-#else // _MSC_VER + template + constexpr bool integerIsPowerOf2(T v) { + return (v && !(v & (v - 1))); + } +-#endif // _MSC_VER + + // Returns log2(n) for a positive integer type + template +diff --git a/cmake/Cuda.cmake b/cmake/Cuda.cmake +index df70e2f..ca1b123 100644 +--- a/cmake/Cuda.cmake ++++ b/cmake/Cuda.cmake +@@ -37,6 +37,10 @@ function(caffe2_detect_installed_gpus out_variable) + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + + if(__nvcc_res EQUAL 0) ++ # nvcc outputs text containing line breaks when building with MSVC. ++ # The line below prevents CMake from inserting a variable with line ++ # breaks in the cache ++ string(REGEX MATCH "([1-9].[0-9])" __nvcc_out "${__nvcc_out}") + string(REPLACE "2.1" "2.1(2.0)" __nvcc_out "${__nvcc_out}") + set(CUDA_gpu_detect_output ${__nvcc_out} CACHE INTERNAL "Returned GPU architetures from caffe_detect_gpus tool" FORCE) + endif() +@@ -249,7 +253,7 @@ endif() + # Debug and Release symbol support + if (MSVC) + if (${CMAKE_BUILD_TYPE} MATCHES "Release") +- if (${BUILD_SHARED_LIBS}) ++ if (NOT USE_STATIC_RUNTIME) + list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MD") + else() + list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MT") +@@ -259,7 +263,7 @@ if (MSVC) + "Caffe2 currently does not support the combination of MSVC, Cuda " + "and Debug mode. Either set USE_CUDA=OFF or set the build type " + "to Release") +- if (${BUILD_SHARED_LIBS}) ++ if (NOT USE_STATIC_RUNTIME) + list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MDd") + else() + list(APPEND CUDA_NVCC_FLAGS "-Xcompiler -MTd") +diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake +index afb6b68..bdad8b6 100644 +--- a/cmake/Dependencies.cmake ++++ b/cmake/Dependencies.cmake +@@ -182,6 +182,15 @@ if(USE_OPENCV) + message(WARNING "Not compiling with OpenCV. Suppress this warning with -DUSE_OPENCV=OFF") + set(USE_OPENCV OFF) + endif() ++ if(USE_OPENCV AND VCPKG_TARGET_TRIPLET MATCHES static) ++ find_package(LibLZMA QUIET) ++ if(LIBLZMA_FOUND) ++ list(APPEND Caffe2_DEPENDENCY_LIBS ${LIBLZMA_LIBRARIES}) ++ else() ++ message(WARNING "Not compiling with OpenCV. Could not find liblzma. Suppress this warning with -DUSE_OPENCV=OFF") ++ set(USE_OPENCV OFF) ++ endif() ++ endif() + endif() + + # ---[ FFMPEG +diff --git a/cmake/Modules/FindGlog.cmake b/cmake/Modules/FindGlog.cmake +index 1167532..9780ba5 100644 +--- a/cmake/Modules/FindGlog.cmake ++++ b/cmake/Modules/FindGlog.cmake +@@ -27,6 +27,10 @@ if(MSVC) + endif() + if(TARGET ${GLOG_LIBRARY}) + get_target_property(GLOG_INCLUDE_DIR ${GLOG_LIBRARY} INTERFACE_INCLUDE_DIRECTORIES) ++ get_target_property(GLOG_TYPE ${GLOG_LIBRARY} TYPE) ++ if("${GLOG_TYPE}" STREQUAL "SHARED_LIBRARY") ++ add_definitions(-DGLOG_IS_A_DLL=1) ++ endif() + endif() + else() + find_library(GLOG_LIBRARY glog +diff --git a/cmake/ProtoBuf.cmake b/cmake/ProtoBuf.cmake +index 89975c8..e37d6da 100644 +--- a/cmake/ProtoBuf.cmake ++++ b/cmake/ProtoBuf.cmake +@@ -13,6 +13,9 @@ function(custom_protobuf_find) + # so we turn it off here. + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations" PARENT_SCOPE) + endif() ++ if(MSVC) ++ set(protobuf_MSVC_STATIC_RUNTIME ${USE_STATIC_RUNTIME}) ++ endif() + add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/protobuf/cmake) + caffe2_include_directories(${PROJECT_SOURCE_DIR}/third_party/protobuf/src) + list(APPEND Caffe2_DEPENDENCY_LIBS libprotobuf) +diff --git a/cmake/Summary.cmake b/cmake/Summary.cmake +index b7423a6..2996484 100644 +--- a/cmake/Summary.cmake ++++ b/cmake/Summary.cmake +@@ -19,6 +19,13 @@ function (Caffe2_print_configuration_summary) + message(STATUS " System : ${CMAKE_SYSTEM_NAME}") + message(STATUS " C++ compiler : ${CMAKE_CXX_COMPILER}") + message(STATUS " C++ compiler version : ${CMAKE_CXX_COMPILER_VERSION}") ++ if(MSVC) ++ if(USE_STATIC_RUNTIME) ++ message(STATUS " Runtime : static (/MT)") ++ else() ++ message(STATUS " Runtime : dynamic (/MD)") ++ endif() ++ endif() + message(STATUS " Protobuf compiler : ${PROTOBUF_PROTOC_EXECUTABLE}") + message(STATUS " CXX flags : ${CMAKE_CXX_FLAGS}") + message(STATUS " Build type : ${CMAKE_BUILD_TYPE}") diff --git a/ports/caffe2/portfile.cmake b/ports/caffe2/portfile.cmake new file mode 100644 index 0000000000..d2770f338d --- /dev/null +++ b/ports/caffe2/portfile.cmake @@ -0,0 +1,118 @@ +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(STATUS "Warning: Dynamic building not supported yet. Building static.") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + +if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86) + message(FATAL_ERROR "Caffe2 cannot be built for the x86 architecture") +endif() + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO caffe2/caffe2 + REF eab13a2d5c807bf5d49efd4584787b639a981b79 + SHA512 505a8540b0c28329c4e2ce443ac8e198c1ee613eb6b932927ee9d04c8afdc95081f3c4581408b7097d567840427b31f6d7626ea80f27e56532f2f2e6acd87023 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/msvc-fixes.patch +) + +if(VCPKG_CRT_LINKAGE STREQUAL static) + set(USE_STATIC_RUNTIME ON) +else() + set(USE_STATIC_RUNTIME OFF) +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DBUILD_SHARED_LIBS=OFF + # Set to ON to use python + -DBUILD_PYTHON=OFF + -DUSE_STATIC_RUNTIME=${USE_STATIC_RUNTIME} + -DUSE_GFLAGS=ON + -DUSE_GLOG=ON + # Cannot use OpenCV without USE_CUDA=ON right now + -DUSE_OPENCV=OFF + -DUSE_THREADS=ON + # Uncomment to use MKL + # -DBLAS=MKL + -DUSE_CUDA=OFF + -DUSE_FFMPEG=OFF + -DUSE_GLOO=OFF + -DUSE_LEVELDB=OFF + -DUSE_LITE_PROTO=OFF + -DUSE_METAL=OFF + -DUSE_MOBILE_OPENGL=OFF + -DUSE_MPI=OFF + -DUSE_NCCL=OFF + -DUSE_NERVANA_GPU=OFF + -DUSE_NNPACK=OFF + -DUSE_OBSERVERS=OFF + -DUSE_OPENMP=ON + -DUSE_REDIS=OFF + -DUSE_ROCKSDB=OFF + -DUSE_SNPE=OFF + -DUSE_ZMQ=OFF + -DBUILD_TEST=OFF + -DPROTOBUF_PROTOC_EXECUTABLE:FILEPATH=${CURRENT_INSTALLED_DIR}/tools/protoc.exe +) + +vcpkg_install_cmake() + +# Remove folders from install +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/caffe) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/caffe2) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/caffe) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/caffe2) + +# Remove empty directories from include (should probably fix or +# patch caffe2 install script) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/test) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/python) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/experiments/python) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/contrib/opengl) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/contrib/nnpack) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/contrib/libopencl-stub) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/contrib/docker-ubuntu-14.04) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/caffe2/binaries) + +# Move bin to tools +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools) +file(GLOB BINARIES ${CURRENT_PACKAGES_DIR}/bin/*.exe) +foreach(binary ${BINARIES}) + get_filename_component(binary_name ${binary} NAME) + file(RENAME ${binary} ${CURRENT_PACKAGES_DIR}/tools/${binary_name}) +endforeach() + +# Remove bin directory +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) +endif() + +# Remove headers and tools from debug build +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(GLOB BINARIES ${CURRENT_PACKAGES_DIR}/bin/*.exe) +foreach(binary ${BINARIES}) + get_filename_component(binary_name ${binary} NAME) + file(REMOVE ${binary}) +endforeach() + +# Remove bin directory +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +# install license +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/caffe2) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/caffe2 RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/cairo/CONTROL b/ports/cairo/CONTROL index 9a6a550a6f..80269f5a77 100644 --- a/ports/cairo/CONTROL +++ b/ports/cairo/CONTROL @@ -1,4 +1,4 @@ Source: cairo -Version: 1.15.6 +Version: 1.15.8-1 Description: Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB. Build-Depends: zlib, libpng, pixman, glib, freetype, fontconfig diff --git a/ports/cairo/Initialize-mutexes-for-static-builds-for-win32.patch b/ports/cairo/Initialize-mutexes-for-static-builds-for-win32.patch deleted file mode 100644 index 420d91e28d..0000000000 --- a/ports/cairo/Initialize-mutexes-for-static-builds-for-win32.patch +++ /dev/null @@ -1,16 +0,0 @@ - src/win32/cairo-win32-device.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/win32/cairo-win32-device.c b/src/win32/cairo-win32-device.c -index 741e49e..c60c494 100644 ---- a/src/win32/cairo-win32-device.c -+++ b/src/win32/cairo-win32-device.c -@@ -131,6 +131,8 @@ _cairo_win32_device_get (void) - { - cairo_win32_device_t *device; - -+ CAIRO_MUTEX_INITIALIZE (); -+ - if (__cairo_win32_device) - return cairo_device_reference (__cairo_win32_device); - diff --git a/ports/cairo/portfile.cmake b/ports/cairo/portfile.cmake index 0ccf0c470c..6fb0e7ce88 100644 --- a/ports/cairo/portfile.cmake +++ b/ports/cairo/portfile.cmake @@ -7,19 +7,18 @@ # include(vcpkg_common_functions) -set(CAIRO_VERSION 1.15.6) +set(CAIRO_VERSION 1.15.8) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cairo-${CAIRO_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "http://cairographics.org/snapshots/cairo-${CAIRO_VERSION}.tar.xz" FILENAME "cairo-${CAIRO_VERSION}.tar.xz" - SHA512 e4eccba745a03545001ebd6f1a7b87bee4b932f80a2d877a764500ad5c18011a5bac585f31eec6d0b65ccaa818de0df2b3b99f0792111363bd3554cfa7f688b6 + SHA512 5af1eebf432201dae0efaa5b6766b151d8273ea00dae48e104d56477005b4d423d64b5d11c512736a4cb076632fb2a572ec35becd922825a68d933bb5ff96ca1 ) vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/Initialize-mutexes-for-static-builds-for-win32.patch" - "${CMAKE_CURRENT_LIST_DIR}/export-only-in-shared-build.patch" + PATCHES "${CMAKE_CURRENT_LIST_DIR}/export-only-in-shared-build.patch" ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/src) diff --git a/ports/cairomm/CONTROL b/ports/cairomm/CONTROL index d8eda4a534..c92877435b 100644 --- a/ports/cairomm/CONTROL +++ b/ports/cairomm/CONTROL @@ -1,4 +1,4 @@ Source: cairomm -Version: 1.15.3-1 +Version: 1.15.3-2 Description: A C++ wrapper for the cairo graphics library -Build-Depends: cairo, libsigcpp \ No newline at end of file +Build-Depends: cairo, libsigcpp diff --git a/ports/ccd/CONTROL b/ports/ccd/CONTROL index 16f16ea0bb..9246cec903 100644 --- a/ports/ccd/CONTROL +++ b/ports/ccd/CONTROL @@ -1,3 +1,3 @@ Source: ccd -Version: 2.0.0-1 +Version: 2.0.0-2 Description: Library for collision detection between two convex shapes diff --git a/ports/ccfits/CONTROL b/ports/ccfits/CONTROL index 17083f9b24..16b36bc8af 100644 --- a/ports/ccfits/CONTROL +++ b/ports/ccfits/CONTROL @@ -1,4 +1,4 @@ Source: ccfits -Version: 2.5 +Version: 2.5-1 Description: CCfits is an object oriented interface to the cfitsio library. It is designed to make the capabilities of cfitsio available to programmers working in C++. -Build-Depends: cfitsio \ No newline at end of file +Build-Depends: cfitsio diff --git a/ports/cereal/CONTROL b/ports/cereal/CONTROL index 77ca178355..fc3c7921a4 100644 --- a/ports/cereal/CONTROL +++ b/ports/cereal/CONTROL @@ -1,3 +1,3 @@ Source: cereal -Version: 1.2.2 +Version: 1.2.2-1 Description: a header-only C++11 serialization library (built in support for binary, XML and JSon) diff --git a/ports/ceres/CONTROL b/ports/ceres/CONTROL index e323c4593d..4dde8c0bdd 100644 --- a/ports/ceres/CONTROL +++ b/ports/ceres/CONTROL @@ -1,4 +1,4 @@ Source: ceres -Version: 1.13.0 +Version: 1.13.0-1 Build-Depends:suitesparse, eigen3, clapack, gflags, glog -Description: non-linear optimization package \ No newline at end of file +Description: non-linear optimization package diff --git a/ports/cfitsio/CONTROL b/ports/cfitsio/CONTROL index e45b8a8c23..b25eb80263 100644 --- a/ports/cfitsio/CONTROL +++ b/ports/cfitsio/CONTROL @@ -1,3 +1,3 @@ Source: cfitsio -Version: 3.410 +Version: 3.410-1 Description: Library of C and Fortran subroutines for reading and writing data files in FITS (Flexible Image Transport System) data format diff --git a/ports/charls/CONTROL b/ports/charls/CONTROL index 8be1a50278..562a6f6883 100644 --- a/ports/charls/CONTROL +++ b/ports/charls/CONTROL @@ -1,3 +1,3 @@ Source: charls -Version: 2.0.0 -Description: CharLS, a C++ JPEG-LS library implementation. \ No newline at end of file +Version: 2.0.0-1 +Description: CharLS, a C++ JPEG-LS library implementation. diff --git a/ports/chmlib/CONTROL b/ports/chmlib/CONTROL index 22680db33f..226a3be92b 100644 --- a/ports/chmlib/CONTROL +++ b/ports/chmlib/CONTROL @@ -1,3 +1,3 @@ Source: chmlib -Version: 0.40 +Version: 0.40-1 Description: CHMLIB is a library for dealing with Microsoft ITSS/CHM format files. Right now, it is a very simple library, but sufficient for dealing with all of the .chm files I've come across. Due to the fairly well-designed indexing built into this particular file format, even a small library is able to gain reasonably good performance indexing into ITSS archives. \ No newline at end of file diff --git a/ports/chmlib/chm.vcxproj b/ports/chmlib/chm.vcxproj index 61955291eb..0cc2606fec 100644 --- a/ports/chmlib/chm.vcxproj +++ b/ports/chmlib/chm.vcxproj @@ -69,22 +69,22 @@ ..\..\..\x86-windows-static-dbg\ - ..\..\..\x86-windows-static-dbg\ + ..\..\..\x86-windows-static-dbg\$(ProjectName)\ ..\..\..\x86-windows-static-rel\ - ..\..\..\x86-windows-static-rel\ + ..\..\..\x86-windows-static-rel\$(ProjectName)\ ..\..\..\x64-windows-static-dbg\ - ..\..\..\x64-windows-static-dbg\ + ..\..\..\x64-windows-static-dbg\$(ProjectName)\ ..\..\..\x64-windows-static-rel\ - ..\..\..\x64-windows-static-rel\ + ..\..\..\x64-windows-static-rel\$(ProjectName)\ @@ -98,6 +98,7 @@ CompileAsC OldStyle false + true @@ -112,6 +113,7 @@ Windows true libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib + true @@ -126,6 +128,7 @@ CompileAsC OldStyle false + true @@ -138,6 +141,7 @@ Windows true libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib + true @@ -150,6 +154,7 @@ 4018;4057;4127;4189;4244;4267;4295;4324;4458;4477;4701;4706;4800;4996;%(DisableSpecificWarnings) MultiThreaded CompileAsC + Full true @@ -176,6 +181,7 @@ 4018;4057;4127;4189;4244;4267;4295;4324;4458;4477;4701;4706;4800;4996;%(DisableSpecificWarnings) MultiThreaded CompileAsC + Full true diff --git a/ports/chmlib/enum_chmLib.vcxproj b/ports/chmlib/enum_chmLib.vcxproj new file mode 100644 index 0000000000..1b847a409b --- /dev/null +++ b/ports/chmlib/enum_chmLib.vcxproj @@ -0,0 +1,109 @@ + + + + + Release + Win32 + + + Release + x64 + + + + + + + 15.0 + {2c833145-059b-47d5-b0fe-b3ac6ff1ccb0} + enum_chmLib + 10.0.14393.0 + + + + Application + true + v141 + + + Application + false + v141 + true + MultiByte + + + Application + true + v141 + + + Application + false + v141 + true + MultiByte + + + + + + + + + + + + + + + ..\..\..\x86-windows-static-rel\ + ..\..\..\x86-windows-static-rel\$(ProjectName)\ + + + ..\..\..\x64-windows-static-rel\ + ..\..\..\x64-windows-static-rel\$(ProjectName)\ + + + + MaxSpeed + true + true + true + false + WIN32;_UNICODE;UNICODE;_CRT_SECURE_NO_WARNINGS + true + MultiThreaded + + + true + true + $(OutputPath)chm.lib + Console + LinkVerbose + libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib + + + + + true + true + true + false + WIN32;_UNICODE;UNICODE;_CRT_SECURE_NO_WARNINGS + true + MultiThreaded + + + true + true + $(OutputPath)chm.lib + Console + LinkVerbose + libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib + + + + + + \ No newline at end of file diff --git a/ports/chmlib/enumdir_chmLib.vcxproj b/ports/chmlib/enumdir_chmLib.vcxproj new file mode 100644 index 0000000000..8b7d552c53 --- /dev/null +++ b/ports/chmlib/enumdir_chmLib.vcxproj @@ -0,0 +1,100 @@ + + + + + Release + Win32 + + + Release + x64 + + + + + + + 15.0 + {bb0bfe9a-7d13-44a0-b2b5-3b69a07a77e8} + enumdir_chmLib + 10.0.14393.0 + + + + Application + false + v141 + true + MultiByte + + + Application + false + v141 + true + MultiByte + + + + + + + + + + + + + + + ..\..\..\x86-windows-static-rel\ + ..\..\..\x86-windows-static-rel\$(ProjectName)\ + + + ..\..\..\x64-windows-static-rel\ + ..\..\..\x64-windows-static-rel\$(ProjectName)\ + + + + Level3 + MaxSpeed + true + true + true + false + WIN32;_CRT_SECURE_NO_WARNINGS + MultiThreaded + + + true + true + $(OutputPath)chm.lib + Console + LinkVerbose + libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib + + + + + Level3 + MaxSpeed + true + true + true + false + WIN32;_CRT_SECURE_NO_WARNINGS + MultiThreaded + + + true + true + $(OutputPath)chm.lib + Console + LinkVerbose + libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib + + + + + + \ No newline at end of file diff --git a/ports/chmlib/extract_chmLib.vcxproj b/ports/chmlib/extract_chmLib.vcxproj new file mode 100644 index 0000000000..a4666ed64e --- /dev/null +++ b/ports/chmlib/extract_chmLib.vcxproj @@ -0,0 +1,100 @@ + + + + + Release + Win32 + + + Release + x64 + + + + 15.0 + {8F41248C-8E62-4822-9A85-4CAF00AACEEE} + extract_chmLib + 10.0.14393.0 + + + + Application + false + v141 + true + MultiByte + + + Application + false + v141 + true + MultiByte + + + + + + + + + + + + + + + ..\..\..\x86-windows-static-rel\ + ..\..\..\x86-windows-static-rel\$(ProjectName)\ + + + ..\..\..\x64-windows-static-rel\ + ..\..\..\x64-windows-static-rel\$(ProjectName)\ + + + + Level3 + MaxSpeed + true + true + true + false + WIN32;_CRT_SECURE_NO_WARNINGS + MultiThreaded + + + true + true + $(OutputPath)chm.lib + Console + LinkVerbose + libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib + + + + + Level3 + MaxSpeed + true + true + true + false + WIN32;_CRT_SECURE_NO_WARNINGS + MultiThreaded + + + true + true + $(OutputPath)chm.lib + Console + LinkVerbose + libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib + + + + + + + + + \ No newline at end of file diff --git a/ports/chmlib/portfile.cmake b/ports/chmlib/portfile.cmake index cb2f2cf96d..60381bb1a1 100644 --- a/ports/chmlib/portfile.cmake +++ b/ports/chmlib/portfile.cmake @@ -1,26 +1,6 @@ -# Common Ambient Variables: -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} -# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} -# PORT = current port name (zlib, etc) -# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) -# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) -# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) -# VCPKG_ROOT_DIR = -# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) -# - -#message("VCPKG_TARGET_ARCHITECTURE" ${VCPKG_TARGET_ARCHITECTURE}) -#if(NOT ${VCPKG_TARGET_ARCHITECTURE} STREQUAL "x86") -# message(FATAL_ERROR "chmlib only supports x86") -#endif() - -if(${VCPKG_CRT_LINKAGE} STREQUAL "dynamic") - message(FATAL_ERROR "chmlib supports static linking only.") -endif() - -if(${VCPKG_LIBRARY_LINKAGE} STREQUAL "dynamic") - message(FATAL_ERROR "chmlib supports static linking only.") +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(STATUS "Warning: Dynamic building not supported. Building static.") + set(VCPKG_LIBRARY_LINKAGE static) endif() set(CHMLIB_VERSION chmlib-0.40) @@ -37,21 +17,50 @@ vcpkg_download_distfile( ) vcpkg_extract_source_archive(${ARCHIVE}) -file(COPY "${VCPKG_ROOT_DIR}/ports/${PORT}/chm.vcxproj" - DESTINATION ${CHMLIB_SRC}) +file(GLOB VCXPROJS "${VCPKG_ROOT_DIR}/ports/${PORT}/*.vcxproj") +file(COPY ${VCXPROJS} DESTINATION ${CHMLIB_SRC}) vcpkg_build_msbuild( PROJECT_PATH ${CHMLIB_SRC}/chm.vcxproj RELEASE_CONFIGURATION Release DEBUG_CONFIGURATION Debug - OPTIONS_DEBUG /p:OutDirPath="${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" - OPTIONS_RELEASE /p:OutDirPath="${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" - OPTIONS /v:diagnostic /p:SkipInvalidConfigurations=true + TARGET Build + OPTIONS /v:diagnostic +) + +#enum_chmLib RELEASE only +vcpkg_build_msbuild( + PROJECT_PATH ${CHMLIB_SRC}/enum_chmLib.vcxproj + RELEASE_CONFIGURATION Release + DEBUG_CONFIGURATION Release + TARGET Build + OPTIONS /v:diagnostic +) + +#enumdir_chmLib RELEASE only +vcpkg_build_msbuild( + PROJECT_PATH ${CHMLIB_SRC}/enumdir_chmLib.vcxproj + RELEASE_CONFIGURATION Release + DEBUG_CONFIGURATION Release + TARGET Build + OPTIONS /v:diagnostic +) + +#extract_chmLib RELEASE only +vcpkg_build_msbuild( + PROJECT_PATH ${CHMLIB_SRC}/extract_chmLib.vcxproj + RELEASE_CONFIGURATION Release + DEBUG_CONFIGURATION Release + TARGET Build + OPTIONS /v:diagnostic ) file(INSTALL ${CHMLIB_SRC}/chm_lib.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) -file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/chm.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/chm.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) +file(INSTALL ${CURRENT_BUILDTREES_DIR}/${VCPKG_TARGET_ARCHITECTURE}-windows-static-rel/chm.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) +file(INSTALL ${CURRENT_BUILDTREES_DIR}/${VCPKG_TARGET_ARCHITECTURE}-windows-static-dbg/chm.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) +file(INSTALL ${CURRENT_BUILDTREES_DIR}/${VCPKG_TARGET_ARCHITECTURE}-windows-static-rel/enum_chmLib.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools) +file(INSTALL ${CURRENT_BUILDTREES_DIR}/${VCPKG_TARGET_ARCHITECTURE}-windows-static-rel/enumdir_chmLib.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools) +file(INSTALL ${CURRENT_BUILDTREES_DIR}/${VCPKG_TARGET_ARCHITECTURE}-windows-static-rel/extract_chmLib.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools) file(COPY ${CURRENT_BUILDTREES_DIR}/src/chmlib-0.40/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/chmlib) file(RENAME ${CURRENT_PACKAGES_DIR}/share/chmlib/COPYING ${CURRENT_PACKAGES_DIR}/share/chmlib/copyright) \ No newline at end of file diff --git a/ports/clapack/CONTROL b/ports/clapack/CONTROL index cb470e4cdd..503ddbac5c 100644 --- a/ports/clapack/CONTROL +++ b/ports/clapack/CONTROL @@ -1,4 +1,4 @@ Source: clapack -Version: 3.2.1 +Version: 3.2.1-1 Description: CLAPACK (f2c'ed version of LAPACK) Build-Depends: openblas diff --git a/ports/clockutils/CONTROL b/ports/clockutils/CONTROL index 8f88e71ec8..59950365d1 100644 --- a/ports/clockutils/CONTROL +++ b/ports/clockutils/CONTROL @@ -1,3 +1,3 @@ Source: clockutils -Version: 1.1.1-3651f232c27074c4ceead169e223edf5f00247c5 +Version: 1.1.1-3651f232c27074c4ceead169e223edf5f00247c5-1 Description: A lightweight c++ library for commonly needed tasks. Optimized for simplicity and speed. diff --git a/ports/console-bridge/CONTROL b/ports/console-bridge/CONTROL new file mode 100644 index 0000000000..ea6ebf3baa --- /dev/null +++ b/ports/console-bridge/CONTROL @@ -0,0 +1,3 @@ +Source: console-bridge +Version: 0.3.2-2 +Description: a ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages. diff --git a/ports/console-bridge/License.txt b/ports/console-bridge/License.txt new file mode 100644 index 0000000000..affcb85681 --- /dev/null +++ b/ports/console-bridge/License.txt @@ -0,0 +1,31 @@ +Software License Agreement (BSD License) + +Copyright (c) 2008, Willow Garage, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. +* Neither the name of the Willow Garage nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/ports/console-bridge/portfile.cmake b/ports/console-bridge/portfile.cmake new file mode 100644 index 0000000000..d88308e5c9 --- /dev/null +++ b/ports/console-bridge/portfile.cmake @@ -0,0 +1,24 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ros/console_bridge + REF 0.3.2 + SHA512 41fa5340d7ba79c887ef73eb4fda7b438ed91febd224934ae4658697e4c9e43357207e1b3e191ecce3c97cb9a87b0556372832735a268261bc798cc7683aa207 + HEAD_REF master + ) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake") +file(RENAME ${CURRENT_PACKAGES_DIR}/share/console-bridge ${CURRENT_PACKAGES_DIR}/share/console_bridge) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/console-bridge RENAME copyright) diff --git a/ports/corrade/CONTROL b/ports/corrade/CONTROL index d8fb3681ae..2d262a0e07 100644 --- a/ports/corrade/CONTROL +++ b/ports/corrade/CONTROL @@ -1,3 +1,3 @@ Source: corrade -Version: jun2017-2 +Version: jun2017-3 Description: C++11/C++14 multiplatform utility library http://mosra.cz/blog/corrade.php diff --git a/ports/corrade/portfile.cmake b/ports/corrade/portfile.cmake index 3ae3710f60..88b27ab62d 100644 --- a/ports/corrade/portfile.cmake +++ b/ports/corrade/portfile.cmake @@ -3,7 +3,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mosra/corrade REF c182fe636894a998f241212d0205d0c126b7926f - SHA512 e62486368eab9c5f90ef9f4af91500f465d9e3baa6e5f6e9f2a49844d09676faefcb965a9d5b27a54eda19436af6b23dcda19504be6cd0dcd52dfad2ad4bfa21 + SHA512 d664c7884c0c6c7977261a851948b2b591ac0fbdbcfddab1d8e578e629a252f48fa786cf9f96525e10aa76c95919dfc3452ccbe5e930aa4a69e61269e4ee07ee HEAD_REF master ) @@ -44,4 +44,4 @@ endif() file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/corrade) file(RENAME ${CURRENT_PACKAGES_DIR}/share/corrade/COPYING ${CURRENT_PACKAGES_DIR}/share/corrade/copyright) -vcpkg_copy_pdbs() \ No newline at end of file +vcpkg_copy_pdbs() diff --git a/ports/cpp-redis/CONTROL b/ports/cpp-redis/CONTROL index 36b2e8b55b..554755b570 100644 --- a/ports/cpp-redis/CONTROL +++ b/ports/cpp-redis/CONTROL @@ -1,4 +1,4 @@ Source: cpp-redis -Version: 3.5.2-1 +Version: 3.5.2-2 Build-Depends: tacopie Description: cpp-redis is a C++11 Asynchronous Multi-Platform Lightweight Redis Client, with support for synchronous operations and pipelining. diff --git a/ports/cppcms/CONTROL b/ports/cppcms/CONTROL index 74deb6633e..8f8726ddcb 100644 --- a/ports/cppcms/CONTROL +++ b/ports/cppcms/CONTROL @@ -1,4 +1,4 @@ Source: cppcms -Version: 1.1.0 +Version: 1.1.0-1 Description: CppCMS is a Free High Performance Web Development Framework (not a CMS) aimed at Rapid Web Application Development Build-Depends: icu, pcre, openssl, zlib diff --git a/ports/cpprestsdk/CONTROL b/ports/cpprestsdk/CONTROL index f34f1ad4a1..f22ee98542 100644 --- a/ports/cpprestsdk/CONTROL +++ b/ports/cpprestsdk/CONTROL @@ -1,5 +1,5 @@ Source: cpprestsdk -Version: 2.9.0-2 +Version: 2.9.0-3 Build-Depends: zlib (windows), openssl (windows), boost (windows), websocketpp (windows) Description: C++11 JSON, REST, and OAuth library - The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services. \ No newline at end of file + The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services. diff --git a/ports/cpprestsdk/portfile.cmake b/ports/cpprestsdk/portfile.cmake index ea7d8d2013..7482760d3d 100644 --- a/ports/cpprestsdk/portfile.cmake +++ b/ports/cpprestsdk/portfile.cmake @@ -4,7 +4,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/cpprestsdk REF v2.9.0 - SHA512 c75de6ad33b3e8d2c6ba7c0955ed851d557f78652fb38a565de0cfbc99e7db89cb6fa405857512e5149df80356c51ae9335abd914c3c593fa6658ac50adf4e29 + SHA512 7f6af05e2aaf49fb5ba24f4fac43b7787345d46913831504925cefc60d1b62e38457e1d628d5de8b0db891b59716d2bfe63a494ca0b337d67fc9ca5447a5ba9b HEAD_REF master ) if(NOT VCPKG_USE_HEAD_VERSION) diff --git a/ports/cppwinrt/CONTROL b/ports/cppwinrt/CONTROL index e49eefe99f..e470b24586 100644 --- a/ports/cppwinrt/CONTROL +++ b/ports/cppwinrt/CONTROL @@ -1,3 +1,3 @@ Source: cppwinrt -Version: feb2017_refresh-14393 +Version: spring_2017_creators_update_for_vs_15.3 Description: C++/WinRT is a standard C++ language projection for the Windows Runtime. diff --git a/ports/cppwinrt/portfile.cmake b/ports/cppwinrt/portfile.cmake index b0e808c84c..c83465efe9 100644 --- a/ports/cppwinrt/portfile.cmake +++ b/ports/cppwinrt/portfile.cmake @@ -1,18 +1,18 @@ include(vcpkg_common_functions) find_program(GIT git) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cppwinrt-february_2017_refresh) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/cppwinrt-spring_2017_creators_update_for_vs_15.3) vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/Microsoft/cppwinrt/archive/february_2017_refresh.tar.gz" - FILENAME "cppwinrt-february_2017_refresh.tar.gz" - SHA512 0e2ed94d65ae4c7297ae4d82d64a43fa59fac7b35fbe42ea939f135f0f6eb867f57fac70b6a9cc9a78912de75aa4482d48007f83a3781b147d237ae637fdaa0e + URLS "https://github.com/Microsoft/cppwinrt/archive/spring_2017_creators_update_for_vs_15.3.tar.gz" + FILENAME "cppwinrt-spring_2017_creators_update_for_vs_15.3.tar.gz" + SHA512 779586122552e49a79aff08f4476905e00c3b4ad3dbc502240e9a7cc59ec0e4ab6304149a66505923ab84d2b334059de9e18c84a5b0ed6bde106d19119ef911f ) vcpkg_extract_source_archive(${ARCHIVE}) # Put the licence file where vcpkg expects it -file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppwinrt/license.txt) +file(COPY ${SOURCE_PATH}/license DESTINATION ${CURRENT_PACKAGES_DIR}/share/cppwinrt/license.txt) file(RENAME ${CURRENT_PACKAGES_DIR}/share/cppwinrt/license.txt ${CURRENT_PACKAGES_DIR}/share/cppwinrt/copyright) # Copy the cppwinrt header files -file(GLOB HEADER_FILES ${SOURCE_PATH}/10.0.14393.0/winrt/*) +file(GLOB HEADER_FILES ${SOURCE_PATH}/10.0.15063.0/winrt/*) file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/winrt) diff --git a/ports/cpr/CONTROL b/ports/cpr/CONTROL index 417850b756..f79ef823cb 100644 --- a/ports/cpr/CONTROL +++ b/ports/cpr/CONTROL @@ -1,4 +1,4 @@ Source: cpr -Version: 1.3.0 +Version: 1.3.0-1 Description: C++ Requests is a simple wrapper around libcurl inspired by the excellent Python Requests project. Build-Depends: curl diff --git a/ports/cryptopp/CONTROL b/ports/cryptopp/CONTROL index 2a38d89103..00d14756ab 100644 --- a/ports/cryptopp/CONTROL +++ b/ports/cryptopp/CONTROL @@ -1,3 +1,3 @@ Source: cryptopp -Version: 5.6.5 +Version: 5.6.5-1 Description: Crypto++ is a free C++ class library of cryptographic schemes. diff --git a/ports/ctemplate/CONTROL b/ports/ctemplate/CONTROL index 5e9e697539..1125efc18d 100644 --- a/ports/ctemplate/CONTROL +++ b/ports/ctemplate/CONTROL @@ -1,3 +1,3 @@ Source: ctemplate -Version: 2017-06-23-44b7c5-2 +Version: 2017-06-23-44b7c5-3 Description: C++ CTemplate system diff --git a/ports/ctemplate/portfile.cmake b/ports/ctemplate/portfile.cmake index af1f0532cd..d22c3afa40 100644 --- a/ports/ctemplate/portfile.cmake +++ b/ports/ctemplate/portfile.cmake @@ -1,27 +1,20 @@ include(vcpkg_common_functions) -set(GIT_REF 44b7c5b918a08ad561c63e9d28beecb40c10ebca) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OlafvdSpek/ctemplate - REF 44b7c5b918a08ad561c63e9d28beecb40c10ebca - SHA512 b572f6d0d182e977d3a459e68bde6244dad7196c44c16407990dc1fb6a7a93bcd8d6851e515d50b6051c1d011f71695f895f6ab233664baadae0bf6a3d464305 + REF 4b7e6c52dc7cbb4d51c9abcebcbac91ec256a62b + SHA512 9317fb26f22892b0bc2ca17cbccb5b084091050aa88766b4ed673a690bc4cdb9cd882134fbcd7ed3ee156f6a6937218717765143796d7e98b532355867ed042b HEAD_REF master ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -vcpkg_find_acquire_program(PYTHON2) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/fix-msvc.patch -) +vcpkg_find_acquire_program(PYTHON3) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS -DPYTHON_EXECUTABLE=${PYTHON2} + OPTIONS -DPYTHON_EXECUTABLE=${PYTHON3} OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) diff --git a/ports/cunit/CONTROL b/ports/cunit/CONTROL index 3ef4300927..4b43a0159d 100644 --- a/ports/cunit/CONTROL +++ b/ports/cunit/CONTROL @@ -1,3 +1,3 @@ Source: cunit -Version: 2.1.3-1 +Version: 2.1.3-2 Description: CUnit is a lightweight system for writing, administering, and running unit tests in C. It provides C programmers a basic testing functionality with a flexible variety of user interfaces diff --git a/ports/curl/CONTROL b/ports/curl/CONTROL index d7da6511c7..1193e114f2 100644 --- a/ports/curl/CONTROL +++ b/ports/curl/CONTROL @@ -1,4 +1,4 @@ Source: curl -Version: 7.55.1 +Version: 7.55.1-1 Build-Depends: zlib, openssl, libssh2 Description: A library for transferring data with URLs diff --git a/ports/date/CMakeLists.txt b/ports/date/CMakeLists.txt new file mode 100644 index 0000000000..91fcab1c7e --- /dev/null +++ b/ports/date/CMakeLists.txt @@ -0,0 +1,30 @@ +cmake_minimum_required(VERSION 3.5.1) +project(tz CXX) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +add_definitions(-DNOMINMAX) + + +include_directories(".") + +add_library(tz tz.cpp) + +if(BUILD_SHARED_LIBS) + target_compile_definitions(tz PRIVATE -DDATE_BUILD_DLL) +else() + target_compile_definitions(tz PRIVATE -DDATE_BUILD_LIB) +endif() + +install( + TARGETS tz + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES date.h tz.h julian.h iso_week.h islamic.h DESTINATION include) +endif() diff --git a/ports/date/CONTROL b/ports/date/CONTROL new file mode 100644 index 0000000000..8eab618c28 --- /dev/null +++ b/ports/date/CONTROL @@ -0,0 +1,3 @@ +Source: date +Version: 2.2 +Description: A date and time library based on the C++11/14/17 header diff --git a/ports/date/portfile.cmake b/ports/date/portfile.cmake new file mode 100644 index 0000000000..f73c72b52e --- /dev/null +++ b/ports/date/portfile.cmake @@ -0,0 +1,38 @@ +include(vcpkg_common_functions) + +message(WARNING + "You will need to also install http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml into your install location" + "See https://howardhinnant.github.io/date/tz.html" +) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO HowardHinnant/date + REF 272d487b3d490126e520b67fe76bbb2e67226c07 + SHA512 59e8ff642d3eb82cb6116a77d4c5e14bbc2ae6bd4019e64a49609b6e46d679c2cb4ccae74807b72223aed18ae015596193919cdb58b011bfb774ff3e29a1d43b + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +vcpkg_copy_pdbs() + +set(HEADER "${CURRENT_PACKAGES_DIR}/include/tz.h") +file(READ "${HEADER}" _contents) +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + string(REPLACE "DATE_BUILD_DLL" "1" _contents "${_contents}") +else() + string(REPLACE "DATE_BUILD_LIB" "1" _contents "${_contents}") +endif() +file(WRITE "${HEADER}" "${_contents}") + + +file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/date RENAME copyright) diff --git a/ports/dimcli/CONTROL b/ports/dimcli/CONTROL index 295c1ecda6..2b108239d4 100644 --- a/ports/dimcli/CONTROL +++ b/ports/dimcli/CONTROL @@ -1,3 +1,3 @@ Source: dimcli -Version: 2.0.0 +Version: 2.0.0-1 Description: C++ command line parser toolkit diff --git a/ports/dlfcn-win32/CONTROL b/ports/dlfcn-win32/CONTROL index 2d73fc36cc..c8fd02dced 100644 --- a/ports/dlfcn-win32/CONTROL +++ b/ports/dlfcn-win32/CONTROL @@ -1,3 +1,3 @@ Source: dlfcn-win32 -Version: 1.1.1 +Version: 1.1.1-1 Description: dlfcn-win32 is an implementation of dlfcn for Windows. diff --git a/ports/dlib/CONTROL b/ports/dlib/CONTROL index d9db5b99d1..ce39fcb1b7 100644 --- a/ports/dlib/CONTROL +++ b/ports/dlib/CONTROL @@ -1,4 +1,4 @@ Source: dlib -Version: 19.4-4 +Version: 19.4-5 Build-Depends: libjpeg-turbo, libpng, sqlite3, fftw3 Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ diff --git a/ports/double-conversion/CONTROL b/ports/double-conversion/CONTROL index 2ab2391e79..8ef2de9182 100644 --- a/ports/double-conversion/CONTROL +++ b/ports/double-conversion/CONTROL @@ -1,3 +1,3 @@ Source: double-conversion -Version: 3.0.0 +Version: 3.0.0-1 Description: Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles. diff --git a/ports/draco/CONTROL b/ports/draco/CONTROL index f8ce4ba96c..44fbde429e 100644 --- a/ports/draco/CONTROL +++ b/ports/draco/CONTROL @@ -1,4 +1,4 @@ Source: draco -Version: 0.10.0 +Version: 0.10.0-1 Description: A library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics. -Build-Depends: \ No newline at end of file +Build-Depends: diff --git a/ports/duktape/CONTROL b/ports/duktape/CONTROL index 74b01d4cf1..b0f599dd81 100644 --- a/ports/duktape/CONTROL +++ b/ports/duktape/CONTROL @@ -1,4 +1,4 @@ Source: duktape -Version: 2.0.3-3 +Version: 2.0.3-4 Description: Embeddable Javascript engine with a focus on portability and compact footprint. Build-Depends: diff --git a/ports/ecm/CONTROL b/ports/ecm/CONTROL index e124c960e8..12a9fd8a9f 100644 --- a/ports/ecm/CONTROL +++ b/ports/ecm/CONTROL @@ -1,3 +1,3 @@ Source: ecm -Version: 5.37.0 +Version: 5.37.0-1 Description: Extra CMake Modules (ECM), extra modules and scripts for CMake diff --git a/ports/eigen3/CONTROL b/ports/eigen3/CONTROL index 9920801cfd..1e61ce95f4 100644 --- a/ports/eigen3/CONTROL +++ b/ports/eigen3/CONTROL @@ -1,3 +1,3 @@ Source: eigen3 -Version: 3.3.4 +Version: 3.3.4-1 Description: C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. diff --git a/ports/embree/CONTROL b/ports/embree/CONTROL index 3f4ff53a1d..3c9ac0c7c1 100644 --- a/ports/embree/CONTROL +++ b/ports/embree/CONTROL @@ -1,4 +1,4 @@ Source: embree -Version: 2.16.4-1 +Version: 2.16.4-2 Description: High Performance Ray Tracing Kernels. Build-Depends: tbb diff --git a/ports/enet/CMakeLists.txt b/ports/enet/CMakeLists.txt new file mode 100644 index 0000000000..012e21d645 --- /dev/null +++ b/ports/enet/CMakeLists.txt @@ -0,0 +1,81 @@ +cmake_minimum_required(VERSION 2.6) + +project(enet) + +# The "configure" step. +include(CheckFunctionExists) +include(CheckStructHasMember) +include(CheckTypeSize) +check_function_exists("fcntl" HAS_FCNTL) +check_function_exists("poll" HAS_POLL) +check_function_exists("getaddrinfo" HAS_GETADDRINFO) +check_function_exists("getnameinfo" HAS_GETNAMEINFO) +check_function_exists("gethostbyname_r" HAS_GETHOSTBYNAME_R) +check_function_exists("gethostbyaddr_r" HAS_GETHOSTBYADDR_R) +check_function_exists("inet_pton" HAS_INET_PTON) +check_function_exists("inet_ntop" HAS_INET_NTOP) +check_struct_has_member("struct msghdr" "msg_flags" "sys/types.h;sys/socket.h" HAS_MSGHDR_FLAGS) +set(CMAKE_EXTRA_INCLUDE_FILES "sys/types.h" "sys/socket.h") +check_type_size("socklen_t" HAS_SOCKLEN_T BUILTIN_TYPES_ONLY) +unset(CMAKE_EXTRA_INCLUDE_FILES) +if(MSVC) + add_definitions(-W3) +else() + add_definitions(-Wno-error) +endif() + +if(HAS_FCNTL) + add_definitions(-DHAS_FCNTL=1) +endif() +if(HAS_POLL) + add_definitions(-DHAS_POLL=1) +endif() +if(HAS_GETNAMEINFO) + add_definitions(-DHAS_GETNAMEINFO=1) +endif() +if(HAS_GETADDRINFO) + add_definitions(-DHAS_GETADDRINFO=1) +endif() +if(HAS_GETHOSTBYNAME_R) + add_definitions(-DHAS_GETHOSTBYNAME_R=1) +endif() +if(HAS_GETHOSTBYADDR_R) + add_definitions(-DHAS_GETHOSTBYADDR_R=1) +endif() +if(HAS_INET_PTON) + add_definitions(-DHAS_INET_PTON=1) +endif() +if(HAS_INET_NTOP) + add_definitions(-DHAS_INET_NTOP=1) +endif() +if(HAS_MSGHDR_FLAGS) + add_definitions(-DHAS_MSGHDR_FLAGS=1) +endif() +if(HAS_SOCKLEN_T) + add_definitions(-DHAS_SOCKLEN_T=1) +endif() + +include_directories(${PROJECT_SOURCE_DIR}/include) + +add_library(enet STATIC + callbacks.c + compress.c + host.c + list.c + packet.c + peer.c + protocol.c + unix.c + win32.c + ) + +if (WIN32) + target_link_libraries(enet winmm ws2_32) +endif() + +install(TARGETS enet ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin) + +install(DIRECTORY include/ + DESTINATION include) \ No newline at end of file diff --git a/ports/enet/CONTROL b/ports/enet/CONTROL new file mode 100644 index 0000000000..f75b49de93 --- /dev/null +++ b/ports/enet/CONTROL @@ -0,0 +1,4 @@ +Source: enet +Version: 1.3.13 +Description: Reliable UDP networking library + diff --git a/ports/enet/portfile.cmake b/ports/enet/portfile.cmake new file mode 100644 index 0000000000..2a7fa4585c --- /dev/null +++ b/ports/enet/portfile.cmake @@ -0,0 +1,38 @@ +# Common Ambient Variables: +# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} +# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} +# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} +# PORT = current port name (zlib, etc) +# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) +# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) +# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) +# VCPKG_ROOT_DIR = +# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) +# + +include(vcpkg_common_functions) +vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH + REPO "lsalzman/enet" + REF f7c46f03fd8d883ac2811948aa71c7623069d070 + HEAD_REF master + SHA512 2d5593ea56473b38479921fd0849318bf3ecb233f92fa487ba395a0bb7e6a3997109287867a67c66721f761a30cceab4ba4709080a93ed977b7650b10cab1936 +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA # Disable this option if project cannot be built with Ninja + # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 + # OPTIONS_RELEASE -DOPTIMIZE=1 + # OPTIONS_DEBUG -DDEBUGGABLE=1 +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/enet RENAME copyright) + +vcpkg_copy_pdbs() \ No newline at end of file diff --git a/ports/entityx/CONTROL b/ports/entityx/CONTROL index f522fe702b..cbf618e0ae 100644 --- a/ports/entityx/CONTROL +++ b/ports/entityx/CONTROL @@ -1,3 +1,3 @@ Source: entityx -Version: 1.2.0 +Version: 1.2.0-1 Description: EntityX - A fast, type-safe C++ Entity-Component system. diff --git a/ports/evpp/CONTROL b/ports/evpp/CONTROL index 1f9f3a443c..163052ae0a 100644 --- a/ports/evpp/CONTROL +++ b/ports/evpp/CONTROL @@ -1,4 +1,4 @@ Source: evpp -Version: 0.6.1 +Version: 0.6.1-1 Description: A modern C++ network library based on libevent for developing high performance network services in TCP/UDP/HTTP protocols. Build-Depends: glog, libevent diff --git a/ports/exiv2/CONTROL b/ports/exiv2/CONTROL new file mode 100644 index 0000000000..4db8e73eee --- /dev/null +++ b/ports/exiv2/CONTROL @@ -0,0 +1,4 @@ +Source: exiv2 +Version: 4f4add2cdcbe73af7098122a509dff0739d15908 +Build-Depends:zlib, expat +Description: Image metadata library and tools http://www.exiv2.org diff --git a/ports/exiv2/portfile.cmake b/ports/exiv2/portfile.cmake new file mode 100644 index 0000000000..f9aff3e936 --- /dev/null +++ b/ports/exiv2/portfile.cmake @@ -0,0 +1,29 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Exiv2/exiv2 + REF 4f4add2cdcbe73af7098122a509dff0739d15908 + SHA512 32207cfd7ac932942562e062e851d7ba9be5586f33c2d924fb2a908a78f0c53f0d2973108c49bc865a3e7697a04a4b65d991441e4b89baca82b51b61affd4fa3 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} +) + +vcpkg_install_cmake() + +vcpkg_copy_pdbs() + +# Clean +file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*.exe) +file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe) +file(REMOVE ${EXE}) +file(REMOVE ${DEBUG_EXE}) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +# Handle copyright +file(COPY ${SOURCE_PATH}/ABOUT-NLS DESTINATION ${CURRENT_PACKAGES_DIR}/share/exiv2) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/exiv2/ABOUT-NLS ${CURRENT_PACKAGES_DIR}/share/exiv2/copyright) diff --git a/ports/expat/CONTROL b/ports/expat/CONTROL index f833c3cf07..450b8e61d0 100644 --- a/ports/expat/CONTROL +++ b/ports/expat/CONTROL @@ -1,3 +1,3 @@ Source: expat -Version: 2.2.4-1 +Version: 2.2.4-2 Description: XML parser library written in C diff --git a/ports/fadbad/CONTROL b/ports/fadbad/CONTROL new file mode 100644 index 0000000000..ebf9879627 --- /dev/null +++ b/ports/fadbad/CONTROL @@ -0,0 +1,3 @@ +Source: fadbad +Version: 2.1.0 +Description: FADBAD++ Templates for Automatic Differentiation diff --git a/ports/fadbad/portfile.cmake b/ports/fadbad/portfile.cmake new file mode 100644 index 0000000000..af97219623 --- /dev/null +++ b/ports/fadbad/portfile.cmake @@ -0,0 +1,18 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/FADBAD++) +vcpkg_download_distfile(ARCHIVE + URLS "http://www.fadbad.com/download/FADBAD++-2.1.tar.gz" + FILENAME "FADBAD++-2.1.tar.gz" + SHA512 7a82c51c03acb0806d673853f391379ea974e304c831ee15ef05a90c30661736ff572481b5b8254b2646c63968043ee90a06cba88261b87fc34d01f92403360a +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(INSTALL + ${SOURCE_PATH}/tadiff.h + ${SOURCE_PATH}/fadbad.h + ${SOURCE_PATH}/fadiff.h + ${SOURCE_PATH}/badiff.h + DESTINATION ${CURRENT_PACKAGES_DIR}/include +) + +file(INSTALL ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/fadbad RENAME copyright) diff --git a/ports/fastlz/CONTROL b/ports/fastlz/CONTROL index 089ba333ea..51c95cec82 100644 --- a/ports/fastlz/CONTROL +++ b/ports/fastlz/CONTROL @@ -1,3 +1,3 @@ Source: fastlz -Version: 1.0 +Version: 1.0-1 Description: A lightning-fast lossless compression library diff --git a/ports/fcl/CONTROL b/ports/fcl/CONTROL index c83593cb3f..daadff0759 100644 --- a/ports/fcl/CONTROL +++ b/ports/fcl/CONTROL @@ -1,4 +1,4 @@ Source: fcl -Version: 0.5.0-1 +Version: 0.5.0-2 Description: a library for performing three types of proximity queries on a pair of geometric models composed of triangles -Build-Depends: boost, ccd, octomap \ No newline at end of file +Build-Depends: boost, ccd, octomap diff --git a/ports/ffmpeg/build.sh b/ports/ffmpeg/build.sh index 3474a111ee..eea05c959d 100644 --- a/ports/ffmpeg/build.sh +++ b/ports/ffmpeg/build.sh @@ -1,6 +1,13 @@ #!/usr/bin/bash set -e export PATH=/usr/bin:$PATH +# Export HTTP(S)_PROXY as http(s)_proxy: +if [ "$HTTP_PROXY" ]; then + export http_proxy=$HTTP_PROXY +fi +if [ "$HTTPS_PROXY" ]; then + export https_proxy=$HTTPS_PROXY +fi pacman -Sy --noconfirm --needed diffutils make PATH_TO_BUILD_DIR="`cygpath "$1"`" diff --git a/ports/fftw3/CONTROL b/ports/fftw3/CONTROL index b4fba283dc..50513df27e 100644 --- a/ports/fftw3/CONTROL +++ b/ports/fftw3/CONTROL @@ -1,3 +1,3 @@ Source: fftw3 -Version: 3.3.6-p12 +Version: 3.3.6-p12-1 Description: FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST). diff --git a/ports/flann/CONTROL b/ports/flann/CONTROL index f4a0629819..b704729135 100644 --- a/ports/flann/CONTROL +++ b/ports/flann/CONTROL @@ -1,3 +1,3 @@ Source: flann -Version: 1.9.1-5 +Version: 1.9.1-6 Description: Fast Library for Approximate Nearest Neighbors diff --git a/ports/flatbuffers/CONTROL b/ports/flatbuffers/CONTROL index e68024e911..5611e49454 100644 --- a/ports/flatbuffers/CONTROL +++ b/ports/flatbuffers/CONTROL @@ -1,4 +1,4 @@ Source: flatbuffers -Version: 1.7.1 +Version: 1.7.1-1 Description: Memory Efficient Serialization Library http://google.github.io/flatbuffers/ - FlatBuffers is an efficient cross platform serialization library for games and other memory constrained apps. It allows you to directly access serialized data without unpacking/parsing it first, while still having great forwards/backwards compatibility. \ No newline at end of file + FlatBuffers is an efficient cross platform serialization library for games and other memory constrained apps. It allows you to directly access serialized data without unpacking/parsing it first, while still having great forwards/backwards compatibility. diff --git a/ports/fltk/CONTROL b/ports/fltk/CONTROL index 2b4f00629d..8261b63a52 100644 --- a/ports/fltk/CONTROL +++ b/ports/fltk/CONTROL @@ -1,4 +1,4 @@ Source: fltk -Version: 1.3.4-4 +Version: 1.3.4-5 Description: FLTK (pronounced fulltick) is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation. -Build-Depends: zlib, libpng, libjpeg-turbo \ No newline at end of file +Build-Depends: zlib, libpng, libjpeg-turbo diff --git a/ports/fmt/CONTROL b/ports/fmt/CONTROL index c4fd79f76e..c0fd45c63e 100644 --- a/ports/fmt/CONTROL +++ b/ports/fmt/CONTROL @@ -1,3 +1,3 @@ Source: fmt -Version: 4.0.0 +Version: 4.0.0-1 Description: Formatting library for C++. It can be used as a safe alternative to printf or as a fast alternative to IOStreams. diff --git a/ports/folly/CONTROL b/ports/folly/CONTROL index 489465d749..d8652e657e 100644 --- a/ports/folly/CONTROL +++ b/ports/folly/CONTROL @@ -1,4 +1,4 @@ Source: folly -Version: v2017.07.17.01 +Version: v2017.07.17.01-1 Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows Build-Depends: zlib, openssl, boost, libevent, double-conversion, glog, gflags, lz4, liblzma, snappy diff --git a/ports/fontconfig/CONTROL b/ports/fontconfig/CONTROL index 5fc4fcff28..f81a2ddd66 100644 --- a/ports/fontconfig/CONTROL +++ b/ports/fontconfig/CONTROL @@ -1,4 +1,4 @@ Source: fontconfig -Version: 2.12.4 +Version: 2.12.4-1 Description: Library for configuring and customizing font access. Build-Depends: freetype, expat, libiconv, dirent diff --git a/ports/freeglut/CONTROL b/ports/freeglut/CONTROL index 775f989385..82f0dc1f15 100644 --- a/ports/freeglut/CONTROL +++ b/ports/freeglut/CONTROL @@ -1,3 +1,3 @@ Source: freeglut -Version: 3.0.0-1 -Description: Open source implementation of GLUT with source and binary backwards compatibility. \ No newline at end of file +Version: 3.0.0-2 +Description: Open source implementation of GLUT with source and binary backwards compatibility. diff --git a/ports/freeimage/CONTROL b/ports/freeimage/CONTROL index 2d9fa15238..9d7c65b6f1 100644 --- a/ports/freeimage/CONTROL +++ b/ports/freeimage/CONTROL @@ -1,4 +1,4 @@ Source: freeimage -Version: 3.17.0-2 +Version: 3.17.0-3 Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openjpeg, libwebp, libraw, jxrlib, openexr Description: Support library for graphics image formats diff --git a/ports/freerdp/CONTROL b/ports/freerdp/CONTROL index 849fd740ba..5a730efb72 100644 --- a/ports/freerdp/CONTROL +++ b/ports/freerdp/CONTROL @@ -1,4 +1,4 @@ Source: freerdp -Version: 2.0.0-rc0~vcpkg1 +Version: 2.0.0-rc0~vcpkg1-1 Description: A free implementation of the Remote Desktop Protocol (RDP) -Build-Depends: openssl \ No newline at end of file +Build-Depends: openssl diff --git a/ports/freerdp/portfile.cmake b/ports/freerdp/portfile.cmake index 8ac9df3152..6805c5a693 100644 --- a/ports/freerdp/portfile.cmake +++ b/ports/freerdp/portfile.cmake @@ -2,7 +2,7 @@ include(vcpkg_common_functions) set(FREERDP_VERSION 2.0.0-rc0) set(FREERDP_REVISION 2.0.0-rc0) -set(FREERDP_HASH 9bc9ee976c73f274a4258613409e242088bd077bcd1cc43f7941170374fc0f9deda7f2f7644506d0cdc2e029b6037abb21d848810dcce6aefa3c5f1642f19cb3) +set(FREERDP_HASH d3eb0d5d23aa2a4d0277414f13a984d40aba051102c5af1e5ade975cdb469ef3549b145cd4339415fc33f056044929cfac71884512ea77a1e718d70d5b21b9dd) string(REGEX REPLACE "\\+" "-" FREERDP_VERSION_ESCAPED ${FREERDP_VERSION}) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/FreeRDP-${FREERDP_VERSION_ESCAPED}) @@ -76,4 +76,4 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) endif() -file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/freerdp/cmake) \ No newline at end of file +file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/freerdp/cmake) diff --git a/ports/freetype/CONTROL b/ports/freetype/CONTROL index 541f8b0244..bf65eb28f3 100644 --- a/ports/freetype/CONTROL +++ b/ports/freetype/CONTROL @@ -1,4 +1,4 @@ Source: freetype -Version: 2.8 +Version: 2.8-1 Build-Depends: zlib, bzip2, libpng -Description: A library to render fonts. \ No newline at end of file +Description: A library to render fonts. diff --git a/ports/freexl/CONTROL b/ports/freexl/CONTROL new file mode 100644 index 0000000000..8e0c8da93d --- /dev/null +++ b/ports/freexl/CONTROL @@ -0,0 +1,5 @@ +Source: freexl +Version: 1.0.4 +Description: FreeXL is an open source library to extract valid data from within an Excel (.xls) spreadsheet +Build-Depends: libiconv + diff --git a/ports/freexl/fix-makefiles.patch b/ports/freexl/fix-makefiles.patch new file mode 100644 index 0000000000..5cf2c470f3 --- /dev/null +++ b/ports/freexl/fix-makefiles.patch @@ -0,0 +1,43 @@ +diff --git a/makefile.vc b/makefile.vc +index 0aacbc7..d95d859 100644 +--- a/makefile.vc ++++ b/makefile.vc +@@ -7,7 +7,7 @@ + LIBOBJ = freexl.obj + FREEXL_DLL = freexl$(VERSION).dll + +-CFLAGS = /nologo -IC:\OSGeo4W\include -I. -Iheaders $(OPTFLAGS) ++CFLAGS = /nologo -I$(INSTALLED_ROOT)\include -I. -Iheaders $(OPTFLAGS) + + default: all + +@@ -23,9 +23,9 @@ freexl.lib: $(LIBOBJ) + $(FREEXL_DLL): freexl_i.lib + + freexl_i.lib: $(LIBOBJ) +- link /debug /dll /out:$(FREEXL_DLL) \ ++ link $(LINK_FLAGS) /dll /out:$(FREEXL_DLL) \ + /implib:freexl_i.lib $(LIBOBJ) \ +- C:\OSGeo4w\lib\iconv.lib ++ $(LIBS_ALL) + if exist $(FREEXL_DLL).manifest mt -manifest \ + $(FREEXL_DLL).manifest -outputresource:$(FREEXL_DLL);2 + +diff --git a/nmake.opt b/nmake.opt +index 35f9242..efb6f77 100644 +--- a/nmake.opt ++++ b/nmake.opt +@@ -1,10 +1,10 @@ + # Directory tree where FreeXL will be installed. +-INSTDIR=C:\OSGeo4W ++INSTDIR=$(INST_DIR) + + # Uncomment the first for an optimized build, or the second for debug. +-OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \ ++OPTFLAGS= /nologo /fp:precise /W3 $(CL_FLAGS) /D_CRT_SECURE_NO_WARNINGS \ + /DDLL_EXPORT +-#OPTFLAGS= /nologo /Zi /MD /Fdfreexl.pdb /DDLL_EXPORT ++#OPTFLAGS= /nologo $(CL_FLAGS) /Fdfreexl.pdb /DDLL_EXPORT + + # Set the version number for the DLL. Normally we leave this blank since + # we want software that is dynamically loading the DLL to have no problem diff --git a/ports/freexl/fix-sources.patch b/ports/freexl/fix-sources.patch new file mode 100644 index 0000000000..89a36f3b3b --- /dev/null +++ b/ports/freexl/fix-sources.patch @@ -0,0 +1,35 @@ +diff --git a/config-msvc.h b/config-msvc.h +index a39d4e7..37f1c0b 100644 +--- a/config-msvc.h ++++ b/config-msvc.h +@@ -66,7 +66,7 @@ + #define HAVE_SYS_TYPES_H 1 + + /* Define to 1 if you have the header file. */ +-#define HAVE_UNISTD_H 1 ++#undef HAVE_UNISTD_H + + /* Define to 1 if `lstat' dereferences a symlink specified with a trailing + slash. */ +diff --git a/src/freexl.c b/src/freexl.c +index a0b255a..92163a9 100644 +--- a/src/freexl.c ++++ b/src/freexl.c +@@ -92,7 +92,7 @@ freexl_version (void) + #if defined(_WIN32) && !defined(__MINGW32__) + /* MSVC compiler doesn't support lround() at all */ + static double +-round (double num) ++round_old (double num) + { + double integer = ceil (num); + if (num > 0) +@@ -101,7 +101,7 @@ round (double num) + } + + static long +-lround (double num) ++lround_old (double num) + { + long integer = (long) round (num); + return integer; diff --git a/ports/freexl/portfile.cmake b/ports/freexl/portfile.cmake new file mode 100644 index 0000000000..b808d2a602 --- /dev/null +++ b/ports/freexl/portfile.cmake @@ -0,0 +1,82 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freexl-1.0.4) +vcpkg_download_distfile(ARCHIVE + URLS "http://www.gaia-gis.it/gaia-sins/freexl-1.0.4.tar.gz" + FILENAME "freexl-1.0.4.tar.gz" + SHA512 d72561f7b82e0281cb211fbf249e5e45411a7cdd009cfb58da3696f0a0341ea7df210883bfde794be28738486aeb4ffc67ec2c98fd2acde5280e246e204ce788 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch + ${CMAKE_CURRENT_LIST_DIR}/fix-sources.patch +) +find_program(NMAKE nmake) + +set(LIBS_ALL_DBG + "\"${CURRENT_INSTALLED_DIR}/debug/lib/libiconv.lib\" \ + \"${CURRENT_INSTALLED_DIR}/debug/lib/libcharset.lib\"" + ) +set(LIBS_ALL_REL + "\"${CURRENT_INSTALLED_DIR}/lib/libiconv.lib\" \ + \"${CURRENT_INSTALLED_DIR}/lib/libcharset.lib\"" + ) + + +if(VCPKG_CRT_LINKAGE STREQUAL dynamic) + set(CL_FLAGS_DBG "/MDd /Zi") + set(CL_FLAGS_REL "/MD /Ox") +else() + set(CL_FLAGS_DBG "/MTd /Zi") + set(CL_FLAGS_REL "/MT /Ox") +endif() + + +################ +# Debug build +################ +message(STATUS "Building ${TARGET_TRIPLET}-dbg") + +file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG) +vcpkg_execute_required_process( + COMMAND ${NMAKE} -f makefile.vc clean install + INST_DIR="${INST_DIR_DBG}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=/debug" "CL_FLAGS=${CL_FLAGS_DBG}" "LIBS_ALL=${LIBS_ALL_DBG}" + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME nmake-build-${TARGET_TRIPLET}-debug +) +message(STATUS "Building ${TARGET_TRIPLET}-dbg done") +vcpkg_copy_pdbs() + +################ +# Release build +################ +message(STATUS "Building ${TARGET_TRIPLET}-rel") + +file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL) +vcpkg_execute_required_process( + COMMAND ${NMAKE} -f makefile.vc clean install + INST_DIR="${INST_DIR_REL}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=" "CL_FLAGS=${CL_FLAGS_REL}" "LIBS_ALL=${LIBS_ALL_REL}" + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME nmake-build-${TARGET_TRIPLET}-release +) +message(STATUS "Building ${TARGET_TRIPLET}-rel done") + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/freexl RENAME copyright) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib) +else() + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/freexl.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/lib/freexl.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/freexl_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/freexl.lib) +endif() + + +message(STATUS "Packaging ${TARGET_TRIPLET} done") diff --git a/ports/fuzzylite/CONTROL b/ports/fuzzylite/CONTROL index b278a1b8fa..422a8af2ea 100644 --- a/ports/fuzzylite/CONTROL +++ b/ports/fuzzylite/CONTROL @@ -1,3 +1,3 @@ Source: fuzzylite -Version: 6.0 +Version: 6.0-1 Description: A fuzzy logic control library in C++ diff --git a/ports/g2o/CONTROL b/ports/g2o/CONTROL index 00ec4d9633..81e2b045d5 100644 --- a/ports/g2o/CONTROL +++ b/ports/g2o/CONTROL @@ -1,4 +1,4 @@ Source: g2o -Version: 20170730_git-1 +Version: 20170730_git-2 Build-Depends: suitesparse, eigen3, clapack, ceres Description: g2o: A General Framework for Graph Optimization http://openslam.org/g2o.html diff --git a/ports/gdal/CONTROL b/ports/gdal/CONTROL index 868a5e929d..083a528003 100644 --- a/ports/gdal/CONTROL +++ b/ports/gdal/CONTROL @@ -1,4 +1,4 @@ Source: gdal Version: 1.11.3-5 Description: The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data. -Build-Depends: proj, libpng, geos, sqlite3, curl, expat, libpq, libmysql, openjpeg, libwebp, libxml2, liblzma +Build-Depends: proj4, libpng, geos, sqlite3, curl, expat, libpq, libmysql, openjpeg, libwebp, libxml2, liblzma diff --git a/ports/gdcm2/CONTROL b/ports/gdcm2/CONTROL index 32b92aca0e..b39b3e19f0 100644 --- a/ports/gdcm2/CONTROL +++ b/ports/gdcm2/CONTROL @@ -1,4 +1,4 @@ Source: gdcm2 -Version: 2.6.8 +Version: 2.6.8-1 Description: Grassroots DICOM library Build-Depends: zlib, expat diff --git a/ports/gdk-pixbuf/CONTROL b/ports/gdk-pixbuf/CONTROL index c12f67583c..2a0fbfaf30 100644 --- a/ports/gdk-pixbuf/CONTROL +++ b/ports/gdk-pixbuf/CONTROL @@ -1,4 +1,4 @@ Source: gdk-pixbuf -Version: 2.36.9 +Version: 2.36.9-1 Description: Image loading library. Build-Depends: gettext, zlib, libpng, glib diff --git a/ports/geogram/CONTROL b/ports/geogram/CONTROL index 95690395b3..f79aa5997e 100644 --- a/ports/geogram/CONTROL +++ b/ports/geogram/CONTROL @@ -1,4 +1,4 @@ Source: geogram -Version: 1.4.9 +Version: 1.4.9-1 Description: Geogram is a programming library of geometric algorithms. Build-Depends: glfw3, openblas, clapack diff --git a/ports/geographiclib/CONTROL b/ports/geographiclib/CONTROL index 836049a660..993239b966 100644 --- a/ports/geographiclib/CONTROL +++ b/ports/geographiclib/CONTROL @@ -1,3 +1,3 @@ Source: geographiclib -Version: 1.47-patch1-3 +Version: 1.47-patch1-4 Description: a small set of C++ classes for performing conversions between geographic, UTM, UPS, MGRS, geocentric, and local cartesian coordinates, for gravity (e.g., EGM2008), geoid height, and geomagnetic field (e.g., WMM2010) calculations, and for solving geodesic problems. diff --git a/ports/geos/CONTROL b/ports/geos/CONTROL index c0ec7b1344..3d2ed4565d 100644 --- a/ports/geos/CONTROL +++ b/ports/geos/CONTROL @@ -1,3 +1,3 @@ Source: geos -Version: 3.5.0 +Version: 3.6.2-1 Description: Geometry Engine Open Source diff --git a/ports/geos/geos_c-static-support.patch b/ports/geos/geos_c-static-support.patch new file mode 100644 index 0000000000..148e63057f --- /dev/null +++ b/ports/geos/geos_c-static-support.patch @@ -0,0 +1,110 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 927a0fe..8e6c3ea 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -66,11 +66,7 @@ if(NOT MSVC) + "Set to ON|OFF (default) to build GEOS with assert() macro enabled" OFF) + endif() + +-option(GEOS_BUILD_STATIC +- "Set to OFF|ON (default) to build GEOS static libraries" ON) +- +-option(GEOS_BUILD_SHARED +- "Set to OFF|ON (default) to build GEOS shared libraries" ON) ++option(BUILD_SHARED_LIBS "Build GEOS as a shared library" ON) + + if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + option(GEOS_ENABLE_FLOATSTORE +diff --git a/capi/CMakeLists.txt b/capi/CMakeLists.txt +index 859722b..b6e44b6 100644 +--- a/capi/CMakeLists.txt ++++ b/capi/CMakeLists.txt +@@ -23,15 +23,23 @@ file(GLOB geos_capi_HEADERS ${CMAKE_BINARY_DIR}/capi/*.h) # fix source_group iss + + if(NOT GEOS_ENABLE_MACOSX_FRAMEWORK) + # if building OS X framework, CAPI built into C++ library +- add_library(geos_c SHARED ${geos_c_SOURCES}) ++ add_library(geos_c ${geos_c_SOURCES}) + + target_link_libraries(geos_c geos) + + if (WIN32) +- set_target_properties(geos_c +- PROPERTIES +- VERSION ${CAPI_VERSION} +- CLEAN_DIRECT_OUTPUT 1) ++ if(BUILD_SHARED_LIBS) ++ set_target_properties(geos_c ++ PROPERTIES ++ VERSION ${CAPI_VERSION} ++ CLEAN_DIRECT_OUTPUT 1) ++ else() ++ set_target_properties(geos_c ++ PROPERTIES ++ OUTPUT_NAME "geos_c" ++ PREFIX "lib" ++ CLEAN_DIRECT_OUTPUT 1) ++ endif() + else() + set_target_properties(geos_c + PROPERTIES +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 4a1e688..a33b5f6 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -23,7 +23,7 @@ if(GEOS_ENABLE_MACOSX_FRAMEWORK) + ${CMAKE_CURRENT_SOURCE_DIR}/../capi/geos_c.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/../capi/geos_ts_c.cpp) + +- add_library(GEOS SHARED ${geos_SOURCES} ${geos_c_SOURCES}) ++ add_library(GEOS ${geos_SOURCES} ${geos_c_SOURCES}) + + math(EXPR CVERSION "${VERSION_MAJOR} + 1") + # VERSION = current version, SOVERSION = compatibility version +@@ -61,37 +61,27 @@ if(GEOS_ENABLE_MACOSX_FRAMEWORK) + + else() + +- if(GEOS_BUILD_SHARED) +- add_library(geos SHARED ${geos_SOURCES} ${geos_ALL_HEADERS}) ++ add_library(geos ${geos_SOURCES} ${geos_ALL_HEADERS}) + ++ if(BUILD_SHARED_LIBS) + set_target_properties(geos + PROPERTIES + DEFINE_SYMBOL GEOS_DLL_EXPORT + VERSION ${VERSION} + CLEAN_DIRECT_OUTPUT 1) +- +- install(TARGETS geos +- RUNTIME DESTINATION bin +- LIBRARY DESTINATION lib +- ARCHIVE DESTINATION lib) +- endif() +- +- if(GEOS_BUILD_STATIC) +- add_library(geos-static STATIC ${geos_SOURCES} ${geos_ALL_HEADERS}) +- +- set_target_properties(geos-static ++ else() ++ set_target_properties(geos + PROPERTIES + OUTPUT_NAME "geos" + PREFIX "lib" + CLEAN_DIRECT_OUTPUT 1) +- +- install(TARGETS geos-static +- RUNTIME DESTINATION bin +- LIBRARY DESTINATION lib +- ARCHIVE DESTINATION lib) +- + endif() + ++ install(TARGETS geos ++ RUNTIME DESTINATION bin ++ LIBRARY DESTINATION lib ++ ARCHIVE DESTINATION lib) ++ + endif() # (GEOS_ENABLE_MACOSX_FRAMEWORK) + + # if(APPLE) diff --git a/ports/geos/portfile.cmake b/ports/geos/portfile.cmake index 7cd50db58c..ec88a0f57d 100644 --- a/ports/geos/portfile.cmake +++ b/ports/geos/portfile.cmake @@ -7,25 +7,31 @@ # include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/3.5) -#downloading 3.5 from their SVN repo and not the release tarball -#because the 3.5 release did not build on windows, and fixes were backported -#without generating a new release tarball (I don't think very many GIS people use win) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/geos-3.6.2) + vcpkg_download_distfile(ARCHIVE - URLS "https://trac.osgeo.org/geos/browser/branches/3.5?rev=4261&format=zip" - FILENAME "geos-3.5.0.zip" - SHA512 3b91e8992f60b99a3f01069d955b71bce425ae5e5c599252fa26a337494e1a5a8ea796be124766d054710d6c03806f56dc1c63539b4660e2bb894d7ef779d4b9 + URLS "http://download.osgeo.org/geos/geos-3.6.2.tar.bz2" + FILENAME "geos-3.6.2.tar.bz2" + SHA512 515d8700b8a28282678e481faee355e3a43d7b70160472a63335b8d7225d9ba10437be782378f18f31a15288118126d411a2d862f01ce35d27c96f6bc0a73016 ) vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_apply_patches( + +SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/geos_c-static-support.patch +) + +# NOTE: GEOS provides CMake as optional build configuration, it might not be actively +# maintained, so CMake build issues may happen between releases. + +# Pull modules referred in the main CMakeLists.txt but missing from the released package. +# TODO: GEOS 3.6.3 or later will include the missing script in release package. +file(DOWNLOAD http://svn.osgeo.org/geos/branches/3.6/cmake/modules/GenerateSourceGroups.cmake + ${SOURCE_PATH}/cmake/modules/GenerateSourceGroups.cmake) -#we need to do this because GEOS deploy process is totally broken for cmake -#file(DOWNLOAD http://svn.osgeo.org/geos/tags/3.5.0/cmake/modules/GenerateSourceGroups.cmake -# ${SOURCE_PATH}/cmake/modules/GenerateSourceGroups.cmake) -file(WRITE ${SOURCE_PATH}/geos_svn_revision.h "#define GEOS_SVN_REVISION 4261") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DGEOS_ENABLE_TESTS=False - -DBUILD_TESTING=False ) vcpkg_build_cmake() diff --git a/ports/gettext/CONTROL b/ports/gettext/CONTROL index fad410359c..882eb725f4 100644 --- a/ports/gettext/CONTROL +++ b/ports/gettext/CONTROL @@ -1,3 +1,3 @@ Source: gettext -Version: 0.19-1 +Version: 0.19-2 Description: The GNU gettext utilities are a set of tools that provides a framework to help other GNU packages produce multi-lingual messages diff --git a/ports/gflags/CONTROL b/ports/gflags/CONTROL index 9fab690ce0..c673815f95 100644 --- a/ports/gflags/CONTROL +++ b/ports/gflags/CONTROL @@ -1,3 +1,3 @@ Source: gflags -Version: 2.2.0-4 +Version: 2.2.0-5 Description: A C++ library that implements commandline flags processing diff --git a/ports/giflib/CONTROL b/ports/giflib/CONTROL index abac8f1cfc..a79a8b0d4b 100644 --- a/ports/giflib/CONTROL +++ b/ports/giflib/CONTROL @@ -1,3 +1,3 @@ Source: giflib -Version: 5.1.4 +Version: 5.1.4-1 Description: A library for reading and writing gif images. diff --git a/ports/gl2ps/CONTROL b/ports/gl2ps/CONTROL index 16c52f64ae..052835a34f 100644 --- a/ports/gl2ps/CONTROL +++ b/ports/gl2ps/CONTROL @@ -1,4 +1,4 @@ Source: gl2ps -Version: 1.4.0 +Version: 1.4.0-1 Description: OpenGL to PostScript Printing Library Build-Depends: freeglut, zlib, libpng diff --git a/ports/glbinding/CONTROL b/ports/glbinding/CONTROL index 5e7ec029c0..b6eaf06bd4 100644 --- a/ports/glbinding/CONTROL +++ b/ports/glbinding/CONTROL @@ -1,3 +1,3 @@ Source: glbinding -Version: 2.1.1-1 +Version: 2.1.1-2 Description: glbinding is an MIT licensed, cross-platform C++ binding for the OpenGL API diff --git a/ports/glew/CONTROL b/ports/glew/CONTROL index 1d7fc62f5f..ecf948c5d8 100644 --- a/ports/glew/CONTROL +++ b/ports/glew/CONTROL @@ -1,3 +1,3 @@ Source: glew -Version: 2.1.0 -Description: The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. \ No newline at end of file +Version: 2.1.0-1 +Description: The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. diff --git a/ports/glew/portfile.cmake b/ports/glew/portfile.cmake index 30f55451a2..a18a8ceebc 100644 --- a/ports/glew/portfile.cmake +++ b/ports/glew/portfile.cmake @@ -36,6 +36,11 @@ file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/visualinfo.exe) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + foreach(FILE ${CURRENT_PACKAGES_DIR}/include/GL/glew.h ${CURRENT_PACKAGES_DIR}/include/GL/wglew.h ${CURRENT_PACKAGES_DIR}/include/GL/glxew.h) + file(READ ${FILE} _contents) + string(REPLACE "#ifdef GLEW_STATIC" "#if 1" _contents "${_contents}") + file(WRITE ${FILE} "${_contents}") + endforeach() endif() vcpkg_copy_pdbs() diff --git a/ports/glfw3/CONTROL b/ports/glfw3/CONTROL index d6493c9686..9cb0cbdc61 100644 --- a/ports/glfw3/CONTROL +++ b/ports/glfw3/CONTROL @@ -1,3 +1,3 @@ Source: glfw3 -Version: 3.2.1-1 -Description: GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc. \ No newline at end of file +Version: 3.2.1-2 +Description: GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc. diff --git a/ports/glib/CONTROL b/ports/glib/CONTROL index 2d67cd26d0..a4e467bbc1 100644 --- a/ports/glib/CONTROL +++ b/ports/glib/CONTROL @@ -1,4 +1,4 @@ Source: glib -Version: 2.52.3 +Version: 2.52.3-1 Description: Portable, general-purpose utility library. Build-Depends: zlib, pcre, libffi, gettext, libiconv diff --git a/ports/glm/CONTROL b/ports/glm/CONTROL index 2f7355c305..36a40e32dd 100644 --- a/ports/glm/CONTROL +++ b/ports/glm/CONTROL @@ -1,3 +1,3 @@ Source: glm -Version: 0.9.8.4 +Version: 0.9.8.4-1 Description: OpenGL Mathematics (GLM) https://glm.g-truc.net diff --git a/ports/globjects/CONTROL b/ports/globjects/CONTROL index 7917bacacf..df9c862dc9 100644 --- a/ports/globjects/CONTROL +++ b/ports/globjects/CONTROL @@ -1,5 +1,5 @@ Source: globjects Maintainer: mattias@mattiascibien.net -Version: 1.0.0 +Version: 1.0.0-1 Build-Depends: glbinding, glm Description: C++ library strictly wrapping OpenGL objects. diff --git a/ports/glog/CONTROL b/ports/glog/CONTROL index 74653e8bc2..fad754f7c3 100644 --- a/ports/glog/CONTROL +++ b/ports/glog/CONTROL @@ -1,4 +1,4 @@ Source: glog -Version: 0.3.5 +Version: 0.3.5-1 Description: C++ implementation of the Google logging module Build-Depends: gflags diff --git a/ports/glslang/CONTROL b/ports/glslang/CONTROL index ac6e6810b9..03668b10a8 100644 --- a/ports/glslang/CONTROL +++ b/ports/glslang/CONTROL @@ -1,3 +1,3 @@ Source: glslang -Version: 1c573fbcfba6b3d631008b1babc838501ca925d3-2 +Version: 3a21c880500eac21cdf79bef5b80f970a55ac6af-1 Description: Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator diff --git a/ports/glslang/portfile.cmake b/ports/glslang/portfile.cmake index 8dabcb390a..e663d768d0 100644 --- a/ports/glslang/portfile.cmake +++ b/ports/glslang/portfile.cmake @@ -7,8 +7,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/glslang - REF 1c573fbcfba6b3d631008b1babc838501ca925d3 - SHA512 4f04dc39d9a70959ded1f4fe05ca5c7b0413c05bc3f049c11b5be7c8e1a70675f4221c9d8c712e7695f30eadb9bd7d0f1e71f431a6c9d4fea2cd2abbc73bd49a + REF 3a21c880500eac21cdf79bef5b80f970a55ac6af + SHA512 a6b2f589d432015d3830027dee377350529bec9c339a8de24aa52bab5ca52b3e17e2163d3bd1a7d91f7a08c446ebfe86d64bbbbae5a23af831d2e0cb724f7418 HEAD_REF master ) @@ -19,29 +19,9 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -file(COPY "${SOURCE_PATH}/glslang/Public" DESTINATION ${CURRENT_PACKAGES_DIR}/include/glslang) -file(COPY "${SOURCE_PATH}/glslang/Include" DESTINATION ${CURRENT_PACKAGES_DIR}/include/glslang) -file(COPY "${SOURCE_PATH}/glslang/MachineIndependent/Versions.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include/glslang/MachineIndependent) -file(COPY "${SOURCE_PATH}/SPIRV/Logger.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include/SPIRV) -file(COPY "${SOURCE_PATH}/SPIRV/spirv.hpp" DESTINATION ${CURRENT_PACKAGES_DIR}/include/SPIRV) -file(COPY "${SOURCE_PATH}/SPIRV/GlslangToSpv.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include/SPIRV) -file(COPY "${CURRENT_PACKAGES_DIR}/bin/glslangValidator.exe" DESTINATION ${CURRENT_PACKAGES_DIR}/tools) -file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/glslangValidator.exe") -file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/glslangValidator.exe") -file(COPY "${CURRENT_PACKAGES_DIR}/bin/spirv-remap.exe" DESTINATION ${CURRENT_PACKAGES_DIR}/tools) -file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/spirv-remap.exe") -file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/spirv-remap.exe") - -file(GLOB BIN_DIR "${CURRENT_PACKAGES_DIR}/bin/*") -list(LENGTH BIN_DIR BIN_DIR_SIZE) -if(${BIN_DIR_SIZE} EQUAL 0) - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") -endif() -file(GLOB DEBUG_BIN_DIR "${CURRENT_PACKAGES_DIR}/debug/bin/*") -list(LENGTH DEBUG_BIN_DIR DEBUG_BIN_DIR_SIZE) -if(${DEBUG_BIN_DIR_SIZE} EQUAL 0) - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") -endif() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(RENAME "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/tools") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") # Handle copyright file(COPY ${CMAKE_CURRENT_LIST_DIR}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/glslang) diff --git a/ports/graphicsmagick/CONTROL b/ports/graphicsmagick/CONTROL index 13770197da..17f2a635de 100644 --- a/ports/graphicsmagick/CONTROL +++ b/ports/graphicsmagick/CONTROL @@ -1,4 +1,4 @@ Source: graphicsmagick -Version: 1.3.26-1 +Version: 1.3.26-2 Build-Depends: zlib, bzip2, freetype, libjpeg-turbo, libpng, tiff Description: Image processing library diff --git a/ports/grpc/CONTROL b/ports/grpc/CONTROL index d9654cddf2..449d58b6c5 100644 --- a/ports/grpc/CONTROL +++ b/ports/grpc/CONTROL @@ -1,4 +1,4 @@ Source: grpc -Version: 1.4.1 +Version: 1.6.0-1 Build-Depends: zlib, openssl, protobuf, c-ares -Description: An RPC library and framework \ No newline at end of file +Description: An RPC library and framework diff --git a/ports/grpc/disable-csharp-ext.patch b/ports/grpc/disable-csharp-ext.patch index 6cb9090abf..3b887c8b46 100644 --- a/ports/grpc/disable-csharp-ext.patch +++ b/ports/grpc/disable-csharp-ext.patch @@ -1,31 +1,29 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index c85a20a..99b2897 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -3694,6 +3694,7 @@ target_link_libraries(qps +--- a/CMakeLists.txt Tue Aug 29 22:24:15 2017 ++++ b/CMakeLists.txt Mon Sep 04 00:43:56 2017 +@@ -4574,6 +4574,8 @@ endif (gRPC_BUILD_TESTS) +option(gRPC_INSTALL_CSHARP_EXT "" ON) ++ add_library(grpc_csharp_ext SHARED src/csharp/ext/grpc_csharp_ext.c ) -@@ -3702,7 +3703,7 @@ if(WIN32 AND MSVC) +@@ -4582,7 +4584,7 @@ set_target_properties(grpc_csharp_ext PROPERTIES COMPILE_PDB_NAME "grpc_csharp_ext" COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" ) - if (gRPC_INSTALL) + if (gRPC_INSTALL AND gRPC_INSTALL_CSHARP_EXT) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_csharp_ext.pdb - DESTINATION ${CMAKE_INSTALL_LIBDIR} OPTIONAL + DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL ) -@@ -3728,8 +3729,7 @@ target_link_libraries(grpc_csharp_ext - ) +@@ -4613,7 +4615,7 @@ + -- -if (gRPC_INSTALL) +if (gRPC_INSTALL AND gRPC_INSTALL_CSHARP_EXT) install(TARGETS grpc_csharp_ext EXPORT gRPCTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR} + LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR} diff --git a/ports/grpc/portfile.cmake b/ports/grpc/portfile.cmake index e26c758d09..49d64b9091 100644 --- a/ports/grpc/portfile.cmake +++ b/ports/grpc/portfile.cmake @@ -12,17 +12,24 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO grpc/grpc - REF v1.4.1 - SHA512 5028e4f881a41e4c4ddf770bd824d1d5de825f86d68dbbfab22e2a34ec0e46b27754b0f5b40cfc02b0d22a756b08056b100837b590745b5fdbdce9a803e59f8d + REF v1.6.0 + SHA512 70a68fecca43cfe8c94206fd39ad8f86e055eb2185ae8c90040cc35928f1102016775c66e83c3cc76690e44598764b215d884a206f8466d45b00e2c54593e682 HEAD_REF master ) +# fix from PR https://github.com/grpc/grpc/pull/12411 +vcpkg_download_distfile(CMAKE_ERROR_FIX_DIFF + URLS "https://github.com/grpc/grpc/commit/74c139a83987087f9e2d2e6b5d44c240d719061d.diff" + FILENAME "grpc-cmake-error-fix.diff" + SHA512 38cdff0e6db12276400cf4eec66aafdbfe34912a78a0604ced3b216d3a60e5b87464f9083fa5e5dfb4df1490ef10565cbe04d3f750f59c7e7e1a05334c0b528e +) + # Issue: https://github.com/grpc/grpc/issues/10759 vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/revert-c019e05.patch ${CMAKE_CURRENT_LIST_DIR}/disable-csharp-ext.patch + ${CMAKE_ERROR_FIX_DIFF} ) if(VCPKG_CRT_LINKAGE STREQUAL static) @@ -52,7 +59,7 @@ vcpkg_configure_cmake( set(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin") vcpkg_install_cmake() -vcpkg_fixup_cmake_targets() +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/grpc") file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/grpc RENAME copyright) diff --git a/ports/grpc/revert-c019e05.patch b/ports/grpc/revert-c019e05.patch deleted file mode 100644 index afb5cfa715..0000000000 --- a/ports/grpc/revert-c019e05.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b7555b1bc3..edbffea76c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -14204,6 +14204,13 @@ endif (gRPC_BUILD_TESTS) - - - -+if (gRPC_INSTALL) -+ install(EXPORT gRPCTargets -+ DESTINATION ${CMAKE_INSTALL_CMAKEDIR} -+ NAMESPACE gRPC:: -+ ) -+endif() -+ - foreach(_config gRPCConfig gRPCConfigVersion) - configure_file(tools/cmake/${_config}.cmake.in - ${_config}.cmake @ONLY) diff --git a/ports/gsl/CONTROL b/ports/gsl/CONTROL index 8ea4fdedde..b6dc858dc9 100644 --- a/ports/gsl/CONTROL +++ b/ports/gsl/CONTROL @@ -1,3 +1,3 @@ Source: gsl -Version: 2.4-1 +Version: 2.4-2 Description: The GNU Scientific Library is a numerical library for C and C++ programmers diff --git a/ports/gtest/CONTROL b/ports/gtest/CONTROL index 07336b9783..77082f5cb2 100644 --- a/ports/gtest/CONTROL +++ b/ports/gtest/CONTROL @@ -1,3 +1,3 @@ Source: gtest -Version: 1.8 -Description: GoogleTest and GoogleMock testing frameworks. \ No newline at end of file +Version: 1.8-1 +Description: GoogleTest and GoogleMock testing frameworks. diff --git a/ports/gtk/CONTROL b/ports/gtk/CONTROL index a668ff3f50..e5931156d5 100644 --- a/ports/gtk/CONTROL +++ b/ports/gtk/CONTROL @@ -1,4 +1,4 @@ Source: gtk -Version: 3.22.19 +Version: 3.22.19-1 Description: Portable library for creating graphical user interfaces. Build-Depends: glib, atk, gdk-pixbuf, pango, cairo, libepoxy, gettext diff --git a/ports/gts/CONTROL b/ports/gts/CONTROL new file mode 100644 index 0000000000..faa4096194 --- /dev/null +++ b/ports/gts/CONTROL @@ -0,0 +1,4 @@ +Source: gts +Version: 0.7.6 +Description: A Library intended to provide a set of useful functions to deal with 3D surfaces meshed with interconnected triangles +Build-Depends: glib diff --git a/ports/gts/portfile.cmake b/ports/gts/portfile.cmake new file mode 100644 index 0000000000..d55f5dc669 --- /dev/null +++ b/ports/gts/portfile.cmake @@ -0,0 +1,36 @@ +# Common Ambient Variables: +# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} +# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} +# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT} +# PORT = current port name (zlib, etc) +# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc) +# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic) +# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic) +# VCPKG_ROOT_DIR = +# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) +# + +include(vcpkg_common_functions) +vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH + REPO "finetjul/gts" + REF c4da61ae075f355d9ecc9f2d4767acf777f54c2b + HEAD_REF master + SHA512 e53d11213c26cbda08ae62e6388aee0a14d2884de72268ad25d10a23e77baa53a2b1151c5cc7643b059ded82b8edf0da79144c3108949fdc515168cac13ffca9 +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA # Disable this option if project cannot be built with Ninja + # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 + # OPTIONS_RELEASE -DOPTIMIZE=1 + # OPTIONS_DEBUG -DDEBUGGABLE=1 +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gts RENAME copyright) + +vcpkg_copy_pdbs() \ No newline at end of file diff --git a/ports/guetzli/CMakeLists.txt b/ports/guetzli/CMakeLists.txt new file mode 100644 index 0000000000..5d594aabdd --- /dev/null +++ b/ports/guetzli/CMakeLists.txt @@ -0,0 +1,46 @@ +cmake_minimum_required(VERSION 3.8.0) +project(guetzli) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX) +endif() + +if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + +find_path(butteraugli_include butteraugli/butteraugli.h) +find_library(butteraugli_library NAMES butteraugli_lib) +find_package(PNG REQUIRED) + +include_directories("." ${PNG_INCLUDE_DIRS} ${butteraugli_include}) + +file(GLOB guetzli_srcs "guetzli/*.cc") +file(GLOB guetzli_includes "guetzli/*.h") +list(REMOVE_ITEM guetzli_srcs "guetzli/guetzli.cc") + +add_library(guetzli_lib ${guetzli_srcs}) + +add_executable(guetzli guetzli/guetzli.cc) + +target_link_libraries(guetzli_lib ${butteraugli_library} ${PNG_LIBRARIES}) +target_link_libraries(guetzli guetzli_lib ${butteraugli_library} ${PNG_LIBRARIES}) + + +install( + TARGETS guetzli_lib + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_TOOLS) + install ( + TARGETS guetzli + RUNTIME DESTINATION tools/guetzli + ) +endif() + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES ${guetzli_includes} DESTINATION include/guetzli) +endif() diff --git a/ports/guetzli/CONTROL b/ports/guetzli/CONTROL new file mode 100644 index 0000000000..2ce631a2a0 --- /dev/null +++ b/ports/guetzli/CONTROL @@ -0,0 +1,4 @@ +Source: guetzli +Version: 2017-09-02-cb5e4a86f69628-1 +Description: Perceptual JPEG encoder +Build-Depends: libpng, butteraugli diff --git a/ports/guetzli/portfile.cmake b/ports/guetzli/portfile.cmake new file mode 100644 index 0000000000..4fb0402bae --- /dev/null +++ b/ports/guetzli/portfile.cmake @@ -0,0 +1,24 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/guetzli + REF cb5e4a86f69628f685f2b78d7429e248ab83d8d7 + SHA512 695a87dc27573b8df74a7e7924e9b96a7bd375b1aae02e7b0fad800428d973cf17947d46ec7afefade2a86ebe3d39f3c3178aad1137b9dd013f5f85ee6569a75 + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/guetzli) + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/guetzli RENAME copyright) diff --git a/ports/gumbo/CMakeLists.txt b/ports/gumbo/CMakeLists.txt new file mode 100644 index 0000000000..fe239cb8a2 --- /dev/null +++ b/ports/gumbo/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.8.0) + +project(gumbo) + +set(gumbo_srcs + src/attribute.c + src/char_ref.c + src/error.c + src/parser.c + src/string_buffer.c + src/string_piece.c + src/tag.c + src/tokenizer.c + src/utf8.c + src/util.c + src/vector.c +) + + +include_directories(visualc/include src) + +add_library(gumbo ${gumbo_srcs}) + +install( + TARGETS gumbo + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES src/gumbo.h src/tag_enum.h DESTINATION include) +endif() diff --git a/ports/gumbo/CONTROL b/ports/gumbo/CONTROL new file mode 100644 index 0000000000..ceee95b5d9 --- /dev/null +++ b/ports/gumbo/CONTROL @@ -0,0 +1,3 @@ +Source: gumbo +Version: 0.10.1-1 +Description: An HTML5 parsing library in pure C99 diff --git a/ports/gumbo/portfile.cmake b/ports/gumbo/portfile.cmake new file mode 100644 index 0000000000..a4b0ded72e --- /dev/null +++ b/ports/gumbo/portfile.cmake @@ -0,0 +1,24 @@ +include(vcpkg_common_functions) +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(WARNING "Dynamic not supported building static") + set(VCPKG_LIBRARY_LINKAGE static) +endif() +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/gumbo-parser + REF v0.10.1 + SHA512 bb1fb55cd07076ab6a9f38dc14db50397dbdca9a04ace4895dfba8b8cbc09038a96e26070c09c75fa929ada2e815affe233c1e2ecd8afe2aba6201647cf277d1 + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/gumbo RENAME copyright) diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL index acc0b6c7db..a99477b378 100644 --- a/ports/harfbuzz/CONTROL +++ b/ports/harfbuzz/CONTROL @@ -1,4 +1,4 @@ Source: harfbuzz -Version: 1.4.6-1 +Version: 1.4.6-2 Description: HarfBuzz OpenType text shaping engine Build-Depends: freetype, glib (windows) diff --git a/ports/hdf5/CONTROL b/ports/hdf5/CONTROL index 70d1f9979e..38a0b8382e 100644 --- a/ports/hdf5/CONTROL +++ b/ports/hdf5/CONTROL @@ -1,4 +1,4 @@ Source: hdf5 -Version: 1.10.0-patch1-1 +Version: 1.10.0-patch1-2 Description: HDF5 is a data model, library, and file format for storing and managing data -Build-Depends: zlib, szip, msmpi \ No newline at end of file +Build-Depends: zlib, szip, msmpi diff --git a/ports/hpx/CONTROL b/ports/hpx/CONTROL index cfb599e512..a7f31fc421 100644 --- a/ports/hpx/CONTROL +++ b/ports/hpx/CONTROL @@ -1,5 +1,5 @@ Source: hpx -Version: 1.0.0-4 +Version: 1.0.0-5 Build-Depends: boost, hwloc Description: The C++ Standards Library for Concurrency and Parallelism HPX is a C++ Standards Library for Concurrency and Parallelism. It implements all of the corresponding facilities as defined by the C++ Standard. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process. We also extend the C++ Standard APIs to the distributed case. diff --git a/ports/http-parser/CONTROL b/ports/http-parser/CONTROL index 605f3354cd..a9edf40711 100644 --- a/ports/http-parser/CONTROL +++ b/ports/http-parser/CONTROL @@ -1,3 +1,3 @@ Source: http-parser -Version: 2.7.1-1 -Description: HTTP Parser. \ No newline at end of file +Version: 2.7.1-2 +Description: HTTP Parser. diff --git a/ports/hunspell/CONTROL b/ports/hunspell/CONTROL index ec7979e357..da62f205b5 100644 --- a/ports/hunspell/CONTROL +++ b/ports/hunspell/CONTROL @@ -1,3 +1,3 @@ Source: hunspell -Version: 1.6.1-1 +Version: 1.6.1-2 Description: The most popular spellchecking library. diff --git a/ports/hwloc/CONTROL b/ports/hwloc/CONTROL index 1bd3af6283..ef2564050c 100644 --- a/ports/hwloc/CONTROL +++ b/ports/hwloc/CONTROL @@ -1,4 +1,4 @@ Source: hwloc -Version: 1.11.7-1 +Version: 1.11.7-2 Description: Portable Hardware Locality (hwloc) The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs. diff --git a/ports/hypre/CONTROL b/ports/hypre/CONTROL index 9a96cb4d48..c41f309301 100644 --- a/ports/hypre/CONTROL +++ b/ports/hypre/CONTROL @@ -1,4 +1,4 @@ Source: hypre -Version: 2.11.2 +Version: 2.11.2-1 Description: SCALABLE LINEAR SOLVERS AND MULTIGRID METHODS -Build-Depends: msmpi \ No newline at end of file +Build-Depends: msmpi diff --git a/ports/ilmbase/CONTROL b/ports/ilmbase/CONTROL index 8bb0229059..2060d94d56 100644 --- a/ports/ilmbase/CONTROL +++ b/ports/ilmbase/CONTROL @@ -1,3 +1,3 @@ Source: ilmbase -Version: 2.2.0 +Version: 2.2.0-1 Description: Base libraries from ILM for OpenEXR diff --git a/ports/jansson/CONTROL b/ports/jansson/CONTROL index c14e7d7d8a..0cf3119123 100644 --- a/ports/jansson/CONTROL +++ b/ports/jansson/CONTROL @@ -1,3 +1,3 @@ Source: jansson -Version: v2.10 +Version: v2.10-1 Description: Jansson is a C library for encoding, decoding and manipulating JSON data diff --git a/ports/jasper/CONTROL b/ports/jasper/CONTROL index 682501e49b..70f3eda3c1 100644 --- a/ports/jasper/CONTROL +++ b/ports/jasper/CONTROL @@ -1,4 +1,4 @@ Source: jasper -Version: 2.0.13 +Version: 2.0.13-1 Description: Open source implementation of the JPEG-2000 Part-1 standard Build-Depends: libjpeg-turbo diff --git a/ports/jbigkit/CONTROL b/ports/jbigkit/CONTROL index 01a9921e1a..f0a7cc426b 100644 --- a/ports/jbigkit/CONTROL +++ b/ports/jbigkit/CONTROL @@ -1,3 +1,3 @@ Source: jbigkit -Version: 2.1 +Version: 2.1-1 Description: A software implementation of the JBIG1 data compression standard (ITU-T T.82) diff --git a/ports/jemalloc/CONTROL b/ports/jemalloc/CONTROL index c867b4573f..5bdca6c438 100644 --- a/ports/jemalloc/CONTROL +++ b/ports/jemalloc/CONTROL @@ -1,4 +1,4 @@ Source: jemalloc -Version: 4.3.1-1 +Version: 4.3.1-2 Description: jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support Build-Depends: diff --git a/ports/jsoncpp/CONTROL b/ports/jsoncpp/CONTROL index 19f3e054ad..f04c231f8c 100644 --- a/ports/jsoncpp/CONTROL +++ b/ports/jsoncpp/CONTROL @@ -1,3 +1,3 @@ Source: jsoncpp -Version: 1.8.1 +Version: 1.8.1-1 Description: jsoncpp is an implementation of a JSON reader and writer in C++. JSON (JavaScript Object Notation) is a lightweight data-interchange format that it is easy to parse and redeable for human. diff --git a/ports/jsonnet/CMakeLists.txt b/ports/jsonnet/CMakeLists.txt new file mode 100644 index 0000000000..4f749e5b83 --- /dev/null +++ b/ports/jsonnet/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.5.1) +project(jsonnet) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + +set( jsonnet_sources + core/desugarer.cpp + core/formatter.cpp + core/lexer.cpp + core/libjsonnet.cpp + core/parser.cpp + core/pass.cpp + core/static_analysis.cpp + core/string_utils.cpp + core/vm.cpp +) + +include_directories(third_party/md5 include cpp core stdlib) + +add_library(md5 STATIC third_party/md5/md5.cpp) + +add_library(libjsonnet ${jsonnet_sources}) +target_link_libraries(libjsonnet md5) + +add_library(libjsonnet++ cpp/libjsonnet++.cpp) +target_link_libraries(libjsonnet++ libjsonnet) + +add_executable(jsonnet cmd/jsonnet.cpp) +target_link_libraries(jsonnet libjsonnet) + + +install( + TARGETS libjsonnet libjsonnet++ + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +if(NOT DISABLE_INSTALL_TOOLS) + install ( + TARGETS jsonnet + RUNTIME DESTINATION tools/jsonnet + ) +endif() + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES include/libjsonnet++.h include/libjsonnet.h DESTINATION include) +endif() diff --git a/ports/jsonnet/CONTROL b/ports/jsonnet/CONTROL new file mode 100644 index 0000000000..0254fc14c2 --- /dev/null +++ b/ports/jsonnet/CONTROL @@ -0,0 +1,3 @@ +Source: jsonnet +Version: 2017-09-02-11cf9fa9f2fe8acbb14b096316006082564ca580 +Description: Jsonnet - The data templating language diff --git a/ports/jsonnet/portfile.cmake b/ports/jsonnet/portfile.cmake new file mode 100644 index 0000000000..0fa1bf14d0 --- /dev/null +++ b/ports/jsonnet/portfile.cmake @@ -0,0 +1,29 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/jsonnet + REF 11cf9fa9f2fe8acbb14b096316006082564ca580 + SHA512 77d9c9e86c4c6501a00f089c72dea522dd818ac0c810b603d18bea111f8f8cf9a25039600a9ba158c5f02142e24d49074e7fe0ddf113665eedf4c3ef66bf421a + HEAD_REF master +) + +vcpkg_execute_required_process( + COMMAND Powershell -Command "((Get-Content -Encoding Byte ${SOURCE_PATH}/stdlib/std.jsonnet) -join ',') + ',0' > ${SOURCE_PATH}/core/std.jsonnet.h" + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME "std.jsonnet" +) + + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/jsonnet) + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/jsonnet RENAME copyright) diff --git a/ports/jxrlib/CONTROL b/ports/jxrlib/CONTROL index a125cb1760..9fcc36254b 100644 --- a/ports/jxrlib/CONTROL +++ b/ports/jxrlib/CONTROL @@ -1,3 +1,3 @@ Source: jxrlib -Version: 1.1-3 +Version: 1.1-4 Description: Open source implementation of the jpegxr image format standard. diff --git a/ports/kf5plotting/CONTROL b/ports/kf5plotting/CONTROL new file mode 100644 index 0000000000..a24b8e3529 --- /dev/null +++ b/ports/kf5plotting/CONTROL @@ -0,0 +1,4 @@ +Source: kf5plotting +Version: 5.37.0 +Description: Lightweight plotting framework +Build-Depends: ecm, qt5 diff --git a/ports/kf5plotting/portfile.cmake b/ports/kf5plotting/portfile.cmake new file mode 100644 index 0000000000..39d6e8893f --- /dev/null +++ b/ports/kf5plotting/portfile.cmake @@ -0,0 +1,24 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/kplotting-5.37.0) +vcpkg_download_distfile(ARCHIVE + URLS "https://download.kde.org/stable/frameworks/5.37/kplotting-5.37.0.zip" + FILENAME "kplotting-5.37.0.zip" + SHA512 3a1b3f993123dea7141d280cd53ae1b5e49b859e9df39a188bac216758576106efd8b744e8f10f96fac158f980d79ae94d2b27f3d85a48fcd5673263ffce3c4e +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DBUILD_HTML_DOCS=OFF + -DBUILD_MAN_DOCS=OFF + -DBUILD_QTHELP_DOCS=OFF + -DBUILD_TESTING=OFF +) + +vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/KF5Plotting) +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/KF5plotting RENAME copyright) diff --git a/ports/lcms/CONTROL b/ports/lcms/CONTROL index b8c222333c..03efca6077 100644 --- a/ports/lcms/CONTROL +++ b/ports/lcms/CONTROL @@ -1,4 +1,4 @@ Source: lcms -Version: 2.8-2 +Version: 2.8-3 Build-Depends: -Description: Little CMS. \ No newline at end of file +Description: Little CMS. diff --git a/ports/lcms/portfile.cmake b/ports/lcms/portfile.cmake index 7a043d1f21..eeb12243c8 100644 --- a/ports/lcms/portfile.cmake +++ b/ports/lcms/portfile.cmake @@ -4,7 +4,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mm2/Little-CMS REF lcms2.8 - SHA512 ad904ce8acead6c8e255feb8386c1ab3fa432c3b36a3b521bc5c50993cb47ce4d42be0ad240dd8dd3bfeb3c0e884d8184f58797da5ef297b2f9a0e7da9788644 + SHA512 22ee94aa3333db4248607d8aa84343d324e04b30c154c46672c6f668e14a369b9b72f2557b8465218b6e9a2676cf8fa37d617b4aa13a013dc2337197a599e63a HEAD_REF master ) diff --git a/ports/leptonica/CONTROL b/ports/leptonica/CONTROL new file mode 100644 index 0000000000..cd1c44cb46 --- /dev/null +++ b/ports/leptonica/CONTROL @@ -0,0 +1,4 @@ +Source: leptonica +Version: 1.74.4-1 +Description: An open source library containing software that is broadly useful for image processing and image analysis applications +Build-Depends: libjpeg-turbo, zlib, libpng, tiff, giflib diff --git a/ports/leptonica/fix-cmakelists.patch b/ports/leptonica/fix-cmakelists.patch new file mode 100644 index 0000000000..18eb8cde50 --- /dev/null +++ b/ports/leptonica/fix-cmakelists.patch @@ -0,0 +1,34 @@ +--- a/src/CMakeLists.txt Sun Jun 11 23:04:50 2017 ++++ b/src/CMakeLists.txt Wed Aug 16 17:29:56 2017 +@@ -27,24 +27,31 @@ + endif() + + if (GIF_LIBRARY) ++ target_include_directories (leptonica PUBLIC ${GIF_INCLUDE_DIR}) + target_link_libraries (leptonica ${GIF_LIBRARY}) + endif() + if (JPEG_LIBRARY) ++ target_include_directories (leptonica PUBLIC ${JPEG_INCLUDE_DIR}) + target_link_libraries (leptonica ${JPEG_LIBRARY}) + endif() + if (JP2K_FOUND) ++ target_include_directories (leptonica PUBLIC ${JP2K_INCLUDE_DIR}) + target_link_libraries (leptonica ${JP2K_LIBRARIES}) + endif() + if (PNG_LIBRARY) ++ target_include_directories (leptonica PUBLIC ${PNG_INCLUDE_DIRS}) + target_link_libraries (leptonica ${PNG_LIBRARY}) + endif() + if (TIFF_LIBRARY) ++ target_include_directories (leptonica PUBLIC ${TIFF_INCLUDE_DIR}) + target_link_libraries (leptonica ${TIFF_LIBRARY}) + endif() + if (WEBP_FOUND) ++ target_include_directories (leptonica PUBLIC ${WEBP_INCLUDE_DIR}) + target_link_libraries (leptonica ${WEBP_LIBRARIES}) + endif() + if (ZLIB_LIBRARY) ++ target_include_directories (leptonica PUBLIC ${ZLIB_INCLUDE_DIR}) + target_link_libraries (leptonica ${ZLIB_LIBRARY}) + endif() + diff --git a/ports/leptonica/portfile.cmake b/ports/leptonica/portfile.cmake new file mode 100644 index 0000000000..a5d4330fd8 --- /dev/null +++ b/ports/leptonica/portfile.cmake @@ -0,0 +1,36 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO DanBloomberg/leptonica + REF 1.74.4 + SHA512 3b9d0be937883f733f72cbdf0b624ec245d9256a8b4622997f437d309efd7ad9695ad1cbe2224d543eb3ef8c44833567b3cc9a95e9a774ef9046b7acaf0ae744 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DCMAKE_REQUIRED_INCLUDES=${CURRENT_INSTALLED_DIR}/include # for check_include_file() +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake") + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) + +# Handle copyright +file(COPY ${SOURCE_PATH}/leptonica-license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/leptonica) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/leptonica/leptonica-license.txt ${CURRENT_PACKAGES_DIR}/share/leptonica/copyright) diff --git a/ports/libarchive/CONTROL b/ports/libarchive/CONTROL index 3cd81ee5c0..c176938078 100644 --- a/ports/libarchive/CONTROL +++ b/ports/libarchive/CONTROL @@ -1,4 +1,4 @@ Source: libarchive -Version: 3.3.2 +Version: 3.3.2-1 Description: Library for reading and writing streaming archives Build-Depends: zlib, bzip2, libxml2, lz4, liblzma, openssl diff --git a/ports/libbson/CONTROL b/ports/libbson/CONTROL index 141221ba4b..263608bf60 100644 --- a/ports/libbson/CONTROL +++ b/ports/libbson/CONTROL @@ -1,3 +1,3 @@ Source: libbson -Version: 1.6.2-1 -Description: libbson is a library providing useful routines related to building, parsing, and iterating BSON documents. \ No newline at end of file +Version: 1.6.2-2 +Description: libbson is a library providing useful routines related to building, parsing, and iterating BSON documents. diff --git a/ports/libconfig/CONTROL b/ports/libconfig/CONTROL index 45bf1db9ba..cd04693690 100644 --- a/ports/libconfig/CONTROL +++ b/ports/libconfig/CONTROL @@ -1,4 +1,4 @@ Source: libconfig -Version: 1.6.0 +Version: 1.6.0-1 Description: C/C++ library for processing configuration files Build-Depends: dirent diff --git a/ports/libepoxy/CONTROL b/ports/libepoxy/CONTROL index 95bc19474f..79ffdbf469 100644 --- a/ports/libepoxy/CONTROL +++ b/ports/libepoxy/CONTROL @@ -1,3 +1,3 @@ Source: libepoxy -Version: 1.4.3 +Version: 1.4.3-1 Description: Epoxy is a library for handling OpenGL function pointer management for you diff --git a/ports/libevent/CONTROL b/ports/libevent/CONTROL index 87c0d0a641..f260b6d014 100644 --- a/ports/libevent/CONTROL +++ b/ports/libevent/CONTROL @@ -1,4 +1,4 @@ Source: libevent -Version: 2.1.8-2 +Version: 2.1.8-3 Build-Depends: openssl -Description: An event notification library \ No newline at end of file +Description: An event notification library diff --git a/ports/libexif/CMakeLists.txt b/ports/libexif/CMakeLists.txt new file mode 100644 index 0000000000..ac32e82ebf --- /dev/null +++ b/ports/libexif/CMakeLists.txt @@ -0,0 +1,142 @@ +cmake_minimum_required(VERSION 3.0) +project(libexif LANGUAGES C) + +set(PACKAGE "libexif") + +option(ENABLE_NLS "Enable NLS" OFF) + +set(HEADERS + libexif/_stdint.h + libexif/exif.h + libexif/exif-byte-order.h + libexif/exif-content.h + libexif/exif-data.h + libexif/exif-data-type.h + libexif/exif-entry.h + libexif/exif-format.h + libexif/exif-ifd.h + libexif/exif-loader.h + libexif/exif-log.h + libexif/exif-mem.h + libexif/exif-mnote-data.h + libexif/exif-mnote-data-priv.h + libexif/exif-system.h + libexif/exif-tag.h + libexif/exif-utils.h +) + +set(SOURCES + libexif/exif-byte-order.c + libexif/exif-content.c + libexif/exif-data.c + libexif/exif-entry.c + libexif/exif-format.c + libexif/exif-ifd.c + libexif/exif-loader.c + libexif/exif-log.c + libexif/exif-mem.c + libexif/exif-mnote-data.c + libexif/exif-tag.c + libexif/exif-utils.c +) + +set(HEADERS_CANON + libexif/canon/exif-mnote-data-canon.h + libexif/canon/mnote-canon-entry.h + libexif/canon/mnote-canon-tag.h +) + +set(SOURCES_CANON + libexif/canon/exif-mnote-data-canon.c + libexif/canon/mnote-canon-entry.c + libexif/canon/mnote-canon-tag.c +) + +set(HEADERS_FUJI + libexif/fuji/exif-mnote-data-fuji.h + libexif/fuji/mnote-fuji-entry.h + libexif/fuji/mnote-fuji-tag.h +) + +set(SOURCES_FUJI + libexif/fuji/exif-mnote-data-fuji.c + libexif/fuji/mnote-fuji-entry.c + libexif/fuji/mnote-fuji-tag.c +) + +set(HEADERS_OLYMPUS + libexif/olympus/exif-mnote-data-olympus.h + libexif/olympus/mnote-olympus-entry.h + libexif/olympus/mnote-olympus-tag.h +) + +set(SOURCES_OLYMPUS + libexif/olympus/exif-mnote-data-olympus.c + libexif/olympus/mnote-olympus-entry.c + libexif/olympus/mnote-olympus-tag.c +) + +set(HEADERS_PENTAX + libexif/pentax/exif-mnote-data-pentax.h + libexif/pentax/mnote-pentax-entry.h + libexif/pentax/mnote-pentax-tag.h +) + +set(SOURCES_PENTAX + libexif/pentax/exif-mnote-data-pentax.c + libexif/pentax/mnote-pentax-entry.c + libexif/pentax/mnote-pentax-tag.c +) + +if(MSVC) + set(SOURCES_MSVC "libexif.def") +endif() + +add_library(libexif + ${SOURCES} + ${SOURCES_CANON} + ${SOURCES_FUJI} + ${SOURCES_OLYMPUS} + ${SOURCES_PENTAX} + ${SOURCES_MSVC} +) + +target_include_directories(libexif PRIVATE .) +target_include_directories(libexif PRIVATE ${CMAKE_BINARY_DIR}) +target_compile_definitions(libexif PRIVATE -D_CRT_SECURE_NO_WARNINGS) +target_compile_definitions(libexif PRIVATE -DGETTEXT_PACKAGE="${PACKAGE}") + +include(CheckFunctionExists) +include(CheckIncludeFile) + +check_function_exists(dcgettext HAVE_DCGETTEXT) +check_function_exists(gettext HAVE_DCGETTEXT) +check_function_exists(iconv HAVE_DCGETTEXT) +check_function_exists(localtime_r HAVE_DCGETTEXT) + +check_include_file(dlfcn.h HAVE_DLFCN_H) +check_include_file(inttypes.h HAVE_INTTYPES_H) +check_include_file(memory.h HAVE_MEMORY_H) +check_include_file(stdint.h HAVE_STDINT_H) +check_include_file(stdlib.h HAVE_STDLIB_H) +check_include_file(strings.h HAVE_STRINGS_H) +check_include_file(string.h HAVE_STRING_H) +check_include_file(sys/stat.h HAVE_SYS_STAT_H) +check_include_file(sys/stat.h HAVE_SYS_STAT_H) +check_include_file(sys/types.h HAVE_SYS_TYPES_H) +check_include_file(unistd.h HAVE_UNISTD_H) + +configure_file(config.h.cmake config.h) + +install( + TARGETS libexif + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib +) + +install(FILES ${HEADERS} DESTINATION include/libexif) +install(FILES ${HEADERS_CANON} DESTINATION include/libexif/canon) +install(FILES ${HEADERS_FUJI} DESTINATION include/libexif/fuji) +install(FILES ${HEADERS_OLYMPUS} DESTINATION include/libexif/olympus) +install(FILES ${HEADERS_PENTAX} DESTINATION include/libexif/pentax) diff --git a/ports/libexif/CONTROL b/ports/libexif/CONTROL new file mode 100644 index 0000000000..427d907f21 --- /dev/null +++ b/ports/libexif/CONTROL @@ -0,0 +1,3 @@ +Source: libexif +Version: 0.6.21-1 +Description: a library for parsing, editing, and saving EXIF data diff --git a/ports/libexif/config.h.cmake b/ports/libexif/config.h.cmake new file mode 100644 index 0000000000..4dfbdb1b00 --- /dev/null +++ b/ports/libexif/config.h.cmake @@ -0,0 +1,96 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#cmakedefine ENABLE_NLS + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#cmakedefine HAVE_DCGETTEXT + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#cmakedefine HAVE_GETTEXT + +/* Define if you have the iconv() function. */ +#cmakedefine HAVE_ICONV + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H + +/* Define to 1 if you have the `localtime_r' function. */ +#cmakedefine HAVE_LOCALTIME_R + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H + +/* Define as const if the declaration of iconv() needs const. */ +#cmakedefine ICONV_CONST + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#cmakedefine LT_OBJDIR + +/* Name of package */ +#cmakedefine PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#cmakedefine PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#cmakedefine PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#cmakedefine PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#cmakedefine PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#cmakedefine PACKAGE_URL + +/* Define to the version of this package. */ +#cmakedefine PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS + +/* Version number of package */ +#cmakedefine VERSION + +/* Define to empty if `const' does not conform to ANSI C. */ +#cmakedefine const + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#cmakedefine inline +#endif + +#ifdef _MSC_VER +#include +typedef SSIZE_T ssize_t; +#endif \ No newline at end of file diff --git a/ports/libexif/libexif.def b/ports/libexif/libexif.def new file mode 100644 index 0000000000..6bd0ca424e --- /dev/null +++ b/ports/libexif/libexif.def @@ -0,0 +1,130 @@ +EXPORTS + exif_array_set_byte_order + exif_byte_order_get_name + exif_content_add_entry + exif_content_dump + exif_content_fix + exif_content_foreach_entry + exif_content_free + exif_content_get_entry + exif_content_get_ifd + exif_content_log + exif_content_new + exif_content_new_mem + exif_content_ref + exif_content_remove_entry + exif_content_unref + exif_data_dump + exif_data_fix + exif_data_foreach_content + exif_data_free + exif_data_get_byte_order + exif_data_get_data_type + exif_data_get_log + exif_data_get_mnote_data + exif_data_load_data + exif_data_log + exif_data_new + exif_data_new_from_data + exif_data_new_from_file + exif_data_new_mem + exif_data_option_get_description + exif_data_option_get_name + exif_data_ref + exif_data_save_data + exif_data_set_byte_order + exif_data_set_data_type + exif_data_set_option + exif_data_unref + exif_data_unset_option + exif_entry_dump + exif_entry_fix + exif_entry_free + exif_entry_get_value + exif_entry_initialize + exif_entry_new + exif_entry_new_mem + exif_entry_ref + exif_entry_unref + exif_format_get_name + exif_format_get_size + exif_get_long + exif_get_rational + exif_get_short + exif_get_slong + exif_get_srational + exif_get_sshort + exif_ifd_get_name + exif_loader_get_buf + exif_loader_get_data + exif_loader_log + exif_loader_new + exif_loader_new_mem + exif_loader_ref + exif_loader_reset + exif_loader_unref + exif_loader_write + exif_loader_write_file + exif_log + exif_log_code_get_message + exif_log_code_get_title + exif_log_free + exif_log_new + exif_log_new_mem + exif_log_ref + exif_log_set_func + exif_log_unref + exif_logv + exif_mem_alloc + exif_mem_free + exif_mem_new + exif_mem_new_default + exif_mem_realloc + exif_mem_ref + exif_mem_unref + exif_mnote_data_canon_new + exif_mnote_data_construct + exif_mnote_data_count + exif_mnote_data_get_description + exif_mnote_data_get_id + exif_mnote_data_get_name + exif_mnote_data_get_title + exif_mnote_data_get_value + exif_mnote_data_load + exif_mnote_data_log + exif_mnote_data_olympus_new + exif_mnote_data_pentax_new + exif_mnote_data_ref + exif_mnote_data_save + exif_mnote_data_set_byte_order + exif_mnote_data_set_offset + exif_mnote_data_unref + exif_set_long + exif_set_rational + exif_set_short + exif_set_slong + exif_set_srational + exif_set_sshort + exif_tag_from_name + exif_tag_get_description + exif_tag_get_description_in_ifd + exif_tag_get_name + exif_tag_get_name_in_ifd + exif_tag_get_support_level_in_ifd + exif_tag_get_title + exif_tag_get_title_in_ifd + exif_tag_table_count + exif_tag_table_get_name + exif_tag_table_get_tag + mnote_canon_entry_get_value + mnote_canon_tag_get_description + mnote_canon_tag_get_name + mnote_canon_tag_get_title + mnote_olympus_entry_get_value + mnote_olympus_tag_get_description + mnote_olympus_tag_get_name + mnote_olympus_tag_get_title + mnote_pentax_entry_get_value + mnote_pentax_tag_get_description + mnote_pentax_tag_get_name + mnote_pentax_tag_get_title \ No newline at end of file diff --git a/ports/libexif/portfile.cmake b/ports/libexif/portfile.cmake new file mode 100644 index 0000000000..0442d8c159 --- /dev/null +++ b/ports/libexif/portfile.cmake @@ -0,0 +1,31 @@ +include(vcpkg_common_functions) + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "libexif currently only supports being built for desktop") +endif() + +set(LIBEXIF_VERSION 0.6.21) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libexif-${LIBEXIF_VERSION}) + +vcpkg_download_distfile(ARCHIVE + URLS "https://freefr.dl.sourceforge.net/project/libexif/libexif/${LIBEXIF_VERSION}/libexif-${LIBEXIF_VERSION}.tar.bz2" + FILENAME "libexif-${LIBEXIF_VERSION}.tar.bz2" + SHA512 4e0fe2abe85d1c95b41cb3abe1f6333dc3a9eb69dba106a674a78d74a4d5b9c5a19647118fa1cc2d72b98a29853394f1519eda9e2889eb28d3be26b21c7cfc35 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h.cmake DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/libexif.def DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libexif RENAME copyright) diff --git a/ports/libffi/CONTROL b/ports/libffi/CONTROL index 83725f49c0..ee1f0de9e1 100644 --- a/ports/libffi/CONTROL +++ b/ports/libffi/CONTROL @@ -1,3 +1,3 @@ Source: libffi -Version: 3.1 +Version: 3.1-1 Description: Portable, high level programming interface to various calling conventions diff --git a/ports/libflac/CONTROL b/ports/libflac/CONTROL index b81ec3cd14..2a0572d2a0 100644 --- a/ports/libflac/CONTROL +++ b/ports/libflac/CONTROL @@ -1,4 +1,4 @@ Source: libflac -Version: 1.3.2-2 +Version: 1.3.2-3 Description: Library for manipulating FLAC files Build-Depends: libogg diff --git a/ports/libfreenect2/CONTROL b/ports/libfreenect2/CONTROL new file mode 100644 index 0000000000..90c53db6d9 --- /dev/null +++ b/ports/libfreenect2/CONTROL @@ -0,0 +1,4 @@ +Source: libfreenect2 +Version: 0.2.0 +Build-Depends:libusb +Description: Open source drivers for the Kinect for Windows v2 device diff --git a/ports/libfreenect2/portfile.cmake b/ports/libfreenect2/portfile.cmake new file mode 100644 index 0000000000..ba41bb9041 --- /dev/null +++ b/ports/libfreenect2/portfile.cmake @@ -0,0 +1,41 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO OpenKinect/libfreenect2 + REF v0.2.0 + SHA512 3525e3f21462cecd3b198f64545786ffddc2cafdfd8146e5a46f0300b83f29f1ad0739618a07ab195c276149d7e2e909f7662e2d379a2880593cac75942b0666 + HEAD_REF master +) + +file(READ ${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake FINDLIBUSB) +string(REPLACE "(WIN32)" + "(WIN32_DISABLE)" FINDLIBUSB "${FINDLIBUSB}") +file(WRITE ${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake "${FINDLIBUSB}") + +file(READ ${SOURCE_PATH}/examples/CMakeLists.txt EXAMPLECMAKE) +string(REPLACE "(WIN32)" + "(WIN32_DISABLE)" EXAMPLECMAKE "${EXAMPLECMAKE}") +file(WRITE ${SOURCE_PATH}/examples/CMakeLists.txt "${EXAMPLECMAKE}") + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + -DENABLE_CUDA=OFF +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/freenect2") + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# The cmake config is actually called freenect2Config.cmake instead of libfreenect2Config.cmake ... +file(RENAME ${CURRENT_PACKAGES_DIR}/share/libfreenect2 ${CURRENT_PACKAGES_DIR}/share/freenect2) + +# license file needs to be in share/libfreenect2 otherwise vcpkg will complain +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/libfreenect2/) +file(COPY ${SOURCE_PATH}/GPL2 DESTINATION ${CURRENT_PACKAGES_DIR}/share/libfreenect2/) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/libfreenect2/GPL2 ${CURRENT_PACKAGES_DIR}/share/libfreenect2/copyright) diff --git a/ports/libgd/CONTROL b/ports/libgd/CONTROL index 4d9d5bd24b..f86afe90f0 100644 --- a/ports/libgd/CONTROL +++ b/ports/libgd/CONTROL @@ -1,4 +1,4 @@ Source: libgd -Version: 2.2.4-2 +Version: 2.2.4-3 Description: Open source code library for the dynamic creation of images by programmers. Build-Depends: freetype, libjpeg-turbo, libpng, libwebp, tiff, fontconfig diff --git a/ports/libharu/CONTROL b/ports/libharu/CONTROL index b326124332..4ca6f8c26a 100644 --- a/ports/libharu/CONTROL +++ b/ports/libharu/CONTROL @@ -1,4 +1,4 @@ Source: libharu -Version: 2017-08-15-d84867ebf9f-1 +Version: 2017-08-15-d84867ebf9f-2 Description: libharu - free PDF library Build-Depends: zlib,libpng diff --git a/ports/libiconv/CONTROL b/ports/libiconv/CONTROL index c79f06bb8e..851c8dd010 100644 --- a/ports/libiconv/CONTROL +++ b/ports/libiconv/CONTROL @@ -1,3 +1,3 @@ Source: libiconv -Version: 1.14 +Version: 1.14-1 Description: GNU Unicode text conversion diff --git a/ports/libjpeg-turbo/CONTROL b/ports/libjpeg-turbo/CONTROL index 14dd8ad9b1..bf642bd1b4 100644 --- a/ports/libjpeg-turbo/CONTROL +++ b/ports/libjpeg-turbo/CONTROL @@ -1,3 +1,3 @@ Source: libjpeg-turbo -Version: 1.5.2 +Version: 1.5.2-1 Description: libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems. diff --git a/ports/libkml/CONTROL b/ports/libkml/CONTROL index 1fe7086af8..bc054e036b 100644 --- a/ports/libkml/CONTROL +++ b/ports/libkml/CONTROL @@ -1,4 +1,4 @@ Source: libkml -Version: 1.3.0 +Version: 1.3.0-1 Description: Reference implementation of OGC KML 2.2 Build-Depends: zlib, boost, expat, minizip, uriparser diff --git a/ports/liblzma/CONTROL b/ports/liblzma/CONTROL index 3c4cbfb2b0..c29002b9ce 100644 --- a/ports/liblzma/CONTROL +++ b/ports/liblzma/CONTROL @@ -1,3 +1,3 @@ Source: liblzma -Version: 5.2.3-1 +Version: 5.2.3-2 Description: Compression library with an API similar to that of zlib. diff --git a/ports/libmad/CONTROL b/ports/libmad/CONTROL index 04cec21bfb..daf25faa14 100644 --- a/ports/libmad/CONTROL +++ b/ports/libmad/CONTROL @@ -1,3 +1,3 @@ Source: libmad -Version: 0.15.1 +Version: 0.15.1-1 Description: high-quality MPEG audio decoder diff --git a/ports/libmariadb/CONTROL b/ports/libmariadb/CONTROL index 26e23810ad..89f5647a7f 100644 --- a/ports/libmariadb/CONTROL +++ b/ports/libmariadb/CONTROL @@ -1,3 +1,3 @@ Source: libmariadb -Version: 2.3.2 +Version: 2.3.2-1 Description: MariaDB Connector/C is used to connect C/C++ applications to MariaDB and MySQL databases diff --git a/ports/libmicrohttpd/CMakeLists.txt b/ports/libmicrohttpd/CMakeLists.txt new file mode 100644 index 0000000000..d76c09122c --- /dev/null +++ b/ports/libmicrohttpd/CMakeLists.txt @@ -0,0 +1,78 @@ +cmake_minimum_required(VERSION 3.8) +project(libmicrohttpd C) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +set(MIN_SRC contrib/libmicrohttpd) + + +set(SRC + src/microhttpd/base64.c + src/microhttpd/basicauth.c + src/microhttpd/connection.c + src/microhttpd/daemon.c + src/microhttpd/digestauth.c + src/microhttpd/internal.c + src/microhttpd/md5.c + src/microhttpd/memorypool.c + src/microhttpd/mhd_mono_clock.c + src/microhttpd/postprocessor.c + src/microhttpd/reason_phrase.c + src/microhttpd/response.c + src/microhttpd/tsearch.c + src/microhttpd/sysfdsetsize.c + src/microhttpd/mhd_str.c + src/microhttpd/mhd_threads.c + src/microhttpd/mhd_sockets.c + src/microhttpd/mhd_itc.c + src/microhttpd/mhd_compat.c +) +set(HEADERS + src/microhttpd/base64.h + src/microhttpd/connection.h + src/microhttpd/internal.h + src/microhttpd/md5.h + src/microhttpd/memorypool.h + src/microhttpd/mhd_byteorder.h + src/microhttpd/mhd_limits.h + src/microhttpd/mhd_mono_clock.h + src/microhttpd/response.h + src/microhttpd/tsearch.h + src/microhttpd/sysfdsetsize.h + src/microhttpd/mhd_str.h + src/microhttpd/mhd_threads.h + src/microhttpd/mhd_locks.h + src/microhttpd/mhd_sockets.h + src/microhttpd/mhd_itc.h + src/microhttpd/mhd_itc_types.h + src/microhttpd/mhd_compat.h +) + +if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + +include_directories(${HEADERS} src/include w32/common) + +add_library(libmicrohttpd ${SRC}) + +if(BUILD_SHARED_LIBS) + target_compile_definitions(libmicrohttpd PRIVATE -DMHD_W32DLL) +else() + target_compile_definitions(libmicrohttpd PRIVATE -DMHD_W32LIB) +endif() + + target_link_libraries(libmicrohttpd ws2_32) + +install( + TARGETS libmicrohttpd + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES src/include/microhttpd.h DESTINATION include) +endif() diff --git a/ports/libmicrohttpd/CONTROL b/ports/libmicrohttpd/CONTROL new file mode 100644 index 0000000000..2c5815aed9 --- /dev/null +++ b/ports/libmicrohttpd/CONTROL @@ -0,0 +1,3 @@ +Source: libmicrohttpd +Version: 0.9.55-1 +Description: GNU libmicrohttpd is a small C library that is supposed to make it easy to run an HTTP server as part of another application diff --git a/ports/libmicrohttpd/portfile.cmake b/ports/libmicrohttpd/portfile.cmake new file mode 100644 index 0000000000..8b11e3e9cc --- /dev/null +++ b/ports/libmicrohttpd/portfile.cmake @@ -0,0 +1,23 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libmicrohttpd-0.9.55) +vcpkg_download_distfile(ARCHIVE + URLS "ftp://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.55.tar.gz" + FILENAME "libmicrohttpd-0.9.55.tar.gz" + SHA512 b410e7253d7c98c40b5e8b8dcd1f93bcbb05c88717190e8dae73073d36465e8e5cfa53c6c5098de60051a5ec64dc423fd94f4b06537d8146b744aa99f5a0b173 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +vcpkg_copy_pdbs() + +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libmicrohttpd RENAME copyright) diff --git a/ports/libmikmod/CONTROL b/ports/libmikmod/CONTROL index b9f9709594..c1dc45c3e5 100644 --- a/ports/libmikmod/CONTROL +++ b/ports/libmikmod/CONTROL @@ -1,4 +1,4 @@ Source: libmikmod -Version: 3.3.11.1 +Version: 3.3.11.1-1 Description: Mikmod is a module player and library supporting many formats, including mod, s3m, it, and xm. -Build-Depends: openal-soft \ No newline at end of file +Build-Depends: openal-soft diff --git a/ports/libmodplug/CONTROL b/ports/libmodplug/CONTROL index 60614602a2..e0cc81a3bf 100644 --- a/ports/libmodplug/CONTROL +++ b/ports/libmodplug/CONTROL @@ -1,3 +1,3 @@ Source: libmodplug -Version: 0.8.9.0 +Version: 0.8.9.0-1 Description: The ModPlug mod file playing library. diff --git a/ports/libmysql/CONTROL b/ports/libmysql/CONTROL index 9062499366..0c772e04e7 100644 --- a/ports/libmysql/CONTROL +++ b/ports/libmysql/CONTROL @@ -1,3 +1,3 @@ Source: libmysql -Version: 5.7.17-1 -Description: A MySQL client library for C development. \ No newline at end of file +Version: 5.7.17-2 +Description: A MySQL client library for C development. diff --git a/ports/libmysql/portfile.cmake b/ports/libmysql/portfile.cmake index 530732b71a..81ffdfb988 100644 --- a/ports/libmysql/portfile.cmake +++ b/ports/libmysql/portfile.cmake @@ -8,7 +8,7 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mysql-server-mysql-5.7.17) vcpkg_download_distfile(ARCHIVE URLS "https://github.com/mysql/mysql-server/archive/mysql-5.7.17.tar.gz" FILENAME "mysql-server-mysql-5.7.17.tar.gz" - SHA512 511027f28f0705f59a08ec369b1ebe5d9a77eb839d545898631f1ebbcb6b4b800f5b88511d3ae5d231c04e09a2d7b2b2d178264d36aeb2bc602cc1b0b248cfba + SHA512 31488972e08a6b83f88e6e3f7923aca91e01eac702f4942fdae92e13f66d92ac86c24dfe7a65a001db836c900147d1c3871b36af8cbb281a0e6c555617cac12c ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/libnice/CONTROL b/ports/libnice/CONTROL index 7d16f42622..de7b0b67ec 100644 --- a/ports/libnice/CONTROL +++ b/ports/libnice/CONTROL @@ -1,4 +1,4 @@ Source: libnice -Version: 0.1.13 +Version: 0.1.13-1 Description: Libnice is an implementation of the IETF's Interactive Connectivity Establishment (ICE) standard (RFC 5245) and the Session Traversal Utilities for NAT (STUN) standard (RFC 5389). -Build-Depends: glib \ No newline at end of file +Build-Depends: glib diff --git a/ports/libodb-pgsql/CONTROL b/ports/libodb-pgsql/CONTROL index a2daa777a4..f89d1f37c1 100644 --- a/ports/libodb-pgsql/CONTROL +++ b/ports/libodb-pgsql/CONTROL @@ -1,4 +1,4 @@ Source: libodb-pgsql -Version: 2.4.0 +Version: 2.4.0-1 Description: Description: PostgreSQL support for the ODB ORM library -Build-Depends: libodb, libpq \ No newline at end of file +Build-Depends: libodb, libpq diff --git a/ports/libodb-sqlite/CONTROL b/ports/libodb-sqlite/CONTROL index 5a87fb8477..89be9ee88d 100644 --- a/ports/libodb-sqlite/CONTROL +++ b/ports/libodb-sqlite/CONTROL @@ -1,4 +1,4 @@ Source: libodb-sqlite -Version: 2.4.0 +Version: 2.4.0-1 Description: Sqlite support for the ODB ORM library Build-Depends: libodb, sqlite3 diff --git a/ports/libodb/CONTROL b/ports/libodb/CONTROL index f9645d0981..3d502effe9 100644 --- a/ports/libodb/CONTROL +++ b/ports/libodb/CONTROL @@ -1,3 +1,3 @@ Source: libodb -Version: 2.4.0 +Version: 2.4.0-1 Description: ODB library, base runtime for the ODB ORM solution diff --git a/ports/libogg/CONTROL b/ports/libogg/CONTROL index 47fd8faabe..39205bd71e 100644 --- a/ports/libogg/CONTROL +++ b/ports/libogg/CONTROL @@ -1,3 +1,3 @@ Source: libogg -Version: 1.3.2-cab46b1-2 +Version: 1.3.2-cab46b1-3 Description: Ogg is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs. diff --git a/ports/libopusenc/CONTROL b/ports/libopusenc/CONTROL index 8f1ebb9ed2..93b2a75444 100644 --- a/ports/libopusenc/CONTROL +++ b/ports/libopusenc/CONTROL @@ -1,4 +1,4 @@ Source: libopusenc -Version: 0.1 +Version: 0.1-1 Description: Library for encoding .opus audio files and live streams. Build-Depends: opus diff --git a/ports/libp7-baical/CONTROL b/ports/libp7-baical/CONTROL index e117adea59..215810511f 100644 --- a/ports/libp7-baical/CONTROL +++ b/ports/libp7-baical/CONTROL @@ -1,3 +1,3 @@ Source: libp7-baical -Version: 4.4-1 +Version: 4.4-2 Description: P7 is a library for high-speed sending telemetry & trace data from application diff --git a/ports/libpng/CONTROL b/ports/libpng/CONTROL index 3238eec3b4..7899cbc8e5 100644 --- a/ports/libpng/CONTROL +++ b/ports/libpng/CONTROL @@ -1,4 +1,4 @@ Source: libpng -Version: 1.6.32 +Version: 1.6.32-1 Build-Depends: zlib Description: libpng is a library implementing an interface for reading and writing PNG (Portable Network Graphics) format files. diff --git a/ports/libpopt/CONTROL b/ports/libpopt/CONTROL index 0065bf3237..5ba1451b62 100644 --- a/ports/libpopt/CONTROL +++ b/ports/libpopt/CONTROL @@ -1,3 +1,3 @@ Source: libpopt -Version: 1.16-10~vcpkg1 +Version: 1.16-10~vcpkg1-1 Description: Library for parsing command line parameters diff --git a/ports/libpq/CONTROL b/ports/libpq/CONTROL index 580a068579..b91e08526d 100644 --- a/ports/libpq/CONTROL +++ b/ports/libpq/CONTROL @@ -1,4 +1,4 @@ Source: libpq -Version: 9.6.1 +Version: 9.6.1-1 Description: The official database access API of postgresql Build-Depends: openssl diff --git a/ports/libraw/CONTROL b/ports/libraw/CONTROL index 9d23b7740b..4860b0a6bd 100644 --- a/ports/libraw/CONTROL +++ b/ports/libraw/CONTROL @@ -1,4 +1,4 @@ Source: libraw -Version: 0.18.2-3 +Version: 0.18.2-4 Build-Depends: lcms, jasper Description: raw image decoder library diff --git a/ports/libsigcpp/CONTROL b/ports/libsigcpp/CONTROL index da23382000..97667dd7d9 100644 --- a/ports/libsigcpp/CONTROL +++ b/ports/libsigcpp/CONTROL @@ -1,3 +1,3 @@ Source: libsigcpp -Version: 2.99 +Version: 2.99-1 Description: Typesafe callback framework for C++ diff --git a/ports/libsndfile/CONTROL b/ports/libsndfile/CONTROL index c1949d8fc2..9d3d9b423e 100644 --- a/ports/libsndfile/CONTROL +++ b/ports/libsndfile/CONTROL @@ -1,4 +1,4 @@ Source: libsndfile -Version: libsndfile-1.0.29-6830c42 +Version: libsndfile-1.0.29-6830c42-1 Description: Library to read, write and manipulate many soundfile types. Authored by Eric de Castro Lopo Build-Depends: libogg, libflac, libvorbis diff --git a/ports/libspatialite/CONTROL b/ports/libspatialite/CONTROL new file mode 100644 index 0000000000..1f7917a36d --- /dev/null +++ b/ports/libspatialite/CONTROL @@ -0,0 +1,5 @@ +Source: libspatialite +Version: 4.3.0a +Description: SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities. +Build-Depends: libxml2, sqlite3, geos, proj4, zlib, freexl, libiconv + diff --git a/ports/libspatialite/fix-makefiles.patch b/ports/libspatialite/fix-makefiles.patch new file mode 100644 index 0000000000..9372739bbb --- /dev/null +++ b/ports/libspatialite/fix-makefiles.patch @@ -0,0 +1,61 @@ +diff --git a/makefile.vc b/makefile.vc +index 9b9e8ee..b524a27 100644 +--- a/makefile.vc ++++ b/makefile.vc +@@ -59,7 +59,7 @@ LIBOBJ = src\gaiaaux\gg_sqlaux.obj src\gaiaaux\gg_utf8.obj \ + src\versioninfo\version.obj src\virtualtext\virtualtext.obj + SPATIALITE_DLL = spatialite$(VERSION).dll + +-CFLAGS = /nologo -I.\src\headers -I. -IC:\OSGeo4W\include $(OPTFLAGS) ++CFLAGS = /nologo -I.\src\headers -I. -I$(INSTALLED_ROOT)\include $(OPTFLAGS) + + default: all + +@@ -73,12 +73,9 @@ spatialite.lib: $(LIBOBJ) + $(SPATIALITE_DLL): spatialite_i.lib + + spatialite_i.lib: $(LIBOBJ) +- link /debug /dll /out:$(SPATIALITE_DLL) \ ++ link $(LINK_FLAGS) /dll /out:$(SPATIALITE_DLL) \ + /implib:spatialite_i.lib $(LIBOBJ) \ +- C:\OSGeo4W\lib\proj_i.lib C:\OSGeo4W\lib\geos_c.lib \ +- C:\OSGeo4w\lib\freexl_i.lib C:\OSGeo4w\lib\iconv.lib \ +- C:\OSGeo4W\lib\sqlite3_i.lib C:\OSGeo4W\lib\zlib.lib \ +- C:\OSGeo4W\lib\libxml2.lib ++ $(LIBS_ALL) + if exist $(SPATIALITE_DLL).manifest mt -manifest \ + $(SPATIALITE_DLL).manifest -outputresource:$(SPATIALITE_DLL);2 + +@@ -90,16 +87,7 @@ clean: + del *.exp + del *.manifest + del *.lib +- del src\gaiaaux\*.obj +- del src\gaiaexif\*.obj +- del src\gaiageo\*.obj +- del src\spatialite\*.obj +- del src\srsinit\*.obj +- del src\versioninfo\*.obj +- del src\virtualtext\*.obj +- del src\wfs\*.obj +- del src\dxf\*.obj +- del src\md5\*.obj ++ forfiles /m *.obj* /s /c "cmd /c del @path" & exit 0 + del *.pdb + + install: all +diff --git a/nmake.opt b/nmake.opt +index 0960ec1..276bc84 100644 +--- a/nmake.opt ++++ b/nmake.opt +@@ -1,8 +1,8 @@ + # Directory tree where SpatiaLite will be installed. +-INSTDIR=C:\OSGeo4W ++INSTDIR=$(INST_DIR) + + # Uncomment the first for an optimized build, or the second for debug. +-OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \ ++OPTFLAGS= /nologo /fp:precise /W3 $(CL_FLAGS) /D_CRT_SECURE_NO_WARNINGS \ + /DDLL_EXPORT /DYY_NO_UNISTD_H + #OPTFLAGS= /nologo /Zi /MD /Fdspatialite.pdb /DDLL_EXPORT + diff --git a/ports/libspatialite/fix-sources.patch b/ports/libspatialite/fix-sources.patch new file mode 100644 index 0000000000..63def0d3ca --- /dev/null +++ b/ports/libspatialite/fix-sources.patch @@ -0,0 +1,32 @@ +diff --git a/config-msvc.h b/config-msvc.h +index 9c7f477..a812546 100644 +--- a/config-msvc.h ++++ b/config-msvc.h +@@ -143,7 +143,7 @@ + #define HAVE_SYS_TYPES_H 1 + + /* Define to 1 if you have the header file. */ +-#define HAVE_UNISTD_H 1 ++#undef HAVE_UNISTD_H + + /* Define to 1 if you have the header file. */ + #define HAVE_ZLIB_H 1 +diff --git a/src/gaiageo/gg_extras.c b/src/gaiageo/gg_extras.c +index ff3dd7c..49ec986 100644 +--- a/src/gaiageo/gg_extras.c ++++ b/src/gaiageo/gg_extras.c +@@ -59,14 +59,6 @@ the terms of any one of the MPL, the GPL or the LGPL. + #include + #include + +-#if defined(_WIN32) && !defined(__MINGW32__) +-static double +-rint (double x) +-{ +- return floor (x + 0.5); +-} +-#endif +- + static void + auxGridSnapPoint (int dimension_model, gaiaPointPtr pt, gaiaGeomCollPtr result, + double origin_x, double origin_y, double origin_z, diff --git a/ports/libspatialite/portfile.cmake b/ports/libspatialite/portfile.cmake new file mode 100644 index 0000000000..6517c1d550 --- /dev/null +++ b/ports/libspatialite/portfile.cmake @@ -0,0 +1,105 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libspatialite-4.3.0a) +vcpkg_download_distfile(ARCHIVE + URLS "http://www.gaia-gis.it/gaia-sins/libspatialite-4.3.0a.tar.gz" + FILENAME "libspatialite-4.3.0a.tar.gz" + SHA512 adfd63e8dde0f370b07e4e7bb557647d2bfb5549205b60bdcaaca69ff81298a3d885e7c1ca515ef56dd0aca152ae940df8b5dbcb65bb61ae0a9337499895c3c0 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +find_program(NMAKE nmake) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch + ${CMAKE_CURRENT_LIST_DIR}/fix-sources.patch +) + +# fix most of the problems when spacebar is in the path +set(CURRENT_INSTALLED_DIR "\"${CURRENT_INSTALLED_DIR}\"") + +if(VCPKG_CRT_LINKAGE STREQUAL dynamic) + set(CL_FLAGS_DBG "/MDd /Zi") + set(CL_FLAGS_REL "/MD /Ox") + set(GEOS_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/geos_c.lib") + set(GEOS_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/geos_c.lib") + set(LIBXML2_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib") + set(LIBXML2_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib") +else() + set(CL_FLAGS_DBG "/MTd /Zi") + set(CL_FLAGS_REL "/MT /Ox") + set(GEOS_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/libgeos_c.lib ${CURRENT_INSTALLED_DIR}/lib/libgeos.lib") + set(GEOS_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libgeos_c.lib ${CURRENT_INSTALLED_DIR}/debug/lib/libgeos.lib") + set(LIBXML2_LIBS_REL "${CURRENT_INSTALLED_DIR}/lib/libxml2.lib ${CURRENT_INSTALLED_DIR}/lib/lzma.lib ws2_32.lib") + set(LIBXML2_LIBS_DBG "${CURRENT_INSTALLED_DIR}/debug/lib/libxml2.lib ${CURRENT_INSTALLED_DIR}/debug/lib/lzma.lib ws2_32.lib") +endif() + +set(LIBS_ALL_DBG + "${CURRENT_INSTALLED_DIR}/debug/lib/libiconv.lib \ + ${CURRENT_INSTALLED_DIR}/debug/lib/libcharset.lib \ + ${CURRENT_INSTALLED_DIR}/debug/lib/sqlite3.lib \ + ${CURRENT_INSTALLED_DIR}/debug/lib/freexl.lib \ + ${CURRENT_INSTALLED_DIR}/debug/lib/zlibd.lib \ + ${LIBXML2_LIBS_DBG} \ + ${GEOS_LIBS_DBG} \ + ${CURRENT_INSTALLED_DIR}/debug/lib/projd.lib" + ) +set(LIBS_ALL_REL + "${CURRENT_INSTALLED_DIR}/lib/libiconv.lib \ + ${CURRENT_INSTALLED_DIR}/lib/libcharset.lib \ + ${CURRENT_INSTALLED_DIR}/lib/sqlite3.lib \ + ${CURRENT_INSTALLED_DIR}/lib/freexl.lib \ + ${CURRENT_INSTALLED_DIR}/lib/zlib.lib \ + ${LIBXML2_LIBS_REL} \ + ${GEOS_LIBS_REL} \ + ${CURRENT_INSTALLED_DIR}/lib/proj.lib" + ) + +################ +# Debug build +################ +message(STATUS "Building ${TARGET_TRIPLET}-dbg") + +file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG) + +vcpkg_execute_required_process( + COMMAND ${NMAKE} -f makefile.vc clean install + "INST_DIR=\"${INST_DIR_DBG}\"" INSTALLED_ROOT=${CURRENT_INSTALLED_DIR} "LINK_FLAGS=/debug" "CL_FLAGS=${CL_FLAGS_DBG}" "LIBS_ALL=${LIBS_ALL_DBG}" + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME nmake-build-${TARGET_TRIPLET}-debug +) +message(STATUS "Building ${TARGET_TRIPLET}-dbg done") +vcpkg_copy_pdbs() + +################ +# Release build +################ +message(STATUS "Building ${TARGET_TRIPLET}-rel") + +file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL) +vcpkg_execute_required_process( + COMMAND ${NMAKE} -f makefile.vc clean install + "INST_DIR=\"${INST_DIR_REL}\"" INSTALLED_ROOT=${CURRENT_INSTALLED_DIR} "LINK_FLAGS=" "CL_FLAGS=${CL_FLAGS_REL}" "LIBS_ALL=${LIBS_ALL_REL}" + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME nmake-build-${TARGET_TRIPLET}-release +) +message(STATUS "Building ${TARGET_TRIPLET}-rel done") + + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libspatialite RENAME copyright) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/spatialite_i.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite_i.lib) +else() + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/spatialite.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/spatialite_i.lib ${CURRENT_PACKAGES_DIR}/lib/spatialite.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/spatialite.lib) +endif() + +message(STATUS "Packaging ${TARGET_TRIPLET} done") diff --git a/ports/libssh/CONTROL b/ports/libssh/CONTROL index 284d44091c..9ae256937c 100644 --- a/ports/libssh/CONTROL +++ b/ports/libssh/CONTROL @@ -1,4 +1,4 @@ Source: libssh -Version: 0.7.5 +Version: 0.7.5-1 Description:libssh is a multiplatform C library implementing the SSHv2 and SSHv1 protocol on client and server side Build-Depends: zlib, openssl diff --git a/ports/libssh2/CONTROL b/ports/libssh2/CONTROL index 715ffa0bd8..5c68d26936 100644 --- a/ports/libssh2/CONTROL +++ b/ports/libssh2/CONTROL @@ -1,4 +1,4 @@ Source: libssh2 -Version: 1.8.0-1 +Version: 1.8.0-2 Build-Depends: zlib, openssl -Description: The SSH library \ No newline at end of file +Description: The SSH library diff --git a/ports/libstemmer/CMakeLists.txt b/ports/libstemmer/CMakeLists.txt new file mode 100644 index 0000000000..787bb26ec3 --- /dev/null +++ b/ports/libstemmer/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.8.0) + +project(libstemmer) + +file(GLOB SNOWBALL_SOURCES + src_c/*.c + runtime/api.c + runtime/utilities.c + libstemmer/libstemmer.c +) + +add_library(stemmer ${SNOWBALL_SOURCES}) + +install( + TARGETS stemmer + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES include/libstemmer.h DESTINATION include) +endif() diff --git a/ports/libstemmer/CONTROL b/ports/libstemmer/CONTROL new file mode 100644 index 0000000000..c09295b62f --- /dev/null +++ b/ports/libstemmer/CONTROL @@ -0,0 +1,3 @@ +Source: libstemmer +Version: 2017-9-3 +Description: Snowball is a small string processing language designed for creating stemming algorithms for use in Information Retrieval diff --git a/ports/libstemmer/LICENSE b/ports/libstemmer/LICENSE new file mode 100644 index 0000000000..0c9e7c0080 --- /dev/null +++ b/ports/libstemmer/LICENSE @@ -0,0 +1,19 @@ +Snowball - License +Except where explicitly noted, all the software given out on this Snowball site is covered by the 3-clause BSD License: + +Copyright (c) 2001, Dr Martin Porter, +Copyright (c) 2002, Richard Boulton. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Essentially, all this means is that you can do what you like with the code, except claim another Copyright for it, or claim that it is issued under a different license. The software is also issued without warranties, which means that if anyone suffers through its use, they cannot come back and sue you. You also have to alert anyone to whom you give the Snowball software to the fact that it is covered by the BSD license. + +We have not bothered to insert the licensing arrangement into the text of the Snowball software. diff --git a/ports/libstemmer/portfile.cmake b/ports/libstemmer/portfile.cmake new file mode 100644 index 0000000000..9a76c3a941 --- /dev/null +++ b/ports/libstemmer/portfile.cmake @@ -0,0 +1,24 @@ +include(vcpkg_common_functions) +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(WARNING "Dynamic not supported building static") + set(VCPKG_LIBRARY_LINKAGE static) +endif() +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libstemmer_c) +vcpkg_download_distfile(ARCHIVE + URLS "http://snowball.tartarus.org/dist/libstemmer_c.tgz" + FILENAME "libstemmer_c.tgz" + SHA512 9ab5b8bfd5b4071dbbd63d769e09fae3971b49ee441ad970aa95d90b3297f5ffc9deed1613d99974d1485bf3b69292663591957f52bbeddcadbf9d9a4af432f2 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libstemmer RENAME copyright) diff --git a/ports/libtheora/CONTROL b/ports/libtheora/CONTROL index b964eb8ef8..7324f05264 100644 --- a/ports/libtheora/CONTROL +++ b/ports/libtheora/CONTROL @@ -1,4 +1,4 @@ Source: libtheora -Version: 1.2.0alpha1-20170719~vcpkg1 +Version: 1.2.0alpha1-20170719~vcpkg1-1 Description: Theora is a free and open video compression format from the Xiph.org Foundation. Build-Depends: libogg diff --git a/ports/libtorrent/CONTROL b/ports/libtorrent/CONTROL index 3e2294cee9..f2618a4efa 100644 --- a/ports/libtorrent/CONTROL +++ b/ports/libtorrent/CONTROL @@ -1,4 +1,4 @@ Source: libtorrent -Version: 1.1.4 +Version: 1.1.4-1 Description: An efficient feature complete C++ BitTorrent implementation Build-Depends: boost, openssl diff --git a/ports/libunibreak/CMakeLists.txt b/ports/libunibreak/CMakeLists.txt new file mode 100644 index 0000000000..9ee5437d36 --- /dev/null +++ b/ports/libunibreak/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required(VERSION 3.8.0) + +project(libunibreak) + +set(libunibreak_srcs + src/linebreakdata.c + src/linebreakdef.c + src/wordbreak.c + src/graphemebreak.c + src/unibreakbase.c + src/unibreakdef.c +) + + +include_directories(src) + +add_library(libunibreak ${libunibreak_srcs}) + +install( + TARGETS libunibreak + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_HEADERS) + install( + FILES + src/linebreak.h + src/linebreakdef.h + src/wordbreak.h + src/wordbreakdef.h + DESTINATION include + ) +endif() diff --git a/ports/libunibreak/CONTROL b/ports/libunibreak/CONTROL new file mode 100644 index 0000000000..a8df4119f7 --- /dev/null +++ b/ports/libunibreak/CONTROL @@ -0,0 +1,3 @@ +Source: libunibreak +Version: 4.0-1 +Description: an implementation of the line breaking and word breaking algorithms as described in [Unicode Standard Annex 14] 1 and [Unicode Standard Annex 29] 2. Check the project's [home page] 3 for up-to-date information. diff --git a/ports/libunibreak/portfile.cmake b/ports/libunibreak/portfile.cmake new file mode 100644 index 0000000000..6ec8bdd74a --- /dev/null +++ b/ports/libunibreak/portfile.cmake @@ -0,0 +1,24 @@ +include(vcpkg_common_functions) +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(WARNING "Dynamic not supported building static") + set(VCPKG_LIBRARY_LINKAGE static) +endif() +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO adah1972/libunibreak + REF libunibreak_4_0 + SHA512 f11295133a1c65f365a5287f7377f69ac7998f19b06d44818fb55c8a5ba3edabc36de8d1b7c0d38db9d982f0e443d0a751f6d51841865094122df4cd74c9af3b + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +file(INSTALL ${SOURCE_PATH}/LICENCE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libunibreak RENAME copyright) diff --git a/ports/libusb-win32/CONTROL b/ports/libusb-win32/CONTROL index f95a959f3e..eba6e283d2 100644 --- a/ports/libusb-win32/CONTROL +++ b/ports/libusb-win32/CONTROL @@ -1,3 +1,3 @@ Source: libusb-win32 -Version: 1.2.6.0 +Version: 1.2.6.0-1 Description: Allows user space applications to access many USB device on Windows. diff --git a/ports/libuv/CONTROL b/ports/libuv/CONTROL index 61f5711d13..ba5d7e85e6 100644 --- a/ports/libuv/CONTROL +++ b/ports/libuv/CONTROL @@ -1,3 +1,3 @@ Source: libuv -Version: 1.14.0 -Description: libuv is a multi-platform support library with a focus on asynchronous I/O. \ No newline at end of file +Version: 1.14.1-1 +Description: libuv is a multi-platform support library with a focus on asynchronous I/O. diff --git a/ports/libuv/portfile.cmake b/ports/libuv/portfile.cmake index a753851323..2e07ff6071 100644 --- a/ports/libuv/portfile.cmake +++ b/ports/libuv/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libuv/libuv - REF v1.14.0 - SHA512 a838f2e97250a78861b72458d9278935d9e8151d69de21de19499dfe9d7304d65ce578c007356b75cd4ce2c17735292d93cdb2fcc206d4e2430ee3f9a2fc7222 + REF v1.14.1 + SHA512 de78909e92757ce024a48d5a12a1aedd8015d7135cee374965dc38c07c29352ea411a31921910653728b3f73aca0275382cbf2130144da65e50a472b17849ade HEAD_REF v1.x) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/libvorbis/CONTROL b/ports/libvorbis/CONTROL index dec9363b21..20f8c6e29a 100644 --- a/ports/libvorbis/CONTROL +++ b/ports/libvorbis/CONTROL @@ -1,4 +1,4 @@ Source: libvorbis -Version: 1.3.5-143caf4-2 +Version: 1.3.5-143caf4-3 Description: Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. Build-Depends: libogg diff --git a/ports/libwebm/CONTROL b/ports/libwebm/CONTROL index ca76af460e..eb19cf16ab 100644 --- a/ports/libwebm/CONTROL +++ b/ports/libwebm/CONTROL @@ -1,3 +1,3 @@ Source: libwebm -Version: 1.0.0.27-1 +Version: 1.0.0.27-2 Description: WebM File Parser diff --git a/ports/libwebp/CONTROL b/ports/libwebp/CONTROL index 2b3c365549..e042390f47 100644 --- a/ports/libwebp/CONTROL +++ b/ports/libwebp/CONTROL @@ -1,3 +1,3 @@ Source: libwebp -Version: 0.6.0-1 +Version: 0.6.0-2 Description: Lossy compression of digital photographic images. diff --git a/ports/libwebsockets/CONTROL b/ports/libwebsockets/CONTROL index 61a9cc4492..816253a2c7 100644 --- a/ports/libwebsockets/CONTROL +++ b/ports/libwebsockets/CONTROL @@ -1,4 +1,4 @@ Source: libwebsockets -Version: 2.0.0-1 +Version: 2.0.0-2 Build-Depends: zlib, openssl -Description: Libwebsockets is a lightweight pure C library built to use minimal CPU and memory resources, and provide fast throughput in both directions as client or server. \ No newline at end of file +Description: Libwebsockets is a lightweight pure C library built to use minimal CPU and memory resources, and provide fast throughput in both directions as client or server. diff --git a/ports/libxml2/CONTROL b/ports/libxml2/CONTROL index 9f15642264..ce430ceff2 100644 --- a/ports/libxml2/CONTROL +++ b/ports/libxml2/CONTROL @@ -1,4 +1,4 @@ Source: libxml2 -Version: 2.9.4-1 +Version: 2.9.4-2 Description: Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform) Build-Depends: zlib, libiconv, liblzma diff --git a/ports/libxmp-lite/0001-msvc-buildfix.patch b/ports/libxmp-lite/0001-msvc-buildfix.patch new file mode 100644 index 0000000000..dfd548186c --- /dev/null +++ b/ports/libxmp-lite/0001-msvc-buildfix.patch @@ -0,0 +1,23 @@ +diff -Naur .\libxmp-lite-4.4.1/src/common.h .\libxmp-lite-4.4.1-orig/src/common.h +--- a/src/common.h 2016-07-16 13:37:36 +0200 ++++ b/src/common.h 2017-05-23 00:52:17 +0200 +@@ -77,19 +77,12 @@ + #ifndef CLIB_DECL + #define CLIB_DECL + #endif +-#ifdef DEBUG +-#ifndef ATTR_PRINTF +-#define ATTR_PRINTF(x,y) +-#endif +-void CLIB_DECL D_(const char *text, ...) ATTR_PRINTF(1,2); +-#else + // VS prior to VC7.1 does not support variadic macros. VC8.0 does not optimize unused parameters passing + #if _MSC_VER < 1400 + void __inline CLIB_DECL D_(const char *text, ...) { do {} while (0); } + #else + #define D_(args, ...) do {} while (0) + #endif +-#endif + + #elif defined __ANDROID__ + diff --git a/ports/libxmp-lite/0002-fix-symbols.patch b/ports/libxmp-lite/0002-fix-symbols.patch new file mode 100644 index 0000000000..f765a7bf0c --- /dev/null +++ b/ports/libxmp-lite/0002-fix-symbols.patch @@ -0,0 +1,44 @@ +diff --git a/lite/src/format.c b/lite/src/format.c +--- a/src/format.c ++++ b/src/format.c +@@ -27,20 +27,20 @@ + #endif + #include "format.h" + +-extern const struct format_loader xm_loader; +-extern const struct format_loader mod_loader; +-extern const struct format_loader it_loader; +-extern const struct format_loader s3m_loader; ++extern const struct format_loader libxmp_loader_xm; ++extern const struct format_loader libxmp_loader_mod; ++extern const struct format_loader libxmp_loader_it; ++extern const struct format_loader libxmp_loader_s3m; + + extern const struct pw_format *const pw_format[]; + + const struct format_loader *const format_loader[5] = { +- &xm_loader, +- &mod_loader, ++ &libxmp_loader_xm, ++ &libxmp_loader_mod, + #ifndef LIBXMP_CORE_DISABLE_IT +- &it_loader, ++ &libxmp_loader_it, + #endif +- &s3m_loader, ++ &libxmp_loader_s3m, + NULL + }; + +diff --git a/lite/src/loaders/mod_load.c b/lite/src/loaders/mod_load.c +--- a/src/loaders/mod_load.c ++++ b/src/loaders/mod_load.c +@@ -36,7 +36,7 @@ + static int mod_test (HIO_HANDLE *, char *, const int); + static int mod_load (struct module_data *, HIO_HANDLE *, const int); + +-const struct format_loader mod_loader = { ++const struct format_loader libxmp_loader_mod = { + "Protracker", + mod_test, + mod_load diff --git a/ports/libxmp-lite/CMakeLists.txt b/ports/libxmp-lite/CMakeLists.txt new file mode 100644 index 0000000000..9495e0eb4f --- /dev/null +++ b/ports/libxmp-lite/CMakeLists.txt @@ -0,0 +1,65 @@ +cmake_minimum_required(VERSION 3.4) +project(libxmp-lite) + +set(HEADERS "include/libxmp-lite/xmp.h") + +set(SOURCES src/virtual.c + src/format.c + src/period.c + src/player.c + src/read_event.c + src/dataio.c + src/lfo.c + src/scan.c + src/control.c + src/filter.c + src/effects.c + src/mixer.c + src/mix_all.c + src/load_helpers.c + src/load.c + src/hio.c + src/smix.c + src/memio.c + src/loaders/common.c + src/loaders/itsex.c + src/loaders/sample.c + src/loaders/xm_load.c + src/loaders/mod_load.c + src/loaders/s3m_load.c + src/loaders/it_load.c +) + +include_directories(include/libxmp-lite src) + +option(BUILD_SHARED_LIBS "Build shared libs" OFF) +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + option(INSTALL_HEADERS "Install header files" OFF) +else() + option(INSTALL_HEADERS "Install header files" ON) +endif() + +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + +add_library(libxmp-lite ${SOURCES}) +target_compile_definitions(libxmp-lite PRIVATE + LIBXMP_CORE_PLAYER=1 + inline=__inline + _USE_MATH_DEFINES=1 +) + +# Fix UWP /sdl compile errors +# Disable C4703: Not initialized +# Disable C4996: Deprecated +set_target_properties(libxmp-lite PROPERTIES COMPILE_FLAGS "/wd4703 /wd4996") + +install( + TARGETS libxmp-lite + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) + +if(INSTALL_HEADERS) + install(FILES ${HEADERS} DESTINATION include) +endif() diff --git a/ports/libxmp-lite/CONTROL b/ports/libxmp-lite/CONTROL new file mode 100644 index 0000000000..1f7e8dded6 --- /dev/null +++ b/ports/libxmp-lite/CONTROL @@ -0,0 +1,3 @@ +Source: libxmp-lite +Version: 4.4.1 +Description: Lightweight version of libxmp that supports MOD, S3M, XM and IT modules. diff --git a/ports/libxmp-lite/portfile.cmake b/ports/libxmp-lite/portfile.cmake new file mode 100644 index 0000000000..ac67940a1a --- /dev/null +++ b/ports/libxmp-lite/portfile.cmake @@ -0,0 +1,27 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/libxmp-lite-4.4.1) +vcpkg_download_distfile(ARCHIVE + URLS "http://sourceforge.net/projects/xmp/files/libxmp/4.4.1/libxmp-lite-4.4.1.tar.gz" + FILENAME "libxmp-lite-4.4.1.tar.gz" + SHA512 f27e3f9fb79ff15ce90b51fb29641c01cadf7455150da57cde6860c2ba075ed497650eb44ec9143bdd3538288228c609f7db6d862c9d73f007f686eccb05543e +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001-msvc-buildfix.patch + ${CMAKE_CURRENT_LIST_DIR}/0002-fix-symbols.patch +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/libxmp-lite RENAME copyright) diff --git a/ports/libzip/CONTROL b/ports/libzip/CONTROL index 2106a5f948..045030e95b 100644 --- a/ports/libzip/CONTROL +++ b/ports/libzip/CONTROL @@ -1,4 +1,4 @@ Source: libzip -Version: 1.2.0-1 +Version: 1.2.0-2 Build-Depends: zlib Description: A library for reading, creating, and modifying zip archives. diff --git a/ports/live555/CONTROL b/ports/live555/CONTROL index 37048f2686..d2ff15211a 100644 --- a/ports/live555/CONTROL +++ b/ports/live555/CONTROL @@ -1,3 +1,3 @@ Source: live555 -Version: 2017.06.04 +Version: 2017.06.04-1 Description: A complete RTSP server application diff --git a/ports/llvm/CONTROL b/ports/llvm/CONTROL index 9b79360047..2f6b1ec93b 100644 --- a/ports/llvm/CONTROL +++ b/ports/llvm/CONTROL @@ -1,3 +1,3 @@ Source: llvm -Version: 4.0.0 +Version: 5.0.0-1 Description: The LLVM Compiler Infrastructure diff --git a/ports/llvm/portfile.cmake b/ports/llvm/portfile.cmake index 9edf7f2b19..b1f546f4f8 100644 --- a/ports/llvm/portfile.cmake +++ b/ports/llvm/portfile.cmake @@ -3,11 +3,11 @@ set(VCPKG_LIBRARY_LINKAGE static) include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/llvm-4.0.0.src) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/llvm-5.0.0.src) vcpkg_download_distfile(ARCHIVE - URLS "http://releases.llvm.org/4.0.0/llvm-4.0.0.src.tar.xz" - FILENAME "llvm-4.0.0.src.tar.xz" - SHA512 cf681f0626ef6d568d951cdc3e143471a1d7715a0ba11e52aa273cf5d8d421e1357ef2645cc85879eaefcd577e99e74d07b01566825b3d0461171ef2cbfc7704 + URLS "http://releases.llvm.org/5.0.0/llvm-5.0.0.src.tar.xz" + FILENAME "llvm-5.0.0.src.tar.xz" + SHA512 e6d8fdcb5bf27bded814d02f39f69c6171bc3a512d5957c03e5ac2e231f903b7de87634b059bd5c5da670f7c3a8f7a538f6299225799f15f921857f1452f6b3a ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/lmdb/CONTROL b/ports/lmdb/CONTROL index 13c648fa64..c926fd78fd 100644 --- a/ports/lmdb/CONTROL +++ b/ports/lmdb/CONTROL @@ -1,3 +1,3 @@ Source: lmdb -Version: 0.9.18-2 -Description: LMDB is an extraordinarily fast, memory-efficient database \ No newline at end of file +Version: 0.9.18-3 +Description: LMDB is an extraordinarily fast, memory-efficient database diff --git a/ports/lodepng/CMakeLists.txt b/ports/lodepng/CMakeLists.txt new file mode 100644 index 0000000000..d4c8bc12ac --- /dev/null +++ b/ports/lodepng/CMakeLists.txt @@ -0,0 +1,41 @@ +cmake_minimum_required(VERSION 3.8.0) +project(lodepng) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + + +include_directories(".") + +add_library(lodepng lodepng.cpp lodepng_util.cpp) + +add_executable(pngdetail pngdetail.cpp) + +target_link_libraries(pngdetail lodepng) + +install( + TARGETS lodepng + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_TOOLS) + install ( + TARGETS pngdetail + RUNTIME DESTINATION tools/lodepng + ) +endif() + +if(NOT DDISABLE_INSTALL_EXAMPLES) + install(DIRECTORY examples DESTINATION share/lodepng/) +endif() + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES lodepng.h lodepng_util.h DESTINATION include) +endif() diff --git a/ports/lodepng/CONTROL b/ports/lodepng/CONTROL new file mode 100644 index 0000000000..230e272529 --- /dev/null +++ b/ports/lodepng/CONTROL @@ -0,0 +1,3 @@ +Source: lodepng +Version: 2017-09-01-8a0f16afe74a6a-1 +Description: PNG encoder and decoder in C and C++ diff --git a/ports/lodepng/portfile.cmake b/ports/lodepng/portfile.cmake new file mode 100644 index 0000000000..8611d5ea39 --- /dev/null +++ b/ports/lodepng/portfile.cmake @@ -0,0 +1,28 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO lvandeve/lodepng + REF 8a0f16afe74a6abf85e3b45e9558283022021a59 + SHA512 189dde0a0982822b6dfc3f886d8035338ed200958eed8394c5c64aa97ddcf758b3989beae14ce8f26a78efa9fb4b94932bb02b41cacd62bd62a46ebf9b324def + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON + -DDISABLE_INSTALL_TOOLS=ON + -DDDISABLE_INSTALL_EXAMPLES=ON +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/lodepng) + + +file(INSTALL ${SOURCE_PATH}/lodepng.h DESTINATION ${CURRENT_PACKAGES_DIR}/share/lodepng RENAME copyright) diff --git a/ports/log4cplus/CONTROL b/ports/log4cplus/CONTROL index d4af82051c..882ee88b8a 100644 --- a/ports/log4cplus/CONTROL +++ b/ports/log4cplus/CONTROL @@ -1,3 +1,3 @@ Source: log4cplus -Version: REL_1_2_1-RC2 +Version: REL_1_2_1-RC2-1 Description: A simple to use C++ logging API providing thread--safe, flexible, and arbitrarily granular control over log management and configuration diff --git a/ports/lpeg/CONTROL b/ports/lpeg/CONTROL index 5f2a3aff75..9896815b8e 100644 --- a/ports/lpeg/CONTROL +++ b/ports/lpeg/CONTROL @@ -1,4 +1,4 @@ Source: lpeg -Version: 1.0.1-2 +Version: 1.0.1-3 Description: LPeg is a pattern-matching library for Lua, based on Parsing Expression Grammars (PEGs). Build-Depends: lua diff --git a/ports/lua/CMakeLists.txt b/ports/lua/CMakeLists.txt index faef8018b3..fc2e27e084 100644 --- a/ports/lua/CMakeLists.txt +++ b/ports/lua/CMakeLists.txt @@ -56,9 +56,10 @@ INSTALL ( TARGETS lua IF (NOT DEFINED SKIP_INSTALL_TOOLS) ADD_EXECUTABLE ( luac src/luac.c ${SRC_LIBLUA} ) # compiler - ADD_EXECUTABLE ( luai src/lua.c ${SRC_LIBLUA} ) # interpreter + ADD_EXECUTABLE ( luai src/lua.c ) # interpreter + TARGET_LINK_LIBRARIES ( luai lua ) SET_TARGET_PROPERTIES ( luai PROPERTIES OUTPUT_NAME lua PDB_NAME luai ) - INSTALL ( TARGETS luai luac RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/tools ) + INSTALL ( TARGETS luai luac lua RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/tools ) ENDIF () IF (NOT DEFINED SKIP_INSTALL_HEADERS) diff --git a/ports/lua/CONTROL b/ports/lua/CONTROL index 266bd153c8..cf49dafe56 100644 --- a/ports/lua/CONTROL +++ b/ports/lua/CONTROL @@ -1,3 +1,3 @@ Source: lua -Version: 5.3.4 +Version: 5.3.4-2 Description: a powerful, fast, lightweight, embeddable scripting language diff --git a/ports/luafilesystem/CONTROL b/ports/luafilesystem/CONTROL index f101b7cb30..4ff18cda4d 100644 --- a/ports/luafilesystem/CONTROL +++ b/ports/luafilesystem/CONTROL @@ -1,4 +1,4 @@ Source: luafilesystem -Version: 1.6.3 +Version: 1.7.0.2 Description: LuaFileSystem is a Lua library developed to complement the set of functions related to file systems offered by the standard Lua distribution. Build-Depends: lua diff --git a/ports/luafilesystem/lfs-def-fix.patch b/ports/luafilesystem/lfs-def-fix.patch index 62cea763e2..34923427fd 100644 --- a/ports/luafilesystem/lfs-def-fix.patch +++ b/ports/luafilesystem/lfs-def-fix.patch @@ -1,21 +1,20 @@ -From 644c9c32ca9053ced3d37ff76fc1fbc0389ddf53 Mon Sep 17 00:00:00 2001 -From: Alex -Date: Mon, 16 Feb 2015 08:15:41 +0300 -Subject: [PATCH] DEF file fixes (DESCRIPTION is deprecated; VERSION must - contain one or two numers) +From 92527d96199912f79b8046ddb32ff83a16771cb4 Mon Sep 17 00:00:00 2001 +From: "Stephen E. Baker" +Date: Fri, 15 Sep 2017 21:18:58 -0400 +Subject: [PATCH] Update version in lfs.def +Version number of current release is 1.7 --- - src/lfs.def | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) + src/lfs.def | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lfs.def b/src/lfs.def -index 7aa7a35..8a36d41 100644 +index 8a36d41..4055ff0 100644 --- a/src/lfs.def +++ b/src/lfs.def -@@ -1,5 +1,4 @@ +@@ -1,4 +1,4 @@ LIBRARY lfs.dll --DESCRIPTION "LuaFileSystem" --VERSION 1.5.0 -+VERSION 1.6 +-VERSION 1.6 ++VERSION 1.7 EXPORTS luaopen_lfs diff --git a/ports/luafilesystem/portfile.cmake b/ports/luafilesystem/portfile.cmake index e55d568818..74c3d116ae 100644 --- a/ports/luafilesystem/portfile.cmake +++ b/ports/luafilesystem/portfile.cmake @@ -1,8 +1,8 @@ include(vcpkg_common_functions) -set(LUAFILESYSTEM_VERSION 1.6.3) -set(LUAFILESYSTEM_REVISION v_1_6_3) -set(LUAFILESYSTEM_HASH abfa1b3ac22ed80189560a1a025a7ea21a954defe14e5b539e08f266d180962a691262efc7eb2ddacc2d4aae14d6e356b1a276165b5bed46a13e4d6c61ab99f1) +set(LUAFILESYSTEM_VERSION 1.7.0.2) +set(LUAFILESYSTEM_REVISION v1_7_0_2) +set(LUAFILESYSTEM_HASH a1d4d077776e57cd878dbcd21656da141ea3686c587b5420a2b039aeaf086b7e7d05d531ee1cc2bbd7d06660d1315b09593e52143f6711f033ce8eecdc550511) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/luafilesystem-${LUAFILESYSTEM_VERSION}) vcpkg_from_github( diff --git a/ports/lz4/CONTROL b/ports/lz4/CONTROL index c6d730c2d2..5e8b87bd2f 100644 --- a/ports/lz4/CONTROL +++ b/ports/lz4/CONTROL @@ -1,3 +1,3 @@ Source: lz4 -Version: 1.8.0 +Version: 1.8.0-1 Description: Lossless compression algorithm, providing compression speed at 400 MB/s per core. diff --git a/ports/lzfse/CONTROL b/ports/lzfse/CONTROL index 7559d661e3..34276814fc 100644 --- a/ports/lzfse/CONTROL +++ b/ports/lzfse/CONTROL @@ -1,3 +1,3 @@ Source: lzfse -Version: 1.0 +Version: 1.0-1 Description: Lempel-Ziv style data compressor using Finite State Entropy coding. diff --git a/ports/lzo/CONTROL b/ports/lzo/CONTROL index ba477b4849..d124020b83 100644 --- a/ports/lzo/CONTROL +++ b/ports/lzo/CONTROL @@ -1,3 +1,3 @@ Source: lzo -Version: 2.10-1 +Version: 2.10-2 Description: Lossless data compression library diff --git a/ports/magnum-plugins/CONTROL b/ports/magnum-plugins/CONTROL index f6e194c9f4..6c187f4238 100644 --- a/ports/magnum-plugins/CONTROL +++ b/ports/magnum-plugins/CONTROL @@ -1,4 +1,4 @@ Source: magnum-plugins -Version: jun2017-4 +Version: jun2017-5 Build-Depends: stb, magnum Description: Plugins for C++11/C++14 and OpenGL graphics engine http://mosra.cz/blog/magnum.php diff --git a/ports/magnum-plugins/portfile.cmake b/ports/magnum-plugins/portfile.cmake index b262624909..289816b941 100644 --- a/ports/magnum-plugins/portfile.cmake +++ b/ports/magnum-plugins/portfile.cmake @@ -3,7 +3,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mosra/magnum-plugins REF 34a3bc34335ca05097e735db19fe1fae81dbfbb5 - SHA512 918c3eeae246d1ac67e3595c50ff599872a0c1498e9a8a0386ad656f3d9d2209b048b53c25f198660e15201147795578c5c931b00116da46fd77d8e91c0826cb + SHA512 8d8998ed0f5a9361fd8a322f0c9ee8bb36b2255487e7198603f316a383a5dcb38160dcfa92759a2e2aa6d13d45f5fdae8f1165e39428d516823bc931d3097b83 HEAD_REF master ) @@ -72,4 +72,4 @@ endif() file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/magnum-plugins) file(RENAME ${CURRENT_PACKAGES_DIR}/share/magnum-plugins/COPYING ${CURRENT_PACKAGES_DIR}/share/magnum-plugins/copyright) -vcpkg_copy_pdbs() \ No newline at end of file +vcpkg_copy_pdbs() diff --git a/ports/magnum/CONTROL b/ports/magnum/CONTROL index a040014daf..382e39075c 100644 --- a/ports/magnum/CONTROL +++ b/ports/magnum/CONTROL @@ -1,4 +1,4 @@ Source: magnum -Version: jun2017-5 +Version: jun2017-6 Build-Depends: corrade, sdl2, openal-soft Description: C++11/C++14 and OpenGL graphics engine http://mosra.cz/blog/magnum.php diff --git a/ports/matio/CONTROL b/ports/matio/CONTROL index f4dac30a1c..7912440e38 100644 --- a/ports/matio/CONTROL +++ b/ports/matio/CONTROL @@ -1,4 +1,4 @@ Source: matio -Version: 1.5.10-1 +Version: 1.5.10-2 Description: MATLAB MAT File I/O Library Build-Depends: zlib, hdf5 diff --git a/ports/meschach/CMakeLists.txt b/ports/meschach/CMakeLists.txt new file mode 100644 index 0000000000..648fe5af91 --- /dev/null +++ b/ports/meschach/CMakeLists.txt @@ -0,0 +1,89 @@ +cmake_minimum_required(VERSION 3.8.0) +project(meschach) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +set(meschach_srcs + bdfactor.c + bkpfacto.c + chfactor.c + copy.c + err.c + extras.c + fft.c + givens.c + hessen.c + hsehldr.c + init.c + iter0.c + iternsym.c + itersym.c + ivecop.c + lufactor.c + machine.c + matlab.c + matop.c + matrixio.c + meminfo.c + memory.c + memstat.c + mfunc.c + norm.c + otherio.c + pxop.c + qrfactor.c + schur.c + solve.c + sparse.c + sparseio.c + spbkp.c + spchfctr.c + splufctr.c + sprow.c + spswap.c + submat.c + svd.c + symmeig.c + update.c + vecop.c + version.c + zcopy.c + zfunc.c + zgivens.c + zhessen.c + zhsehldr.c + zlufctr.c + zmachine.c + zmatio.c + zmatlab.c + zmatop.c + zmemory.c + znorm.c + zqrfctr.c + zschur.c + zsolve.c + ztorture.c + zvecop.c +) +file(GLOB meschach_headers "*.h") + +include_directories(".") + +if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + +add_library(meschach ${meschach_srcs}) +target_compile_definitions(meschach PRIVATE -DHAVE_MEMORY_H -DHAVE_COMPLEX_H) + +install( + TARGETS meschach + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES ${meschach_headers} DESTINATION include/meschach) +endif() diff --git a/ports/meschach/CONTROL b/ports/meschach/CONTROL new file mode 100644 index 0000000000..a8418b2b18 --- /dev/null +++ b/ports/meschach/CONTROL @@ -0,0 +1,3 @@ +Source: meschach +Version: 1.2b-1 +Description: Matrix computations in C diff --git a/ports/meschach/portfile.cmake b/ports/meschach/portfile.cmake new file mode 100644 index 0000000000..dd9d93085c --- /dev/null +++ b/ports/meschach/portfile.cmake @@ -0,0 +1,21 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src) +vcpkg_download_distfile(ARCHIVE + URLS "http://homepage.math.uiowa.edu/~dstewart/meschach/mesch12b.tar.gz" + FILENAME "mesch12b.tar.gz" + SHA512 9051e1502b8c9741400c61fd6038e514887f305f267ba4e97d747423de3da1270f835f65b2d1f538f8938677060bc0fcfd7a94022d74fbfd31a0450116e9d79e +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(INSTALL ${SOURCE_PATH}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/meschach) diff --git a/ports/metis/CONTROL b/ports/metis/CONTROL index cc604ce8f5..f302a9ce4a 100644 --- a/ports/metis/CONTROL +++ b/ports/metis/CONTROL @@ -1,3 +1,3 @@ Source: metis -Version: 5.1.0 +Version: 5.1.0-1 Description: Serial Graph Partitioning and Fill-reducing Matrix Ordering diff --git a/ports/minizip/CONTROL b/ports/minizip/CONTROL index b3023e9909..1353031297 100644 --- a/ports/minizip/CONTROL +++ b/ports/minizip/CONTROL @@ -1,4 +1,4 @@ Source: minizip -Version: 1.2.11-1 +Version: 1.2.11-2 Description: Build-Depends: bzip2, zlib diff --git a/ports/mongo-c-driver/CONTROL b/ports/mongo-c-driver/CONTROL index a460b313cd..4b100879a8 100644 --- a/ports/mongo-c-driver/CONTROL +++ b/ports/mongo-c-driver/CONTROL @@ -1,4 +1,4 @@ Source: mongo-c-driver -Version: 1.6.2 +Version: 1.6.2-1 Build-Depends: libbson, openssl (uwp) -Description: Client library written in C for MongoDB. \ No newline at end of file +Description: Client library written in C for MongoDB. diff --git a/ports/mongo-cxx-driver/CONTROL b/ports/mongo-cxx-driver/CONTROL index 9b7e29ba34..306f6a96ca 100644 --- a/ports/mongo-cxx-driver/CONTROL +++ b/ports/mongo-cxx-driver/CONTROL @@ -1,4 +1,4 @@ Source: mongo-cxx-driver -Version: 3.1.1 +Version: 3.1.1-1 Build-Depends: boost, libbson, mongo-c-driver -Description: MongoDB C++ Driver. \ No newline at end of file +Description: MongoDB C++ Driver. diff --git a/ports/mpfr/CONTROL b/ports/mpfr/CONTROL index 16224d73bf..2d5d4fedd4 100644 --- a/ports/mpfr/CONTROL +++ b/ports/mpfr/CONTROL @@ -1,4 +1,4 @@ Source: mpfr -Version: 3.1.5 +Version: 3.1.5-1 Description: The MPFR library is a C library for multiple-precision floating-point computations with correct rounding -Build-Depends: mpir \ No newline at end of file +Build-Depends: mpir diff --git a/ports/msgpack/CONTROL b/ports/msgpack/CONTROL index 1d0daba68e..7c9933d275 100644 --- a/ports/msgpack/CONTROL +++ b/ports/msgpack/CONTROL @@ -1,3 +1,3 @@ Source: msgpack -Version: 2.1.5 +Version: 2.1.5-1 Description: MessagePack is an efficient binary serialization format, which lets you exchange data among multiple languages like JSON, except that it's faster and smaller. diff --git a/ports/nana/CONTROL b/ports/nana/CONTROL index 680dec2878..ae4168544f 100644 --- a/ports/nana/CONTROL +++ b/ports/nana/CONTROL @@ -1,4 +1,4 @@ Source: nana -Version: 1.5.4 +Version: 1.5.4-1 Description: Cross-platform library for GUI programming in modern C++ style. Build-Depends: libpng, libjpeg-turbo diff --git a/ports/nanodbc/CONTROL b/ports/nanodbc/CONTROL index 2611bac80b..0343119a05 100644 --- a/ports/nanodbc/CONTROL +++ b/ports/nanodbc/CONTROL @@ -1,3 +1,3 @@ Source: nanodbc -Version: 2.12.4 -Description: A small C++ wrapper for the native C ODBC API. \ No newline at end of file +Version: 2.12.4-1 +Description: A small C++ wrapper for the native C ODBC API. diff --git a/ports/netcdf-c/CONTROL b/ports/netcdf-c/CONTROL index 1303cb517a..a7f3816baa 100644 --- a/ports/netcdf-c/CONTROL +++ b/ports/netcdf-c/CONTROL @@ -1,4 +1,4 @@ Source: netcdf-c -Version: 4.4.1.1-1 +Version: 4.4.1.1-2 Build-Depends: hdf5, curl Description: a set of self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data. diff --git a/ports/netcdf-cxx4/CONTROL b/ports/netcdf-cxx4/CONTROL index 9fcda54685..a3b7278a6f 100644 --- a/ports/netcdf-cxx4/CONTROL +++ b/ports/netcdf-cxx4/CONTROL @@ -1,4 +1,4 @@ Source: netcdf-cxx4 -Version: 4.3.0 +Version: 4.3.0-1 Build-Depends: netcdf-c Description: a set of machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data. diff --git a/ports/nlohmann-json/CONTROL b/ports/nlohmann-json/CONTROL index 4e65a9d93b..90b6e504e3 100644 --- a/ports/nlohmann-json/CONTROL +++ b/ports/nlohmann-json/CONTROL @@ -1,3 +1,3 @@ Source: nlohmann-json -Version: 2.1.1 +Version: 2.1.1-1 Description: JSON for Modern C++ diff --git a/ports/nlopt/0001_export_symbols.patch b/ports/nlopt/0001_export_symbols.patch new file mode 100644 index 0000000000..8db70a1392 --- /dev/null +++ b/ports/nlopt/0001_export_symbols.patch @@ -0,0 +1,25 @@ +From a8ab743870873066a66b30d68907ccc4ade250a5 Mon Sep 17 00:00:00 2001 +From: Mikhail Paulyshka +Date: Mon, 4 Sep 2017 01:25:38 +0300 +Subject: [PATCH] export symbols + +--- + CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f630c18..c266b39 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -20,6 +20,8 @@ endif () + + project (nlopt) + ++set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ++ + list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) + + option (WITH_CXX "enable cxx routines" OFF) +-- +2.12.2.windows.2 + diff --git a/ports/nlopt/CONTROL b/ports/nlopt/CONTROL new file mode 100644 index 0000000000..22d763b0b0 --- /dev/null +++ b/ports/nlopt/CONTROL @@ -0,0 +1,3 @@ +Source: nlopt +Version: 2.4.2-c43afa08d~vcpkg1-1 +Description: a library for nonlinear local and global optimization, for functions with and without gradient information. diff --git a/ports/nlopt/portfile.cmake b/ports/nlopt/portfile.cmake new file mode 100644 index 0000000000..f2370b0c0b --- /dev/null +++ b/ports/nlopt/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO stevengj/nlopt + REF c43afa08d4fe086d9c00c37924a6bd4c9de71816 + SHA512 e063d748b040f081a648b33dadaf9b7deef63ff3be0cffd8988816701c18694202f5bcf06a18991f1f4b35014e3f406ffa4404d4036ff7625d3680bd5e24f8e4 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001_export_symbols.patch) + + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/nlopt") + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/octomap/CONTROL b/ports/octomap/CONTROL index f541126692..6b26d7ef11 100644 --- a/ports/octomap/CONTROL +++ b/ports/octomap/CONTROL @@ -1,3 +1,3 @@ Source: octomap -Version: cefed0c1d79afafa5aeb05273cf1246b093b771c-1 +Version: cefed0c1d79afafa5aeb05273cf1246b093b771c-2 Description: An Efficient Probabilistic 3D Mapping Framework Based on Octrees diff --git a/ports/ogre/CONTROL b/ports/ogre/CONTROL index 40d9e24162..a3a2460c4a 100644 --- a/ports/ogre/CONTROL +++ b/ports/ogre/CONTROL @@ -1,4 +1,4 @@ Source: ogre -Version: 1.9.0 +Version: 1.9.0 -1 Build-Depends: freeimage, freetype, zlib, zziplib Description: 3D Object-Oriented Graphics Rendering Engine diff --git a/ports/openal-soft/CONTROL b/ports/openal-soft/CONTROL index 742bab3fe1..094f5c1881 100644 --- a/ports/openal-soft/CONTROL +++ b/ports/openal-soft/CONTROL @@ -1,3 +1,3 @@ Source: openal-soft -Version: 1.18.1 +Version: 1.18.1-1 Description: OpenAL Soft is an LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API. diff --git a/ports/openblas/CONTROL b/ports/openblas/CONTROL index a3a3f702fa..808d52ac98 100644 --- a/ports/openblas/CONTROL +++ b/ports/openblas/CONTROL @@ -1,3 +1,3 @@ Source: openblas -Version: v0.2.20 +Version: v0.2.20-2 Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version. diff --git a/ports/openblas/install-openblas.patch b/ports/openblas/install-openblas.patch index 354b593dcb..ef9574cdd7 100644 --- a/ports/openblas/install-openblas.patch +++ b/ports/openblas/install-openblas.patch @@ -22,40 +22,3 @@ index a379f549..f95a872b 100644 # TODO: Why is the config saved here? Is this necessary with CMake? #Save the config files for installation -diff --git a/cmake/prebuild.cmake b/cmake/prebuild.cmake -index a7f98bfb..02ab7080 100644 ---- a/cmake/prebuild.cmake -+++ b/cmake/prebuild.cmake -@@ -37,6 +37,10 @@ - - # CPUIDEMU = ../../cpuid/table.o - -+if (NOT DEFINED BLASHELPER_BINARY_DIR) -+ set(BLASHELPER_BINARY_DIR "${PROJECT_BINARY_DIR}") -+endif () -+ - if (DEFINED CPUIDEMU) - set(EXFLAGS "-DCPUIDEMU -DVENDOR=99") - endif () -@@ -95,8 +99,8 @@ endif () - message(STATUS "Running getarch") - - # use the cmake binary w/ the -E param to run a shell command in a cross-platform way --execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH_BIN} 0 OUTPUT_VARIABLE GETARCH_MAKE_OUT) --execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH_BIN} 1 OUTPUT_VARIABLE GETARCH_CONF_OUT) -+execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH_BIN} 0 OUTPUT_VARIABLE GETARCH_MAKE_OUT) -+execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH_BIN} 1 OUTPUT_VARIABLE GETARCH_CONF_OUT) - - message(STATUS "GETARCH results:\n${GETARCH_MAKE_OUT}") - -@@ -121,8 +125,8 @@ if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") - endif () - - # use the cmake binary w/ the -E param to run a shell command in a cross-platform way --execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH2_BIN} 0 OUTPUT_VARIABLE GETARCH2_MAKE_OUT) --execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH2_BIN} 1 OUTPUT_VARIABLE GETARCH2_CONF_OUT) -+execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH2_BIN} 0 OUTPUT_VARIABLE GETARCH2_MAKE_OUT) -+execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH2_BIN} 1 OUTPUT_VARIABLE GETARCH2_CONF_OUT) - - # append config data from getarch_2nd to the TARGET file and read in CMake vars - file(APPEND ${TARGET_CONF} ${GETARCH2_CONF_OUT}) diff --git a/ports/openblas/portfile.cmake b/ports/openblas/portfile.cmake index c437a8642b..463db0f25e 100644 --- a/ports/openblas/portfile.cmake +++ b/ports/openblas/portfile.cmake @@ -21,17 +21,17 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(VCPKG_LIBRARY_LINKAGE "dynamic") endif() -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openblas-0.2.20) -vcpkg_download_distfile(ARCHIVE - URLS "https://codeload.github.com/xianyi/OpenBLAS/zip/v0.2.20" - FILENAME "openblas-v0.2.20.zip" - SHA512 c9cd7397bb026e3bb06c9407ad5ac26bf936258da81ac22132ceceb53c0235677e18a6046f1db8a75c8a92a614b2d156a3da89d684421a24bd283430ce55db7d +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO xianyi/OpenBLAS + REF v0.2.20 + SHA512 8dfc8e8c8d456b834d2e9544c8eadd9f4770e30db8b8dd76af601ec0735fd86c9cf63dd6a03ccd23fc02ec2e05069a09875b9073dfe29f99aadab3a958ae2634 + HEAD_REF develop ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/install-openblas.patch" + PATCHES "${CMAKE_CURRENT_LIST_DIR}/install-openblas.patch" "${CMAKE_CURRENT_LIST_DIR}/whitespace.patch" ) find_program(GIT NAMES git git.cmd) diff --git a/ports/openblas/whitespace.patch b/ports/openblas/whitespace.patch new file mode 100644 index 0000000000..410e816551 --- /dev/null +++ b/ports/openblas/whitespace.patch @@ -0,0 +1,64 @@ +diff --git a/cmake/prebuild.cmake b/cmake/prebuild.cmake +index 02ab708..b51bd0b 100644 +--- a/cmake/prebuild.cmake ++++ b/cmake/prebuild.cmake +@@ -37,6 +37,10 @@ + + # CPUIDEMU = ../../cpuid/table.o + ++if (NOT DEFINED BLASHELPER_BINARY_DIR) ++ set(BLASHELPER_BINARY_DIR "${PROJECT_BINARY_DIR}") ++endif () ++ + if (DEFINED CPUIDEMU) + set(EXFLAGS "-DCPUIDEMU -DVENDOR=99") + endif () +@@ -87,7 +87,7 @@ file(MAKE_DIRECTORY ${GETARCH_DIR}) + if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") + try_compile(GETARCH_RESULT ${GETARCH_DIR} + SOURCES ${GETARCH_SRC} +- COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} -I${PROJECT_SOURCE_DIR} ++ COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} -I"${PROJECT_SOURCE_DIR}" + OUTPUT_VARIABLE GETARCH_LOG + COPY_FILE ${PROJECT_BINARY_DIR}/${GETARCH_BIN} + ) +@@ -95,8 +99,8 @@ endif () + message(STATUS "Running getarch") + + # use the cmake binary w/ the -E param to run a shell command in a cross-platform way +-execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH_BIN} 0 OUTPUT_VARIABLE GETARCH_MAKE_OUT) +-execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH_BIN} 1 OUTPUT_VARIABLE GETARCH_CONF_OUT) ++execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH_BIN} 0 OUTPUT_VARIABLE GETARCH_MAKE_OUT) ++execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH_BIN} 1 OUTPUT_VARIABLE GETARCH_CONF_OUT) + + message(STATUS "GETARCH results:\n${GETARCH_MAKE_OUT}") + +@@ -114,7 +114,7 @@ file(MAKE_DIRECTORY ${GETARCH2_DIR}) + if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") + try_compile(GETARCH2_RESULT ${GETARCH2_DIR} + SOURCES ${PROJECT_SOURCE_DIR}/getarch_2nd.c +- COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GETARCH2_FLAGS} -I${PROJECT_SOURCE_DIR} ++ COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GETARCH2_FLAGS} -I"${PROJECT_SOURCE_DIR}" + OUTPUT_VARIABLE GETARCH2_LOG + COPY_FILE ${PROJECT_BINARY_DIR}/${GETARCH2_BIN} + ) +@@ -121,8 +125,8 @@ if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") + endif () + + # use the cmake binary w/ the -E param to run a shell command in a cross-platform way +-execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH2_BIN} 0 OUTPUT_VARIABLE GETARCH2_MAKE_OUT) +-execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH2_BIN} 1 OUTPUT_VARIABLE GETARCH2_CONF_OUT) ++execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH2_BIN} 0 OUTPUT_VARIABLE GETARCH2_MAKE_OUT) ++execute_process(COMMAND ${BLASHELPER_BINARY_DIR}/${GETARCH2_BIN} 1 OUTPUT_VARIABLE GETARCH2_CONF_OUT) + + # append config data from getarch_2nd to the TARGET file and read in CMake vars + file(APPEND ${TARGET_CONF} ${GETARCH2_CONF_OUT}) +@@ -141,7 +141,7 @@ file(MAKE_DIRECTORY ${GEN_CONFIG_H_DIR}) + if (NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "WindowsStore") + try_compile(GEN_CONFIG_H_RESULT ${GEN_CONFIG_H_DIR} + SOURCES ${PROJECT_SOURCE_DIR}/gen_config_h.c +- COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GEN_CONFIG_H_FLAGS} -I${PROJECT_SOURCE_DIR} ++ COMPILE_DEFINITIONS ${EXFLAGS} ${GETARCH_FLAGS} ${GEN_CONFIG_H_FLAGS} -I"${PROJECT_SOURCE_DIR}" + OUTPUT_VARIABLE GEN_CONFIG_H_LOG + COPY_FILE ${PROJECT_BINARY_DIR}/${GEN_CONFIG_H_BIN} + ) diff --git a/ports/opencv/002-fix-uwp.patch b/ports/opencv/002-fix-uwp.patch index d684141f52..22d0068628 100644 --- a/ports/opencv/002-fix-uwp.patch +++ b/ports/opencv/002-fix-uwp.patch @@ -24,16 +24,3 @@ index c8242dd..97edd14 100644 # removing APPCONTAINER from modules to run from console # in case of usual starting of WinRT test apps output is missing # so starting of console version w/o APPCONTAINER is required to get test results -diff --git a/modules/highgui/src/window.cpp b/modules/highgui/src/window.cpp -index 9306f8e..69a814e 100644 ---- a/modules/highgui/src/window.cpp -+++ b/modules/highgui/src/window.cpp -@@ -209,7 +209,7 @@ int cv::waitKeyEx(int delay) - int cv::waitKey(int delay) - { - int code = waitKeyEx(delay); --#ifndef HAVE_WINRT -+#ifndef WINRT - static int use_legacy = -1; - if (use_legacy < 0) - { diff --git a/ports/opencv/CONTROL b/ports/opencv/CONTROL index 7dbaf64c21..c2814c9c2e 100644 --- a/ports/opencv/CONTROL +++ b/ports/opencv/CONTROL @@ -1,6 +1,5 @@ Source: opencv -Version: 3.2.0-3 -Build-Depends: zlib, libpng, libjpeg-turbo, tiff -#Use the following line instead for optional features from OpenCV-contrib that require protobuf -#Build-Depends: zlib, libpng, libjpeg-turbo, tiff, protobuf +Version: 3.3.0-4 +# Optional: Add in vtk to build with VTK and cuda to build with CUDA +Build-Depends: zlib, libpng, libjpeg-turbo, tiff, protobuf (windows), ffmpeg Description: computer vision library diff --git a/ports/opencv/portfile.cmake b/ports/opencv/portfile.cmake index 3323fb0f48..d219561085 100644 --- a/ports/opencv/portfile.cmake +++ b/ports/opencv/portfile.cmake @@ -1,15 +1,12 @@ -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - message(STATUS "Warning: Static building not supported yet. Building dynamic.") - set(VCPKG_LIBRARY_LINKAGE dynamic) -endif() include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/opencv-3.2.0) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/opencv/opencv/archive/3.2.0.zip" - FILENAME "opencv-3.2.0.zip" - SHA512 c6418d2a7654fe9d50611e756778df4c6736f2de76b85773efbf490bb475dd95ec1041fe57a87163ce11a7db44430cd378c8416af3319f979ced92532bf5ebb5 + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO opencv/opencv + REF 3.3.0 + SHA512 13dee5c1c5fec1dccdbb05879d299b93ef8ddeb87f561a6c4178e33a4cf5ae919765119068d0387a3efea0e09a625ca993cffac60a772159690fcbee4e8d70fb + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} @@ -19,23 +16,26 @@ vcpkg_apply_patches( ) file(REMOVE_RECURSE ${SOURCE_PATH}/3rdparty/libjpeg ${SOURCE_PATH}/3rdparty/libpng ${SOURCE_PATH}/3rdparty/zlib ${SOURCE_PATH}/3rdparty/libtiff) -# Uncomment the following lines and the lines under OPTIONS to build opencv_contrib -# Important: after uncommenting you've add protobuf dependency within CONTROL file -#SET(CONTRIB_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/opencv_contrib-3.2.0) -#vcpkg_download_distfile(CONTRIB_ARCHIVE -# URLS "https://github.com/opencv/opencv_contrib/archive/3.2.0.zip" -# FILENAME "opencv_contrib-3.2.0.zip" -# SHA512 da6cda7a7ae1d722967e18f9b8d60895b93bbc3664dfdb1645cb4d8b337a9c4207b9073fd546a596c48a489f92d15191aa34c7c607167b536fbe4937b8424b43 -#) -#vcpkg_extract_source_archive(${CONTRIB_ARCHIVE}) -#vcpkg_apply_patches( -# SOURCE_PATH ${CONTRIB_SOURCE_PATH} -# PATCHES "${CMAKE_CURRENT_LIST_DIR}/open_contrib-remove-waldboost.patch" -#) +vcpkg_from_github( + OUT_SOURCE_PATH CONTRIB_SOURCE_PATH + REPO opencv/opencv_contrib + REF 3.3.0 + SHA512 ebe3dbe6c754c6fbaabbf6b0d2a4209964e625fd68e593f30ce043792740c8c1d4440d7870949b5b33f488fd7e2e05f3752287b7f50dd24c29202e268776520e + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${CONTRIB_SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/open_contrib-remove-waldboost.patch" +) + +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} OPTIONS + "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" + -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} -DBUILD_ZLIB=OFF -DBUILD_TIFF=OFF -DBUILD_JPEG=OFF @@ -51,20 +51,23 @@ vcpkg_configure_cmake( -DBUILD_TESTS=OFF -DBUILD_WITH_DEBUG_INFO=ON -DOpenCV_DISABLE_ARCH_PATH=ON - -DWITH_FFMPEG=OFF + -DWITH_FFMPEG=ON -DINSTALL_FORCE_UNIX_PATHS=ON -DOPENCV_CONFIG_INSTALL_PATH=share/opencv -DOPENCV_OTHER_INSTALL_PATH=share/opencv -DINSTALL_LICENSE=OFF + # Optional: change to ON to build with CUDA -DWITH_CUDA=OFF -DWITH_CUBLAS=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_LAPACK=OFF - - # uncomment the following 3 lines to build opencv_contrib modules - #-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules - #-DBUILD_PROTOBUF=OFF - #-DUPDATE_PROTO_FILES=ON + -DBUILD_opencv_dnn=ON + -DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules + -DBUILD_PROTOBUF=OFF + -DUPDATE_PROTO_FILES=ON + -DPROTOBUF_UPDATE_FILES=ON + # Optional: change to ON to build with VTK + -DWITH_VTK=OFF OPTIONS_DEBUG -DINSTALL_HEADERS=OFF -DINSTALL_OTHER=OFF @@ -72,13 +75,80 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -file(READ ${CURRENT_PACKAGES_DIR}/debug/share/opencv/OpenCVModules-debug.cmake OPENCV_DEBUG_MODULE) -string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" OPENCV_DEBUG_MODULE "${OPENCV_DEBUG_MODULE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVModules-debug.cmake "${OPENCV_DEBUG_MODULE}") - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) - file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/opencv) file(RENAME ${CURRENT_PACKAGES_DIR}/share/opencv/LICENSE ${CURRENT_PACKAGES_DIR}/share/opencv/copyright) +file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/LICENSE) + +if(VCPKG_PLATFORM_TOOLSET STREQUAL "v141") + set(OpenCV_RUNTIME vc15) +else() + set(OpenCV_RUNTIME vc14) +endif() +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(OpenCV_ARCH x64) +else() + set(OpenCV_ARCH x86) +endif() + +file(GLOB BIN_AND_LIB ${CURRENT_PACKAGES_DIR}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/*) +file(COPY ${BIN_AND_LIB} DESTINATION ${CURRENT_PACKAGES_DIR}) +file(GLOB DEBUG_BIN_AND_LIB ${CURRENT_PACKAGES_DIR}/debug/${OpenCV_ARCH}/${OpenCV_RUNTIME}/*) +file(COPY ${DEBUG_BIN_AND_LIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/${OpenCV_ARCH}) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/${OpenCV_ARCH}) + +file(GLOB STATICLIB ${CURRENT_PACKAGES_DIR}/staticlib/*) +if(STATICLIB) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib) + file(COPY ${STATICLIB} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/staticlib) +endif() +file(GLOB STATICLIB ${CURRENT_PACKAGES_DIR}/debug/staticlib/*) +if(STATICLIB) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib) + file(COPY ${STATICLIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/staticlib) +endif() + +file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake OPENCV_CONFIG) +string(REPLACE " vc15" + " ${OpenCV_RUNTIME}" OPENCV_CONFIG "${OPENCV_CONFIG}") +string(REPLACE " vc14" + " ${OpenCV_RUNTIME}" OPENCV_CONFIG "${OPENCV_CONFIG}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/OpenCVConfig.cmake "${OPENCV_CONFIG}") + +if(EXISTS "${CURRENT_PACKAGES_DIR}/share/opencv/${OpenCV_ARCH}/${OpenCV_RUNTIME}/staticlib") + file(RENAME ${CURRENT_PACKAGES_DIR}/share/opencv/${OpenCV_ARCH}/${OpenCV_RUNTIME}/staticlib ${CURRENT_PACKAGES_DIR}/share/opencv/${OpenCV_ARCH}/${OpenCV_RUNTIME}/lib) +endif() +file(READ ${CURRENT_PACKAGES_DIR}/share/opencv/${OpenCV_ARCH}/${OpenCV_RUNTIME}/lib/OpenCVModules-release.cmake OPENCV_CONFIG_LIB) +string(REPLACE "/staticlib/" + "/lib/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +string(REPLACE "/${OpenCV_ARCH}/${OpenCV_RUNTIME}/" + "/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +string(REPLACE "${CURRENT_INSTALLED_DIR}" + "\${_IMPORT_PREFIX}" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/${OpenCV_ARCH}/${OpenCV_RUNTIME}/lib/OpenCVModules-release.cmake "${OPENCV_CONFIG_LIB}") + +if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/share/opencv/${OpenCV_ARCH}/${OpenCV_RUNTIME}/staticlib") + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/share/opencv/${OpenCV_ARCH}/${OpenCV_RUNTIME}/staticlib ${CURRENT_PACKAGES_DIR}/debug/share/opencv/${OpenCV_ARCH}/${OpenCV_RUNTIME}/lib) +endif() +file(READ ${CURRENT_PACKAGES_DIR}/debug/share/opencv/${OpenCV_ARCH}/${OpenCV_RUNTIME}/lib/OpenCVModules-debug.cmake OPENCV_CONFIG_LIB) +string(REPLACE "/staticlib/" + "/lib/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +string(REPLACE "/${OpenCV_ARCH}/${OpenCV_RUNTIME}/" + "/" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +string(REPLACE "PREFIX}/lib" + "PREFIX}/debug/lib" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +string(REPLACE "PREFIX}/bin" + "PREFIX}/debug/bin" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +string(REPLACE "${CURRENT_INSTALLED_DIR}" + "\${_IMPORT_PREFIX}" OPENCV_CONFIG_LIB "${OPENCV_CONFIG_LIB}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/opencv/${OpenCV_ARCH}/${OpenCV_RUNTIME}/lib/OpenCVModules-debug.cmake "${OPENCV_CONFIG_LIB}") + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) vcpkg_copy_pdbs() + +set(VCPKG_LIBRARY_LINKAGE "dynamic") \ No newline at end of file diff --git a/ports/openexr/CONTROL b/ports/openexr/CONTROL index 1ce905777b..b50a48ae83 100644 --- a/ports/openexr/CONTROL +++ b/ports/openexr/CONTROL @@ -1,4 +1,4 @@ Source: openexr -Version: 2.2.0 +Version: 2.2.0-1 Description: OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications Build-Depends: zlib, ilmbase diff --git a/ports/opengl/portfile.cmake b/ports/opengl/portfile.cmake index 2af9e6e3ba..36622393bc 100644 --- a/ports/opengl/portfile.cmake +++ b/ports/opengl/portfile.cmake @@ -4,18 +4,18 @@ vcpkg_get_program_files_32_bit(PROGRAM_FILES_32_BIT) vcpkg_get_windows_sdk(WINDOWS_SDK) if (WINDOWS_SDK MATCHES "10.") - set(OPENGLPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") + set(LIBFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") set(LICENSEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Licenses\\${WINDOWS_SDK}\\sdk_license.rtf") set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\10\\Include\\${WINDOWS_SDK}\\um") elseif(WINDOWS_SDK MATCHES "8.") - set(OPENGLPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") + set(LIBFILEPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\OpenGL32.Lib") set(HEADERSPATH "${PROGRAM_FILES_32_BIT}\\Windows Kits\\8.1\\Include\\um") else() message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}") endif() -if (NOT EXISTS "${OPENGLPATH}") - message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${OPENGLPATH}") +if (NOT EXISTS "${LIBFILEPATH}") + message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBFILEPATH}") endif() file(MAKE_DIRECTORY @@ -30,8 +30,8 @@ file(COPY "${HEADERSPATH}\\gl\\GLU.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include/gl ) -file(COPY ${OPENGLPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -file(COPY ${OPENGLPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) +file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) +file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) if (DEFINED LICENSEPATH) file(COPY ${LICENSEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/opengl) diff --git a/ports/openimageio/CONTROL b/ports/openimageio/CONTROL index b04914c5c7..1421e3acb7 100644 --- a/ports/openimageio/CONTROL +++ b/ports/openimageio/CONTROL @@ -1,4 +1,4 @@ Source: openimageio -Version: 1.7.15 +Version: 1.7.15-1 Description: An library for reading and writing images, and a bunch of related classes, utilities, and application -Build-Depends: boost, libjpeg-turbo, tiff, libpng, openexr \ No newline at end of file +Build-Depends: boost, libjpeg-turbo, tiff, libpng, openexr diff --git a/ports/openjpeg/CONTROL b/ports/openjpeg/CONTROL index 7a1140c10e..862d82ab89 100644 --- a/ports/openjpeg/CONTROL +++ b/ports/openjpeg/CONTROL @@ -1,3 +1,3 @@ Source: openjpeg -Version: 2.2.0 +Version: 2.2.0-1 Description: JPEG 2000 image library diff --git a/ports/openni2/CONTROL b/ports/openni2/CONTROL index 5dca7646a6..2f0e010e0e 100644 --- a/ports/openni2/CONTROL +++ b/ports/openni2/CONTROL @@ -1,3 +1,3 @@ Source: openni2 -Version: 2.2.0.33 +Version: 2.2.0.33-1 Description: OpenNI is open source library for access to Natural Interaction (NI) devices such as RGB-D camera. diff --git a/ports/openni2/inherit_from_parent_or_project_defaults.patch b/ports/openni2/inherit_from_parent_or_project_defaults.patch new file mode 100644 index 0000000000..73893f3b9f --- /dev/null +++ b/ports/openni2/inherit_from_parent_or_project_defaults.patch @@ -0,0 +1,41 @@ +diff --git a/Source/Drivers/Kinect/Kinect.vcxproj b/Source/Drivers/Kinect/Kinect.vcxproj +index 7f54d04..08a49fe 100644 +--- a/Source/Drivers/Kinect/Kinect.vcxproj ++++ b/Source/Drivers/Kinect/Kinect.vcxproj +@@ -72,28 +72,29 @@ + + $(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\ + $(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\ +- $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include +- $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib; ++ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath) ++ $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(LibraryPath) + true + + + $(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\ + $(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\ +- $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include; +- $(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64; ++ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath) ++ $(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;$(LibraryPath) + true + + + $(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\ + $(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\ +- $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include; +- $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib; ++ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath) ++ $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(LibraryPath) + false + + + $(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\ + $(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\ +- $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include ++ $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath) ++ $(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;$(LibraryPath) + false + + diff --git a/ports/openni2/portfile.cmake b/ports/openni2/portfile.cmake index 12ac4902b2..7c15b40ec7 100644 --- a/ports/openni2/portfile.cmake +++ b/ports/openni2/portfile.cmake @@ -36,12 +36,29 @@ vcpkg_download_distfile(ARCHIVE ) vcpkg_extract_source_archive(${ARCHIVE}) +get_filename_component(KINECTSDK10_DIR "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Kinect;SDKInstallPath]" ABSOLUTE CACHE) +set(KINECTSDK10_INSTALLED FALSE) +if(EXISTS "${KINECTSDK10_DIR}") + set(KINECTSDK10_INSTALLED TRUE) +endif() + +file(TO_NATIVE_PATH ${KINECTSDK10_DIR} KINECTSDK10_DIR) +configure_file("${CMAKE_CURRENT_LIST_DIR}/replace_environment_variable.patch.in" "${CMAKE_CURRENT_LIST_DIR}/replace_environment_variable.patch" @ONLY) + vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES "${CMAKE_CURRENT_LIST_DIR}/upgrade_projects.patch" - PATCHES "${CMAKE_CURRENT_LIST_DIR}/disable_kinect.patch" + "${CMAKE_CURRENT_LIST_DIR}/inherit_from_parent_or_project_defaults.patch" + "${CMAKE_CURRENT_LIST_DIR}/replace_environment_variable.patch" ) +if(NOT ${KINECTSDK10_INSTALLED}) + vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/disable_kinect.patch" + ) +endif() + # Build OpenNI2 vcpkg_build_msbuild( PROJECT_PATH "${SOURCE_PATH}/OpenNI.sln" @@ -146,6 +163,15 @@ file( ${CURRENT_PACKAGES_DIR}/bin/OpenNI2/Drivers ) +if(${KINECTSDK10_INSTALLED}) + file( + INSTALL + "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/Kinect.dll" + DESTINATION + ${CURRENT_PACKAGES_DIR}/bin/OpenNI2/Drivers + ) +endif() + file( INSTALL "${SOURCE_CONFIG_PATH}/OpenNI.ini" @@ -165,6 +191,15 @@ file( ${CURRENT_PACKAGES_DIR}/debug/bin/OpenNI2/Drivers ) +if(${KINECTSDK10_INSTALLED}) + file( + INSTALL + "${SOURCE_BIN_PATH_DEBUG}/OpenNI2/Drivers/Kinect.dll" + DESTINATION + ${CURRENT_PACKAGES_DIR}/debug/bin/OpenNI2/Drivers + ) +endif() + file( INSTALL "${SOURCE_CONFIG_PATH}/OpenNI.ini" @@ -184,6 +219,15 @@ file( ${CURRENT_PACKAGES_DIR}/tools/openni2/OpenNI2/Drivers ) +if(${KINECTSDK10_INSTALLED}) + file( + INSTALL + "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/Kinect.dll" + DESTINATION + ${CURRENT_PACKAGES_DIR}/tools/openni2/OpenNI2/Drivers + ) +endif() + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(NUMBEROFBIT 32) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") @@ -199,7 +243,7 @@ file( "${SOURCE_BIN_PATH_RELEASE}/PS1080Console.exe" "${SOURCE_BIN_PATH_RELEASE}/PSLinkConsole.exe" DESTINATION - ${CURRENT_PACKAGES_DIR}/tools/openni2/ + ${CURRENT_PACKAGES_DIR}/tools/openni2 ) # Handle copyright diff --git a/ports/openni2/replace_environment_variable.patch.in b/ports/openni2/replace_environment_variable.patch.in new file mode 100644 index 0000000000..25abe7edfd --- /dev/null +++ b/ports/openni2/replace_environment_variable.patch.in @@ -0,0 +1,76 @@ +diff --git a/Source/Drivers/Kinect/Kinect.vcxproj b/Source/Drivers/Kinect/Kinect.vcxproj +index 08a49fe..7fd8620 100644 +--- a/Source/Drivers/Kinect/Kinect.vcxproj ++++ b/Source/Drivers/Kinect/Kinect.vcxproj +@@ -101,7 +101,7 @@ + + Level3 + Disabled +- ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; ++ ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@KINECTSDK10_DIR@\inc; + _WINDLL;%(PreprocessorDefinitions);_WINDOWS + false + false +@@ -109,7 +109,7 @@ + + true + Kinect10.lib;XnLib.lib;%(AdditionalDependencies) +- $(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\x86; ++ $(SolutionDir)Bin\$(Platform)-$(Configuration)\;@KINECTSDK10_DIR@\lib\x86; + true + + +@@ -117,7 +117,7 @@ + + Level3 + Disabled +- ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; ++ ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@KINECTSDK10_DIR@\inc; + _WINDLL;%(PreprocessorDefinitions);_WINDOWS + false + false +@@ -125,7 +125,7 @@ + + true + Kinect10.lib;XnLib.lib;%(AdditionalDependencies) +- $(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\amd64; ++ $(SolutionDir)Bin\$(Platform)-$(Configuration)\;@KINECTSDK10_DIR@\lib\amd64; + + + +@@ -139,7 +139,7 @@ + MaxSpeed + true + true +- ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; ++ ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@KINECTSDK10_DIR@\inc; + false + + +@@ -147,7 +147,7 @@ + true + true + Kinect10.lib;XnLib.lib;%(AdditionalDependencies) +- $(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\x86; ++ $(SolutionDir)Bin\$(Platform)-$(Configuration)\;@KINECTSDK10_DIR@\lib\x86; + true + + +@@ -157,7 +157,7 @@ + MaxSpeed + true + true +- ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; ++ ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@KINECTSDK10_DIR@\inc; + false + + +@@ -165,7 +165,7 @@ + true + true + Kinect10.lib;XnLib.lib;%(AdditionalDependencies) +- $(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\amd64; ++ $(SolutionDir)Bin\$(Platform)-$(Configuration)\;@KINECTSDK10_DIR@\lib\amd64; + true + + diff --git a/ports/openssl/CONTROL b/ports/openssl/CONTROL index bb00f9cc3b..f3f065c134 100644 --- a/ports/openssl/CONTROL +++ b/ports/openssl/CONTROL @@ -1,3 +1,3 @@ Source: openssl -Version: 1.0.2l-1 +Version: 1.0.2l-3 Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library. diff --git a/ports/openssl/EmbedSymbolsInStaticLibsZ7.patch b/ports/openssl/EmbedSymbolsInStaticLibsZ7.patch new file mode 100644 index 0000000000..1a8de2c4bd --- /dev/null +++ b/ports/openssl/EmbedSymbolsInStaticLibsZ7.patch @@ -0,0 +1,25 @@ +diff --git a/util/pl/VC-32.pl b/util/pl/VC-32.pl +index dba96cb..5722f6e 100644 +--- a/util/pl/VC-32.pl ++++ b/util/pl/VC-32.pl +@@ -154,9 +154,17 @@ else + $cflags=$opt_cflags.$base_cflags; + } + +-# generate symbols.pdb unconditionally +-$app_cflag.=" /Zi /Fd\$(TMP_D)/app"; +-$lib_cflag.=" /Zi /Fd\$(TMP_D)/lib"; ++# generate symbols.pdb when building dlls and embed symbols when building static libs ++if ($shlib) ++ { ++ $app_cflag.=" /Zi /Fd\$(TMP_D)/app.pdb"; ++ $lib_cflag.=" /Zi /Fd\$(TMP_D)/lib.pdb"; ++ } ++else ++ { ++ $app_cflag.=" /Z7"; ++ $lib_cflag.=" /Z7"; ++ } + $lflags.=" /debug"; + + $obj='.obj'; diff --git a/ports/openssl/portfile.cmake b/ports/openssl/portfile.cmake index 569de6c75f..8ad0ff197f 100644 --- a/ports/openssl/portfile.cmake +++ b/ports/openssl/portfile.cmake @@ -28,6 +28,7 @@ vcpkg_apply_patches( PATCHES ${CMAKE_CURRENT_LIST_DIR}/PerlScriptSpaceInPathFixes.patch ${CMAKE_CURRENT_LIST_DIR}/ConfigureIncludeQuotesFix.patch ${CMAKE_CURRENT_LIST_DIR}/STRINGIFYPatch.patch + ${CMAKE_CURRENT_LIST_DIR}/EmbedSymbolsInStaticLibsZ7.patch ) set(CONFIGURE_COMMAND ${PERL} Configure @@ -126,11 +127,15 @@ message(STATUS "Build ${TARGET_TRIPLET}-dbg done") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/openssl.exe - ${CURRENT_PACKAGES_DIR}/bin/openssl.exe ${CURRENT_PACKAGES_DIR}/debug/openssl.cnf ${CURRENT_PACKAGES_DIR}/openssl.cnf ) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/${PORT}/) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/openssl.exe ${CURRENT_PACKAGES_DIR}/tools/${PORT}/openssl.exe) + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) + file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openssl RENAME copyright) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) diff --git a/ports/opusfile/CONTROL b/ports/opusfile/CONTROL index fd8a652c88..5489cb4b21 100644 --- a/ports/opusfile/CONTROL +++ b/ports/opusfile/CONTROL @@ -1,4 +1,4 @@ Source: opusfile -Version: 0.9 +Version: 0.9-1 Description: Stand-alone decoder library for .opus streams Build-Depends: libogg, opus, openssl diff --git a/ports/osg/CONTROL b/ports/osg/CONTROL index 867a8b4e0c..df2af4bc15 100644 --- a/ports/osg/CONTROL +++ b/ports/osg/CONTROL @@ -1,4 +1,4 @@ Source: osg -Version: 3.5.6 +Version: 3.5.6-1 Description: The OpenSceneGraph is an open source high performance 3D graphics toolkit. Build-Depends: freetype, jasper, openexr, zlib, gdal, giflib, libjpeg-turbo, libpng, tiff diff --git a/ports/paho-mqtt/CONTROL b/ports/paho-mqtt/CONTROL index 7981a51959..cefd6bb879 100644 --- a/ports/paho-mqtt/CONTROL +++ b/ports/paho-mqtt/CONTROL @@ -1,4 +1,4 @@ Source: paho-mqtt -Version: Version 1.1.0 (Paho 1.2) +Version: 1.2.0-2 Description: Paho project provides open-source client implementations of MQTT and MQTT-SN messaging protocols aimed at new, existing, and emerging applications for the Internet of Things Build-Depends: openssl diff --git a/ports/paho-mqtt/disable_tests.patch b/ports/paho-mqtt/disable_tests.patch new file mode 100644 index 0000000000..ed9a644ff7 --- /dev/null +++ b/ports/paho-mqtt/disable_tests.patch @@ -0,0 +1,16 @@ +diff --git "a/CMakeLists.txt" "b/CMakeLists.txt" +index c041df0..2feb580 100644 +--- "a/CMakeLists.txt" ++++ "b/CMakeLists.txt" +@@ -94,7 +94,10 @@ SET(CPACK_PACKAGE_VERSION_MINOR ${PAHO_VERSION_MINOR}) + SET(CPACK_PACKAGE_VERSION_PATCH ${PAHO_VERSION_PATCH}) + INCLUDE(CPack) + ++if(BUILD_TESTS) + ENABLE_TESTING() + + INCLUDE_DIRECTORIES(test src) + ADD_SUBDIRECTORY(test) ++ ++endif() +\ No newline at end of file diff --git a/ports/paho-mqtt/portfile.cmake b/ports/paho-mqtt/portfile.cmake index 5fc6341f88..27f9c8243d 100644 --- a/ports/paho-mqtt/portfile.cmake +++ b/ports/paho-mqtt/portfile.cmake @@ -1,56 +1,83 @@ include(vcpkg_common_functions) vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO eclipse/paho.mqtt.c - REF v1.1.0 - SHA512 49eebf258e15076048103ff79442ad0d21164b83f713eee7f226998106b5931d310871d3b372322d5ef1cb2801219a6e626400b6fe4198814150a6277d6bfd74 - HEAD_REF master + OUT_SOURCE_PATH SOURCE_PATH + REPO eclipse/paho.mqtt.c + REF v1.2.0 + SHA512 ffad01a8f9f41049dd008e163136e4ecb8c7c51f7b49917201593b0844b15a8d2a413ddec06fa5b2d77e432f0603b71664a23afbb7c215121cebd7d419ccacfa + HEAD_REF master +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PAHO_BUILD_STATIC) + + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + "${CMAKE_CURRENT_LIST_DIR}/disable_tests.patch" + "${CMAKE_CURRENT_LIST_DIR}/remove_compiler_options.patch" ) vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - OPTIONS -DPAHO_WITH_SSL=TRUE + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DPAHO_WITH_SSL=TRUE -DPAHO_BUILD_STATIC=${PAHO_BUILD_STATIC} ) vcpkg_build_cmake() file(GLOB DLLS - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.dll" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.dll" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.dll" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/*.dll" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.dll" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.dll" ) file(GLOB LIBS - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.lib" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.lib" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Release/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/Release/*.lib" ) file(GLOB DEBUG_DLLS - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.dll" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.dll" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.dll" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/*.dll" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.dll" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.dll" ) file(GLOB DEBUG_LIBS - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.lib" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.lib" - "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Debug/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*/Debug/*.lib" ) file(GLOB HEADERS "${SOURCE_PATH}/*/*.h") if(DLLS) - file(INSTALL ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(INSTALL ${DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) endif() file(INSTALL ${LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) if(DEBUG_DLLS) - file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) endif() file(INSTALL ${DEBUG_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(INSTALL ${HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include) +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) + foreach(libname paho-mqtt3as-static paho-mqtt3cs-static paho-mqtt3a-static paho-mqtt3c-static) + foreach(foldername "lib" "debug/lib") + string(REPLACE "-static" "" outlibname ${libname}) + file(RENAME ${CURRENT_PACKAGES_DIR}/${foldername}/${libname}.lib ${CURRENT_PACKAGES_DIR}/${foldername}/${outlibname}.lib) + endforeach() + endforeach() +endif() + +foreach(libname paho-mqtt3a paho-mqtt3c) + foreach(root "${CURRENT_PACKAGES_DIR}" "${CURRENT_PACKAGES_DIR}/debug") + file(REMOVE + ${root}/lib/${libname}.lib + ${root}/bin/${libname}.dll + ) + endforeach() +endforeach() + vcpkg_copy_pdbs() - file(INSTALL ${SOURCE_PATH}/about.html DESTINATION ${CURRENT_PACKAGES_DIR}/share/paho-mqtt RENAME copyright) - -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) diff --git a/ports/paho-mqtt/remove_compiler_options.patch b/ports/paho-mqtt/remove_compiler_options.patch new file mode 100644 index 0000000000..256d07a8f1 --- /dev/null +++ b/ports/paho-mqtt/remove_compiler_options.patch @@ -0,0 +1,13 @@ +diff --git "a/CMakeLists.txt" "b/CMakeLists.txt" +index 2feb580..796d08e 100644 +--- "a/CMakeLists.txt" ++++ "b/CMakeLists.txt" +@@ -55,7 +55,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux") + ENDIF() + + IF(WIN32) +- ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -DWIN32_LEAN_AND_MEAN -MD) ++ ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -DWIN32_LEAN_AND_MEAN) + ELSEIF(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") + ADD_DEFINITIONS(-DOSX) + ENDIF() diff --git a/ports/pango/CONTROL b/ports/pango/CONTROL index 44c8c9b835..aa6c73e686 100644 --- a/ports/pango/CONTROL +++ b/ports/pango/CONTROL @@ -1,4 +1,4 @@ Source: pango -Version: 1.40.11 +Version: 1.40.11-1 Description: Text and font handling library. Build-Depends: glib, gettext, cairo, fontconfig, freetype, harfbuzz diff --git a/ports/pangolin/CONTROL b/ports/pangolin/CONTROL index 5e110627bc..a4d670b74e 100644 --- a/ports/pangolin/CONTROL +++ b/ports/pangolin/CONTROL @@ -1,4 +1,4 @@ Source: pangolin -Version: 0.5 -Build-Depends: eigen3 -Description: Lightweight GUI Library \ No newline at end of file +Version: 0.5-2 +Build-Depends: eigen3, glew, libpng, libjpeg-turbo, ffmpeg +Description: Lightweight GUI Library diff --git a/ports/pangolin/portfile.cmake b/ports/pangolin/portfile.cmake index d93f9d7cd7..3fe7ef8b6c 100644 --- a/ports/pangolin/portfile.cmake +++ b/ports/pangolin/portfile.cmake @@ -13,6 +13,9 @@ vcpkg_configure_cmake( PREFER_NINJA OPTIONS -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON + -DBUILD_EXTERN_GLEW=OFF + -DBUILD_EXTERN_LIBPNG=OFF + -DBUILD_EXTERN_LIBJPEG=OFF ) vcpkg_install_cmake() @@ -21,24 +24,29 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/Pangolin") vcpkg_copy_pdbs() -file(GLOB EXE ${CURRENT_PACKAGES_DIR}/lib/*.dll) -file(COPY ${EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) -file(REMOVE ${EXE}) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + file(GLOB EXE ${CURRENT_PACKAGES_DIR}/lib/*.dll) + file(COPY ${EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE ${EXE}) -file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) -file(COPY ${DEBUG_EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) -file(REMOVE ${DEBUG_EXE}) + file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) + file(COPY ${DEBUG_EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE ${DEBUG_EXE}) -file(READ ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-debug.cmake PANGOLIN_TARGETS) -string(REPLACE "lib/pangolin.dll" "bin/pangolin.dll" PANGOLIN_TARGETS "${PANGOLIN_TARGETS}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-debug.cmake "${PANGOLIN_TARGETS}") + file(READ ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-debug.cmake PANGOLIN_TARGETS) + string(REPLACE "lib/pangolin.dll" "bin/pangolin.dll" PANGOLIN_TARGETS "${PANGOLIN_TARGETS}") + file(WRITE ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-debug.cmake "${PANGOLIN_TARGETS}") -file(READ ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-release.cmake PANGOLIN_TARGETS) -string(REPLACE "lib/pangolin.dll" "bin/pangolin.dll" PANGOLIN_TARGETS "${PANGOLIN_TARGETS}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-release.cmake "${PANGOLIN_TARGETS}") + file(READ ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-release.cmake PANGOLIN_TARGETS) + string(REPLACE "lib/pangolin.dll" "bin/pangolin.dll" PANGOLIN_TARGETS "${PANGOLIN_TARGETS}") + file(WRITE ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-release.cmake "${PANGOLIN_TARGETS}") +endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +# Copy missing header file +file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/include/pangolin/pangolin_export.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/pangolin) + # Put the license file where vcpkg expects it file(COPY ${SOURCE_PATH}/LICENCE DESTINATION ${CURRENT_PACKAGES_DIR}/share/Pangolin/) file(RENAME ${CURRENT_PACKAGES_DIR}/share/Pangolin/LICENCE ${CURRENT_PACKAGES_DIR}/share/Pangolin/copyright) diff --git a/ports/parmetis/CONTROL b/ports/parmetis/CONTROL index 86a367cbd1..bb22376545 100644 --- a/ports/parmetis/CONTROL +++ b/ports/parmetis/CONTROL @@ -1,4 +1,4 @@ Source: parmetis -Version: 4.0.3 +Version: 4.0.3-1 Description: Parallel Graph Partitioning and Fill-reducing Matrix Ordering Build-Depends: metis, msmpi diff --git a/ports/pcl/CONTROL b/ports/pcl/CONTROL index a92e912deb..e9547c8cbb 100644 --- a/ports/pcl/CONTROL +++ b/ports/pcl/CONTROL @@ -1,4 +1,4 @@ Source: pcl -Version: 1.8.1 +Version: 1.8.1-1 Build-Depends: boost, eigen3, flann, qhull, vtk, openni2, qt5 Description: Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing. diff --git a/ports/pcre/CONTROL b/ports/pcre/CONTROL index 6a321d5d02..b230a2909a 100644 --- a/ports/pcre/CONTROL +++ b/ports/pcre/CONTROL @@ -1,3 +1,3 @@ Source: pcre -Version: 8.41 +Version: 8.41-1 Description: Perl Compatible Regular Expresions diff --git a/ports/pcre2/CONTROL b/ports/pcre2/CONTROL index b25e10d496..06d683de44 100644 --- a/ports/pcre2/CONTROL +++ b/ports/pcre2/CONTROL @@ -1,3 +1,3 @@ Source: pcre2 -Version: 10.30 +Version: 10.30-1 Description: PCRE2 is a re-working of the original Perl Compatible Regular Expressions library diff --git a/ports/physfs/CONTROL b/ports/physfs/CONTROL index 5eac58c364..20d973f184 100644 --- a/ports/physfs/CONTROL +++ b/ports/physfs/CONTROL @@ -1,4 +1,4 @@ Source: physfs -Version: 2.0.3-1 +Version: 2.0.3-2 Description: a library to provide abstract access to various archives Build-Depends: zlib diff --git a/ports/picosha2/CONTROL b/ports/picosha2/CONTROL new file mode 100644 index 0000000000..3aa5919a4a --- /dev/null +++ b/ports/picosha2/CONTROL @@ -0,0 +1,3 @@ +Source: picosha2 +Version: 2017-09-01-c5ff159b6 +Description: PicoSHA2 - a C++ SHA256 hash generator diff --git a/ports/picosha2/portfile.cmake b/ports/picosha2/portfile.cmake new file mode 100644 index 0000000000..2ce8209286 --- /dev/null +++ b/ports/picosha2/portfile.cmake @@ -0,0 +1,11 @@ +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO okdshin/PicoSHA2 + REF c5ff159b60a7755f5601a18cf9c25388ad25e0ef + SHA512 8fa4045d73a921bbb9bf6de96e80272e1d54a52ddb8f7d05643785a3b582e8f7a069ccf901352af26db7788863717c0553f086f69578835d6a0512f0be04bae3 + HEAD_REF master +) + +file(INSTALL ${SOURCE_PATH}/picosha2.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/picosha2 RENAME copyright) diff --git a/ports/piex/CMakeLists.txt b/ports/piex/CMakeLists.txt new file mode 100644 index 0000000000..35a881055c --- /dev/null +++ b/ports/piex/CMakeLists.txt @@ -0,0 +1,43 @@ +cmake_minimum_required(VERSION 3.8.0) +project(piex) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +include_directories(".") + +add_library(binary_parse + src/binary_parse/cached_paged_byte_array.cc + src/binary_parse/range_checked_byte_ptr.cc +) + +add_library(image_type_recognition + src/image_type_recognition/image_type_recognition_lite.cc +) + +target_link_libraries(image_type_recognition binary_parse) + +add_library(tiff_directory + src/tiff_directory/tiff_directory.cc +) + +target_link_libraries(tiff_directory binary_parse) + +add_library(piex + src/piex.cc + src/tiff_parser.cc +) + +target_link_libraries(piex tiff_directory image_type_recognition binary_parse) + +install( + TARGETS piex + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES src/piex.h src/piex_types.h DESTINATION include/src) +endif() diff --git a/ports/piex/CONTROL b/ports/piex/CONTROL new file mode 100644 index 0000000000..2311bbbafb --- /dev/null +++ b/ports/piex/CONTROL @@ -0,0 +1,3 @@ +Source: piex +Version: 2017-09-01-473434f2dd974978b-1 +Description: The Preview Image Extractor (PIEX) is designed to find and extract the largest diff --git a/ports/piex/portfile.cmake b/ports/piex/portfile.cmake new file mode 100644 index 0000000000..2c99ad1c7c --- /dev/null +++ b/ports/piex/portfile.cmake @@ -0,0 +1,28 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(WARNING "Dynamic not supported building static") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/piex + REF 473434f2dd974978b329faf5c87ae8aa09a2714d + SHA512 cb4a4107eb5e880673accac0f19965f3318e5e4c2fc24724afef5d15eab40d5866e17eb1a23af3b06b729d0e898ed99a6407d1f3000e94e3bbd71e1952d19627 + HEAD_REF master +) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/piex RENAME copyright) diff --git a/ports/pixman/CONTROL b/ports/pixman/CONTROL index 3603242d00..940c30cc20 100644 --- a/ports/pixman/CONTROL +++ b/ports/pixman/CONTROL @@ -1,3 +1,3 @@ Source: pixman -Version: 0.34.0-1 +Version: 0.34.0-2 Description: Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization. diff --git a/ports/plibsys/CONTROL b/ports/plibsys/CONTROL index 5f099fc514..92d57ca474 100644 --- a/ports/plibsys/CONTROL +++ b/ports/plibsys/CONTROL @@ -1,3 +1,3 @@ Source: plibsys -Version: 0.0.3 +Version: 0.0.3-1 Description: Highly portable C system library: threads and synchronization, sockets, IPC, data structures and more. diff --git a/ports/poco/CONTROL b/ports/poco/CONTROL index 2762c62481..2c78b6c6e9 100644 --- a/ports/poco/CONTROL +++ b/ports/poco/CONTROL @@ -1,4 +1,4 @@ Source: poco -Version: 1.7.8 +Version: 1.7.8-1 Build-Depends: zlib, pcre, sqlite3, expat Description: Modern, powerful open source C++ class libraries for building network and internet-based applications that run on desktop, server, mobile and embedded systems. diff --git a/ports/podofo/CONTROL b/ports/podofo/CONTROL index dfb5446d19..55fa20a282 100644 --- a/ports/podofo/CONTROL +++ b/ports/podofo/CONTROL @@ -1,4 +1,4 @@ Source: podofo -Version: 0.9.5 +Version: 0.9.5-1 Description: PoDoFo is a library to work with the PDF file format -Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openssl, freetype, fontconfig \ No newline at end of file +Build-Depends: zlib, libpng, libjpeg-turbo, tiff, openssl, freetype, fontconfig diff --git a/ports/portaudio/CONTROL b/ports/portaudio/CONTROL index 5e5ffc57c3..829a870266 100644 --- a/ports/portaudio/CONTROL +++ b/ports/portaudio/CONTROL @@ -1,3 +1,3 @@ Source: portaudio -Version: 19.0.6.00-1 +Version: 19.0.6.00-2 Description: PortAudio Portable Cross-platform Audio I/O API PortAudio is a free, cross-platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' or C++ that will compile and run on many platforms including Windows, Macintosh OS X, and Unix (OSS/ALSA). It is intended to promote the exchange of audio software between developers on different platforms. Many applications use PortAudio for Audio I/O. diff --git a/ports/pqp/CONTROL b/ports/pqp/CONTROL index 8b9882631f..69a72c33ee 100644 --- a/ports/pqp/CONTROL +++ b/ports/pqp/CONTROL @@ -1,3 +1,3 @@ Source: pqp -Version: 1.3-1 +Version: 1.3-2 Description: a proximity query package diff --git a/ports/proj/CONTROL b/ports/proj/CONTROL index b706ca11ac..d6c204fda4 100644 --- a/ports/proj/CONTROL +++ b/ports/proj/CONTROL @@ -1,3 +1,4 @@ Source: proj -Version: 4.9.3 -Description: PROJ.4 library for cartographic projections +Version: 0 +Description: a stub package that pulls in proj4. Do not depend on this package. +Build-Depends: proj4 diff --git a/ports/proj/portfile.cmake b/ports/proj/portfile.cmake index 6007ab62a6..cc6e26fcb0 100644 --- a/ports/proj/portfile.cmake +++ b/ports/proj/portfile.cmake @@ -1,57 +1 @@ -include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/proj-4.9.3) -vcpkg_download_distfile(ARCHIVE - URLS "http://download.osgeo.org/proj/proj-4.9.3.zip" - FILENAME "proj-4.9.3.zip" - SHA512 c9703008cd1f75fe1239b180158e560b9b88ae2ffd900b72923c716908eb86d1abbc4230647af5e3131f8c34481bdc66b03826d669620161ffcfbe67801cb631 -) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH}/ - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001-CMake-add-detection-of-recent-visual-studio-versions.patch - ${CMAKE_CURRENT_LIST_DIR}/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch - ${CMAKE_CURRENT_LIST_DIR}/0003-CMake-configurable-cmake-config-install-location.patch -) - -if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - list(APPEND CMAKE_OPTIONS "-DBUILD_LIBPROJ_SHARED=YES") -else() - list(APPEND CMAKE_OPTIONS "-DBUILD_LIBPROJ_SHARED=NO") -endif() - -vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - OPTIONS ${CMAKE_OPTIONS} - -DPROJ_LIB_SUBDIR=lib - -DPROJ_INCLUDE_SUBDIR=include - -DPROJ_DATA_SUBDIR=share/proj - -DPROJ_CMAKE_CONFIG_SUBDIR=share/proj - -DBUILD_CS2CS=NO - -DBUILD_PROJ=NO - -DBUILD_GEOD=NO - -DBUILD_NAD2BIN=NO - -DPROJ4_TESTS=NO -) - -vcpkg_install_cmake() - - -# Rename library and adapt cmake configuration -# N.B. debug cmake export is not copied, as it's not relocatable -file(READ ${CURRENT_PACKAGES_DIR}/share/proj/proj4-targets-release.cmake PROJ4_TARGETS_RELEASE) -string(REPLACE "proj_4_9.lib" "proj.lib" PROJ4_TARGETS_RELEASE ${PROJ4_TARGETS_RELEASE}) -file(WRITE ${CURRENT_PACKAGES_DIR}/share/proj/proj4-targets-release.cmake ${PROJ4_TARGETS_RELEASE}) - -file(RENAME ${CURRENT_PACKAGES_DIR}/lib/proj_4_9.lib ${CURRENT_PACKAGES_DIR}/lib/proj.lib) -file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/proj_4_9_d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/projd.lib) - -# Remove duplicate headers installed from debug build -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Remove data installed from debug build -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) - -# Handle copyright -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/proj) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/proj/COPYING ${CURRENT_PACKAGES_DIR}/share/proj/copyright) +SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) diff --git a/ports/proj/0001-CMake-add-detection-of-recent-visual-studio-versions.patch b/ports/proj4/0001-CMake-add-detection-of-recent-visual-studio-versions.patch similarity index 100% rename from ports/proj/0001-CMake-add-detection-of-recent-visual-studio-versions.patch rename to ports/proj4/0001-CMake-add-detection-of-recent-visual-studio-versions.patch diff --git a/ports/proj/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch b/ports/proj4/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch similarity index 100% rename from ports/proj/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch rename to ports/proj4/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch diff --git a/ports/proj/0003-CMake-configurable-cmake-config-install-location.patch b/ports/proj4/0003-CMake-configurable-cmake-config-install-location.patch similarity index 100% rename from ports/proj/0003-CMake-configurable-cmake-config-install-location.patch rename to ports/proj4/0003-CMake-configurable-cmake-config-install-location.patch diff --git a/ports/proj4/CONTROL b/ports/proj4/CONTROL new file mode 100644 index 0000000000..cf2519b12c --- /dev/null +++ b/ports/proj4/CONTROL @@ -0,0 +1,3 @@ +Source: proj4 +Version: 4.9.3-1 +Description: PROJ.4 library for cartographic projections diff --git a/ports/proj4/portfile.cmake b/ports/proj4/portfile.cmake new file mode 100644 index 0000000000..626d6b2e4a --- /dev/null +++ b/ports/proj4/portfile.cmake @@ -0,0 +1,68 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/proj-4.9.3) +vcpkg_download_distfile(ARCHIVE + URLS "http://download.osgeo.org/proj/proj-4.9.3.zip" + FILENAME "proj-4.9.3.zip" + SHA512 c9703008cd1f75fe1239b180158e560b9b88ae2ffd900b72923c716908eb86d1abbc4230647af5e3131f8c34481bdc66b03826d669620161ffcfbe67801cb631 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH}/ + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001-CMake-add-detection-of-recent-visual-studio-versions.patch + ${CMAKE_CURRENT_LIST_DIR}/0002-CMake-fix-error-by-only-setting-properties-for-targe.patch + ${CMAKE_CURRENT_LIST_DIR}/0003-CMake-configurable-cmake-config-install-location.patch +) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + list(APPEND CMAKE_OPTIONS "-DBUILD_LIBPROJ_SHARED=YES") +else() + list(APPEND CMAKE_OPTIONS "-DBUILD_LIBPROJ_SHARED=NO") +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS ${CMAKE_OPTIONS} + -DPROJ_LIB_SUBDIR=lib + -DPROJ_INCLUDE_SUBDIR=include + -DPROJ_DATA_SUBDIR=share/proj4 + -DPROJ_CMAKE_CONFIG_SUBDIR=share/proj4 + -DBUILD_CS2CS=NO + -DBUILD_PROJ=NO + -DBUILD_GEOD=NO + -DBUILD_NAD2BIN=NO + -DPROJ4_TESTS=NO +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/proj4) + +# Rename library and adapt cmake configuration +file(READ ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets-release.cmake _contents) +string(REPLACE "proj_4_9.lib" "proj.lib" _contents "${_contents}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets-release.cmake "${_contents}") + +file(READ ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets-debug.cmake _contents) +string(REPLACE "proj_4_9_d.lib" "projd.lib" _contents "${_contents}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets-debug.cmake "${_contents}") + +file(READ ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets.cmake _contents) +string(REPLACE "set(_IMPORT_PREFIX \"${CURRENT_PACKAGES_DIR}\")" + "set(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_DIR}\")\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)" + _contents "${_contents}" +) +file(WRITE ${CURRENT_PACKAGES_DIR}/share/proj4/proj4-targets.cmake "${_contents}") + +file(RENAME ${CURRENT_PACKAGES_DIR}/lib/proj_4_9.lib ${CURRENT_PACKAGES_DIR}/lib/proj.lib) +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/proj_4_9_d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/projd.lib) + +# Remove duplicate headers installed from debug build +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +# Remove data installed from debug build +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +# Handle copyright +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/proj4) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/proj4/COPYING ${CURRENT_PACKAGES_DIR}/share/proj4/copyright) diff --git a/ports/protobuf/0001-fix-missing-export.patch b/ports/protobuf/0001-fix-missing-export.patch deleted file mode 100644 index c7d5ff6c87..0000000000 --- a/ports/protobuf/0001-fix-missing-export.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/google/protobuf/generated_message_util.h b/src/google/protobuf/generated_message_util.h -index 4417446..a7154b4 100644 ---- a/src/google/protobuf/generated_message_util.h -+++ b/src/google/protobuf/generated_message_util.h -@@ -164,7 +164,7 @@ class ExplicitlyConstructed { - - // Default empty string object. Don't use this directly. Instead, call - // GetEmptyString() to get the reference. --extern ExplicitlyConstructed< ::std::string> fixed_address_empty_string; -+LIBPROTOBUF_EXPORT extern ExplicitlyConstructed< ::std::string> fixed_address_empty_string; - LIBPROTOBUF_EXPORT extern ProtobufOnceType empty_string_once_init_; - LIBPROTOBUF_EXPORT void InitEmptyString(); - diff --git a/ports/protobuf/001-add-compiler-flag.patch b/ports/protobuf/001-add-compiler-flag.patch index aec510f441..ad545cad3a 100644 --- a/ports/protobuf/001-add-compiler-flag.patch +++ b/ports/protobuf/001-add-compiler-flag.patch @@ -1,14 +1,13 @@ diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt -index 7618ba21..bd92b09d 100644 +index 7618ba2..d282a60 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt -@@ -165,8 +165,11 @@ endif (protobuf_UNICODE) +@@ -165,8 +165,10 @@ endif (protobuf_UNICODE) include(libprotobuf-lite.cmake) include(libprotobuf.cmake) -include(libprotoc.cmake) -include(protoc.cmake) -+ +if(protobuf_BUILD_COMPILER) + include(libprotoc.cmake) + include(protoc.cmake) @@ -16,11 +15,12 @@ index 7618ba21..bd92b09d 100644 if (protobuf_BUILD_TESTS) include(tests.cmake) + diff --git a/cmake/install.cmake b/cmake/install.cmake -index 28dc90dc..52c1f721 100644 +index 441bf55..20b3aa0 100644 --- a/cmake/install.cmake +++ b/cmake/install.cmake -@@ -1,9 +1,12 @@ +@@ -1,14 +1,17 @@ include(GNUInstallDirs) +set(LIBRARIES_TO_SET_DEST libprotobuf-lite libprotobuf) @@ -28,6 +28,11 @@ index 28dc90dc..52c1f721 100644 + list(APPEND LIBRARIES_TO_SET_DEST libprotoc) +endif() + + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/protobuf.pc.cmake + ${CMAKE_CURRENT_BINARY_DIR}/protobuf.pc @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/protobuf-lite.pc.cmake + ${CMAKE_CURRENT_BINARY_DIR}/protobuf-lite.pc @ONLY) + foreach(_library - libprotobuf-lite - libprotobuf @@ -36,7 +41,7 @@ index 28dc90dc..52c1f721 100644 set_property(TARGET ${_library} PROPERTY INTERFACE_INCLUDE_DIRECTORIES $ -@@ -14,8 +17,10 @@ foreach(_library +@@ -19,8 +22,10 @@ foreach(_library ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${_library}) endforeach() @@ -47,9 +52,9 @@ index 28dc90dc..52c1f721 100644 + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT protoc) +endif() - file(STRINGS extract_includes.bat.in _extract_strings - REGEX "^copy") -@@ -94,7 +99,12 @@ configure_file(protobuf-options.cmake + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/protobuf.pc ${CMAKE_CURRENT_BINARY_DIR}/protobuf-lite.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + +@@ -101,7 +106,12 @@ configure_file(protobuf-options.cmake ${CMAKE_INSTALL_CMAKEDIR}/protobuf-options.cmake @ONLY) # Allows the build directory to be used as a find directory. diff --git a/ports/protobuf/CONTROL b/ports/protobuf/CONTROL index 192b57f96e..b9d8b5b9e7 100644 --- a/ports/protobuf/CONTROL +++ b/ports/protobuf/CONTROL @@ -1,4 +1,4 @@ Source: protobuf -Version: 3.3.0-3 +Version: 3.4.1-1 Build-Depends: zlib -Description: Protocol Buffers - Google's data interchange format \ No newline at end of file +Description: Protocol Buffers - Google's data interchange format diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake index fa81e05423..e3cae639c9 100644 --- a/ports/protobuf/portfile.cmake +++ b/ports/protobuf/portfile.cmake @@ -1,16 +1,17 @@ include(vcpkg_common_functions) -set(PROTOBUF_VERSION 3.3.0) +set(PROTOBUF_VERSION 3.4.1) +set(PROTOC_VERSION 3.4.0) vcpkg_download_distfile(ARCHIVE_FILE URLS "https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-cpp-${PROTOBUF_VERSION}.tar.gz" FILENAME "protobuf-cpp-${PROTOBUF_VERSION}.tar.gz" - SHA512 ef01300bdda4a1a33a6056aea1d55e9d66ab1ca644aa2d9d5633cfc0bccfe4c24fdfa1015889b2c1c568e89ad053c701de1aca45196a6439130b7bb8f461595f + SHA512 6189e23c7e381f62e971bd0e35ad9c3ed8effe584755357013887c6a582cb5a9a654c39affa2a073b658854138f31bfb70f89fa1df494e9386f1d64fd73d07d2 ) vcpkg_download_distfile(TOOL_ARCHIVE_FILE - URLS "https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protoc-${PROTOBUF_VERSION}-win32.zip" - FILENAME "protoc-${PROTOBUF_VERSION}-win32.zip" - SHA512 9b4902b3187fb978a8153aaf050314a3ca9ca161b0712a3672ccdfabb7f5a57035e71c2dfde9a0b99f9417e159dcbdedaf9a2b1917d712dc3d9d554bba0d4ee8 + URLS "https://github.com/google/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-win32.zip" + FILENAME "protoc-${PROTOC_VERSION}-win32.zip" + SHA512 b874c3f47b39ac78f5675e05220318683004a365c248bf47ba50d8c66c8ed7763432451bab30524e131e1185a2bdaa6e6071b389eb61ad58b1b95974cf39d41b ) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION}) @@ -18,13 +19,10 @@ set(TOOL_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION}-win32) vcpkg_extract_source_archive(${ARCHIVE_FILE}) -# Patch to fix the missing export of fixed_address_empty_string, -# see https://github.com/google/protobuf/pull/3216 # Add a flag that can be set to disable the protobuf compiler vcpkg_apply_patches( SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-fix-missing-export.patch" - "${CMAKE_CURRENT_LIST_DIR}/001-add-compiler-flag.patch" + PATCHES "${CMAKE_CURRENT_LIST_DIR}/001-add-compiler-flag.patch" ) @@ -95,15 +93,11 @@ else() protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/debug/bin/protoc.exe) endif() -foreach(FILE ${CURRENT_PACKAGES_DIR}/include/google/protobuf/arena.h ${CURRENT_PACKAGES_DIR}/include/google/protobuf/stubs/port.h) - file(READ ${FILE} _contents) - if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - string(REPLACE "defined(PROTOBUF_USE_DLLS)" "1" _contents "${_contents}") - else() - string(REPLACE "defined(PROTOBUF_USE_DLLS)" "0" _contents "${_contents}") - endif() - file(WRITE ${FILE} "${_contents}") -endforeach() +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(READ ${CURRENT_PACKAGES_DIR}/include/google/protobuf/stubs/platform_macros.h _contents) + string(REPLACE "\#endif // GOOGLE_PROTOBUF_PLATFORM_MACROS_H_" "\#define PROTOBUF_USE_DLLS\n\#endif // GOOGLE_PROTOBUF_PLATFORM_MACROS_H_" _contents "${_contents}") + file(WRITE ${CURRENT_PACKAGES_DIR}/include/google/protobuf/stubs/platform_macros.h "${_contents}") +endif() file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/protobuf RENAME copyright) file(INSTALL ${TOOL_PATH}/bin/protoc.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools) diff --git a/ports/ptex/CONTROL b/ports/ptex/CONTROL index b2e6bff274..e41db76783 100644 --- a/ports/ptex/CONTROL +++ b/ports/ptex/CONTROL @@ -1,4 +1,4 @@ Source: ptex -Version: 2.1.28 +Version: 2.1.28-1 Description: Per-Face Texture Mapping for Production Rendering. Build-Depends: zlib diff --git a/ports/pthreads/CONTROL b/ports/pthreads/CONTROL index 81b97f70be..ee9b7b5fa2 100644 --- a/ports/pthreads/CONTROL +++ b/ports/pthreads/CONTROL @@ -1,3 +1,3 @@ Source: pthreads -Version: 2.9.1 +Version: 2.9.1-1 Description: pthreads for windows diff --git a/ports/pugixml/CONTROL b/ports/pugixml/CONTROL index 298d433b29..5fc5f1e4e8 100644 --- a/ports/pugixml/CONTROL +++ b/ports/pugixml/CONTROL @@ -1,3 +1,3 @@ Source: pugixml -Version: 1.8.1 +Version: 1.8.1-1 Description: C++ XML processing library diff --git a/ports/pybind11/CONTROL b/ports/pybind11/CONTROL index e5ca37eb4a..94ed66368b 100644 --- a/ports/pybind11/CONTROL +++ b/ports/pybind11/CONTROL @@ -1,4 +1,4 @@ Source: pybind11 -Version: 2.1.0-1 +Version: 2.2.0 Description: pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code. -Build-Depends: python3 \ No newline at end of file +Build-Depends: python3 diff --git a/ports/pybind11/portfile.cmake b/ports/pybind11/portfile.cmake index 668edb5d93..3e5802059f 100644 --- a/ports/pybind11/portfile.cmake +++ b/ports/pybind11/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pybind/pybind11 - REF v2.1.0 - SHA512 2f74dcd2b82d8e41da7db36351284fe04511038bec66bdde820da9c0fce92f6d2c5aeb2e48264058a91a775a1a6a99bc757d26ebf001de3df4183d700d46efa1 + REF v2.2.0 + SHA512 65d8c2c9ba77b25577dd330356ef9cc8f9af924b1d578c28176f230c6f6a88cfd335cc01cc5e010bb8e641a000a78cfcaa1a1367b438e7c6e0d40ea511494a5a HEAD_REF master ) diff --git a/ports/pystring/CONTROL b/ports/pystring/CONTROL index 23980ef12a..6b4f140350 100644 --- a/ports/pystring/CONTROL +++ b/ports/pystring/CONTROL @@ -1,3 +1,3 @@ Source: pystring -Version: 1.1.3 +Version: 1.1.3-1 Description: Pystring is a collection of C++ functions which match the interface and behavior of python's string class methods using std::string diff --git a/ports/qca/CONTROL b/ports/qca/CONTROL index cbe923bb49..7d757297c0 100644 --- a/ports/qca/CONTROL +++ b/ports/qca/CONTROL @@ -1,4 +1,4 @@ Source: qca -Version: 2.2.0 +Version: 2.2.0-1 Description: Qt Cryptographic Architecture (QCA). Sources: https://cgit.kde.org/qca.git/ Build-Depends: qt5 diff --git a/ports/qhull/CONTROL b/ports/qhull/CONTROL index a360612852..ff0847781d 100644 --- a/ports/qhull/CONTROL +++ b/ports/qhull/CONTROL @@ -1,3 +1,3 @@ Source: qhull -Version: 2015.2 +Version: 2015.2-1 Description: computes the convex hull, Delaunay triangulation, Voronoi diagram diff --git a/ports/qt5/CONTROL b/ports/qt5/CONTROL index 01c7a3a196..ce46d249b7 100644 --- a/ports/qt5/CONTROL +++ b/ports/qt5/CONTROL @@ -1,4 +1,4 @@ Source: qt5 -Version: 5.8-4 +Version: 5.8-6 Description: Qt5 application framework main components. Webengine, examples and tests not included. Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre, harfbuzz, sqlite3, libpq, double-conversion diff --git a/ports/qt5/fixcmake.py b/ports/qt5/fixcmake.py index 93a535fa2e..b081af58e8 100644 --- a/ports/qt5/fixcmake.py +++ b/ports/qt5/fixcmake.py @@ -18,6 +18,10 @@ for f in files: builder += "\n " + line.replace("/bin/", "/debug/bin/") builder += " endif()\n" elif "_install_prefix}/lib/${LIB_LOCATION}" in line: + # Qt5AxServer(d).lib has been moved to manual-link: + if '_qt5AxServer_install_prefix' in line: + line = line.replace('/lib/', '/lib/manual-link/') + builder += " if (${Configuration} STREQUAL \"RELEASE\")" builder += "\n " + line builder += " else()" @@ -30,7 +34,8 @@ for f in files: builder += "\n " + line.replace("/lib/", "/debug/lib/") builder += " endif()\n" elif "_install_prefix}/lib/qtmaind.lib" in line: - builder += line.replace("/lib/", "/debug/lib/") + # qtmaind.lib has been moved to manual-link: + builder += line.replace("/lib/", "/debug/lib/manual-link/") elif "_install_prefix}/plugins/${PLUGIN_LOCATION}" in line: builder += " if (${Configuration} STREQUAL \"RELEASE\")" builder += "\n " + line @@ -38,8 +43,9 @@ for f in files: builder += "\n " + line.replace("/plugins/", "/debug/plugins/") builder += " endif()\n" elif "_install_prefix}/lib/qtmain.lib" in line: - builder += line - builder += " set(imported_location_debug \"${_qt5Core_install_prefix}/debug/lib/qtmaind.lib\")\n" + # qtmain(d).lib has been moved to manual-link: + builder += line.replace("/lib/", "/lib/manual-link/") + builder += " set(imported_location_debug \"${_qt5Core_install_prefix}/debug/lib/manual-link/qtmaind.lib\")\n" builder += "\n" builder += " set_target_properties(Qt5::WinMain PROPERTIES\n" builder += " IMPORTED_LOCATION_DEBUG ${imported_location_debug}\n" diff --git a/ports/qt5/portfile.cmake b/ports/qt5/portfile.cmake index 33709c5288..4b852e95cd 100644 --- a/ports/qt5/portfile.cmake +++ b/ports/qt5/portfile.cmake @@ -89,6 +89,55 @@ vcpkg_execute_required_process( vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) + +#--------------------------------------------------------------------------- +# Qt5Bootstrap: a release-only dependency +#--------------------------------------------------------------------------- +# Remove release-only Qt5Bootstrap.lib from debug folders: +#file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Bootstrap.lib) +#file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Bootstrap.prl) +# Above approach does not work: +# check_matching_debug_and_release_binaries(dbg_libs, rel_libs) +# requires the two sets to be of equal size! +# Alt. approach, create dummy folder instead: +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/dont-use) +file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Bootstrap.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/dont-use) +file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Bootstrap.prl DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/dont-use) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Bootstrap.lib) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Bootstrap.prl) +#--------------------------------------------------------------------------- + +#--------------------------------------------------------------------------- +# qtmain(d) vs. Qt5AxServer(d) +#--------------------------------------------------------------------------- +# Qt applications have to either link to qtmain(d) or to Qt5AxServer(d), +# never both. See http://doc.qt.io/qt-5/activeqt-server.html for more info. +# +# Create manual-link folders: +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) +# +# Either have users explicitly link against qtmain.lib, qtmaind.lib: +file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) +file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) +file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib) +file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl) +file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) +file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl) +# +# ... or have users explicitly link against Qt5AxServer.lib, Qt5AxServerd.lib: +file(COPY ${CURRENT_PACKAGES_DIR}/lib/Qt5AxServer.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) +file(COPY ${CURRENT_PACKAGES_DIR}/lib/Qt5AxServer.prl DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) +file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/Qt5AxServer.lib) +file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/Qt5AxServer.prl) +file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5AxServerd.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) +file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5AxServerd.prl DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5AxServerd.lib) +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5AxServerd.prl) +#--------------------------------------------------------------------------- + file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5 RENAME copyright) if(EXISTS ${CURRENT_PACKAGES_DIR}/plugins) file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/plugins) diff --git a/ports/ragel/CONTROL b/ports/ragel/CONTROL index bb83fa72f6..bb6595ac5c 100644 --- a/ports/ragel/CONTROL +++ b/ports/ragel/CONTROL @@ -1,3 +1,3 @@ Source: ragel -Version: 6.10 +Version: 6.10-1 Description: Ragel State Machine Compiler diff --git a/ports/readosm/CONTROL b/ports/readosm/CONTROL new file mode 100644 index 0000000000..bc2853daf1 --- /dev/null +++ b/ports/readosm/CONTROL @@ -0,0 +1,4 @@ +Source: readosm +Version: 1.1.0 +Description: ReadOSM is an open source library to extract valid data from within an Open Street Map input file (.osm or .osm.pbf) +Build-Depends: expat, zlib diff --git a/ports/readosm/fix-makefiles.patch b/ports/readosm/fix-makefiles.patch new file mode 100644 index 0000000000..3904b5136a --- /dev/null +++ b/ports/readosm/fix-makefiles.patch @@ -0,0 +1,49 @@ +diff --git a/makefile.vc b/makefile.vc +index 791aedf..d294548 100644 +--- a/makefile.vc ++++ b/makefile.vc +@@ -8,7 +8,7 @@ LIBOBJ = src\readosm.obj src\osmxml.obj \ + src\protobuf.obj src\osm_objects.obj + READOSM_DLL = readosm$(VERSION).dll + +-CFLAGS = /nologo -IC:\OSGeo4W\include -Iheaders $(OPTFLAGS) ++CFLAGS = /nologo -I$(INSTALLED_ROOT)\include -Iheaders $(OPTFLAGS) + + default: all + +@@ -21,9 +21,9 @@ readosm.lib: $(LIBOBJ) + $(READOSM_DLL): readosm_i.lib + + readosm_i.lib: $(LIBOBJ) +- link /debug /dll /out:$(READOSM_DLL) \ ++ link $(LINK_FLAGS) /dll /out:$(READOSM_DLL) \ + /implib:readosm_i.lib $(LIBOBJ) \ +- C:\OSGeo4w\lib\libexpat.lib C:\OSGeo4w\lib\zlib.lib ++ $(LIBS_ALL) + if exist $(READOSM_DLL).manifest mt -manifest \ + $(READOSM_DLL).manifest -outputresource:$(READOSM_DLL);2 + +@@ -35,7 +35,7 @@ clean: + del *.exp + del *.manifest + del *.lib +- del *.obj ++ del src\*.obj + del *.pdb + + install: all +diff --git a/nmake.opt b/nmake.opt +index 5e45c0e..61c44f9 100644 +--- a/nmake.opt ++++ b/nmake.opt +@@ -1,8 +1,8 @@ + # Directory tree where ReadOSM will be installed. +-INSTDIR=C:\OSGeo4W ++INSTDIR=$(INST_DIR) + + # Uncomment the first for an optimized build, or the second for debug. +-OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS \ ++OPTFLAGS= /nologo /fp:precise /W3 $(CL_FLAGS) /D_CRT_SECURE_NO_WARNINGS \ + /DDLL_EXPORT + #OPTFLAGS= /nologo /Zi /MD /Fdreadosm.pdb /DDLL_EXPORT + diff --git a/ports/readosm/fix-version-macro.patch b/ports/readosm/fix-version-macro.patch new file mode 100644 index 0000000000..b091b33597 --- /dev/null +++ b/ports/readosm/fix-version-macro.patch @@ -0,0 +1,13 @@ +diff --git a/src/readosm.c b/src/readosm.c +index e1dda27..7977339 100644 +--- a/src/readosm.c ++++ b/src/readosm.c +@@ -50,7 +50,7 @@ + + #if defined(_WIN32) && !defined(__MINGW32__) + /* MSVC: avoiding to include at all config.h */ +-#define VERSION 1.1.0 ++#define VERSION "1.1.0" + #else + #include "config.h" + #endif diff --git a/ports/readosm/portfile.cmake b/ports/readosm/portfile.cmake new file mode 100644 index 0000000000..40af755eb6 --- /dev/null +++ b/ports/readosm/portfile.cmake @@ -0,0 +1,78 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/readosm-1.1.0) +vcpkg_download_distfile(ARCHIVE + URLS "http://www.gaia-gis.it/gaia-sins/readosm-1.1.0.tar.gz" + FILENAME "readosm-1.1.0.tar.gz" + SHA512 d3581f564c4461c6a1a3d5fd7d18a262c884b2ac935530064bfaebd6c05d692fb92cc600fb40e87e03f7160ebf0eeeb05f51a0e257935d056b233fe28fc01a11 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/fix-makefiles.patch + ${CMAKE_CURRENT_LIST_DIR}/fix-version-macro.patch +) + +find_program(NMAKE nmake) + +set(LIBS_ALL_DBG "\"${CURRENT_INSTALLED_DIR}/debug/lib/expat.lib\" \"${CURRENT_INSTALLED_DIR}/debug/lib/zlibd.lib\"") +set(LIBS_ALL_REL "\"${CURRENT_INSTALLED_DIR}/lib/expat.lib\" \"${CURRENT_INSTALLED_DIR}/lib/zlib.lib\"") + +if(VCPKG_CRT_LINKAGE STREQUAL dynamic) + set(CL_FLAGS_DBG "/MDd /Zi") + set(CL_FLAGS_REL "/MD /Ox") +else() + set(CL_FLAGS_DBG "/MTd /Zi") + set(CL_FLAGS_REL "/MT /Ox") +endif() + +################ +# Debug build +################ +message(STATUS "Building ${TARGET_TRIPLET}-dbg") + +file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" INST_DIR_DBG) + +vcpkg_execute_required_process( + COMMAND ${NMAKE} -f makefile.vc clean install + INST_DIR="${INST_DIR_DBG}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=/debug" "CL_FLAGS=${CL_FLAGS_DBG}" + "LIBS_ALL=${LIBS_ALL_DBG}" + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME nmake-build-${TARGET_TRIPLET}-debug +) +vcpkg_copy_pdbs() +message(STATUS "Building ${TARGET_TRIPLET}-dbg done") + +################ +# Release build +################ +message(STATUS "Building ${TARGET_TRIPLET}-rel") + +file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR_REL) +vcpkg_execute_required_process( + COMMAND ${NMAKE} -f makefile.vc clean install + INST_DIR="${INST_DIR_REL}" INSTALLED_ROOT="${CURRENT_INSTALLED_DIR}" "LINK_FLAGS=" "CL_FLAGS=${CL_FLAGS_REL}" + "LIBS_ALL=${LIBS_ALL_REL}" + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME nmake-build-${TARGET_TRIPLET}-release +) +message(STATUS "Building ${TARGET_TRIPLET}-rel done") + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/readosm RENAME copyright) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/readosm_i.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/readosm_i.lib) +else() + file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/readosm.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/readosm.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/readosm_i.lib ${CURRENT_PACKAGES_DIR}/lib/readosm.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/readosm_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/readosm.lib) +endif() + + +message(STATUS "Packaging ${TARGET_TRIPLET} done") diff --git a/ports/rhash/CONTROL b/ports/rhash/CONTROL index cfa5c6cb04..16b50c9456 100644 --- a/ports/rhash/CONTROL +++ b/ports/rhash/CONTROL @@ -1,3 +1,3 @@ Source: rhash -Version: 1.3.5 +Version: 1.3.5-1 Description: C library for computing a wide variety of hash sums diff --git a/ports/rocksdb/CONTROL b/ports/rocksdb/CONTROL index 2efbda7c33..59850ff033 100644 --- a/ports/rocksdb/CONTROL +++ b/ports/rocksdb/CONTROL @@ -1,4 +1,4 @@ Source: rocksdb -Version: 2017-06-28-18c63af6ef2b9f014c404b88488ae52e6fead03c +Version: 2017-06-28-18c63af6ef2b9f014c404b88488ae52e6fead03c-1 Description: A library that provides an embeddable, persistent key-value store for fast storage Build-Depends: snappy, lz4, gflags, zlib, gtest diff --git a/ports/rtmidi/CONTROL b/ports/rtmidi/CONTROL index 9057812a05..9eaad97351 100644 --- a/ports/rtmidi/CONTROL +++ b/ports/rtmidi/CONTROL @@ -1,3 +1,3 @@ Source: rtmidi -Version: 2.1.1-1 +Version: 2.1.1-2 Description: A set of C++ classes that provide a common API for realtime MIDI input/output across Linux (ALSA & JACK), Macintosh OS X (CoreMidi & JACK) and Windows (Multimedia) diff --git a/ports/rttr/CONTROL b/ports/rttr/CONTROL index 9502479997..e7ed99b8ca 100644 --- a/ports/rttr/CONTROL +++ b/ports/rttr/CONTROL @@ -1,3 +1,3 @@ Source: rttr -Version: 0.9.5 +Version: 0.9.5-1 Description: an easy and intuitive way to use reflection in C++ diff --git a/ports/sciter/CONTROL b/ports/sciter/CONTROL index c41495b518..54d72ec3c5 100644 --- a/ports/sciter/CONTROL +++ b/ports/sciter/CONTROL @@ -1,4 +1,4 @@ Source: sciter -Version: 4.0.2-1 +Version: 4.0.3 Description: Sciter is an embeddable HTML/CSS/scripting engine. Maintainer: andrew.fedoniouk@gmail.com, ehysta@gmail.com diff --git a/ports/sciter/portfile.cmake b/ports/sciter/portfile.cmake index c5cfad6ea4..063b318e31 100644 --- a/ports/sciter/portfile.cmake +++ b/ports/sciter/portfile.cmake @@ -12,9 +12,9 @@ include(vcpkg_common_functions) # header-only library set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) -set(SCITER_VERSION 4.0.2-1) -set(SCITER_REVISION 2d1de5b6d9da55b50168cb9069c8b12490f39d60) -set(SCITER_SHA 3d33bd0f76474b76e2281b96517c26ac1bb4b8009847499c063c0066a8e69280019c133a10967be8aaed97bbd6186023728619233dea6e7bcf1567e45cd57017) +set(SCITER_VERSION 4.0.3) +set(SCITER_REVISION 1209528289b8c8369352d648f4ba0c67826cbd8b) +set(SCITER_SHA 9fc72dd44b22c69715b4b08c5af7a65e0bb48d849191002b2ae45ca6f5ea058fb8c64cc7f6c176215afce682af6166a1579efd8cc2ca0fb9e844ceba1160f10f) if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) set(SCITER_ARCH 64) diff --git a/ports/sdl2-gfx/CONTROL b/ports/sdl2-gfx/CONTROL index 799306235a..0e0b71aec3 100644 --- a/ports/sdl2-gfx/CONTROL +++ b/ports/sdl2-gfx/CONTROL @@ -1,4 +1,4 @@ Source: sdl2-gfx -Version: 1.0.3-1 +Version: 1.0.3-2 Build-Depends: sdl2 Description: Graphics primitives (line, circle, rectangle etc.) with AA support, rotozoomer and other drawing related support functions wrapped up in a C based add-on library for the Simple Direct Media (SDL) cross-platform API layer. diff --git a/ports/sdl2-image/CONTROL b/ports/sdl2-image/CONTROL index 5ebec2f386..a5c41a3347 100644 --- a/ports/sdl2-image/CONTROL +++ b/ports/sdl2-image/CONTROL @@ -1,5 +1,5 @@ Source: sdl2-image -Version: 2.0.1-1 +Version: 2.0.1-2 Build-Depends: sdl2, libpng, libjpeg-turbo, tiff, libwebp Description: SDL_image is an image file loading library. It loads images as SDL surfaces and textures, and supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, WEBP, XCF, XPM, XV diff --git a/ports/sdl2-mixer/CONTROL b/ports/sdl2-mixer/CONTROL index 88356b73f0..756a7380d0 100644 --- a/ports/sdl2-mixer/CONTROL +++ b/ports/sdl2-mixer/CONTROL @@ -1,4 +1,4 @@ Source: sdl2-mixer -Version: 2.0.1-1 +Version: 2.0.1-2 Description: Multi-channel audio mixer library for SDL. Build-Depends: sdl2, libflac, smpeg2, libmodplug, libvorbis diff --git a/ports/sdl2-net/CONTROL b/ports/sdl2-net/CONTROL index 692bb7615e..e64277b396 100644 --- a/ports/sdl2-net/CONTROL +++ b/ports/sdl2-net/CONTROL @@ -1,4 +1,4 @@ Source: sdl2-net -Version: 2.0.1-1 +Version: 2.0.1-2 Description: Networking library for SDL Build-Depends: sdl2 diff --git a/ports/sdl2-ttf/CONTROL b/ports/sdl2-ttf/CONTROL index fe09831eed..7dbe06367b 100644 --- a/ports/sdl2-ttf/CONTROL +++ b/ports/sdl2-ttf/CONTROL @@ -1,4 +1,4 @@ Source: sdl2-ttf -Version: 2.0.14-1 +Version: 2.0.14-2 Description: A library for rendering TrueType fonts with SDL Build-Depends: sdl2, freetype diff --git a/ports/sdl2/CONTROL b/ports/sdl2/CONTROL index f228205790..e4d99f4aed 100644 --- a/ports/sdl2/CONTROL +++ b/ports/sdl2/CONTROL @@ -1,3 +1,3 @@ Source: sdl2 -Version: 2.0.5-3 +Version: 2.0.6-1 Description: Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. diff --git a/ports/sdl2/dont-ignore-default-libs.patch b/ports/sdl2/dont-ignore-default-libs.patch deleted file mode 100644 index c9f4c6079e..0000000000 --- a/ports/sdl2/dont-ignore-default-libs.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 54a23f0..91c5736 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1549,7 +1549,7 @@ if(SDL_SHARED) - SOVERSION ${LT_REVISION} - OUTPUT_NAME "SDL2") - endif() -- if(MSVC) -+ if(MSVC AND NOT LIBC) - # Don't try to link with the default set of libraries. - set_target_properties(SDL2 PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB") - set_target_properties(SDL2 PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB") -@@ -1564,7 +1564,7 @@ if(SDL_STATIC) - add_library(SDL2-static STATIC ${SOURCE_FILES}) - set_target_properties(SDL2-static PROPERTIES OUTPUT_NAME "SDL2") - set_target_properties(SDL2-static PROPERTIES POSITION_INDEPENDENT_CODE ${SDL_STATIC_PIC}) -- if(MSVC) -+ if(MSVC AND NOT LIBC) - set_target_properties(SDL2-static PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB") - set_target_properties(SDL2-static PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB") - set_target_properties(SDL2-static PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB") diff --git a/ports/sdl2/export-symbols-only-in-shared-build.patch b/ports/sdl2/export-symbols-only-in-shared-build.patch index b442954d57..7e6d503e23 100644 --- a/ports/sdl2/export-symbols-only-in-shared-build.patch +++ b/ports/sdl2/export-symbols-only-in-shared-build.patch @@ -1,16 +1,24 @@ -diff --git a/include/begin_code.h b/include/begin_code.h -index 04e78c6..16464f5 100644 ---- a/include/begin_code.h -+++ b/include/begin_code.h +# HG changeset patch +# User Mikhail Paulyshka +# Date 1506252750 -10800 +# Sun Sep 24 14:32:30 2017 +0300 +# Branch SDL2-WIN-SYMBOLS_LEACKAGE +# Node ID 46ec9baae30cd4e0c584de125cae4a3cce2864ad +# Parent 8df7a59b55283aa09889522369a2b32674c048de +win32: fix symbols leakage for static libraries + +diff -r 8df7a59b5528 -r 46ec9baae30c include/begin_code.h +--- a/include/begin_code.h Fri Sep 22 11:25:52 2017 -0700 ++++ b/include/begin_code.h Sun Sep 24 14:32:30 2017 +0300 @@ -58,8 +58,10 @@ # else # define DECLSPEC __declspec(dllimport) # endif --# else -+# elif defined(SDL2_EXPORTS) - # define DECLSPEC __declspec(dllexport) -+# else ++# elif defined(_DLL) ++# define DECLSPEC __declspec(dllexport) + # else +-# define DECLSPEC __declspec(dllexport) +# define DECLSPEC # endif - # else - # if defined(__GNUC__) && __GNUC__ >= 4 + # elif defined(__OS2__) + # ifdef BUILD_SDL diff --git a/ports/sdl2/portfile.cmake b/ports/sdl2/portfile.cmake index 33123c1ba9..a430b29f65 100644 --- a/ports/sdl2/portfile.cmake +++ b/ports/sdl2/portfile.cmake @@ -1,16 +1,19 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2-2.0.5) + +set(SDL2_VERSION 2.0.6) +set(SDL2_HASH ad4dad5663834ee0ffbdca1b531d753449b260c9256df2c48da7261aacd9795d91eef1286525cf914f6b92ba5985de7798f041557574b5d978b8224f10041830) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SDL2-${SDL2_VERSION}) vcpkg_download_distfile(ARCHIVE_FILE - URLS "http://libsdl.org/release/SDL2-2.0.5.tar.gz" - FILENAME "SDL2-2.0.5.tar.gz" - SHA512 6401f5df08c08316c09bc6ac5b28345c5184bb25770baa5c94c0a582ae130ddf73bb736e44bb31f4e427c1ddbbeec4755a6a5f530b6b4c3d0f13ebc78ddc1750 + URLS "http://libsdl.org/release/SDL2-${SDL2_VERSION}.tar.gz" + FILENAME "SDL2-${SDL2_VERSION}.tar.gz" + SHA512 ${SDL2_HASH} ) vcpkg_extract_source_archive(${ARCHIVE_FILE}) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/dont-ignore-default-libs.patch ${CMAKE_CURRENT_LIST_DIR}/export-symbols-only-in-shared-build.patch ) @@ -58,14 +61,11 @@ else() ) vcpkg_install_cmake() - + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -endif() -file(COPY ${CURRENT_PACKAGES_DIR}/lib/SDL2main.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link) -file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/SDL2main.lib) -file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/SDL2main.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) -file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/SDL2main.lib) + vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake") +endif() file(INSTALL ${SOURCE_PATH}/COPYING.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sdl2 RENAME copyright) vcpkg_copy_pdbs() diff --git a/ports/sery/CONTROL b/ports/sery/CONTROL index 782452b2aa..1a771771b8 100644 --- a/ports/sery/CONTROL +++ b/ports/sery/CONTROL @@ -1,3 +1,3 @@ Source: sery -Version: 1.0.0 +Version: 1.0.0-1 Description: Simple binary (de)serialization library diff --git a/ports/sfml/CONTROL b/ports/sfml/CONTROL index e7fb08ecd7..778638482c 100644 --- a/ports/sfml/CONTROL +++ b/ports/sfml/CONTROL @@ -1,4 +1,4 @@ Source: sfml -Version: 2.4.2 +Version: 2.4.2-2 Description: Simple and fast multimedia library Build-Depends: freetype, libflac, libjpeg-turbo, libogg, libvorbis, openal-soft, stb diff --git a/ports/sfml/portfile.cmake b/ports/sfml/portfile.cmake index 69f114ca54..ea4cfd138c 100644 --- a/ports/sfml/portfile.cmake +++ b/ports/sfml/portfile.cmake @@ -1,12 +1,11 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SFML-2.4.2) -vcpkg_download_distfile(ARCHIVE - URLS "http://www.sfml-dev.org/files/SFML-2.4.2-sources.zip" - FILENAME "SFML-2.4.2-sources.zip" - SHA512 14f2b9f244bbff681d1992581f20012f3073456e4baed0fb2bf2cf82538e9c5ddd8ce01b0cfb3874af47091ec19654aa23c426df04fe1ffcfa209623dc362f85) +vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH + REPO "sfml/sfml" + REF "2.4.2" + HEAD_REF master + SHA512 8acfdf320939c953a9a3413398f82d02d68a56a337f1366c2677c14ce032baa8ba059113ac3c91bb6e6fc22eef119369a265be7ef6894526e6a97a01f37e1972) -vcpkg_extract_source_archive(${ARCHIVE}) file(REMOVE_RECURSE ${SOURCE_PATH}/extlibs) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) @@ -30,5 +29,9 @@ file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib) file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link) file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib) -file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfml) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/sfml/license.txt ${CURRENT_PACKAGES_DIR}/share/sfml/copyright) +# At the time of writing, HEAD has license.md instead of license.txt +if (VCPKG_HEAD_VERSION) + file(INSTALL ${SOURCE_PATH}/license.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfml RENAME copyright) +else() + file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sfml RENAME copyright) +endif() \ No newline at end of file diff --git a/ports/shaderc/CONTROL b/ports/shaderc/CONTROL index d9fe76beb2..5a5c2c5800 100644 --- a/ports/shaderc/CONTROL +++ b/ports/shaderc/CONTROL @@ -1,4 +1,4 @@ Source: shaderc -Version: 2df47b51d83ad83cbc2e7f8ff2b56776293e8958-1 +Version: 12fb656ab20ea9aa06e7084a74e5ff832b7ce2da-1 Description: A collection of tools, libraries and tests for shader compilation. Build-Depends: glslang, spirv-tools diff --git a/ports/shaderc/portfile.cmake b/ports/shaderc/portfile.cmake index eb17aa8272..2b925455b5 100644 --- a/ports/shaderc/portfile.cmake +++ b/ports/shaderc/portfile.cmake @@ -7,35 +7,19 @@ # include(vcpkg_common_functions) -find_program(GIT git) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/shaderc + REF 12fb656ab20ea9aa06e7084a74e5ff832b7ce2da + SHA512 6fb45a0b01e6709c44a11658648b9271fe06bd94023dcc5042c47b5f2a04889c2efb0ab4c166f18728594ac9b9aa9f8b354af46d88eb7f7c39c7246f52f5a933 + HEAD_REF master +) -set(SHADERC_GIT_URL "https://github.com/google/shaderc.git") -set(SHADERC_GIT_REF "2df47b51d83ad83cbc2e7f8ff2b56776293e8958") -if(NOT EXISTS "${DOWNLOADS}/shaderc.git") - message(STATUS "Cloning") - vcpkg_execute_required_process( - COMMAND ${GIT} clone --bare ${SHADERC_GIT_URL} ${DOWNLOADS}/shaderc.git - WORKING_DIRECTORY ${DOWNLOADS} - LOGNAME clone - ) -endif() -if(NOT EXISTS "${SOURCE_PATH}/.git") - message(STATUS "Adding worktree and patching") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}) - vcpkg_execute_required_process( - COMMAND ${GIT} worktree add -f --detach ${SOURCE_PATH} ${SHADERC_GIT_REF} - WORKING_DIRECTORY ${DOWNLOADS}/shaderc.git - LOGNAME worktree - ) - message(STATUS "Patching") - vcpkg_execute_required_process( - COMMAND ${GIT} apply ${CMAKE_CURRENT_LIST_DIR}/0001-Do-not-generate-build-version.inc.patch --ignore-whitespace --whitespace=fix - WORKING_DIRECTORY ${SOURCE_PATH} - LOGNAME patch - ) -endif() +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-Do-not-generate-build-version.inc.patch +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/third_party/glslang) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists_spirv.txt DESTINATION ${SOURCE_PATH}/third_party/spirv-tools) @@ -69,10 +53,7 @@ file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools) #Safe to remove as libs are static file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) - - -file(WRITE ${CURRENT_PACKAGES_DIR}/include/shaderc.txt) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/shaderc) diff --git a/ports/shapelib/CONTROL b/ports/shapelib/CONTROL new file mode 100644 index 0000000000..7d37eb8aaf --- /dev/null +++ b/ports/shapelib/CONTROL @@ -0,0 +1,3 @@ +Source: shapelib +Version: 1.4.1 +Description: Shapefile C Library is simple C API for reading and writing ESRI Shapefiles diff --git a/ports/shapelib/portfile.cmake b/ports/shapelib/portfile.cmake new file mode 100644 index 0000000000..0f27876893 --- /dev/null +++ b/ports/shapelib/portfile.cmake @@ -0,0 +1,41 @@ +include(vcpkg_common_functions) + +set(SHAPELIB_VERSION 1.4.1) +set(SHAPELIB_HASH e3e02dde8006773fed25d630896e79fd79d2008a029cc86b157fe0d92c143a9fab930fdb93d9700d4e1397c3b23ae4b86e91db1dbaca1c5388d4e3aea0309341) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/shapelib-${SHAPELIB_VERSION}) + +vcpkg_download_distfile(ARCHIVE + URLS "http://download.osgeo.org/shapelib/shapelib-${SHAPELIB_VERSION}.zip" + FILENAME "shapelib-${SHAPELIB_VERSION}.zip" + SHA512 ${SHAPELIB_HASH} +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DBUILD_TEST=OFF) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) + +file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*.exe") +file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/shapelib) +file(REMOVE ${EXES}) + +file(GLOB DEBUG_EXES "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe") +file(REMOVE ${DEBUG_EXES}) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/shapelib) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/shapelib/COPYING ${CURRENT_PACKAGES_DIR}/share/shapelib/copyright) + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/shapelib) + +vcpkg_copy_pdbs() diff --git a/ports/signalrclient/CONTROL b/ports/signalrclient/CONTROL index a5673e9647..babcce6925 100644 --- a/ports/signalrclient/CONTROL +++ b/ports/signalrclient/CONTROL @@ -1,4 +1,4 @@ Source: signalrclient -Version: 1.0.0-beta1 +Version: 1.0.0-beta1-1 Build-Depends: cpprestsdk -Description: C++ client for SignalR. \ No newline at end of file +Description: C++ client for SignalR. diff --git a/ports/signalrclient/portfile.cmake b/ports/signalrclient/portfile.cmake index 22e91acab3..ad7f4fd581 100644 --- a/ports/signalrclient/portfile.cmake +++ b/ports/signalrclient/portfile.cmake @@ -4,7 +4,7 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/SignalR-Client-Cpp-1.0.0-beta1) vcpkg_download_distfile(ARCHIVE URLS "https://github.com/aspnet/SignalR-Client-Cpp/archive/1.0.0-beta1.tar.gz" FILENAME "SignalR-Client-Cpp-1.0.0-beta1.tar.gz" - SHA512 e0090415aa724087dbe2a317a4642d6359b134e00e836ea70c71bc9186dc8d6bba097666711ab18d9b0a390e1e5f59be2f55279b6859ac20d558b901bf5fe2f2 + SHA512 b38f6f946f1499080071949cbcf574405118f9acfb469441e5b5b0df3e5f0d277a83b30e0d613dc5e54732b9071e3273dac1ee65129f994d5a60eef0e45bdf6c ) vcpkg_extract_source_archive(${ARCHIVE}) @@ -31,4 +31,4 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # copy license file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/signalrclient) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/signalrclient/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/signalrclient/copyright) \ No newline at end of file +file(RENAME ${CURRENT_PACKAGES_DIR}/share/signalrclient/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/signalrclient/copyright) diff --git a/ports/smpeg2/CONTROL b/ports/smpeg2/CONTROL index 26c0b3904c..9d00d9429c 100644 --- a/ports/smpeg2/CONTROL +++ b/ports/smpeg2/CONTROL @@ -1,4 +1,4 @@ Source: smpeg2 -Version: 2.0.0-1 +Version: 2.0.0-2 Description: SDL MPEG Player Library Build-Depends: sdl2 diff --git a/ports/snappy/CONTROL b/ports/snappy/CONTROL index 287c9235e7..2303839557 100644 --- a/ports/snappy/CONTROL +++ b/ports/snappy/CONTROL @@ -1,3 +1,3 @@ Source: snappy -Version: 1.1.7 +Version: 1.1.7-1 Description: A fast compressor/decompressor. diff --git a/ports/sobjectizer/CONTROL b/ports/sobjectizer/CONTROL index 9b9bd724e1..95bcb751b4 100644 --- a/ports/sobjectizer/CONTROL +++ b/ports/sobjectizer/CONTROL @@ -1,3 +1,3 @@ Source: sobjectizer -Version: 5.5.19.2 +Version: 5.5.19.2-1 Description: SObjectizer is a C++ in-process message dispatching framework with implementation of Actor Model, Publish-Subscribe Model and CSP-like channels. diff --git a/ports/soci/CONTROL b/ports/soci/CONTROL index 5480bb712e..1d1708a643 100644 --- a/ports/soci/CONTROL +++ b/ports/soci/CONTROL @@ -1,3 +1,3 @@ Source: soci -Version: 2016.10.22 +Version: 2016.10.22-1 Description: SOCI database access library diff --git a/ports/sophus/CONTROL b/ports/sophus/CONTROL index 8214c4e7e3..f6433e410f 100644 --- a/ports/sophus/CONTROL +++ b/ports/sophus/CONTROL @@ -1,4 +1,4 @@ Source: sophus -Version: 1.0.0 +Version: 1.0.0-1 Build-Depends: eigen3, ceres Description: Lie group library for C++ diff --git a/ports/spdlog/CONTROL b/ports/spdlog/CONTROL index e060a26654..ac0b51be74 100644 --- a/ports/spdlog/CONTROL +++ b/ports/spdlog/CONTROL @@ -1,4 +1,4 @@ Source: spdlog -Version: 0.14.0 +Version: 0.14.0-1 Description: Very fast, header only, C++ logging library Build-Depends: fmt diff --git a/ports/speex/CONTROL b/ports/speex/CONTROL index 680dcdf13e..5d3fa10a20 100644 --- a/ports/speex/CONTROL +++ b/ports/speex/CONTROL @@ -1,3 +1,3 @@ Source: speex -Version: 1.2.0 +Version: 1.2.0-1 Description: Speex is an Open Source/Free Software patent-free audio compression format designed for speech. diff --git a/ports/speexdsp/CONTROL b/ports/speexdsp/CONTROL index 71144ecdd1..d7e8bac98b 100644 --- a/ports/speexdsp/CONTROL +++ b/ports/speexdsp/CONTROL @@ -1,4 +1,4 @@ Source: speexdsp -Version: 1.2rc3-1 +Version: 1.2rc3-2 Description: A patent-free, Open Source/Free Software DSP library. Build-Depends: diff --git a/ports/spirit-po/CONTROL b/ports/spirit-po/CONTROL new file mode 100644 index 0000000000..b9857cea0f --- /dev/null +++ b/ports/spirit-po/CONTROL @@ -0,0 +1,4 @@ +Source: spirit-po +Version: 1.1.2 +Description: A header-only C++ library for localization using GNU gettext po files, based on Boost.Spirit. +Build-Depends: boost diff --git a/ports/spirit-po/portfile.cmake b/ports/spirit-po/portfile.cmake new file mode 100644 index 0000000000..3fa1cb23bc --- /dev/null +++ b/ports/spirit-po/portfile.cmake @@ -0,0 +1,16 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/spirit-po-1.1.2) +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/cbeck88/spirit-po/archive/v1.1.2.zip" + FILENAME "spirit-po-1.1.2.zip" + SHA512 8a33126c199765b91e832c64e546f240d532858e051b217189778ad01ef584c67f0f4b2f9674cb7b4a877ec2a2b21b5eda35dc24a12da8eb7a7990bf63a4a774 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(INSTALL ${SOURCE_PATH}/include/spirit_po + DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# spirit-po is header-only, so no vcpkg_{configure,install}_cmake + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/spirit-po RENAME copyright) diff --git a/ports/spirv-tools/CONTROL b/ports/spirv-tools/CONTROL index eacc40ff95..da2e2f29b6 100644 --- a/ports/spirv-tools/CONTROL +++ b/ports/spirv-tools/CONTROL @@ -1,3 +1,3 @@ Source: spirv-tools -Version: 1.1-f72189c249ba143c6a89a4cf1e7d53337b2ddd40 +Version: v2017.1-dev-7e2d26c77b606b21af839b37fd21381c4a669f23-1 Description: API and commands for processing SPIR-V modules diff --git a/ports/spirv-tools/portfile.cmake b/ports/spirv-tools/portfile.cmake index c9bb5f85fd..08e35b7d34 100644 --- a/ports/spirv-tools/portfile.cmake +++ b/ports/spirv-tools/portfile.cmake @@ -1,68 +1,34 @@ -# Common Ambient Variables: -# VCPKG_ROOT_DIR = -# TARGET_TRIPLET is the current triplet (x86-windows, etc) -# PORT is the current port name (zlib, etc) -# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} -# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} -# - include(vcpkg_common_functions) -find_program(GIT git) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src) - -set(GIT_URL "https://github.com/KhronosGroup/SPIRV-Tools.git") -set(GIT_REF "f72189c249ba143c6a89a4cf1e7d53337b2ddd40") - -if(NOT EXISTS "${DOWNLOADS}/spirv-tools.git") - message(STATUS "Cloning") - vcpkg_execute_required_process( - COMMAND ${GIT} clone --bare ${GIT_URL} ${DOWNLOADS}/spirv-tools.git - WORKING_DIRECTORY ${DOWNLOADS} - LOGNAME clone - ) +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(WARNING "Dynamic not supported. Building static") + set(VCPKG_LIBRARY_LINKAGE "static") endif() -if(NOT EXISTS "${SOURCE_PATH}/.git") - message(STATUS "Adding worktree and patching") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}) - vcpkg_execute_required_process( - COMMAND ${GIT} worktree add -f --detach ${SOURCE_PATH} ${GIT_REF} - WORKING_DIRECTORY ${DOWNLOADS}/spirv-tools.git - LOGNAME worktree - ) - message(STATUS "Patching") -endif() +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KhronosGroup/SPIRV-Tools + REF 7e2d26c77b606b21af839b37fd21381c4a669f23 + SHA512 67e8fcdcb9748df1e7c86bb50358a89b656f80a96534bc5771afc4ce22e9ebcc8ca382f784fab7b856324d487f810c21abaaab2facee7453c0343a9b51d7e60b + HEAD_REF master +) -set(SPIRVHEADERS_GIT_URL "https://github.com/KhronosGroup/SPIRV-Headers.git") -set(SPIRVHEADERS_GIT_REF "bd47a9abaefac00be692eae677daed1b977e625c") +vcpkg_from_github( + OUT_SOURCE_PATH SPIRV_HEADERS_PATH + REPO KhronosGroup/SPIRV-Headers + REF 2bb92e6fe2c6aa410152fc6c63443f452acb1a65 + SHA512 cdd1437a67c7e31e2062e5d0f25c767b99a3fadd64b91d00c3b07404e535bb4bfd78a43878ebbcd45e013a7153f1a2c969da99d50a99cc39efab940d0aab7cfd + HEAD_REF master +) -if(NOT EXISTS "${DOWNLOADS}/SPIRV-Headers.git") - message(STATUS "Cloning") - vcpkg_execute_required_process( - COMMAND ${GIT} clone --bare ${SPIRVHEADERS_GIT_URL} ${DOWNLOADS}/SPIRV-Headers.git - WORKING_DIRECTORY ${DOWNLOADS} - LOGNAME clone - ) -endif() - -if(NOT EXISTS "${SOURCE_PATH}/external/spirv-headers/.git") - message(STATUS "Adding worktree and patching") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}) - vcpkg_execute_required_process( - COMMAND ${GIT} worktree add -f --detach ${SOURCE_PATH}/external/spirv-headers ${SPIRVHEADERS_GIT_REF} - WORKING_DIRECTORY ${DOWNLOADS}/SPIRV-Headers.git - LOGNAME worktree - ) -endif() - -set(VCPKG_LIBRARY_LINKAGE "static") +vcpkg_find_acquire_program(PYTHON3) +get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) +set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}") vcpkg_configure_cmake( - SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src" - # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 - # OPTIONS_RELEASE -DOPTIMIZE=1 - # OPTIONS_DEBUG -DDEBUGGABLE=1 + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DSPIRV-Headers_SOURCE_DIR=${SPIRV_HEADERS_PATH} ) vcpkg_install_cmake() diff --git a/ports/sqlite3/CONTROL b/ports/sqlite3/CONTROL index d833f02b98..b444a953a2 100644 --- a/ports/sqlite3/CONTROL +++ b/ports/sqlite3/CONTROL @@ -1,3 +1,3 @@ -Source: sqlite3 -Version: 3.19.1-1 -Description: SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. \ No newline at end of file +Source: sqlite3 +Version: 3.20.1 +Description: SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. diff --git a/ports/sqlite3/portfile.cmake b/ports/sqlite3/portfile.cmake index 768cd83a6d..4bb53ef802 100644 --- a/ports/sqlite3/portfile.cmake +++ b/ports/sqlite3/portfile.cmake @@ -1,7 +1,7 @@ include(vcpkg_common_functions) -set(SQLITE_VERSION 3190100) -set(SQLITE_HASH 14064707d9ca029131ec92863026748e184ad4d6ca9d25e941fc254d9ad24f1451fc5fae6516603a420925aab1736e3fb92085f03d8dc47ec913839e158652c4) +set(SQLITE_VERSION 3200100) +set(SQLITE_HASH 66c325fec1c13ed5360899aa3e3a7a67d2b79d24dde954df7df7179c4d07e7b20edf831cc7107df863f3f8b0f30d21b934fcd0f7ea7b74409abbc0060bc28f7b) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/sqlite-amalgamation-${SQLITE_VERSION}) vcpkg_download_distfile(ARCHIVE diff --git a/ports/suitesparse/CONTROL b/ports/suitesparse/CONTROL index 000132c374..af5e1b631b 100644 --- a/ports/suitesparse/CONTROL +++ b/ports/suitesparse/CONTROL @@ -1,4 +1,4 @@ Source: suitesparse -Version: 4.5.5-2 +Version: 4.5.5-3 Build-Depends: metis, clapack Description: algebra library diff --git a/ports/sundials/CONTROL b/ports/sundials/CONTROL index b1f0c349b2..376a430fc9 100644 --- a/ports/sundials/CONTROL +++ b/ports/sundials/CONTROL @@ -1,3 +1,3 @@ Source: sundials -Version: 2.7.0 +Version: 2.7.0-1 Description: SUNDIALS (SUite of Nonlinear and DIfferential/ALgebraic equation Solvers) diff --git a/ports/szip/CONTROL b/ports/szip/CONTROL index acc3648106..c775581adc 100644 --- a/ports/szip/CONTROL +++ b/ports/szip/CONTROL @@ -1,3 +1,3 @@ Source: szip -Version: 2.1-1 +Version: 2.1-2 Description: Szip compression software, providing lossless compression of scientific data diff --git a/ports/tacopie/CONTROL b/ports/tacopie/CONTROL index accbf0291e..c0464c02b6 100644 --- a/ports/tacopie/CONTROL +++ b/ports/tacopie/CONTROL @@ -1,3 +1,3 @@ Source: tacopie -Version: 2.4.1-1 +Version: 2.4.1-2 Description: Tacopie is a TCP Client & Server C++11 library diff --git a/ports/taglib/CONTROL b/ports/taglib/CONTROL index dff921020f..cc5fdb0f73 100644 --- a/ports/taglib/CONTROL +++ b/ports/taglib/CONTROL @@ -1,4 +1,4 @@ Source: taglib -Version: 1.11.1-3 +Version: 1.11.1-4 Description: TagLib Audio Meta-Data Library -Build-Depends: zlib \ No newline at end of file +Build-Depends: zlib diff --git a/ports/tbb/portfile.cmake b/ports/tbb/portfile.cmake index d633a9b235..7bde0c4166 100644 --- a/ports/tbb/portfile.cmake +++ b/ports/tbb/portfile.cmake @@ -14,7 +14,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO 01org/tbb REF 2017_U7 - SHA512 77fdd381eece8fb2fba4115af55d168e9d433bbdae3c21a53c35e7d5ed3397645fe75998ad10593b718f6959daaac05112401480cdb4fd2054f50b5f6f1a0df6 + SHA512 e4a6fcc3cace9b57061e8661b09af9cb2be721224889af52f4c1b4faec1a130512b7c960e21171ebb8105593a81bd9b80bef20cda91bfac174d535d0f7ccb680 HEAD_REF tbb_2017) if(TRIPLET_SYSTEM_ARCH STREQUAL x86) diff --git a/ports/telnetpp/CONTROL b/ports/telnetpp/CONTROL new file mode 100644 index 0000000000..595e1cd88b --- /dev/null +++ b/ports/telnetpp/CONTROL @@ -0,0 +1,4 @@ +Source: telnetpp +Version: 1.2.4 +Description: Telnet++ is an implementation of the Telnet Session Layer protocol using C++14 +Build-Depends: boost, gtest, zlib diff --git a/ports/telnetpp/portfile.cmake b/ports/telnetpp/portfile.cmake new file mode 100644 index 0000000000..e52d698776 --- /dev/null +++ b/ports/telnetpp/portfile.cmake @@ -0,0 +1,47 @@ +if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) + message(FATAL_ERROR "Telnetpp does not currently support UWP") +endif() + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KazDragon/telnetpp + REF v1.2.4 + SHA512 16879fd377a7d13aac497bc9989c026acc1ed5b4eb9338d151d3d827c7c4c44fab84dd06c5fe55be4efe49a98ea46e62e80bbc51c8503d6ba1bf5534fee16c84 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +# Remove duplicate header files and CMake input file +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE ${CURRENT_PACKAGES_DIR}/include/telnetpp/version.hpp.in) + +# The install target in the upstream package does not install the binary output +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/telnetpp.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/telnetpp.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +# Move CMake installed configuration files and adjust for vcpkg debug location +file(COPY ${CURRENT_PACKAGES_DIR}/lib/telnetpp/telnetpp-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/telnetpp) +file(COPY ${CURRENT_PACKAGES_DIR}/lib/telnetpp/telnetpp-config-release.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/telnetpp) +file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/telnetpp/telnetpp-config-debug.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/telnetpp) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/telnetpp) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/telnetpp) + +file(READ ${CURRENT_PACKAGES_DIR}/share/telnetpp/telnetpp-config-debug.cmake DEBUG_CONFIG) +string(REPLACE "\${_IMPORT_PREFIX}/lib/telnetpp.lib" + "\${_IMPORT_PREFIX}/debug/lib/telnetpp.lib" DEBUG_CONFIG ${DEBUG_CONFIG}) +file(WRITE ${CURRENT_PACKAGES_DIR}/share/telnetpp/telnetpp-config-debug.cmake "${DEBUG_CONFIG}") + +vcpkg_copy_pdbs() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/telnetpp RENAME COPYRIGHT) diff --git a/ports/tesseract/CONTROL b/ports/tesseract/CONTROL new file mode 100644 index 0000000000..8aee14808a --- /dev/null +++ b/ports/tesseract/CONTROL @@ -0,0 +1,4 @@ +Source: tesseract +Version: 3.05.01-1 +Description: An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google. +Build-Depends: leptonica, icu diff --git a/ports/tesseract/portfile.cmake b/ports/tesseract/portfile.cmake new file mode 100644 index 0000000000..31ed2cd1fe --- /dev/null +++ b/ports/tesseract/portfile.cmake @@ -0,0 +1,49 @@ +include(vcpkg_common_functions) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + message(STATUS "Warning: Dynamic building not supported yet. Building static.") + set(VCPKG_LIBRARY_LINKAGE static) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO tesseract-ocr/tesseract + REF 3.05.01 + SHA512 a49c20c98386684cd89582e57b772811204fad8e5ff18214fb0da109f73629c70845054985e31e8deeb49107fbcf56e546aff661f08eb5dd60fbf83dbe976e81 + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/use-vcpkg-icu.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DSTATIC=ON + -DUSE_SYSTEM_ICU=True +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "cmake") + +# Install tool +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/tesseract) +file(COPY ${CURRENT_PACKAGES_DIR}/bin/tesseract.exe DESTINATION ${CURRENT_PACKAGES_DIR}/tools/tesseract) +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/tesseract) + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) + +# Handle copyright +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tesseract) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/tesseract/LICENSE ${CURRENT_PACKAGES_DIR}/share/tesseract/copyright) diff --git a/ports/tesseract/use-vcpkg-icu.patch b/ports/tesseract/use-vcpkg-icu.patch new file mode 100644 index 0000000000..9c75726e1f --- /dev/null +++ b/ports/tesseract/use-vcpkg-icu.patch @@ -0,0 +1,11 @@ +--- a/training/CMakeLists.txt Thu Aug 17 02:46:15 2017 ++++ b/training/CMakeLists.txt Thu Aug 17 02:46:15 2017 +@@ -11,7 +11,7 @@ + endif() + + # experimental +-if (MSVC AND NOT CPPAN_BUILD) ++if (MSVC AND NOT CPPAN_BUILD AND NOT USE_SYSTEM_ICU) + + include(CheckTypeSize) + check_type_size("void *" SIZEOF_VOID_P) diff --git a/ports/theia/CONTROL b/ports/theia/CONTROL index 554009d2da..56e2181a31 100644 --- a/ports/theia/CONTROL +++ b/ports/theia/CONTROL @@ -1,4 +1,4 @@ Source: theia -Version: 0.7-d15154a +Version: 0.7-d15154a-1 Build-Depends: flann, cereal, ceres, openimageio, glew, freeglut -Description: An open source library for multiview geometry and structure from motion \ No newline at end of file +Description: An open source library for multiview geometry and structure from motion diff --git a/ports/theia/portfile.cmake b/ports/theia/portfile.cmake index a450892251..8ac920d579 100644 --- a/ports/theia/portfile.cmake +++ b/ports/theia/portfile.cmake @@ -9,7 +9,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sweeneychris/TheiaSfM REF d15154a6c30ea48e7d135be126e2936802e476ad - SHA512 e3cb29b1806b6d2ed161c28432ad8788f756e03db55f883bfa2c4b389b506aa46909f0de57460e93e38926d8103382c54f51685bb9035688e4c7378f913c2de0 + SHA512 aaf6e9737d04499f0ffd453952380f2e1aa3aab2a75487d6806bfab60aa972719d7349730eab3d1b37088e99cf6c9076ae1cdea276f48532698226c69ac48977 HEAD_REF master ) diff --git a/ports/thor/CONTROL b/ports/thor/CONTROL index 46396427bc..9ad9780996 100644 --- a/ports/thor/CONTROL +++ b/ports/thor/CONTROL @@ -1,4 +1,4 @@ Source: thor -Version: v2.0 +Version: v2.0-1 Description: Extends the multimedia library SFML with higher-level features Build-Depends: sfml, aurora diff --git a/ports/thrift/CONTROL b/ports/thrift/CONTROL index aef580f73a..d7831632e5 100644 --- a/ports/thrift/CONTROL +++ b/ports/thrift/CONTROL @@ -1,4 +1,4 @@ Source: thrift -Version: 20172805-72ca60debae1d9fb35d9f0085118873669006d7f +Version: 20172805-72ca60debae1d9fb35d9f0085118873669006d7f-1 Build-Depends: boost, zlib, libevent, openssl Description: Apache Thrift is a software project spanning a variety of programming languages and use cases. Our goal is to make reliable, performant communication and data serialization across languages as efficient and seamless as possible. Originally developed at Facebook, Thrift was open sourced in April 2007 and entered the Apache Incubator in May, 2008. Thrift became an Apache TLP in October, 2010. diff --git a/ports/thrift/portfile.cmake b/ports/thrift/portfile.cmake index 94e8201bfc..3cb2804626 100644 --- a/ports/thrift/portfile.cmake +++ b/ports/thrift/portfile.cmake @@ -16,7 +16,7 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apache/thrift REF 72ca60debae1d9fb35d9f0085118873669006d7f - SHA512 6050c66b176ad596d9632b224b8fb49aa3b823c977dacad729dbcdefb0da60eb983d3a32d9326b4317bae6755fb1fc4cee2cc6c282b3e1636a4528844c0f5915 + SHA512 65023690ff04376e9e64c3e9a609640a6416a39a08bb26d31ec8799ec462bbf8631620edf9a10cdf13980b13813304263601598258cf27bbd5027f9f755c49fa HEAD_REF master ) diff --git a/ports/tiff/CONTROL b/ports/tiff/CONTROL index f5727b475f..0222fa8090 100644 --- a/ports/tiff/CONTROL +++ b/ports/tiff/CONTROL @@ -1,4 +1,4 @@ Source: tiff -Version: 4.0.8 +Version: 4.0.8-1 Build-Depends: zlib, libjpeg-turbo, liblzma (windows) Description: A library that supports the manipulation of TIFF image files diff --git a/ports/tinyexr/portfile.cmake b/ports/tinyexr/portfile.cmake index bf725cdddf..6ef6439d50 100644 --- a/ports/tinyexr/portfile.cmake +++ b/ports/tinyexr/portfile.cmake @@ -4,7 +4,7 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/tinyexr-d16ea6347ae78bcee984fb57ca vcpkg_download_distfile(ARCHIVE URLS "https://github.com/syoyo/tinyexr/archive/d16ea6347ae78bcee984fb57cab1f023aeda4fb0.tar.gz" FILENAME "tinyexr-v0.9.5-d16ea6.tar.gz" - SHA512 189ab04f6c5fb50c20ac0515a83ee16cba4b0f1bca004db2926281077868d1384e0c54f81768a54b76286a17c1b0c45a0b82acaf22b7ee843dc87c654b09e950 + SHA512 63399688d7894f9ac4b893b2142202b36108b5029b11c40c3f9ad0f0135625fb0c8e0d54cec88d92c016774648dc829a946d9575c5f19afea56542c00759546e ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/tinythread/CMakeLists.txt b/ports/tinythread/CMakeLists.txt new file mode 100644 index 0000000000..ec8b3634cb --- /dev/null +++ b/ports/tinythread/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.8.0) + +project(tinythread) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +if(BUILD_SHARED_LIBS) + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + +include_directories(source) + +add_library(tinythread source/tinythread.cpp) + +install( + TARGETS tinythread + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES source/tinythread.h source/fast_mutex.h DESTINATION include) +endif() diff --git a/ports/tinythread/CONTROL b/ports/tinythread/CONTROL new file mode 100644 index 0000000000..d438e87214 --- /dev/null +++ b/ports/tinythread/CONTROL @@ -0,0 +1,3 @@ +Source: tinythread +Version: 1.1-1 +Description: Implements a fairly compatible subset of the C++11 thread management classes diff --git a/ports/tinythread/portfile.cmake b/ports/tinythread/portfile.cmake new file mode 100644 index 0000000000..23903e30e4 --- /dev/null +++ b/ports/tinythread/portfile.cmake @@ -0,0 +1,21 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/TinyThread++-1.1") +vcpkg_download_distfile(ARCHIVE + URLS "http://tinythreadpp.bitsnbites.eu/files/TinyThread%2B%2B-1.1-src.tar.bz2" + FILENAME "TinyThread++-1.1.tar.bz2" + SHA512 407f54fcf3f68dd7fec25e9e0749a1803dffa5d52d606905155714d29f519b5eae64ff654b11768fecc32c0123a78c48be37c47993e0caf157a63349a2f869c6 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +file(INSTALL "${SOURCE_PATH}/README.txt" DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinythread RENAME copyright) diff --git a/ports/tinyxml/0001_use_stl.patch b/ports/tinyxml/0001_use_stl.patch new file mode 100644 index 0000000000..a36f930ee6 --- /dev/null +++ b/ports/tinyxml/0001_use_stl.patch @@ -0,0 +1,27 @@ +From 5ca492fee93015411a0f10e0b2f1d3503bf962a1 Mon Sep 17 00:00:00 2001 +From: Mikhail Paulyshka +Date: Sun, 3 Sep 2017 21:43:36 +0300 +Subject: [PATCH] enforce STL usage + +--- + tinyxml.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/tinyxml.h b/tinyxml.h +index a3589e5..7195033 100644 +--- a/tinyxml.h ++++ b/tinyxml.h +@@ -43,6 +43,10 @@ distribution. + #define DEBUG + #endif + ++#ifndef TIXML_USE_STL ++#define TIXML_USE_STL ++#endif ++ + #ifdef TIXML_USE_STL + #include + #include +-- +2.12.2.windows.2 + diff --git a/ports/tinyxml/CMakeLists.txt b/ports/tinyxml/CMakeLists.txt new file mode 100644 index 0000000000..9b55aa7170 --- /dev/null +++ b/ports/tinyxml/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.4) +project(tinyxml) + +set(HEADERS "tinyxml.h") + +set(SOURCES "tinyxml.cpp" + "tinyxmlerror.cpp" + "tinyxmlparser.cpp" +) + +option(BUILD_SHARED_LIBS "Build shared libs" OFF) + +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + +add_library(tinyxml ${SOURCES}) +target_compile_definitions(tinyxml PRIVATE "-DTIXML_USE_STL") + +install( + TARGETS tinyxml + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) + +install(FILES ${HEADERS} DESTINATION include) diff --git a/ports/tinyxml/CONTROL b/ports/tinyxml/CONTROL new file mode 100644 index 0000000000..3d97a33120 --- /dev/null +++ b/ports/tinyxml/CONTROL @@ -0,0 +1,3 @@ +Source: tinyxml +Version: 2.6.2-2 +Description: A simple, small, minimal, C++ XML parser that can be easily integrating into other programs. diff --git a/ports/tinyxml/License.txt b/ports/tinyxml/License.txt new file mode 100644 index 0000000000..2987cf75fc --- /dev/null +++ b/ports/tinyxml/License.txt @@ -0,0 +1,20 @@ +TinyXML is released under the zlib license: + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any +damages arising from the use of this software. + +Permission is granted to anyone to use this software for any +purpose, including commercial applications, and to alter it and +redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must +not claim that you wrote the original software. If you use this +software in a product, an acknowledgment in the product documentation +would be appreciated but is not required. + +2. Altered source versions must be plainly marked as such, and +must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source +distribution. \ No newline at end of file diff --git a/ports/tinyxml/portfile.cmake b/ports/tinyxml/portfile.cmake new file mode 100644 index 0000000000..54d462bb4a --- /dev/null +++ b/ports/tinyxml/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/tinyxml) + +vcpkg_download_distfile(ARCHIVE + URLS "https://sourceforge.net/projects/tinyxml/files/tinyxml/2.6.2/tinyxml_2_6_2.tar.gz" + FILENAME "tinyxml_2_6_2.tar.gz" + SHA512 133b5db06131a90ad0c2b39b0063f1c8e65e67288a7e5d67e1f7d9ba32af10dc5dfa0462f9723985ee27debe8f09a10a25d4b5a5aaff2ede979b1cebe8e59d56 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001_use_stl.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinyxml RENAME copyright) diff --git a/ports/tinyxml2/CONTROL b/ports/tinyxml2/CONTROL index aaa9a7c4fd..c2b75c438f 100644 --- a/ports/tinyxml2/CONTROL +++ b/ports/tinyxml2/CONTROL @@ -1,3 +1,3 @@ Source: tinyxml2 -Version: 5.0.1 +Version: 5.0.1-1 Description: A simple, small, efficient, C++ XML parser diff --git a/ports/units/CONTROL b/ports/units/CONTROL new file mode 100644 index 0000000000..b66a3b828b --- /dev/null +++ b/ports/units/CONTROL @@ -0,0 +1,3 @@ +Source: units +Version: 2.3.0 +Description: A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies. diff --git a/ports/units/portfile.cmake b/ports/units/portfile.cmake new file mode 100644 index 0000000000..910626f6d9 --- /dev/null +++ b/ports/units/portfile.cmake @@ -0,0 +1,25 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO nholthaus/units + REF v2.3.0 + SHA512 1b9d7806e82d0f437574562e647077b6d22c0add81a19b5ec71f53ab608642db2d785a70d03d13cb2eeea2a8bc2d20f112b6bdf49acf0afce44e8e07bb6b7c39 +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA # Disable this option if project cannot be built with Ninja + OPTIONS -DBUILD_TESTS=OFF +) + +vcpkg_install_cmake() + +# Handle copyright/readme/package files +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/units RENAME copyright) +file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/units) +file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/unitsConfig.cmake ${CURRENT_PACKAGES_DIR}/share/units/unitsConfig.cmake) + +# remove uneeded directories +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) \ No newline at end of file diff --git a/ports/urdfdom-headers/CONTROL b/ports/urdfdom-headers/CONTROL new file mode 100644 index 0000000000..0b967f4599 --- /dev/null +++ b/ports/urdfdom-headers/CONTROL @@ -0,0 +1,3 @@ +Source: urdfdom-headers +Version: 1.0.0-2 +Description: The URDF (U-Robot Description Format) headers provides core data structure headers for URDF. diff --git a/ports/urdfdom-headers/portfile.cmake b/ports/urdfdom-headers/portfile.cmake new file mode 100644 index 0000000000..eb2c9020e8 --- /dev/null +++ b/ports/urdfdom-headers/portfile.cmake @@ -0,0 +1,25 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ros/urdfdom_headers + REF 1.0.0 + SHA512 b1f63c1a13f062c987d6be4fcea5eea903577a710d44fdce077722b70d72eb65a265131beac1fdeba576bde189ebf51ac0eb19b2b06a34b0f9fb9dcbd437291a + HEAD_REF master + ) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake") + +# The config files for this project use underscore +file(RENAME ${CURRENT_PACKAGES_DIR}/share/urdfdom-headers ${CURRENT_PACKAGES_DIR}/share/urdfdom_headers) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/) + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/urdfdom-headers RENAME copyright) diff --git a/ports/urdfdom/0001_use_math_defines.patch b/ports/urdfdom/0001_use_math_defines.patch new file mode 100644 index 0000000000..b791533aa7 --- /dev/null +++ b/ports/urdfdom/0001_use_math_defines.patch @@ -0,0 +1,26 @@ +From a374a5b04db27fde58a11cc2ba5ea10a0d0a7dad Mon Sep 17 00:00:00 2001 +From: Mikhail Paulyshka +Date: Sun, 3 Sep 2017 23:24:55 +0300 +Subject: [PATCH] define _USE_MATH_DEFINES + +--- + urdf_parser/CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/urdf_parser/CMakeLists.txt b/urdf_parser/CMakeLists.txt +index 333226e..2158965 100644 +--- a/urdf_parser/CMakeLists.txt ++++ b/urdf_parser/CMakeLists.txt +@@ -1,5 +1,9 @@ + include_directories(include) + ++if(MSVC) ++add_definitions(-D_USE_MATH_DEFINES) ++endif() ++ + add_library(urdfdom_world SHARED src/pose.cpp src/model.cpp src/link.cpp src/joint.cpp src/world.cpp) + target_link_libraries(urdfdom_world ${TinyXML_LIBRARIES} ${console_bridge_LIBRARIES}) + set_target_properties(urdfdom_world PROPERTIES SOVERSION ${URDF_MAJOR_MINOR_VERSION}) +-- +2.12.2.windows.2 + diff --git a/ports/urdfdom/0002_fix_exports.patch b/ports/urdfdom/0002_fix_exports.patch new file mode 100644 index 0000000000..727883f8dd --- /dev/null +++ b/ports/urdfdom/0002_fix_exports.patch @@ -0,0 +1,29 @@ +From 06aa5a06ee543102bf1a4057601adba3490dad60 Mon Sep 17 00:00:00 2001 +From: Mikhail Paulyshka +Date: Sun, 3 Sep 2017 23:55:11 +0300 +Subject: [PATCH] fix exports + +--- + urdf_parser/CMakeLists.txt | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/urdf_parser/CMakeLists.txt b/urdf_parser/CMakeLists.txt +index 2158965..c209228 100644 +--- a/urdf_parser/CMakeLists.txt ++++ b/urdf_parser/CMakeLists.txt +@@ -15,10 +15,12 @@ set_target_properties(urdfdom_model PROPERTIES SOVERSION ${URDF_MAJOR_MINOR_VERS + add_library(urdfdom_sensor SHARED src/urdf_sensor.cpp) + target_link_libraries(urdfdom_sensor urdfdom_model ${TinyXML_LIBRARIES} ${console_bridge_LIBRARIES}) + set_target_properties(urdfdom_sensor PROPERTIES SOVERSION ${URDF_MAJOR_MINOR_VERSION}) ++set_target_properties(urdfdom_sensor PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + + add_library(urdfdom_model_state SHARED src/urdf_model_state.cpp src/twist.cpp) + target_link_libraries(urdfdom_model_state ${TinyXML_LIBRARIES} ${console_bridge_LIBRARIES}) + set_target_properties(urdfdom_model_state PROPERTIES SOVERSION ${URDF_MAJOR_MINOR_VERSION}) ++set_target_properties(urdfdom_model_state PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + + # -------------------------------- + +-- +2.12.2.windows.2 + diff --git a/ports/urdfdom/CONTROL b/ports/urdfdom/CONTROL new file mode 100644 index 0000000000..71e0362512 --- /dev/null +++ b/ports/urdfdom/CONTROL @@ -0,0 +1,4 @@ +Source: urdfdom +Version: 1.0.0-2 +Description: Provides core data structures and a simple XML parsers for populating the class data structures from an URDF file. +Build-Depends: console-bridge, tinyxml, urdfdom-headers diff --git a/ports/urdfdom/portfile.cmake b/ports/urdfdom/portfile.cmake new file mode 100644 index 0000000000..bf0568f8c1 --- /dev/null +++ b/ports/urdfdom/portfile.cmake @@ -0,0 +1,51 @@ +include(vcpkg_common_functions) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + message(STATUS "urdfdom does not support static linkage. Building dynamically.") + set(VCPKG_LIBRARY_LINKAGE dynamic) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ros/urdfdom + REF 1.0.0 + SHA512 50a218e596bcc0cecff904db2fa626bebc3902c4fe1f5ff8e08195e462b4d9a8c416a41f4773cabbcc71490060d3feff7e8528a76b824569dc7fdb0bda01ec3f + HEAD_REF master +) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001_use_math_defines.patch + ${CMAKE_CURRENT_LIST_DIR}/0002_fix_exports.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "CMake") + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) + +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/) +file(RENAME ${CURRENT_PACKAGES_DIR}/bin/ ${CURRENT_PACKAGES_DIR}/tools/urdfdom/) + +file(GLOB URDFDOM_DLLS_DEBUG ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) +foreach(URDFDOM_DLL_DEBUG ${URDFDOM_DLLS_DEBUG}) + file(COPY ${URDFDOM_DLL_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE ${URDFDOM_DLL_DEBUG}) +endforeach() + +file(GLOB URDFDOM_DLLS_RELEASE ${CURRENT_PACKAGES_DIR}/lib/*.dll) +foreach(URDFDOM_DLL_RELEASE ${URDFDOM_DLLS_RELEASE}) + file(COPY ${URDFDOM_DLL_RELEASE} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + file(REMOVE ${URDFDOM_DLL_RELEASE}) +endforeach() + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/urdfdom RENAME copyright) diff --git a/ports/uriparser/CONTROL b/ports/uriparser/CONTROL index 7bba4c357b..76f975dad4 100644 --- a/ports/uriparser/CONTROL +++ b/ports/uriparser/CONTROL @@ -1,3 +1,3 @@ Source: uriparser -Version: 0.8.4 +Version: 0.8.4-1 Description: uriparser is a strictly RFC 3986 compliant URI parsing and handling library written in C. uriparser is cross-platform, fast, supports Unicode diff --git a/ports/utf8proc/CONTROL b/ports/utf8proc/CONTROL index 1dcbbbef1f..84acd89860 100644 --- a/ports/utf8proc/CONTROL +++ b/ports/utf8proc/CONTROL @@ -1,3 +1,3 @@ Source: utf8proc -Version: 2.1.0 +Version: 2.1.0-1 Description: Clean C library for processing UTF-8 Unicode data. diff --git a/ports/utfz/CONTROL b/ports/utfz/CONTROL index 26344d928a..fd18544679 100644 --- a/ports/utfz/CONTROL +++ b/ports/utfz/CONTROL @@ -1,3 +1,3 @@ Source: utfz -Version: 1.2 +Version: 1.2-1 Description: A tiny C++ library for parsing and encoding utf-8 diff --git a/ports/uwebsockets/CONTROL b/ports/uwebsockets/CONTROL index 4faab5bfea..3e202f42b8 100644 --- a/ports/uwebsockets/CONTROL +++ b/ports/uwebsockets/CONTROL @@ -1,4 +1,4 @@ Source: uwebsockets -Version: 0.14.4 +Version: 0.14.4-1 Build-Depends: libuv, openssl, zlib, boost Description: Highly scalable cross-platform WebSocket & HTTP library for C++11 and Node.js diff --git a/ports/vtk/CONTROL b/ports/vtk/CONTROL index 652c277009..284ccecd3a 100644 --- a/ports/vtk/CONTROL +++ b/ports/vtk/CONTROL @@ -1,4 +1,4 @@ Source: vtk -Version: 8.0.0-1 +Version: 8.0.0-2 Description: Software system for 3D computer graphics, image processing, and visualization -Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, qt5, msmpi, libjpeg-turbo, proj, lz4, libtheora +Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, qt5, msmpi, libjpeg-turbo, proj4, lz4, libtheora diff --git a/ports/wildmidi/0001-add-install-target.patch b/ports/wildmidi/0001-add-install-target.patch new file mode 100644 index 0000000000..8270cd9eac --- /dev/null +++ b/ports/wildmidi/0001-add-install-target.patch @@ -0,0 +1,30 @@ +--- a/src/CMakeLists.txt 2017-10-02 14:06:57.163881000 +0000 ++++ b/src/CMakeLists.txt 2017-10-02 14:08:52.815977600 +0000 +@@ -313,6 +313,27 @@ + ENDIF (WIN32 AND CMAKE_COMPILER_IS_MINGW) + + IF (WIN32 AND MSVC) ++ # install our libraries ++ IF (WANT_STATIC) ++ INSTALL(TARGETS libwildmidi_static DESTINATION ${WILDMIDILIB_INSTALLDIR}) ++ IF (WANT_PLAYERSTATIC) ++ INSTALL(TARGETS wildmidi-static DESTINATION bin) ++ ENDIF () ++ ENDIF (WANT_STATIC) ++ ++ IF (BUILD_SHARED_LIBS) ++ INSTALL(TARGETS libwildmidi_dynamic ++ ARCHIVE DESTINATION ${WILDMIDILIB_INSTALLDIR} ++ LIBRARY DESTINATION ${WILDMIDILIB_INSTALLDIR} ++ RUNTIME DESTINATION ${WILDMIDIDLL_INSTALLDIR} ++ ) ++ IF (WANT_PLAYER) ++ INSTALL(TARGETS wildmidi DESTINATION bin) ++ ENDIF () ++ ENDIF () ++ ++ INSTALL(FILES ${CMAKE_SOURCE_DIR}/include/wildmidi_lib.h DESTINATION include) ++ + IF (WANT_MP_BUILD) + SET(MT_BUILD "/MP") + ENDIF () diff --git a/ports/wildmidi/0002-use-ansi.patch b/ports/wildmidi/0002-use-ansi.patch new file mode 100644 index 0000000000..68acb7b345 --- /dev/null +++ b/ports/wildmidi/0002-use-ansi.patch @@ -0,0 +1,22 @@ +diff --git a/src/file_io.c b/src/file_io.c +index 9db9759..7110e8b 100644 +--- a/src/file_io.c ++++ b/src/file_io.c +@@ -118,7 +118,7 @@ void *_WM_BufferFile(const char *filename, uint32_t *size) { + #elif defined(_WIN32) + int buffer_fd; + HANDLE h; +- WIN32_FIND_DATA wfd; ++ WIN32_FIND_DATAA wfd; + #elif defined(__OS2__) || defined(__EMX__) + int buffer_fd; + HDIR h = HDIR_CREATE; +@@ -186,7 +186,7 @@ void *_WM_BufferFile(const char *filename, uint32_t *size) { + } + *size = f.ff_fsize; + #elif defined(_WIN32) +- if ((h = FindFirstFile(buffer_file, &wfd)) == INVALID_HANDLE_VALUE) { ++ if ((h = FindFirstFileA(buffer_file, &wfd)) == INVALID_HANDLE_VALUE) { + _WM_GLOBAL_ERROR(__FUNCTION__, __LINE__, WM_ERR_STAT, filename, ENOENT); + free(buffer_file); + return NULL; diff --git a/ports/wildmidi/CONTROL b/ports/wildmidi/CONTROL new file mode 100644 index 0000000000..116333ec10 --- /dev/null +++ b/ports/wildmidi/CONTROL @@ -0,0 +1,3 @@ +Source: wildmidi +Version: 0.4.1 +Description: MIDI software synthesizer library. diff --git a/ports/wildmidi/portfile.cmake b/ports/wildmidi/portfile.cmake new file mode 100644 index 0000000000..d82895de40 --- /dev/null +++ b/ports/wildmidi/portfile.cmake @@ -0,0 +1,51 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/wildmidi-wildmidi-0.4.1) +vcpkg_download_distfile(ARCHIVE + URLS "https://github.com/Mindwerks/wildmidi/archive/wildmidi-0.4.1.zip" + FILENAME "wildmidi-0.4.1.zip" + SHA512 ebfbb16b57c0d39f1402f91df4dd205d80f5632f6afbe5fa99af6f06279582f0676bb247cd64ec472cdf272f6a1a2917827ed98f9cc24166aa41f050b9f7d396 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001-add-install-target.patch + ${CMAKE_CURRENT_LIST_DIR}/0002-use-ansi.patch +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set(BUILD_SHARED_LIBS "ON") + set(WANT_STATIC "OFF") +else() + set(BUILD_SHARED_LIBS "OFF") + set(WANT_STATIC "ON") +endif() + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DMSVC=ON + -DWANT_PLAYER=OFF + -DWANT_STATIC=${WANT_STATIC} + -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +# Rename library to get rid of _dynamic and _static suffix +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/wildmidi_dynamic.lib ${CURRENT_PACKAGES_DIR}/lib/wildmidi.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/wildmidi_dynamic.lib ${CURRENT_PACKAGES_DIR}/debug/lib/wildmidi.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/bin/wildmidi_dynamic.dll ${CURRENT_PACKAGES_DIR}/bin/wildmidi.dll) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/wildmidi_dynamic.dll ${CURRENT_PACKAGES_DIR}/debug/bin/wildmidi.dll) +else() + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/wildmidi_static.lib ${CURRENT_PACKAGES_DIR}/lib/wildmidi.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/wildmidi_static.lib ${CURRENT_PACKAGES_DIR}/debug/lib/wildmidi.lib) +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/docs/license/LGPLv3.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/wildmidi RENAME copyright) diff --git a/ports/winpcap/CONTROL b/ports/winpcap/CONTROL new file mode 100644 index 0000000000..3a09db5588 --- /dev/null +++ b/ports/winpcap/CONTROL @@ -0,0 +1,3 @@ +Source: winpcap +Version: 4.1.3-1 +Description: WinPcap is the industry-standard tool for link-layer network access in Windows environments. diff --git a/ports/winpcap/create_bin.bat b/ports/winpcap/create_bin.bat new file mode 100644 index 0000000000..aa9e7f1063 --- /dev/null +++ b/ports/winpcap/create_bin.bat @@ -0,0 +1,20 @@ +@echo off + +IF "%2"=="" (set WPDPACKDESTDIR=.\WpdPack\) ELSE (set WPDPACKDESTDIR=%2) + +IF ""=="%1" (set WINPCAPSOURCEDIR=.\) ELSE (set WINPCAPSOURCEDIR=%1) + +echo Creating \Lib folder +mkdir %WPDPACKDESTDIR% >nul 2>nul +mkdir %WPDPACKDESTDIR%\Bin >nul 2>nul +mkdir %WPDPACKDESTDIR%\Bin\x64 >nul 2>nul + +xcopy /v /Y "%WINPCAPSOURCEDIR%\wpcap\PRJ\Release No AirPcap\x86\wpcap.dll" %WPDPACKDESTDIR%\Bin\ >nul +xcopy /v /Y "%WINPCAPSOURCEDIR%\wpcap\PRJ\Release No AirPcap\x64\wpcap.dll" %WPDPACKDESTDIR%\Bin\x64 >nul +xcopy /v /Y %WINPCAPSOURCEDIR%\packetNtx\Dll\Project\Release\x86\packet.dll %WPDPACKDESTDIR%\Bin\ >nul +xcopy /v /Y %WINPCAPSOURCEDIR%\packetNtx\Dll\Project\Release\x64\packet.dll %WPDPACKDESTDIR%\Bin\x64 >nul + +echo Folder \Bin created successfully + +set WPDPACKDESTDIR= +set WINPCAPSOURCEDIR= \ No newline at end of file diff --git a/ports/winpcap/create_lib.patch b/ports/winpcap/create_lib.patch new file mode 100644 index 0000000000..8e144fa3d2 --- /dev/null +++ b/ports/winpcap/create_lib.patch @@ -0,0 +1,19 @@ +diff --git a/create_lib.bat b/create_lib.bat +index dbe511c..d431b88 100644 +--- a/create_lib.bat ++++ b/create_lib.bat +@@ -9,12 +9,10 @@ mkdir %WPDPACKDESTDIR% >nul 2>nul + mkdir %WPDPACKDESTDIR%\Lib >nul 2>nul + mkdir %WPDPACKDESTDIR%\Lib\x64 >nul 2>nul + +-xcopy /v /Y %WINPCAPSOURCEDIR%\wpcap\PRJ\Release\x86\wpcap.lib %WPDPACKDESTDIR%\Lib\ >nul +-xcopy /v /Y %WINPCAPSOURCEDIR%\wpcap\PRJ\Release\x64\wpcap.lib %WPDPACKDESTDIR%\Lib\x64 >nul ++xcopy /v /Y "%WINPCAPSOURCEDIR%\wpcap\PRJ\Release No AirPcap\x86\wpcap.lib" %WPDPACKDESTDIR%\Lib\ >nul ++xcopy /v /Y "%WINPCAPSOURCEDIR%\wpcap\PRJ\Release No AirPcap\x64\wpcap.lib" %WPDPACKDESTDIR%\Lib\x64 >nul + xcopy /v /Y %WINPCAPSOURCEDIR%\packetNtx\Dll\Project\Release\x86\packet.lib %WPDPACKDESTDIR%\Lib\ >nul + xcopy /v /Y %WINPCAPSOURCEDIR%\packetNtx\Dll\Project\Release\x64\packet.lib %WPDPACKDESTDIR%\Lib\x64 >nul +-xcopy /v /Y %WINPCAPSOURCEDIR%\packetNtx\Dll\Project\libpacket.a %WPDPACKDESTDIR%\Lib\ >nul +-xcopy /v /Y %WINPCAPSOURCEDIR%\wpcap\LIB\libwpcap.a %WPDPACKDESTDIR%\Lib\ >nul + + echo Folder \Lib created successfully + diff --git a/ports/winpcap/packetNtx.patch.in b/ports/winpcap/packetNtx.patch.in new file mode 100644 index 0000000000..c19056a0c2 --- /dev/null +++ b/ports/winpcap/packetNtx.patch.in @@ -0,0 +1,725 @@ +diff --git a/packetNtx/Dll/Project/Packet.dsp b/packetNtx/Dll/Project/Packet.dsp +index 6e69440..fc520ce 100644 +--- a/packetNtx/Dll/Project/Packet.dsp ++++ b/packetNtx/Dll/Project/Packet.dsp +@@ -55,8 +55,8 @@ RSC=rc.exe + # PROP Intermediate_Dir "Release" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_WANPACKET_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "NDEBUG" +@@ -87,8 +87,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "Debug" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_WANPACKET_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +@@ -120,8 +120,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "NT4_Debug" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /YX /FD /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "_DEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +@@ -154,8 +154,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "NT4_Release" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "NDEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "NDEBUG" +@@ -187,8 +187,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "Debug_LOG_TO_FILE" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /FR /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +@@ -221,8 +221,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "Release_LOG_TO_FILE" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c +-# ADD CPP /nologo /MT /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /FR /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c + # SUBTRACT CPP /u + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +@@ -255,8 +255,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "NT4_Debug_LOG_TO_FILE" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "_DEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +@@ -289,8 +289,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "NT4_Release_LOG_TO_FILE" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c +-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "NDEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "NDEBUG" +@@ -323,8 +323,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "Debug_No_AirPcap" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "WIN32" /D "_WINDOWS" /D "HAVE_AIRPCAP_API" /YX /FD /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "WIN32" /D "_WINDOWS" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +@@ -357,8 +357,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "Release_No_AirPcap" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_AIRPCAP_API" /YX /FD /c +-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "NDEBUG" +@@ -390,8 +390,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "Debug_No_NpfIm" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /D "_DBG" /YX /FD /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /D "_DBG" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +@@ -424,8 +424,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "Release_No_NpfIm" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c +-# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "NDEBUG" +@@ -457,8 +457,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "Debug_Vista" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +@@ -491,8 +491,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "Release_Vista" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c +-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD BASE RSC /l 0x410 /d "NDEBUG" +@@ -525,9 +525,9 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . + # PROP Intermediate_Dir "Release_Vista_LOG_TO_FILE" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /FR /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /FR /YX /FD /c + # SUBTRACT BASE CPP /u +-# ADD CPP /nologo /MT /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c + # SUBTRACT CPP /u + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 + # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +diff --git a/packetNtx/Dll/Project/Packet.vcproj b/packetNtx/Dll/Project/Packet.vcproj +index 8be719e..e16afe2 100644 +--- a/packetNtx/Dll/Project/Packet.vcproj ++++ b/packetNtx/Dll/Project/Packet.vcproj +@@ -22,7 +22,7 @@ + Name="Debug|Win32" + OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86" + IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86" +- ConfigurationType="2" ++ ConfigurationType="@LIBRARY_LINKAGE@" + CharacterSet="1" + > + + + + +@@ -201,7 +201,7 @@ + + +@@ -280,7 +280,7 @@ + + + + + +@@ -573,7 +573,7 @@ + Name="Release NT4|x64" + OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64" + IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64" +- ConfigurationType="2" ++ ConfigurationType="@LIBRARY_LINKAGE@" + CharacterSet="1" + WholeProgramOptimization="1" + > +@@ -614,7 +614,7 @@ + /> + + + +@@ -833,7 +833,7 @@ + +@@ -913,7 +913,7 @@ + + +@@ -992,7 +992,7 @@ + + +@@ -1071,7 +1071,7 @@ + + +@@ -1149,7 +1149,7 @@ + +@@ -1229,7 +1229,7 @@ + + +@@ -1365,7 +1365,7 @@ + Name="Release NT4 LOG_TO_FILE|x64" + OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64" + IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64" +- ConfigurationType="2" ++ ConfigurationType="@LIBRARY_LINKAGE@" + CharacterSet="1" + WholeProgramOptimization="1" + > +@@ -1406,7 +1406,7 @@ + /> + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- + +# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm) +# + +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/winpcap) +vcpkg_download_distfile(ARCHIVE + URLS "https://www.winpcap.org/install/bin/WpcapSrc_4_1_3.zip" + FILENAME "WpcapSrc_4_1_3.zip" + SHA512 89a5109ed17f8069f7a43497f6fec817c58620dbc5fa506e52069b9113c5bc13f69c307affe611281cb727cfa0f8529d07044d41427e350b24468ccc89a87f33 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +if(VCPKG_CRT_LINKAGE STREQUAL "static") + set(CRT_LINKAGE "MT") +elseif(VCPKG_CRT_LINKAGE STREQUAL "dynamic") + set(CRT_LINKAGE "MD") +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") +set(LIBRARY_LINKAGE "4") +elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") +set(LIBRARY_LINKAGE "2") +endif() + +configure_file("${CMAKE_CURRENT_LIST_DIR}/packetNtx.patch.in" "${CMAKE_CURRENT_LIST_DIR}/packetNtx.patch" @ONLY) +configure_file("${CMAKE_CURRENT_LIST_DIR}/wpcap.patch.in" "${CMAKE_CURRENT_LIST_DIR}/wpcap.patch" @ONLY) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/packetNtx.patch" + "${CMAKE_CURRENT_LIST_DIR}/wpcap.patch" + "${CMAKE_CURRENT_LIST_DIR}/create_lib.patch" +) + +file( + COPY + "${CURRENT_PORT_DIR}/create_bin.bat" + DESTINATION + ${SOURCE_PATH} +) + +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") + set(PLATFORM Win32) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PLATFORM x64) +endif() + +vcpkg_execute_required_process( + COMMAND "devenv.exe" + "Packet.sln" + /Upgrade + WORKING_DIRECTORY ${SOURCE_PATH}/packetNtx/Dll/Project + LOGNAME upgrade-Packet-${TARGET_TRIPLET} +) + +vcpkg_build_msbuild( + PROJECT_PATH "${SOURCE_PATH}/packetNtx/Dll/Project/Packet.sln" + PLATFORM ${PLATFORM} +) + +vcpkg_find_acquire_program(BISON) +vcpkg_find_acquire_program(FLEX) + +vcpkg_execute_required_process( + COMMAND ${SOURCE_PATH}/wpcap/PRJ/build_scanner_parser.bat + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME build_scanner_parser-${TARGET_TRIPLET} +) + +vcpkg_execute_required_process( + COMMAND "devenv.exe" + "wpcap.sln" + /Upgrade + WORKING_DIRECTORY ${SOURCE_PATH}/wpcap/PRJ + LOGNAME upgrade-wpcap-${TARGET_TRIPLET} +) + +vcpkg_build_msbuild( + PROJECT_PATH "${SOURCE_PATH}/wpcap/PRJ/wpcap.sln" + RELEASE_CONFIGURATION "Release - No AirPcap" + DEBUG_CONFIGURATION "Debug - No AirPcap" + PLATFORM ${PLATFORM} +) + +vcpkg_execute_required_process( + COMMAND ${SOURCE_PATH}/create_include.bat + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME create_include-${TARGET_TRIPLET} +) + +file( + INSTALL + "${SOURCE_PATH}/WpdPack/Include/bittypes.h" + "${SOURCE_PATH}/WpdPack/Include/ip6_misc.h" + "${SOURCE_PATH}/WpdPack/Include/Packet32.h" + "${SOURCE_PATH}/WpdPack/Include/pcap.h" + "${SOURCE_PATH}/WpdPack/Include/pcap-bpf.h" + "${SOURCE_PATH}/WpdPack/Include/pcap-namedb.h" + "${SOURCE_PATH}/WpdPack/Include/pcap-stdinc.h" + "${SOURCE_PATH}/WpdPack/Include/remote-ext.h" + "${SOURCE_PATH}/WpdPack/Include/Win32-Extensions.h" + DESTINATION + ${CURRENT_PACKAGES_DIR}/include +) + +file( + INSTALL + "${SOURCE_PATH}/WpdPack/Include/pcap/bluetooth.h" + "${SOURCE_PATH}/WpdPack/Include/pcap/bpf.h" + "${SOURCE_PATH}/WpdPack/Include/pcap/namedb.h" + "${SOURCE_PATH}/WpdPack/Include/pcap/pcap.h" + "${SOURCE_PATH}/WpdPack/Include/pcap/sll.h" + "${SOURCE_PATH}/WpdPack/Include/pcap/usb.h" + "${SOURCE_PATH}/WpdPack/Include/pcap/vlan.h" + DESTINATION + ${CURRENT_PACKAGES_DIR}/include/pcap +) + +vcpkg_execute_required_process( + COMMAND ${SOURCE_PATH}/create_lib.bat + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME create_lib-${TARGET_TRIPLET} +) + +set(PCAP_LIBRARY_PATH "${SOURCE_PATH}/WpdPack/Lib") +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PCAP_LIBRARY_PATH "${PCAP_LIBRARY_PATH}/x64") +endif() + +file( + INSTALL + "${PCAP_LIBRARY_PATH}/Packet.lib" + "${PCAP_LIBRARY_PATH}/wpcap.lib" + DESTINATION + ${CURRENT_PACKAGES_DIR}/lib +) + +file( + INSTALL + "${PCAP_LIBRARY_PATH}/Packet.lib" + "${PCAP_LIBRARY_PATH}/wpcap.lib" + DESTINATION + ${CURRENT_PACKAGES_DIR}/debug/lib +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + vcpkg_execute_required_process( + COMMAND ${SOURCE_PATH}/create_bin.bat + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME create_bin-${TARGET_TRIPLET} + ) + + set(PCAP_BINARY_PATH "${SOURCE_PATH}/WpdPack/Bin") + if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(PCAP_BINARY_PATH "${PCAP_BINARY_PATH}/x64") + endif() + + file( + INSTALL + "${PCAP_BINARY_PATH}/Packet.dll" + "${PCAP_BINARY_PATH}/wpcap.dll" + DESTINATION + ${CURRENT_PACKAGES_DIR}/bin + ) + + file( + INSTALL + "${PCAP_BINARY_PATH}/Packet.dll" + "${PCAP_BINARY_PATH}/wpcap.dll" + DESTINATION + ${CURRENT_PACKAGES_DIR}/debug/bin + ) +endif() + +# Handle copyright +file(DOWNLOAD "https://www.winpcap.org/misc/copyright.htm" ${SOURCE_PATH}/copyright.htm) +file(INSTALL ${SOURCE_PATH}/copyright.htm DESTINATION ${CURRENT_PACKAGES_DIR}/share/winpcap RENAME copyright) diff --git a/ports/winpcap/wpcap.patch.in b/ports/winpcap/wpcap.patch.in new file mode 100644 index 0000000000..01c8a38c88 --- /dev/null +++ b/ports/winpcap/wpcap.patch.in @@ -0,0 +1,414 @@ +diff --git a/wpcap/PRJ/wpcap.dsp b/wpcap/PRJ/wpcap.dsp +index e53a865..0e4ed19 100644 +--- a/wpcap/PRJ/wpcap.dsp ++++ b/wpcap/PRJ/wpcap.dsp +@@ -48,8 +48,8 @@ RSC=rc.exe + # PROP Intermediate_Dir "Release" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /c +-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 + # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 + # ADD BASE RSC /l 0x410 /d "NDEBUG" +@@ -75,8 +75,8 @@ LINK32=link.exe + # PROP Intermediate_Dir "Debug" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /GZ /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBPCAP_EXPORTS" /YX /FD /GZ /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 + # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +@@ -103,8 +103,8 @@ LINK32=link.exe + # PROP Intermediate_Dir "Debug_REMOTE" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 + # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +@@ -138,8 +138,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy + # PROP Intermediate_Dir "Debug_REMOTE_DAG" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 + # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +@@ -173,8 +173,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy + # PROP Intermediate_Dir "Release_REMOTE" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c +-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 + # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 + # ADD BASE RSC /l 0x410 /d "NDEBUG" +@@ -208,8 +208,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy + # PROP Intermediate_Dir "Release_REMOTE_DAG" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c +-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 + # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 + # ADD BASE RSC /l 0x410 /d "NDEBUG" +@@ -243,8 +243,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy + # PROP Intermediate_Dir "Release_REMOTE_NO_AIRPCAP" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c +-# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c ++# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c + # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 + # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 + # ADD BASE RSC /l 0x410 /d "NDEBUG" +@@ -278,8 +278,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy + # PROP Intermediate_Dir "Debug_REMOTE_NO_AIRPCAP" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c +-# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c ++# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c ++# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c + # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 + # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 + # ADD BASE RSC /l 0x410 /d "_DEBUG" +diff --git a/wpcap/PRJ/wpcap.vcproj b/wpcap/PRJ/wpcap.vcproj +index c1d56b4..40a8ce1 100644 +--- a/wpcap/PRJ/wpcap.vcproj ++++ b/wpcap/PRJ/wpcap.vcproj +@@ -22,7 +22,7 @@ + Name="Debug|Win32" + OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86" + IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86" +- ConfigurationType="2" ++ ConfigurationType="@LIBRARY_LINKAGE@" + CharacterSet="2" + > + + +@@ -205,7 +205,7 @@ + +@@ -285,7 +285,7 @@ + + + +@@ -525,7 +525,7 @@ + +@@ -605,7 +605,7 @@ + + + #if !defined(HAVE_SNPRINTF) +-#define snprintf pcap_snprintf +-extern int snprintf (char *, size_t, const char *, ...); ++#define snprintf _snprintf ++//#define snprintf pcap_snprintf ++//extern int snprintf (char *, size_t, const char *, ...); + #endif + + #if !defined(HAVE_VSNPRINTF) +diff --git a/wpcap/libpcap/rpcapd/rpcapd.dsp b/wpcap/libpcap/rpcapd/rpcapd.dsp +index f7c00af..1cd823e 100644 +--- a/wpcap/libpcap/rpcapd/rpcapd.dsp ++++ b/wpcap/libpcap/rpcapd/rpcapd.dsp +@@ -44,8 +44,8 @@ RSC=rc.exe + # PROP Intermediate_Dir "Debug_REMOTE" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c +-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c ++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c ++# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c + # ADD BASE RSC /l 0x409 /d "_DEBUG" + # ADD RSC /l 0x409 /d "_DEBUG" + BSC32=bscmake.exe +@@ -69,8 +69,8 @@ LINK32=link.exe + # PROP Intermediate_Dir "Debug_REMOTE_DAG" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c +-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /FR /YX /FD /GZ /c ++# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c ++# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /FR /YX /FD /GZ /c + # ADD BASE RSC /l 0x409 /d "_DEBUG" + # ADD RSC /l 0x409 /d "_DEBUG" + BSC32=bscmake.exe +@@ -94,8 +94,8 @@ LINK32=link.exe + # PROP Intermediate_Dir "Release_REMOTE" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c +-# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c ++# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c ++# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c + # ADD BASE RSC /l 0x409 /d "NDEBUG" + # ADD RSC /l 0x409 /d "NDEBUG" + BSC32=bscmake.exe +@@ -120,8 +120,8 @@ LINK32=link.exe + # PROP Intermediate_Dir "Release_REMOTE_DAG" + # PROP Ignore_Export_Lib 0 + # PROP Target_Dir "" +-# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c +-# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /YX /FD /c ++# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c ++# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /YX /FD /c + # ADD BASE RSC /l 0x409 /d "NDEBUG" + # ADD RSC /l 0x409 /d "NDEBUG" + BSC32=bscmake.exe +diff --git a/wpcap/libpcap/rpcapd/rpcapd.vcproj b/wpcap/libpcap/rpcapd/rpcapd.vcproj +index 882fbac..b89f1f9 100644 +--- a/wpcap/libpcap/rpcapd/rpcapd.vcproj ++++ b/wpcap/libpcap/rpcapd/rpcapd.vcproj +@@ -41,7 +41,7 @@ + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\;..\Win32\include;..\..\..\Common;.\Win32-pthreads;..\..\Win32-Extensions" +- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API" ++ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" +@@ -119,7 +119,7 @@ + `. +## +## ## Usage: +## ```cmake +## vcpkg_from_bitbucket( +## OUT_SOURCE_PATH +## REPO +## [REF ] +## [SHA512 <45d0d7f8cc350...>] +## [HEAD_REF ] +## ) +## ``` +## +## ## Parameters: +## ### OUT_SOURCE_PATH +## Specifies the out-variable that will contain the extracted location. +## +## This should be set to `SOURCE_PATH` by convention. +## +## ### REPO +## The organization or user and repository on GitHub. +## +## ### REF +## A stable git commit-ish (ideally a tag) that will not change contents. **This should not be a branch.** +## +## For repositories without official releases, this can be set to the full commit id of the current latest master. +## +## If `REF` is specified, `SHA512` must also be specified. +## +## ### SHA512 +## The SHA512 hash that should match the archive (https://bitbucket.com/${REPO}/get/${REF}.tar.gz). +## +## This is most easily determined by first setting it to `1`, then trying to build the port. The error message will contain the full hash, which can be copied back into the portfile. +## +## ### HEAD_REF +## The unstable git commit-ish (ideally a branch) to pull for `--head` builds. +## +## For most projects, this should be `master`. The chosen branch should be one that is expected to be always buildable on all supported platforms. +## +## ## Notes: +## At least one of `REF` and `HEAD_REF` must be specified, however it is preferable for both to be present. +## +## This exports the `VCPKG_HEAD_VERSION` variable during head builds. +## +## ## Examples: +## +## * [blaze](https://github.com/Microsoft/vcpkg/blob/master/ports/blaze/portfile.cmake) +function(vcpkg_from_bitbucket) + set(oneValueArgs OUT_SOURCE_PATH REPO REF SHA512 HEAD_REF) + set(multipleValuesArgs) + cmake_parse_arguments(_vdud "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN}) + + if(NOT _vdud_OUT_SOURCE_PATH) + message(FATAL_ERROR "OUT_SOURCE_PATH must be specified.") + endif() + + if((_vdud_REF AND NOT _vdud_SHA512) OR (NOT _vdud_REF AND _vdud_SHA512)) + message(FATAL_ERROR "SHA512 must be specified if REF is specified.") + endif() + + if(NOT _vdud_REPO) + message(FATAL_ERROR "The Bitbucket repository must be specified.") + endif() + + if(NOT _vdud_REF AND NOT _vdud_HEAD_REF) + message(FATAL_ERROR "At least one of REF and HEAD_REF must be specified.") + endif() + + string(REGEX REPLACE ".*/" "" REPO_NAME ${_vdud_REPO}) + string(REGEX REPLACE "/.*" "" ORG_NAME ${_vdud_REPO}) + + macro(set_SOURCE_PATH BASE BASEREF) + set(SOURCE_PATH "${BASE}/${ORG_NAME}-${REPO_NAME}-${BASEREF}") + if(EXISTS ${SOURCE_PATH}) + set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) + else() + # Sometimes GitHub strips a leading 'v' off the REF. + string(REGEX REPLACE "^v" "" REF ${BASEREF}) + set(SOURCE_PATH "${BASE}/${ORG_NAME}-${REPO_NAME}-${REF}") + if(EXISTS ${SOURCE_PATH}) + set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) + else() + message(FATAL_ERROR "Could not determine source path: '${BASE}/${ORG_NAME}-${REPO_NAME}-${BASEREF}' does not exist") + endif() + endif() + endmacro() + + if(VCPKG_USE_HEAD_VERSION AND NOT _vdud_HEAD_REF) + message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.") + set(VCPKG_USE_HEAD_VERSION OFF) + endif() + + # Handle --no-head scenarios + if(NOT VCPKG_USE_HEAD_VERSION) + if(NOT _vdud_REF) + message(FATAL_ERROR "Package does not specify REF. It must built using --head.") + endif() + + set(URL "https://bitbucket.com/${ORG_NAME}/${REPO_NAME}/get/${_vdud_REF}.tar.gz") + set(downloaded_file_path "${DOWNLOADS}/${ORG_NAME}-${REPO_NAME}-${_vdud_REF}.tar.gz") + + file(DOWNLOAD "https://api.bitbucket.com/2.0/repositories/${ORG_NAME}/${REPO_NAME}/refs/tags/${_vdud_REF}" + ${downloaded_file_path}.version + STATUS download_status + ) + list(GET download_status 0 status_code) + if ("${status_code}" STREQUAL "0") + # Parse the github refs response with regex. + # TODO: use some JSON swiss-army-knife utility instead. + file(READ "${downloaded_file_path}.version" _contents) + string(REGEX MATCH "\"hash\": \"[a-f0-9]+\"" x "${_contents}") + string(REGEX REPLACE "\"hash\": \"([a-f0-9]+)\"" "\\1" _version ${x}) + string(SUBSTRING ${_version} 0 12 _version) # Get the 12 first numbers from commit hash + else() + set(_version ${_vdud_REF}) + endif() + + vcpkg_download_distfile(ARCHIVE + URLS "https://bitbucket.com/${ORG_NAME}/${REPO_NAME}/get/${_vdud_REF}.tar.gz" + SHA512 "${_vdud_SHA512}" + FILENAME "${ORG_NAME}-${REPO_NAME}-${_vdud_REF}.tar.gz" + ) + vcpkg_extract_source_archive_ex(ARCHIVE "${ARCHIVE}") + set_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src ${_version}) + return() + endif() + + # The following is for --head scenarios + set(URL "https://bitbucket.com/${ORG_NAME}/${REPO_NAME}/get/${_vdud_HEAD_REF}.tar.gz") + set(downloaded_file_path "${DOWNLOADS}/${ORG_NAME}-${REPO_NAME}-${_vdud_HEAD_REF}.tar.gz") + + if(_VCPKG_NO_DOWNLOADS) + if(NOT EXISTS ${downloaded_file_path} OR NOT EXISTS ${downloaded_file_path}.version) + message(FATAL_ERROR "Downloads are disabled, but '${downloaded_file_path}' does not exist.") + endif() + message(STATUS "Using cached ${downloaded_file_path}") + else() + if(EXISTS ${downloaded_file_path}) + message(STATUS "Purging cached ${downloaded_file_path} to fetch latest (use --no-downloads to suppress)") + file(REMOVE ${downloaded_file_path}) + endif() + if(EXISTS ${downloaded_file_path}.version) + file(REMOVE ${downloaded_file_path}.version) + endif() + if(EXISTS ${CURRENT_BUILDTREES_DIR}/src/head) + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src/head) + endif() + + # Try to download the file and version information from bitbucket. + message(STATUS "Downloading ${URL}...") + file(DOWNLOAD "https://api.bitbucket.com/2.0/repositories/${ORG_NAME}/${REPO_NAME}/refs/branches/${_vdud_HEAD_REF}" + ${downloaded_file_path}.version + STATUS download_status + ) + list(GET download_status 0 status_code) + if (NOT "${status_code}" STREQUAL "0") + file(REMOVE ${downloaded_file_path}.version) + message(FATAL_ERROR "Downloading version info for ${URL}... Failed. Status: ${download_status}") + endif() + + file(DOWNLOAD ${URL} ${downloaded_file_path} STATUS download_status) + list(GET download_status 0 status_code) + if (NOT "${status_code}" STREQUAL "0") + file(REMOVE ${downloaded_file_path}) + message(FATAL_ERROR "Downloading ${URL}... Failed. Status: ${download_status}") + else() + message(STATUS "Downloading ${URL}... OK") + endif() + endif() + + vcpkg_extract_source_archive_ex( + ARCHIVE "${downloaded_file_path}" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/head" + ) + + # Parse the github refs response with regex. + # TODO: use some JSON swiss-army-knife utility instead. + file(READ "${downloaded_file_path}.version" _contents) + string(REGEX MATCH "\"hash\": \"[a-f0-9]+\"" x "${_contents}") + string(REGEX REPLACE "\"hash\": \"([a-f0-9]+)\"" "\\1" _version ${x}) + string(SUBSTRING ${_version} 0 12 _vdud_HEAD_REF) # Get the 12 first numbers from commit hash + + # exports VCPKG_HEAD_VERSION to the caller. This will get picked up by ports.cmake after the build. + set(VCPKG_HEAD_VERSION ${_version} PARENT_SCOPE) + + set_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/head ${_vdud_HEAD_REF}) +endfunction() diff --git a/scripts/fetchDependency.ps1 b/scripts/fetchDependency.ps1 index c9aeb0f771..2a23002a44 100644 --- a/scripts/fetchDependency.ps1 +++ b/scripts/fetchDependency.ps1 @@ -105,12 +105,12 @@ function SelectProgram([Parameter(Mandatory=$true)][string]$Dependency) if($Dependency -eq "cmake") { - $requiredVersion = "3.9.1" - $downloadVersion = "3.9.1" - $url = "https://cmake.org/files/v3.9/cmake-3.9.1-win32-x86.zip" - $downloadPath = "$downloadsDir\cmake-3.9.1-win32-x86.zip" - $expectedDownloadedFileHash = "e0d9501bd34e3100e925dcb2e07f5f0ce8980bdbe5fce0ae950b21368d54c1a1" - $executableFromDownload = "$downloadsDir\cmake-3.9.1-win32-x86\bin\cmake.exe" + $requiredVersion = "3.9.3" + $downloadVersion = "3.9.3" + $url = "https://cmake.org/files/v3.9/cmake-3.9.3-win32-x86.zip" + $downloadPath = "$downloadsDir\cmake-3.9.3-win32-x86.zip" + $expectedDownloadedFileHash = "47870e3d4c9a5aa019e71020cd85cc60b6f2d2569fb239eaec204cd991e512f1" + $executableFromDownload = "$downloadsDir\cmake-3.9.3-win32-x86\bin\cmake.exe" $extractionType = $ExtractionType_ZIP $extractionFolder = $downloadsDir } diff --git a/toolsrc/VERSION.txt b/toolsrc/VERSION.txt index d27b8ca83b..c47961221a 100644 --- a/toolsrc/VERSION.txt +++ b/toolsrc/VERSION.txt @@ -1 +1 @@ -"0.0.85" \ No newline at end of file +"0.0.90" \ No newline at end of file diff --git a/toolsrc/include/CStringView.h b/toolsrc/include/CStringView.h index 282caad3ac..c1810b4f17 100644 --- a/toolsrc/include/CStringView.h +++ b/toolsrc/include/CStringView.h @@ -11,13 +11,36 @@ namespace vcpkg constexpr BasicCStringView(const BasicCStringView&) = default; BasicCStringView(const std::basic_string& str) : cstr(str.c_str()) {} - constexpr operator const CharType*() const { return cstr; } constexpr const CharType* c_str() const { return cstr; } private: const CharType* cstr; }; + namespace details + { + inline bool vcpkg_strcmp(const char* l, const char* r) { return strcmp(l, r) == 0; } + inline bool vcpkg_strcmp(const wchar_t* l, const wchar_t* r) { return wcscmp(l, r) == 0; } + } + + template + bool operator==(const BasicCStringView& l, const BasicCStringView& r) + { + return details::vcpkg_strcmp(l.c_str(), r.c_str()); + } + + template + bool operator==(const CharType* l, const BasicCStringView& r) + { + return details::vcpkg_strcmp(l, r.c_str()); + } + + template + bool operator==(const BasicCStringView& r, const CharType* l) + { + return details::vcpkg_strcmp(l, r.c_str()); + } + template bool operator==(const std::basic_string& l, const BasicCStringView& r) { @@ -30,6 +53,25 @@ namespace vcpkg return l == r.c_str(); } + // notequals + template + bool operator!=(const BasicCStringView& l, const BasicCStringView& r) + { + return !details::vcpkg_strcmp(l.c_str(), r.c_str()); + } + + template + bool operator!=(const CharType* l, const BasicCStringView& r) + { + return !details::vcpkg_strcmp(l, r.c_str()); + } + + template + bool operator!=(const BasicCStringView& r, const CharType* l) + { + return !details::vcpkg_strcmp(l, r.c_str()); + } + template bool operator!=(const BasicCStringView& r, const std::basic_string& l) { diff --git a/toolsrc/include/SourceParagraph.h b/toolsrc/include/SourceParagraph.h index 1357b3769c..ccf9faf4f7 100644 --- a/toolsrc/include/SourceParagraph.h +++ b/toolsrc/include/SourceParagraph.h @@ -57,7 +57,7 @@ namespace vcpkg std::vector> feature_paragraphs; }; - void print_error_message(span> error_info_list); + void print_error_message(Span> error_info_list); inline void print_error_message(const std::unique_ptr& error_info_list) { return print_error_message({&error_info_list, 1}); diff --git a/toolsrc/include/Span.h b/toolsrc/include/Span.h index b16af2cef9..b2c9acdbce 100644 --- a/toolsrc/include/Span.h +++ b/toolsrc/include/Span.h @@ -5,7 +5,7 @@ #include template -struct span +struct Span { public: using element_type = T; @@ -13,18 +13,18 @@ public: using reference = T&; using iterator = T*; - constexpr span() noexcept : m_ptr(nullptr), m_count(0) {} - constexpr span(std::nullptr_t) noexcept : span() {} - constexpr span(T* ptr, size_t count) noexcept : m_ptr(ptr), m_count(count) {} - constexpr span(T* ptr_begin, T* ptr_end) noexcept : m_ptr(ptr_begin), m_count(ptr_end - ptr_begin) {} + constexpr Span() noexcept : m_ptr(nullptr), m_count(0) {} + constexpr Span(std::nullptr_t) noexcept : Span() {} + constexpr Span(T* ptr, size_t count) noexcept : m_ptr(ptr), m_count(count) {} + constexpr Span(T* ptr_begin, T* ptr_end) noexcept : m_ptr(ptr_begin), m_count(ptr_end - ptr_begin) {} template - constexpr span(T (&arr)[N]) noexcept : span(arr, N) + constexpr Span(T (&arr)[N]) noexcept : Span(arr, N) { } - span(std::vector& v) noexcept : span(v.data(), v.size()) {} - span(const std::vector>& v) noexcept : span(v.data(), v.size()) {} + Span(std::vector& v) noexcept : Span(v.data(), v.size()) {} + Span(const std::vector>& v) noexcept : Span(v.data(), v.size()) {} constexpr iterator begin() const { return m_ptr; } constexpr iterator end() const { return m_ptr + m_count; } @@ -36,3 +36,15 @@ private: pointer m_ptr; size_t m_count; }; + +template +Span make_span(std::vector& v) +{ + return {v.data(), v.size()}; +} + +template +Span make_span(const std::vector& v) +{ + return {v.data(), v.size()}; +} diff --git a/toolsrc/include/VcpkgPaths.h b/toolsrc/include/VcpkgPaths.h index 9b650bb6df..9914c6f358 100644 --- a/toolsrc/include/VcpkgPaths.h +++ b/toolsrc/include/VcpkgPaths.h @@ -19,6 +19,7 @@ namespace vcpkg { fs::path dumpbin; fs::path vcvarsall; + std::vector vcvarsall_options; CWStringView version; std::vector supported_architectures; }; @@ -71,5 +72,6 @@ namespace vcpkg Lazy git_exe; Lazy nuget_exe; Lazy> toolsets; + Lazy> toolsets_vs2017_v140; }; } diff --git a/toolsrc/include/pch.h b/toolsrc/include/pch.h index 770bcf07ae..0f34063f8d 100644 --- a/toolsrc/include/pch.h +++ b/toolsrc/include/pch.h @@ -2,7 +2,7 @@ #define NOMINMAX #define WIN32_LEAN_AND_MEAN - +#pragma warning(suppress : 4768) #include #include @@ -28,7 +28,10 @@ #include #include #include -#include +#pragma warning(push) +#pragma warning(disable : 4768) +#include +#pragma warning(pop) #include #include #include diff --git a/toolsrc/include/vcpkg_Build.h b/toolsrc/include/vcpkg_Build.h index fc6f28e243..78e89d4de3 100644 --- a/toolsrc/include/vcpkg_Build.h +++ b/toolsrc/include/vcpkg_Build.h @@ -9,7 +9,6 @@ #include #include -#include #include namespace vcpkg::Build @@ -56,7 +55,7 @@ namespace vcpkg::Build CASCADED_DUE_TO_MISSING_DEPENDENCIES }; - static constexpr std::array BuildResult_values = { + static constexpr std::array BUILD_RESULT_VALUES = { BuildResult::SUCCEEDED, BuildResult::BUILD_FAILED, BuildResult::POST_BUILD_CHECKS_FAILED, @@ -143,7 +142,7 @@ namespace vcpkg::Build COUNT, }; - constexpr std::array g_all_policies = { + constexpr std::array G_ALL_POLICIES = { BuildPolicy::EMPTY_PACKAGE, BuildPolicy::DLLS_WITHOUT_LIBS, BuildPolicy::ONLY_RELEASE_CRT, @@ -159,7 +158,7 @@ namespace vcpkg::Build BuildPolicies() = default; BuildPolicies(std::map&& map) : m_policies(std::move(map)) {} - inline bool is_enabled(BuildPolicy policy) const + bool is_enabled(BuildPolicy policy) const { const auto it = m_policies.find(policy); if (it != m_policies.cend()) return it->second; diff --git a/toolsrc/include/vcpkg_Commands.h b/toolsrc/include/vcpkg_Commands.h index 756a12f01c..590f0208c5 100644 --- a/toolsrc/include/vcpkg_Commands.h +++ b/toolsrc/include/vcpkg_Commands.h @@ -33,6 +33,22 @@ namespace vcpkg::Commands namespace Install { + enum class KeepGoing + { + NO = 0, + YES + }; + + inline KeepGoing to_keep_going(const bool value) { return value ? KeepGoing::YES : KeepGoing::NO; } + + enum class PrintSummary + { + NO = 0, + YES + }; + + inline PrintSummary to_print_summary(const bool value) { return value ? PrintSummary::YES : PrintSummary::NO; } + struct InstallDir { static InstallDir from_destination_root(const fs::path& destination_root, @@ -67,6 +83,14 @@ namespace vcpkg::Commands InstallResult install_package(const VcpkgPaths& paths, const BinaryControlFile& binary_paragraph, StatusParagraphs* status_db); + + void perform_and_exit(const std::vector& action_plan, + const Build::BuildPackageOptions& install_plan_options, + const KeepGoing keep_going, + const PrintSummary print_summary, + const VcpkgPaths& paths, + StatusParagraphs& status_db); + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet); } @@ -82,6 +106,19 @@ namespace vcpkg::Commands namespace Remove { + enum class Purge + { + NO = 0, + YES + }; + + inline Purge to_purge(const bool value) { return value ? Purge::YES : Purge::NO; } + + void perform_remove_plan_action(const VcpkgPaths& paths, + const Dependencies::RemovePlanAction& action, + const Purge purge, + StatusParagraphs& status_db); + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet); void remove_package(const VcpkgPaths& paths, const PackageSpec& spec, StatusParagraphs* status_db); } @@ -173,6 +210,7 @@ namespace vcpkg::Commands namespace Version { const std::string& version(); + void warn_if_vcpkg_version_mismatch(const VcpkgPaths& paths); void perform_and_exit(const VcpkgCmdArguments& args); } diff --git a/toolsrc/include/vcpkg_Dependencies.h b/toolsrc/include/vcpkg_Dependencies.h index 235abb8390..d67122e480 100644 --- a/toolsrc/include/vcpkg_Dependencies.h +++ b/toolsrc/include/vcpkg_Dependencies.h @@ -89,6 +89,8 @@ namespace vcpkg::Dependencies Optional install_plan; Optional remove_plan; + + const PackageSpec& spec() const; }; enum class ExportPlanType diff --git a/toolsrc/include/vcpkg_Strings.h b/toolsrc/include/vcpkg_Strings.h index 61f6fab610..c44ce2b99d 100644 --- a/toolsrc/include/vcpkg_Strings.h +++ b/toolsrc/include/vcpkg_Strings.h @@ -65,6 +65,8 @@ namespace vcpkg::Strings std::string ascii_to_lowercase(const std::string& input); + bool case_insensitive_ascii_starts_with(const std::string& s, const std::string& pattern); + template std::basic_string join(const CharType* delimiter, const Container& v, Transformer transformer) { diff --git a/toolsrc/src/Paragraphs.cpp b/toolsrc/src/Paragraphs.cpp index a7dee4fd3a..6a6f191df9 100644 --- a/toolsrc/src/Paragraphs.cpp +++ b/toolsrc/src/Paragraphs.cpp @@ -254,7 +254,7 @@ namespace vcpkg::Paragraphs for (auto&& path : fs.get_files_non_recursive(ports_dir)) { auto maybe_spgh = try_load_port(fs, path); - if (auto spgh = maybe_spgh.get()) + if (const auto spgh = maybe_spgh.get()) { ret.paragraphs.emplace_back(std::move(*spgh)); } @@ -272,8 +272,20 @@ namespace vcpkg::Paragraphs auto results = try_load_all_ports(fs, ports_dir); if (!results.errors.empty()) { - print_error_message(results.errors); - Checks::exit_fail(VCPKG_LINE_INFO); + if (GlobalState::debugging) + { + print_error_message(results.errors); + } + else + { + for (auto&& error : results.errors) + { + System::println( + System::Color::warning, "Warning: an error occurred while parsing '%s'", error->name); + } + System::println(System::Color::warning, + "Use '--debug' to get more information about the parse failures.\n"); + } } return std::move(results.paragraphs); } diff --git a/toolsrc/src/PostBuildLint.cpp b/toolsrc/src/PostBuildLint.cpp index 33dc446cf6..69008fab39 100644 --- a/toolsrc/src/PostBuildLint.cpp +++ b/toolsrc/src/PostBuildLint.cpp @@ -38,7 +38,7 @@ namespace vcpkg::PostBuildLint } }; - const std::vector& get_outdated_dynamic_crts() + Span get_outdated_dynamic_crts(CStringView toolset) { static const std::vector V_NO_MSVCRT = { {"msvcp100.dll", R"(msvcp100\.dll)"}, @@ -662,7 +662,7 @@ namespace vcpkg::PostBuildLint "Running command:\n %s\n failed", Strings::to_utf8(cmd_line)); - for (const OutdatedDynamicCrt& outdated_crt : get_outdated_dynamic_crts()) + for (const OutdatedDynamicCrt& outdated_crt : get_outdated_dynamic_crts("v141")) { if (std::regex_search(ec_data.output.cbegin(), ec_data.output.cend(), outdated_crt.regex)) { diff --git a/toolsrc/src/SourceParagraph.cpp b/toolsrc/src/SourceParagraph.cpp index 171689ce72..0f1a38d190 100644 --- a/toolsrc/src/SourceParagraph.cpp +++ b/toolsrc/src/SourceParagraph.cpp @@ -25,7 +25,7 @@ namespace vcpkg static const std::string VERSION = "Version"; } - static span get_list_of_valid_fields() + static Span get_list_of_valid_fields() { static const std::string valid_fields[] = { Fields::SOURCE, @@ -38,7 +38,7 @@ namespace vcpkg return valid_fields; } - void print_error_message(span> error_info_list) + void print_error_message(Span> error_info_list) { Checks::check_exit(VCPKG_LINE_INFO, error_info_list.size() > 0); diff --git a/toolsrc/src/VcpkgPaths.cpp b/toolsrc/src/VcpkgPaths.cpp index 71a35d24c4..651d4d8349 100644 --- a/toolsrc/src/VcpkgPaths.cpp +++ b/toolsrc/src/VcpkgPaths.cpp @@ -10,6 +10,10 @@ namespace vcpkg { + static constexpr CWStringView V_120 = L"v120"; + static constexpr CWStringView V_140 = L"v140"; + static constexpr CWStringView V_141 = L"v141"; + static bool exists_and_has_equal_or_greater_version(const std::wstring& version_cmd, const std::array& expected_version) { @@ -63,18 +67,23 @@ namespace vcpkg const fs::path& expected_downloaded_path, const std::array& version) { + const std::string tool_name_utf8 = Strings::to_utf8(tool_name); + const std::string version_as_string = Strings::format("%d.%d.%d", version[0], version[1], version[2]); + System::println("A suitable version of %s was not found (required v%s). Downloading portable %s v%s...", + tool_name_utf8, + version_as_string, + tool_name_utf8, + version_as_string); const fs::path script = scripts_folder / "fetchDependency.ps1"; const auto install_cmd = System::create_powershell_script_cmd(script, Strings::wformat(L"-Dependency %s", tool_name)); const System::ExitCodeAndOutput rc = System::cmd_execute_and_capture_output(install_cmd); if (rc.exit_code) { - const std::string version_as_string = Strings::format("%d.%d.%d", version[0], version[1], version[2]); - System::println(System::Color::error, "Launching powershell failed or was denied when trying to fetch %s version %s.\n" "(No sufficient installed version was found)", - Strings::to_utf8(tool_name), + tool_name_utf8, version_as_string); { auto locked_metrics = Metrics::g_metrics.lock(); @@ -97,10 +106,10 @@ namespace vcpkg static fs::path get_cmake_path(const fs::path& downloads_folder, const fs::path& scripts_folder) { - static constexpr std::array EXPECTED_VERSION = {3, 9, 1}; + static constexpr std::array EXPECTED_VERSION = {3, 9, 3}; static const std::wstring VERSION_CHECK_ARGUMENTS = L"--version"; - const fs::path downloaded_copy = downloads_folder / "cmake-3.9.1-win32-x86" / "bin" / "cmake.exe"; + const fs::path downloaded_copy = downloads_folder / "cmake-3.9.3-win32-x86" / "bin" / "cmake.exe"; const std::vector from_path = Files::find_from_PATH(L"cmake"); std::vector candidate_paths; @@ -358,11 +367,13 @@ namespace vcpkg if (fs.exists(vs2015_dumpbin_exe)) { found_toolsets.push_back( - {vs2015_dumpbin_exe, vs2015_vcvarsall_bat, L"v140", supported_architectures}); + {vs2015_dumpbin_exe, vs2015_vcvarsall_bat, {}, V_140, supported_architectures}); } } } + const std::vector vs2017_installation_instances = get_vs2017_installation_instances(paths); + // VS2017 Optional vs2017_toolset; const std::vector vs2017_installation_instances = get_vs2017_installation_instances(paths); @@ -407,14 +418,13 @@ namespace vcpkg paths_examined.push_back(dumpbin_path); if (fs.exists(dumpbin_path)) { - vs2017_toolset = Toolset{dumpbin_path, vcvarsall_bat, L"v141", supported_architectures}; + vs2017_toolset = Toolset{dumpbin_path, vcvarsall_bat, {}, V_141, supported_architectures}; break; } } if (const auto value = vs2017_toolset.get()) { found_toolsets.push_back(*value); - break; } } @@ -432,20 +442,63 @@ namespace vcpkg return found_toolsets; } + static std::vector create_vs2017_v140_toolset_instances(const std::vector& vs_toolsets) + { + std::vector vs2017_v140_toolsets; + + // In constrast to v141 and above, there can only be a single instance of v140 (VS2017 vs VS2015). + const auto it = Util::find_if(vs_toolsets, [&](const Toolset& t) { return t.version == V_140; }); + + // If v140 is not available, then VS2017 cant use them. Return empty. + if (it == vs_toolsets.cend()) + { + return vs2017_v140_toolsets; + } + + // If it does exist, then create a matching v140 toolset for each v141 toolset + const Toolset v140_toolset = *it; + for (const Toolset& toolset : vs_toolsets) + { + if (toolset.version != V_141) + { + continue; + } + + Toolset t = Toolset{ + toolset.dumpbin, toolset.vcvarsall, {L"-vcvars_ver=14.0"}, V_140, toolset.supported_architectures}; + vs2017_v140_toolsets.push_back(std::move(t)); + } + + return vs2017_v140_toolsets; + } + const Toolset& VcpkgPaths::get_toolset(const std::string& toolset_version) const { - // Invariant: toolsets are non-empty and sorted with newest at back() - const auto& vs_toolsets = this->toolsets.get_lazy([this]() { return find_toolset_instances(*this); }); + const std::wstring& w_toolset_version = Strings::to_utf16(toolset_version); - if (toolset_version.empty()) + // Invariant: toolsets are non-empty and sorted with newest at back() + const std::vector& vs_toolsets = + this->toolsets.get_lazy([this]() { return find_toolset_instances(*this); }); + + if (w_toolset_version.empty()) { return vs_toolsets.back(); } - const auto toolset = Util::find_if( - vs_toolsets, [&](const Toolset& t) { return toolset_version == Strings::to_utf8(t.version); }); + const auto toolset = + Util::find_if(vs_toolsets, [&](const Toolset& t) { return w_toolset_version == t.version; }); Checks::check_exit( VCPKG_LINE_INFO, toolset != vs_toolsets.end(), "Could not find toolset '%s'", toolset_version); + + // If v140 is the selected toolset and VS2017 is available, then use VS2017's vcvarsall with the + // -vcvars_ver=14.0 option + const std::vector& vs2017_v140_toolsets = this->toolsets_vs2017_v140.get_lazy( + [&vs_toolsets]() { return create_vs2017_v140_toolset_instances(vs_toolsets); }); + if (w_toolset_version == V_140 && !vs2017_v140_toolsets.empty()) + { + return vs2017_v140_toolsets.back(); + } + return *toolset; } diff --git a/toolsrc/src/commands_ci.cpp b/toolsrc/src/commands_ci.cpp index ca5e8a9a95..75ff655562 100644 --- a/toolsrc/src/commands_ci.cpp +++ b/toolsrc/src/commands_ci.cpp @@ -41,57 +41,19 @@ namespace vcpkg::Commands::CI StatusParagraphs status_db = database_load_check(paths); const auto& paths_port_file = Dependencies::PathsPortFile(paths); - const std::vector install_plan = + std::vector install_plan = Dependencies::create_install_plan(paths_port_file, specs, status_db); Checks::check_exit(VCPKG_LINE_INFO, !install_plan.empty(), "Install plan cannot be empty"); - std::vector results; - std::vector timing; - const ElapsedTime timer = ElapsedTime::create_started(); - size_t counter = 0; - const size_t package_count = install_plan.size(); const Build::BuildPackageOptions install_plan_options = {Build::UseHeadVersion::NO, Build::AllowDownloads::YES}; - for (const InstallPlanAction& action : install_plan) - { - const ElapsedTime build_timer = ElapsedTime::create_started(); - counter++; - const std::string display_name = action.spec.to_string(); - System::println("Starting package %d/%d: %s", counter, package_count, display_name); + const std::vector action_plan = + Util::fmap(install_plan, [](InstallPlanAction& install_action) { + return Dependencies::AnyAction(std::move(install_action)); + }); - timing.push_back("0"); - results.push_back(BuildResult::NULLVALUE); - - const BuildResult result = - Install::perform_install_plan_action(paths, action, install_plan_options, status_db); - timing.back() = build_timer.to_string(); - results.back() = result; - System::println("Elapsed time for package %s: %s", action.spec, build_timer.to_string()); - } - - System::println("Total time taken: %s", timer.to_string()); - - for (size_t i = 0; i < results.size(); i++) - { - System::println("%s: %s: %s", install_plan[i].spec, Build::to_string(results[i]), timing[i]); - } - - std::map summary; - for (const BuildResult& v : Build::BuildResult_values) - { - summary[v] = 0; - } - - for (const BuildResult& r : results) - { - summary[r]++; - } - - System::println("\n\nSUMMARY"); - for (const std::pair& entry : summary) - { - System::println(" %s: %d", Build::to_string(entry.first), entry.second); - } + Install::perform_and_exit( + action_plan, install_plan_options, Install::KeepGoing::YES, Install::PrintSummary::YES, paths, status_db); Checks::exit_success(VCPKG_LINE_INFO); } diff --git a/toolsrc/src/commands_edit.cpp b/toolsrc/src/commands_edit.cpp index dc28de7377..823c87534f 100644 --- a/toolsrc/src/commands_edit.cpp +++ b/toolsrc/src/commands_edit.cpp @@ -8,11 +8,10 @@ namespace vcpkg::Commands::Edit { static std::vector find_from_registry() { - static const std::array REGKEYS = { + static const std::array REGKEYS = { LR"(SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{C26E74D1-022E-4238-8B9D-1E7564A36CC9}_is1)", - LR"(SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C26E74D1-022E-4238-8B9D-1E7564A36CC9}_is1)", + LR"(SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1287CAD5-7C8D-410D-88B9-0D1EE4A83FF2}_is1)", LR"(SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{F8A2A208-72B3-4D61-95FC-8A65D340689B}_is1)", - LR"(SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{F8A2A208-72B3-4D61-95FC-8A65D340689B}_is1)", }; std::vector output; @@ -23,8 +22,8 @@ namespace vcpkg::Commands::Edit if (const auto c = code_installpath.get()) { const fs::path install_path = fs::path(*c); - output.push_back(install_path / "Code.exe"); output.push_back(install_path / "Code - Insiders.exe"); + output.push_back(install_path / "Code.exe"); } } return output; @@ -34,6 +33,9 @@ namespace vcpkg::Commands::Edit { static const std::string OPTION_BUILDTREES = "--buildtrees"; + static const fs::path VS_CODE_INSIDERS = fs::path{"Microsoft VS Code Insiders"} / "Code - Insiders.exe"; + static const fs::path VS_CODE = fs::path{"Microsoft VS Code"} / "Code.exe"; + auto& fs = paths.get_filesystem(); static const std::string EXAMPLE = Commands::Help::create_example_string("edit zlib"); @@ -48,8 +50,10 @@ namespace vcpkg::Commands::Edit std::vector candidate_paths; const std::vector from_path = Files::find_from_PATH(L"EDITOR"); candidate_paths.insert(candidate_paths.end(), from_path.cbegin(), from_path.cend()); - candidate_paths.push_back(System::get_program_files_platform_bitness() / "Microsoft VS Code" / "Code.exe"); - candidate_paths.push_back(System::get_program_files_32_bit() / "Microsoft VS Code" / "Code.exe"); + candidate_paths.push_back(System::get_program_files_platform_bitness() / VS_CODE_INSIDERS); + candidate_paths.push_back(System::get_program_files_32_bit() / VS_CODE_INSIDERS); + candidate_paths.push_back(System::get_program_files_platform_bitness() / VS_CODE); + candidate_paths.push_back(System::get_program_files_32_bit() / VS_CODE); const std::vector from_registry = find_from_registry(); candidate_paths.insert(candidate_paths.end(), from_registry.cbegin(), from_registry.cend()); diff --git a/toolsrc/src/commands_install.cpp b/toolsrc/src/commands_install.cpp index d7c14f39c3..d815332fee 100644 --- a/toolsrc/src/commands_install.cpp +++ b/toolsrc/src/commands_install.cpp @@ -59,7 +59,7 @@ namespace vcpkg::Commands::Install auto files = fs.get_files_recursive(source_dir); for (auto&& file : files) { - auto status = fs.status(file, ec); + const auto status = fs.status(file, ec); if (ec) { System::println(System::Color::error, "failed: %s: %s", file.u8string(), ec.message()); @@ -309,7 +309,7 @@ namespace vcpkg::Commands::Install const BinaryControlFile bcf = Paragraphs::try_load_cached_control_package(paths, action.spec).value_or_exit(VCPKG_LINE_INFO); System::println("Installing package %s... ", display_name_with_features); - auto install_result = install_package(paths, bcf, &status_db); + const auto install_result = install_package(paths, bcf, &status_db); switch (install_result) { case InstallResult::SUCCESS: @@ -328,7 +328,7 @@ namespace vcpkg::Commands::Install System::Color::warning, "Package %s is already built -- not building from HEAD", display_name); } System::println("Installing package %s... ", display_name); - auto install_result = install_package( + const auto install_result = install_package( paths, action.any_paragraph.binary_control_file.value_or_exit(VCPKG_LINE_INFO), &status_db); switch (install_result) { @@ -442,12 +442,93 @@ namespace vcpkg::Commands::Install } } + void perform_and_exit(const std::vector& action_plan, + const Build::BuildPackageOptions& install_plan_options, + const KeepGoing keep_going, + const PrintSummary print_summary, + const VcpkgPaths& paths, + StatusParagraphs& status_db) + { + std::vector results; + std::vector timing; + const ElapsedTime timer = ElapsedTime::create_started(); + size_t counter = 0; + const size_t package_count = action_plan.size(); + + for (const auto& action : action_plan) + { + const ElapsedTime build_timer = ElapsedTime::create_started(); + counter++; + + const std::string display_name = action.spec().to_string(); + System::println("Starting package %d/%d: %s", counter, package_count, display_name); + + timing.push_back("0"); + results.push_back(BuildResult::NULLVALUE); + + if (const auto install_action = action.install_plan.get()) + { + const BuildResult result = + perform_install_plan_action(paths, *install_action, install_plan_options, status_db); + if (result != BuildResult::SUCCEEDED && keep_going == KeepGoing::NO) + { + System::println(Build::create_user_troubleshooting_message(install_action->spec)); + Checks::exit_fail(VCPKG_LINE_INFO); + } + + results.back() = result; + } + else if (const auto remove_action = action.remove_plan.get()) + { + Checks::check_exit(VCPKG_LINE_INFO, GlobalState::feature_packages); + Remove::perform_remove_plan_action(paths, *remove_action, Remove::Purge::YES, status_db); + } + else + { + Checks::unreachable(VCPKG_LINE_INFO); + } + + timing.back() = build_timer.to_string(); + System::println("Elapsed time for package %s: %s", display_name, build_timer.to_string()); + } + + System::println("Total time taken: %s", timer.to_string()); + + if (print_summary == PrintSummary::YES) + { + for (size_t i = 0; i < results.size(); i++) + { + System::println("%s: %s: %s", action_plan[i].spec(), Build::to_string(results[i]), timing[i]); + } + + std::map summary; + for (const BuildResult& v : Build::BUILD_RESULT_VALUES) + { + summary[v] = 0; + } + + for (const BuildResult& r : results) + { + summary[r]++; + } + + System::println("\n\nSUMMARY"); + for (const std::pair& entry : summary) + { + System::println(" %s: %d", Build::to_string(entry.first), entry.second); + } + } + + Checks::exit_success(VCPKG_LINE_INFO); + } + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet) { static const std::string OPTION_DRY_RUN = "--dry-run"; static const std::string OPTION_USE_HEAD_VERSION = "--head"; static const std::string OPTION_NO_DOWNLOADS = "--no-downloads"; static const std::string OPTION_RECURSE = "--recurse"; + static const std::string OPTION_KEEP_GOING = "--keep-going"; // input sanitization static const std::string EXAMPLE = @@ -469,11 +550,12 @@ namespace vcpkg::Commands::Install } const std::unordered_set options = args.check_and_get_optional_command_arguments( - {OPTION_DRY_RUN, OPTION_USE_HEAD_VERSION, OPTION_NO_DOWNLOADS, OPTION_RECURSE}); - const bool dryRun = options.find(OPTION_DRY_RUN) != options.cend(); + {OPTION_DRY_RUN, OPTION_USE_HEAD_VERSION, OPTION_NO_DOWNLOADS, OPTION_RECURSE, OPTION_KEEP_GOING}); + const bool dry_run = options.find(OPTION_DRY_RUN) != options.cend(); const bool use_head_version = options.find(OPTION_USE_HEAD_VERSION) != options.cend(); const bool no_downloads = options.find(OPTION_NO_DOWNLOADS) != options.cend(); const bool is_recursive = options.find(OPTION_RECURSE) != options.cend(); + const KeepGoing keep_going = to_keep_going(options.find(OPTION_KEEP_GOING) != options.cend()); // create the plan StatusParagraphs status_db = database_load_check(paths); @@ -486,8 +568,8 @@ namespace vcpkg::Commands::Install if (GlobalState::feature_packages) { std::unordered_map scf_map; - auto all_ports = Paragraphs::try_load_all_ports(paths.get_filesystem(), paths.ports); - for (auto&& port : all_ports.paragraphs) + auto all_ports = Paragraphs::load_all_ports(paths.get_filesystem(), paths.ports); + for (auto&& port : all_ports) { scf_map[port->core_paragraph->name] = std::move(*port); } @@ -519,78 +601,12 @@ namespace vcpkg::Commands::Install print_plan(action_plan, is_recursive); - if (dryRun) + if (dry_run) { Checks::exit_success(VCPKG_LINE_INFO); } - // execute the plan - if (GlobalState::feature_packages) - { - for (const auto& action : action_plan) - { - if (auto install_action = action.install_plan.get()) - { - const BuildResult result = - perform_install_plan_action(paths, *install_action, install_plan_options, status_db); - if (result != BuildResult::SUCCEEDED) - { - System::println(Build::create_user_troubleshooting_message(install_action->spec)); - Checks::exit_fail(VCPKG_LINE_INFO); - } - } - else if (auto remove_action = action.remove_plan.get()) - { - static const std::string OPTION_PURGE = "--purge"; - static const std::string OPTION_NO_PURGE = "--no-purge"; - - const bool alsoRemoveFolderFromPackages = options.find(OPTION_NO_PURGE) == options.end(); - if (options.find(OPTION_PURGE) != options.end() && !alsoRemoveFolderFromPackages) - { - // User specified --purge and --no-purge - System::println(System::Color::error, "Error: cannot specify both --no-purge and --purge."); - System::print(EXAMPLE); - Checks::exit_fail(VCPKG_LINE_INFO); - } - const std::string display_name = remove_action->spec.to_string(); - switch (remove_action->plan_type) - { - case RemovePlanType::NOT_INSTALLED: - System::println(System::Color::success, "Package %s is not installed", display_name); - break; - case RemovePlanType::REMOVE: - System::println("Removing package %s... ", display_name); - Commands::Remove::remove_package(paths, remove_action->spec, &status_db); - System::println(System::Color::success, "Removing package %s... done", display_name); - break; - case RemovePlanType::UNKNOWN: - default: Checks::unreachable(VCPKG_LINE_INFO); - } - - if (alsoRemoveFolderFromPackages) - { - System::println("Purging package %s... ", display_name); - Files::Filesystem& fs = paths.get_filesystem(); - std::error_code ec; - fs.remove_all(paths.packages / remove_action->spec.dir(), ec); - System::println(System::Color::success, "Purging package %s... done", display_name); - } - } - } - } - else - { - for (const auto& action : action_plan) - { - const auto& iaction = action.install_plan.value_or_exit(VCPKG_LINE_INFO); - const BuildResult result = perform_install_plan_action(paths, iaction, install_plan_options, status_db); - if (result != BuildResult::SUCCEEDED) - { - System::println(Build::create_user_troubleshooting_message(iaction.spec)); - Checks::exit_fail(VCPKG_LINE_INFO); - } - } - } + perform_and_exit(action_plan, install_plan_options, keep_going, PrintSummary::NO, paths, status_db); Checks::exit_success(VCPKG_LINE_INFO); } diff --git a/toolsrc/src/commands_integrate.cpp b/toolsrc/src/commands_integrate.cpp index 1bf26910cb..fd2f112944 100644 --- a/toolsrc/src/commands_integrate.cpp +++ b/toolsrc/src/commands_integrate.cpp @@ -113,19 +113,20 @@ namespace vcpkg::Commands::Integrate static ElevationPromptChoice elevated_cmd_execute(const std::string& param) { - SHELLEXECUTEINFO sh_ex_info = {0}; + SHELLEXECUTEINFOW sh_ex_info = {0}; sh_ex_info.cbSize = sizeof(sh_ex_info); sh_ex_info.fMask = SEE_MASK_NOCLOSEPROCESS; sh_ex_info.hwnd = nullptr; - sh_ex_info.lpVerb = "runas"; - sh_ex_info.lpFile = "cmd"; // Application to start + sh_ex_info.lpVerb = L"runas"; + sh_ex_info.lpFile = L"cmd"; // Application to start - sh_ex_info.lpParameters = param.c_str(); // Additional parameters + auto wparam = Strings::to_utf16(param); + sh_ex_info.lpParameters = wparam.c_str(); // Additional parameters sh_ex_info.lpDirectory = nullptr; sh_ex_info.nShow = SW_HIDE; sh_ex_info.hInstApp = nullptr; - if (!ShellExecuteExA(&sh_ex_info)) + if (!ShellExecuteExW(&sh_ex_info)) { return ElevationPromptChoice::NO; } diff --git a/toolsrc/src/commands_portsdiff.cpp b/toolsrc/src/commands_portsdiff.cpp index 32bc3de3cb..2334b2270c 100644 --- a/toolsrc/src/commands_portsdiff.cpp +++ b/toolsrc/src/commands_portsdiff.cpp @@ -68,7 +68,7 @@ namespace vcpkg::Commands::PortsDiff for (const std::string& name : ports_to_print) { const VersionT& version = names_and_versions.at(name); - System::println("%-20s %-16s", name, version); + System::println(" - %-14s %-16s", name, version); } } @@ -147,14 +147,14 @@ namespace vcpkg::Commands::PortsDiff const std::vector& added_ports = setp.only_left; if (!added_ports.empty()) { - System::println("\nThe following %d ports were added:\n", added_ports.size()); + System::println("\nThe following %d ports were added:", added_ports.size()); do_print_name_and_version(added_ports, current_names_and_versions); } const std::vector& removed_ports = setp.only_right; if (!removed_ports.empty()) { - System::println("\nThe following %d ports were removed:\n", removed_ports.size()); + System::println("\nThe following %d ports were removed:", removed_ports.size()); do_print_name_and_version(removed_ports, previous_names_and_versions); } @@ -164,10 +164,10 @@ namespace vcpkg::Commands::PortsDiff if (!updated_ports.empty()) { - System::println("\nThe following %d ports were updated:\n", updated_ports.size()); + System::println("\nThe following %d ports were updated:", updated_ports.size()); for (const UpdatedPort& p : updated_ports) { - System::println("%-20s %-16s", p.port, p.version_diff.to_string()); + System::println(" - %-14s %-16s", p.port, p.version_diff.to_string()); } } diff --git a/toolsrc/src/commands_remove.cpp b/toolsrc/src/commands_remove.cpp index 2b50331666..a9f1b25649 100644 --- a/toolsrc/src/commands_remove.cpp +++ b/toolsrc/src/commands_remove.cpp @@ -18,7 +18,7 @@ namespace vcpkg::Commands::Remove { auto& fs = paths.get_filesystem(); auto spghs = status_db->find_all(spec.name(), spec.triplet()); - auto core_pkg = **status_db->find(spec.name(), spec.triplet(), Strings::EMPTY); + const auto core_pkg = **status_db->find(spec.name(), spec.triplet(), Strings::EMPTY); for (auto&& spgh : spghs) { @@ -31,7 +31,7 @@ namespace vcpkg::Commands::Remove auto maybe_lines = fs.read_lines(paths.listfile_path(core_pkg.package)); - if (auto lines = maybe_lines.get()) + if (const auto lines = maybe_lines.get()) { std::vector dirs_touched; for (auto&& suffix : *lines) @@ -42,7 +42,7 @@ namespace vcpkg::Commands::Remove auto target = paths.installed / suffix; - auto status = fs.status(target, ec); + const auto status = fs.status(target, ec); if (ec) { System::println(System::Color::error, "failed: %s", ec.message()); @@ -72,7 +72,7 @@ namespace vcpkg::Commands::Remove } auto b = dirs_touched.rbegin(); - auto e = dirs_touched.rend(); + const auto e = dirs_touched.rend(); for (; b != e; ++b) { if (fs.is_empty(*b)) @@ -100,11 +100,11 @@ namespace vcpkg::Commands::Remove static void print_plan(const std::map>& group_by_plan_type) { - static constexpr std::array order = {RemovePlanType::NOT_INSTALLED, RemovePlanType::REMOVE}; + static constexpr std::array ORDER = {RemovePlanType::NOT_INSTALLED, RemovePlanType::REMOVE}; - for (const RemovePlanType plan_type : order) + for (const RemovePlanType plan_type : ORDER) { - auto it = group_by_plan_type.find(plan_type); + const auto it = group_by_plan_type.find(plan_type); if (it == group_by_plan_type.cend()) { continue; @@ -129,6 +129,37 @@ namespace vcpkg::Commands::Remove } } + void perform_remove_plan_action(const VcpkgPaths& paths, + const RemovePlanAction& action, + const Purge purge, + StatusParagraphs& status_db) + { + const std::string display_name = action.spec.to_string(); + + switch (action.plan_type) + { + case RemovePlanType::NOT_INSTALLED: + System::println(System::Color::success, "Package %s is not installed", display_name); + break; + case RemovePlanType::REMOVE: + System::println("Removing package %s... ", display_name); + remove_package(paths, action.spec, &status_db); + System::println(System::Color::success, "Removing package %s... done", display_name); + break; + case RemovePlanType::UNKNOWN: + default: Checks::unreachable(VCPKG_LINE_INFO); + } + + if (purge == Purge::YES) + { + System::println("Purging package %s... ", display_name); + Files::Filesystem& fs = paths.get_filesystem(); + std::error_code ec; + fs.remove_all(paths.packages / action.spec.dir(), ec); + System::println(System::Color::success, "Purging package %s... done", display_name); + } + } + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths, const Triplet& default_triplet) { static const std::string OPTION_PURGE = "--purge"; @@ -166,16 +197,17 @@ namespace vcpkg::Commands::Remove Input::check_triplet(spec.triplet(), paths); } - const bool alsoRemoveFolderFromPackages = options.find(OPTION_NO_PURGE) == options.end(); - if (options.find(OPTION_PURGE) != options.end() && !alsoRemoveFolderFromPackages) + const bool no_purge_was_passed = options.find(OPTION_NO_PURGE) != options.end(); + const bool purge_was_passed = options.find(OPTION_PURGE) != options.end(); + if (purge_was_passed && no_purge_was_passed) { - // User specified --purge and --no-purge System::println(System::Color::error, "Error: cannot specify both --no-purge and --purge."); System::print(EXAMPLE); Checks::exit_fail(VCPKG_LINE_INFO); } - const bool isRecursive = options.find(OPTION_RECURSE) != options.cend(); - const bool dryRun = options.find(OPTION_DRY_RUN) != options.cend(); + const Purge purge = to_purge(purge_was_passed || !no_purge_was_passed); + const bool is_recursive = options.find(OPTION_RECURSE) != options.cend(); + const bool dry_run = options.find(OPTION_DRY_RUN) != options.cend(); const std::vector remove_plan = Dependencies::create_remove_plan(specs, status_db); Checks::check_exit(VCPKG_LINE_INFO, !remove_plan.empty(), "Remove plan cannot be empty"); @@ -194,7 +226,7 @@ namespace vcpkg::Commands::Remove System::println(System::Color::warning, "Additional packages (*) need to be removed to complete this operation."); - if (!isRecursive) + if (!is_recursive) { System::println(System::Color::warning, "If you are sure you want to remove them, run the command with the --recurse option"); @@ -202,37 +234,14 @@ namespace vcpkg::Commands::Remove } } - if (dryRun) + if (dry_run) { Checks::exit_success(VCPKG_LINE_INFO); } for (const RemovePlanAction& action : remove_plan) { - const std::string display_name = action.spec.to_string(); - - switch (action.plan_type) - { - case RemovePlanType::NOT_INSTALLED: - System::println(System::Color::success, "Package %s is not installed", display_name); - break; - case RemovePlanType::REMOVE: - System::println("Removing package %s... ", display_name); - remove_package(paths, action.spec, &status_db); - System::println(System::Color::success, "Removing package %s... done", display_name); - break; - case RemovePlanType::UNKNOWN: - default: Checks::unreachable(VCPKG_LINE_INFO); - } - - if (alsoRemoveFolderFromPackages) - { - System::println("Purging package %s... ", display_name); - Files::Filesystem& fs = paths.get_filesystem(); - std::error_code ec; - fs.remove_all(paths.packages / action.spec.dir(), ec); - System::println(System::Color::success, "Purging package %s... done", display_name); - } + perform_remove_plan_action(paths, action, purge, status_db); } Checks::exit_success(VCPKG_LINE_INFO); diff --git a/toolsrc/src/commands_search.cpp b/toolsrc/src/commands_search.cpp index 1ccec9fbe4..d35a546c4e 100644 --- a/toolsrc/src/commands_search.cpp +++ b/toolsrc/src/commands_search.cpp @@ -87,27 +87,8 @@ namespace vcpkg::Commands::Search const std::unordered_set options = args.check_and_get_optional_command_arguments({OPTION_GRAPH, OPTION_FULLDESC}); - auto sources_and_errors = Paragraphs::try_load_all_ports(paths.get_filesystem(), paths.ports); + auto source_paragraphs = Paragraphs::load_all_ports(paths.get_filesystem(), paths.ports); - if (!sources_and_errors.errors.empty()) - { - if (GlobalState::debugging) - { - print_error_message(sources_and_errors.errors); - } - else - { - for (auto&& error : sources_and_errors.errors) - { - System::println( - System::Color::warning, "Warning: an error occurred while parsing '%s'", error->name); - } - System::println(System::Color::warning, - "Use '--debug' to get more information about the parse failures.\n"); - } - } - - auto& source_paragraphs = sources_and_errors.paragraphs; if (options.find(OPTION_GRAPH) != options.cend()) { const std::string graph_as_string = create_graph_as_string(source_paragraphs); diff --git a/toolsrc/src/commands_update.cpp b/toolsrc/src/commands_update.cpp index 35f24af128..71ea4b0636 100644 --- a/toolsrc/src/commands_update.cpp +++ b/toolsrc/src/commands_update.cpp @@ -2,7 +2,6 @@ #include "Paragraphs.h" #include "vcpkg_Commands.h" -#include "vcpkg_Files.h" #include "vcpkg_System.h" #include "vcpkglib.h" @@ -22,7 +21,7 @@ namespace vcpkg::Commands::Update std::vector output; for (const StatusParagraph* pgh : installed_packages) { - auto it = src_names_to_versions.find(pgh->package.spec.name()); + const auto it = src_names_to_versions.find(pgh->package.spec.name()); if (it == src_names_to_versions.end()) { // Package was not installed from portfile @@ -69,31 +68,6 @@ namespace vcpkg::Commands::Update install_line); } - auto version_file = paths.get_filesystem().read_contents(paths.root / "toolsrc" / "VERSION.txt"); - if (auto version_contents = version_file.get()) - { - int maj1, min1, rev1; - auto num1 = sscanf_s(version_contents->c_str(), "\"%d.%d.%d\"", &maj1, &min1, &rev1); - - int maj2, min2, rev2; - auto num2 = sscanf_s(Version::version().c_str(), "%d.%d.%d-", &maj2, &min2, &rev2); - - if (num1 == 3 && num2 == 3) - { - if (maj1 != maj2 || min1 != min2 || rev1 != rev2) - { - System::println("Different source is available for vcpkg (%d.%d.%d -> %d.%d.%d). Use " - ".\\bootstrap-vcpkg.bat to update.", - maj2, - min2, - rev2, - maj1, - min1, - rev1); - } - } - } - Checks::exit_success(VCPKG_LINE_INFO); } } diff --git a/toolsrc/src/commands_version.cpp b/toolsrc/src/commands_version.cpp index af81cd26eb..5744ea9eff 100644 --- a/toolsrc/src/commands_version.cpp +++ b/toolsrc/src/commands_version.cpp @@ -13,7 +13,7 @@ namespace vcpkg::Commands::Version { const std::string& version() { - static const std::string s_version = + static const std::string S_VERSION = #include "../VERSION.txt" +std::string(VCPKG_VERSION_AS_STRING) @@ -21,7 +21,36 @@ namespace vcpkg::Commands::Version + std::string("-debug") #endif + std::string(Metrics::get_compiled_metrics_enabled() ? Strings::EMPTY : "-external"); - return s_version; + return S_VERSION; + } + + void warn_if_vcpkg_version_mismatch(const VcpkgPaths& paths) + { + auto version_file = paths.get_filesystem().read_contents(paths.root / "toolsrc" / "VERSION.txt"); + if (const auto version_contents = version_file.get()) + { + int maj1, min1, rev1; + const auto num1 = sscanf_s(version_contents->c_str(), "\"%d.%d.%d\"", &maj1, &min1, &rev1); + + int maj2, min2, rev2; + const auto num2 = sscanf_s(Version::version().c_str(), "%d.%d.%d-", &maj2, &min2, &rev2); + + if (num1 == 3 && num2 == 3) + { + if (maj1 != maj2 || min1 != min2 || rev1 != rev2) + { + System::println(System::Color::warning, + "Warning: Different source is available for vcpkg (%d.%d.%d -> %d.%d.%d). Use " + ".\\bootstrap-vcpkg.bat to update.", + maj2, + min2, + rev2, + maj1, + min1, + rev1); + } + } + } } void perform_and_exit(const VcpkgCmdArguments& args) diff --git a/toolsrc/src/metrics.cpp b/toolsrc/src/metrics.cpp index 8a7d02a303..8a0050bfce 100644 --- a/toolsrc/src/metrics.cpp +++ b/toolsrc/src/metrics.cpp @@ -20,9 +20,9 @@ namespace vcpkg::Metrics _ftime_s(&timebuffer); time_t now = timebuffer.time; - int milli = timebuffer.millitm; + const int milli = timebuffer.millitm; - errno_t err = gmtime_s(&newtime, &now); + const errno_t err = gmtime_s(&newtime, &now); if (err) { return Strings::EMPTY; @@ -34,7 +34,7 @@ namespace vcpkg::Metrics static std::string generate_random_UUID() { - int partSizes[] = {8, 4, 4, 4, 12}; + int part_sizes[] = {8, 4, 4, 4, 12}; char uuid[37]; memset(uuid, 0, sizeof(uuid)); int num; @@ -50,7 +50,7 @@ namespace vcpkg::Metrics // Generating UUID format version 4 // http://en.wikipedia.org/wiki/Universally_unique_identifier - for (int i = 0; i < partSizes[part]; i++, index++) + for (int i = 0; i < part_sizes[part]; i++, index++) { if (part == 2 && i == 0) { @@ -81,8 +81,8 @@ namespace vcpkg::Metrics static const std::string& get_session_id() { - static const std::string id = generate_random_UUID(); - return id; + static const std::string ID = generate_random_UUID(); + return ID; } static std::string to_json_string(const std::string& str) @@ -101,11 +101,11 @@ namespace vcpkg::Metrics else if (ch < 0x20 || ch >= 0x80) { // Note: this treats incoming Strings as Latin-1 - static constexpr const char hex[16] = { + static constexpr const char HEX[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; encoded.append("\\u00"); - encoded.push_back(hex[ch / 16]); - encoded.push_back(hex[ch % 16]); + encoded.push_back(HEX[ch / 16]); + encoded.push_back(HEX[ch % 16]); } else { @@ -120,11 +120,11 @@ namespace vcpkg::Metrics { std::wstring path; path.resize(MAX_PATH); - auto n = GetSystemDirectoryW(&path[0], static_cast(path.size())); + const auto n = GetSystemDirectoryW(&path[0], static_cast(path.size())); path.resize(n); path += L"\\kernel32.dll"; - auto versz = GetFileVersionInfoSizeW(path.c_str(), nullptr); + const auto versz = GetFileVersionInfoSizeW(path.c_str(), nullptr); if (versz == 0) return Strings::EMPTY; std::vector verbuf; @@ -152,7 +152,7 @@ namespace vcpkg::Metrics std::string properties; std::string measurements; - void TrackProperty(const std::string& name, const std::string& value) + void track_property(const std::string& name, const std::string& value) { if (properties.size() != 0) properties.push_back(','); properties.append(to_json_string(name)); @@ -160,7 +160,7 @@ namespace vcpkg::Metrics properties.append(to_json_string(value)); } - void TrackMetric(const std::string& name, double value) + void track_metric(const std::string& name, double value) { if (measurements.size() != 0) measurements.push_back(','); measurements.append(to_json_string(name)); @@ -241,7 +241,7 @@ namespace vcpkg::Metrics void Metrics::set_print_metrics(bool should_print_metrics) { g_should_print_metrics = should_print_metrics; } - void Metrics::track_metric(const std::string& name, double value) { g_metricmessage.TrackMetric(name, value); } + void Metrics::track_metric(const std::string& name, double value) { g_metricmessage.track_metric(name, value); } void Metrics::track_property(const std::string& name, const std::wstring& value) { @@ -251,85 +251,85 @@ namespace vcpkg::Metrics std::transform( value.begin(), value.end(), converted_value.begin(), [](wchar_t ch) { return static_cast(ch); }); - g_metricmessage.TrackProperty(name, converted_value); + g_metricmessage.track_property(name, converted_value); } void Metrics::track_property(const std::string& name, const std::string& value) { - g_metricmessage.TrackProperty(name, value); + g_metricmessage.track_property(name, value); } void Metrics::upload(const std::string& payload) { - HINTERNET hSession = nullptr, hConnect = nullptr, hRequest = nullptr; - BOOL bResults = FALSE; + HINTERNET connect = nullptr, request = nullptr; + BOOL results = FALSE; - hSession = WinHttpOpen( + const HINTERNET session = WinHttpOpen( L"vcpkg/1.0", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); - if (hSession) - hConnect = WinHttpConnect(hSession, L"dc.services.visualstudio.com", INTERNET_DEFAULT_HTTPS_PORT, 0); + if (session) connect = WinHttpConnect(session, L"dc.services.visualstudio.com", INTERNET_DEFAULT_HTTPS_PORT, 0); - if (hConnect) - hRequest = WinHttpOpenRequest(hConnect, - L"POST", - L"/v2/track", - nullptr, - WINHTTP_NO_REFERER, - WINHTTP_DEFAULT_ACCEPT_TYPES, - WINHTTP_FLAG_SECURE); + if (connect) + request = WinHttpOpenRequest(connect, + L"POST", + L"/v2/track", + nullptr, + WINHTTP_NO_REFERER, + WINHTTP_DEFAULT_ACCEPT_TYPES, + WINHTTP_FLAG_SECURE); - if (hRequest) + if (request) { if (MAXDWORD <= payload.size()) abort(); std::wstring hdrs = L"Content-Type: application/json\r\n"; - bResults = WinHttpSendRequest(hRequest, - hdrs.c_str(), - static_cast(hdrs.size()), - (void*)&payload[0], - static_cast(payload.size()), - static_cast(payload.size()), - 0); + std::string& p = const_cast(payload); + results = WinHttpSendRequest(request, + hdrs.c_str(), + static_cast(hdrs.size()), + static_cast(&p[0]), + static_cast(payload.size()), + static_cast(payload.size()), + 0); } - if (bResults) + if (results) { - bResults = WinHttpReceiveResponse(hRequest, nullptr); + results = WinHttpReceiveResponse(request, nullptr); } DWORD http_code = 0, junk = sizeof(DWORD); - if (bResults) + if (results) { - bResults = WinHttpQueryHeaders(hRequest, - WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER, - nullptr, - &http_code, - &junk, - WINHTTP_NO_HEADER_INDEX); + results = WinHttpQueryHeaders(request, + WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER, + nullptr, + &http_code, + &junk, + WINHTTP_NO_HEADER_INDEX); } - std::vector responseBuffer; - if (bResults) + std::vector response_buffer; + if (results) { - DWORD availableData = 0, readData = 0, totalData = 0; - while ((bResults = WinHttpQueryDataAvailable(hRequest, &availableData)) == TRUE && availableData > 0) + DWORD available_data = 0, read_data = 0, total_data = 0; + while ((results = WinHttpQueryDataAvailable(request, &available_data)) == TRUE && available_data > 0) { - responseBuffer.resize(responseBuffer.size() + availableData); + response_buffer.resize(response_buffer.size() + available_data); - bResults = WinHttpReadData(hRequest, &responseBuffer.data()[totalData], availableData, &readData); + results = WinHttpReadData(request, &response_buffer.data()[total_data], available_data, &read_data); - if (!bResults) + if (!results) { break; } - totalData += readData; + total_data += read_data; - responseBuffer.resize(totalData); + response_buffer.resize(total_data); } } - if (!bResults) + if (!results) { #ifndef NDEBUG __debugbreak(); @@ -338,22 +338,22 @@ namespace vcpkg::Metrics #endif } - if (hRequest) WinHttpCloseHandle(hRequest); - if (hConnect) WinHttpCloseHandle(hConnect); - if (hSession) WinHttpCloseHandle(hSession); + if (request) WinHttpCloseHandle(request); + if (connect) WinHttpCloseHandle(connect); + if (session) WinHttpCloseHandle(session); } static fs::path get_bindir() { wchar_t buf[_MAX_PATH]; - int bytes = GetModuleFileNameW(nullptr, buf, _MAX_PATH); + const int bytes = GetModuleFileNameW(nullptr, buf, _MAX_PATH); if (bytes == 0) std::abort(); return fs::path(buf, buf + bytes); } void Metrics::flush() { - std::string payload = g_metricmessage.format_event_data_template(); + const std::string payload = g_metricmessage.format_event_data_template(); if (g_should_print_metrics) std::cerr << payload << "\n"; if (!g_should_send_metrics) return; @@ -388,8 +388,8 @@ namespace vcpkg::Metrics const fs::path vcpkg_metrics_txt_path = temp_folder_path / ("vcpkg" + generate_random_UUID() + ".txt"); fs.write_contents(vcpkg_metrics_txt_path, payload); - const std::wstring cmdLine = + const std::wstring cmd_line = Strings::wformat(L"start %s %s", temp_folder_path_exe.native(), vcpkg_metrics_txt_path.native()); - System::cmd_execute_clean(cmdLine); + System::cmd_execute_clean(cmd_line); } } diff --git a/toolsrc/src/tests_package_spec.cpp b/toolsrc/src/tests_package_spec.cpp index fa201b372e..a6b9d5b134 100644 --- a/toolsrc/src/tests_package_spec.cpp +++ b/toolsrc/src/tests_package_spec.cpp @@ -43,7 +43,7 @@ namespace UnitTest1 std::array features = {"", "0", "1", "", "2", "3"}; std::array specs = {&a_spec, &a_spec, &a_spec, &b_spec, &b_spec, &b_spec}; - for (int i = 0; i < features.size(); ++i) + for (size_t i = 0; i < features.size(); ++i) { Assert::AreEqual(features[i], fspecs[i].feature().c_str()); Assert::AreEqual(*specs[i], fspecs[i].spec()); diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp index 781f03585e..706c641fbf 100644 --- a/toolsrc/src/vcpkg.cpp +++ b/toolsrc/src/vcpkg.cpp @@ -11,7 +11,10 @@ #include "vcpkg_Strings.h" #include "vcpkg_System.h" #include "vcpkglib.h" +#pragma warning(push) +#pragma warning(disable : 4768) #include +#pragma warning(pop) #include #include #include @@ -69,6 +72,7 @@ static void inner(const VcpkgCmdArguments& args) const VcpkgPaths paths = expected_paths.value_or_exit(VCPKG_LINE_INFO); const int exit_code = _wchdir(paths.root.c_str()); Checks::check_exit(VCPKG_LINE_INFO, exit_code == 0, "Changing the working dir failed"); + Commands::Version::warn_if_vcpkg_version_mismatch(paths); if (const auto command_function = Commands::find(args.command, Commands::get_available_commands_type_b())) { @@ -104,7 +108,7 @@ static void inner(const VcpkgCmdArguments& args) return invalid_command(args.command); } -static void loadConfig() +static void load_config() { fs::path localappdata; { @@ -207,7 +211,7 @@ int wmain(const int argc, const wchar_t* const* const argv) locked_metrics->track_property("version", Commands::Version::version()); locked_metrics->track_property("cmdline", trimmed_command_line); } - loadConfig(); + load_config(); Metrics::g_metrics.lock()->track_property("sqmuser", Metrics::get_SQM_user()); const VcpkgCmdArguments args = VcpkgCmdArguments::create_from_command_line(argc, argv); diff --git a/toolsrc/src/vcpkg_Build.cpp b/toolsrc/src/vcpkg_Build.cpp index a2fa99ac8d..853f849982 100644 --- a/toolsrc/src/vcpkg_Build.cpp +++ b/toolsrc/src/vcpkg_Build.cpp @@ -67,7 +67,12 @@ namespace vcpkg::Build const auto arch = to_vcvarsall_toolchain(pre_build_info.target_architecture, toolset); const auto target = to_vcvarsall_target(pre_build_info.cmake_system_name); - return Strings::wformat(LR"("%s" %s %s %s 2>&1)", toolset.vcvarsall.native(), arch, target, tonull); + return Strings::wformat(LR"("%s" %s %s %s %s 2>&1)", + toolset.vcvarsall.native(), + Strings::join(L" ", toolset.vcvarsall_options), + arch, + target, + tonull); } static void create_binary_feature_control_file(const SourceParagraph& source_paragraph, @@ -160,7 +165,7 @@ namespace vcpkg::Build {L"PORT", config.src.name}, {L"CURRENT_PORT_DIR", config.port_dir / "/."}, {L"TARGET_TRIPLET", triplet.canonical_name()}, - {L"VCPKG_PLATFORM_TOOLSET", toolset.version}, + {L"VCPKG_PLATFORM_TOOLSET", toolset.version.c_str()}, {L"VCPKG_USE_HEAD_VERSION", to_bool(config.build_package_options.use_head_version) ? L"1" : L"0"}, {L"_VCPKG_NO_DOWNLOADS", !to_bool(config.build_package_options.allow_downloads) ? L"1" : L"0"}, {L"GIT", git_exe_path}, @@ -289,7 +294,7 @@ namespace vcpkg::Build if (!version.empty()) build_info.version = std::move(version); std::map policies; - for (auto policy : g_all_policies) + for (auto policy : G_ALL_POLICIES) { const auto setting = parser.optional_field(to_string(policy)); if (setting.empty()) continue; diff --git a/toolsrc/src/vcpkg_Dependencies.cpp b/toolsrc/src/vcpkg_Dependencies.cpp index 1a0f0a6ed6..8dd60a2eb5 100644 --- a/toolsrc/src/vcpkg_Dependencies.cpp +++ b/toolsrc/src/vcpkg_Dependencies.cpp @@ -213,6 +213,21 @@ namespace vcpkg::Dependencies { } + const PackageSpec& AnyAction::spec() const + { + if (const auto p = install_plan.get()) + { + return p->spec; + } + + if (const auto p = remove_plan.get()) + { + return p->spec; + } + + Checks::exit_with_message(VCPKG_LINE_INFO, "Null action"); + } + bool ExportPlanAction::compare_by_name(const ExportPlanAction* left, const ExportPlanAction* right) { return left->spec.name() < right->spec.name(); diff --git a/toolsrc/src/vcpkg_Strings.cpp b/toolsrc/src/vcpkg_Strings.cpp index 15851829d6..21df2c3094 100644 --- a/toolsrc/src/vcpkg_Strings.cpp +++ b/toolsrc/src/vcpkg_Strings.cpp @@ -73,14 +73,20 @@ namespace vcpkg::Strings { std::wstring to_utf16(const CStringView s) { - std::wstring_convert, wchar_t> conversion; - return conversion.from_bytes(s); + const int size = MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, nullptr, 0); + std::wstring output; + output.resize(size - 1); + MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, output.data(), size - 1); + return output; } std::string to_utf8(const CWStringView w) { - std::wstring_convert, wchar_t> conversion; - return conversion.to_bytes(w); + const int size = WideCharToMultiByte(CP_UTF8, 0, w.c_str(), -1, nullptr, 0, nullptr, nullptr); + std::string output; + output.resize(size - 1); + WideCharToMultiByte(CP_UTF8, 0, w.c_str(), -1, output.data(), size - 1, nullptr, nullptr); + return output; } std::string::const_iterator case_insensitive_ascii_find(const std::string& s, const std::string& pattern) @@ -100,7 +106,7 @@ namespace vcpkg::Strings int case_insensitive_ascii_compare(const CStringView left, const CStringView right) { - return _stricmp(left, right); + return _stricmp(left.c_str(), right.c_str()); } std::string ascii_to_lowercase(const std::string& input) @@ -110,6 +116,11 @@ namespace vcpkg::Strings return output; } + bool case_insensitive_ascii_starts_with(const std::string& s, const std::string& pattern) + { + return _strnicmp(s.c_str(), pattern.c_str(), pattern.size()) == 0; + } + void trim(std::string* s) { s->erase(std::find_if_not(s->rbegin(), s->rend(), details::isspace).base(), s->end()); @@ -137,6 +148,12 @@ namespace vcpkg::Strings { std::vector output; + if (delimiter.empty()) + { + output.push_back(s); + return output; + } + size_t i = 0; for (size_t pos = s.find(delimiter); pos != std::string::npos; pos = s.find(delimiter, pos)) { diff --git a/toolsrc/src/vcpkg_System.cpp b/toolsrc/src/vcpkg_System.cpp index 40e335117c..4d2e88b731 100644 --- a/toolsrc/src/vcpkg_System.cpp +++ b/toolsrc/src/vcpkg_System.cpp @@ -226,7 +226,7 @@ namespace vcpkg::System void println() { println(Strings::EMPTY); } - void print(const CStringView message) { fputs(message, stdout); } + void print(const CStringView message) { fputs(message.c_str(), stdout); } void println(const CStringView message) { @@ -255,13 +255,13 @@ namespace vcpkg::System Optional get_environment_variable(const CWStringView varname) noexcept { - const auto sz = GetEnvironmentVariableW(varname, nullptr, 0); + const auto sz = GetEnvironmentVariableW(varname.c_str(), nullptr, 0); if (sz == 0) return nullopt; std::wstring ret(sz, L'\0'); Checks::check_exit(VCPKG_LINE_INFO, MAXDWORD >= ret.size()); - const auto sz2 = GetEnvironmentVariableW(varname, ret.data(), static_cast(ret.size())); + const auto sz2 = GetEnvironmentVariableW(varname.c_str(), ret.data(), static_cast(ret.size())); Checks::check_exit(VCPKG_LINE_INFO, sz2 + 1 == sz); ret.pop_back(); return ret; @@ -275,19 +275,20 @@ namespace vcpkg::System Optional get_registry_string(HKEY base, const CWStringView sub_key, const CWStringView valuename) { HKEY k = nullptr; - const LSTATUS ec = RegOpenKeyExW(base, sub_key, NULL, KEY_READ, &k); + const LSTATUS ec = RegOpenKeyExW(base, sub_key.c_str(), NULL, KEY_READ, &k); if (ec != ERROR_SUCCESS) return nullopt; DWORD dw_buffer_size = 0; DWORD dw_type = 0; - auto rc = RegQueryValueExW(k, valuename, nullptr, &dw_type, nullptr, &dw_buffer_size); + auto rc = RegQueryValueExW(k, valuename.c_str(), nullptr, &dw_type, nullptr, &dw_buffer_size); if (rc != ERROR_SUCCESS || !is_string_keytype(dw_type) || dw_buffer_size == 0 || dw_buffer_size % sizeof(wchar_t) != 0) return nullopt; std::wstring ret; ret.resize(dw_buffer_size / sizeof(wchar_t)); - rc = RegQueryValueExW(k, valuename, nullptr, &dw_type, reinterpret_cast(ret.data()), &dw_buffer_size); + rc = RegQueryValueExW( + k, valuename.c_str(), nullptr, &dw_type, reinterpret_cast(ret.data()), &dw_buffer_size); if (rc != ERROR_SUCCESS || !is_string_keytype(dw_type) || dw_buffer_size != sizeof(wchar_t) * ret.size()) return nullopt;