diff --git a/.gitignore b/.gitignore index c223e6fcf..bc83e2959 100644 --- a/.gitignore +++ b/.gitignore @@ -283,6 +283,7 @@ __pycache__/ /installed*/ /packages/ /scripts/buildsystems/tmp/ +/toolsrc/build.rel/ #ignore custom triplets /triplets/* #add vcpkg-designed triplets back in diff --git a/README.md b/README.md index c2f3fc1da..23cb4e5f4 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Prerequisites: - Windows 10, 8.1, 7, Linux, or MacOS - Visual Studio 2017 or Visual Studio 2015 Update 3 (on Windows) - Git -- *Optional: CMake 3.10.2* +- *Optional:* CMake 3.10.2 To get started: ``` @@ -18,19 +18,19 @@ To get started: > cd vcpkg PS> .\bootstrap-vcpkg.bat -Ubuntu:~/$ ./bootstrap-vcpkg.sh +Linux:~/$ ./bootstrap-vcpkg.sh ``` Then, to hook up user-wide [integration](docs/users/integration.md), run (note: requires admin on first use) ``` PS> .\vcpkg integrate install -Ubuntu:~/$ ./vcpkg integrate install +Linux:~/$ ./vcpkg integrate install ``` Install any packages with ``` PS> .\vcpkg install sdl2 curl -Ubuntu:~/$ ./vcpkg install sdl2 curl +Linux:~/$ ./vcpkg install sdl2 curl ``` The best way to use installed libraries with CMake is via the toolchain file `scripts\buildsystems\vcpkg.cmake`. To use this file, you simply need to add it onto your CMake command line as `-DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake`. diff --git a/docs/about/faq.md b/docs/about/faq.md index eb35ca241..0178e051a 100644 --- a/docs/about/faq.md +++ b/docs/about/faq.md @@ -35,7 +35,7 @@ To use different versions of a library for different projects, we recommend maki If your application is very sensitive to the versions of libraries, we recommend checking in the specific set of portfiles you need into your source control along with your project sources and using the `--vcpkg-root` option to redirect the working directory of `vcpkg.exe`. -## How does Vcpkg protect my Privacy? +## How does Vcpkg protect my privacy? See the [Privacy document](privacy.md) for all information regarding privacy. ## Can I use my own CMake toolchain file with Vcpkg's toolchain file? @@ -108,7 +108,7 @@ Conan.io is a publicly-federated, project-centric, cross-platform, C++ package m - **Cross-platform vs single-platform**. While being hosted on many platforms is an excellent north star, we believe the level of system integration and stability provided by apt-get, yum, and homebrew is well worth needing to exchange `apt-get install libboost-all-dev` with `brew install boost` in automated scripts. We chose to make our system as easy as possible to integrate into a world with these very successful system managers -- one more line for `vcpkg install boost` -- instead of attempting to replace them where they are already so successful and well-loved. -- **C++/CMake vs python**. While Python is an excellent language loved by many, we believe that transparency and familiarity are the most important factors when choosing a tool as important to your workflow as a package manager. Consequently, we chose to make the implementation languages be as universally accepted as possible: C++ should be used in a C++ package manager for C++ programmers. You should not be required to learn another language just to understand your package manager. +- **C++/CMake vs python**. While Python is an excellent language loved by many, we believe that transparency and familiarity are the most important factors when choosing a tool as important to your workflow as a package manager. Consequently, we chose to make the implementation languages be as universally accepted as possible: C++ should be used in a C++ package manager for C++ programmers. You should not be required to learn another programming language just to understand your package manager. ## Why not Chocolatey? Chocolatey is an excellent system for managing applications. However, it is not currently designed to acquire redistributable developer assets and help you with debugging. Vcpkg, in comparison, is designed to get you the libraries you need to build your application and help you deliver through any platform you'd like (including Chocolatey!). diff --git a/docs/examples/packaging-zlib.md b/docs/examples/packaging-zlib.md index 508947f1a..1d61cfee1 100644 --- a/docs/examples/packaging-zlib.md +++ b/docs/examples/packaging-zlib.md @@ -3,7 +3,7 @@ ### Bootstrap with `create` First, locate a globally accessible archive of the library's sources. Zip, gzip, and bzip are all supported. Strongly prefer official sources or mirrors over unofficial mirrors. -*Looking at zlib's website, the URL http://zlib.net/zlib128.zip looks appropriate.* +*Looking at zlib's website, the URL http://zlib.net/zlib1211.zip looks appropriate.* Second, determine a suitable package name. This should be ASCII, lowercase, and recognizable to someone who knows the library's "human name". If the library is already packaged in another package manager, prefer that name. @@ -11,7 +11,7 @@ Second, determine a suitable package name. This should be ASCII, lowercase, and Finally, if the server's name for the archive is not very descriptive (such as downloading a zipped commit or branch from GitHub), choose a nice archive name of the form `-.zip`. -*`zlib128.zip` is a fine name, so no change needed.* +*`zlib1211.zip` is a fine name, so no change needed.* All this information can then be passed into the `create` command, which will download the sources and bootstrap the packaging process inside `ports\`. @@ -26,7 +26,7 @@ In addition to the generated `ports\\portfile.cmake`, we also need a `p *For zlib2, we'll create the file `ports\zlib2\CONTROL` with the following contents:* ```no-highlight Source: zlib2 -Version: 1.2.8 +Version: 1.2.11 Description: A Massively Spiffy Yet Delicately Unobtrusive Compression Library ``` diff --git a/docs/users/triplets.md b/docs/users/triplets.md index d547725ea..2bb9c74b3 100644 --- a/docs/users/triplets.md +++ b/docs/users/triplets.md @@ -62,6 +62,7 @@ See also the CMake documentation for toolchain files: https://cmake.org/cmake/he Sets additional compiler flags to be used when not using `VCPKG_CHAINLOAD_TOOLCHAIN_FILE`. This option also has forms for configuration-specific and C flags: +- `VCPKG_CXX_FLAGS` - `VCPKG_CXX_FLAGS_DEBUG` - `VCPKG_CXX_FLAGS_RELEASE` - `VCPKG_C_FLAGS` diff --git a/ports/abseil/CMakeLists.txt b/ports/abseil/CMakeLists.txt index 88a20935a..b4b8a646d 100644 --- a/ports/abseil/CMakeLists.txt +++ b/ports/abseil/CMakeLists.txt @@ -17,8 +17,7 @@ endif() function(add_sublibrary LIB) file(GLOB_RECURSE SOURCES "absl/${LIB}/*.cc") list(FILTER SOURCES EXCLUDE REGEX "_test(ing)?(_.+)?.cc$|_nonprod.cc$|test_util.cc$|_benchmark.cc$") - file(GLOB HEADERS "absl/${LIB}/*.h" "absl/${LIB}/*.inc") - file(GLOB INTERNAL_HEADERS "absl/${LIB}/internal/*.h") + file(GLOB_RECURSE HEADERS "absl/${LIB}/*.h" "absl/${LIB}/*.inc") if(SOURCES) if("STATIC" IN_LIST ARGN) @@ -33,7 +32,6 @@ function(add_sublibrary LIB) target_include_directories(${LIB} INTERFACE $ $) endif() - install(TARGETS ${LIB} EXPORT unofficial-abseil-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib @@ -42,10 +40,11 @@ function(add_sublibrary 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") + foreach(file IN LISTS HEADERS) + get_filename_component(dir ${file} DIRECTORY) + file(RELATIVE_PATH rel_dir ${CMAKE_SOURCE_DIR}/absl/${LIB} ${dir}) + install(FILES ${file} DESTINATION "include/absl/${LIB}/${rel_dir}") + endforeach() endif() endif() endfunction() @@ -85,9 +84,6 @@ target_link_public_libraries(utility base meta) target_link_public_libraries(time base numeric) target_link_public_libraries(synchronization base time) -find_package(unofficial-cctz REQUIRED) -target_link_libraries(time PUBLIC unofficial::cctz) - install( EXPORT unofficial-abseil-targets FILE unofficial-abseil-config.cmake diff --git a/ports/abseil/CONTROL b/ports/abseil/CONTROL index 4f8b132a9..61eb0e906 100644 --- a/ports/abseil/CONTROL +++ b/ports/abseil/CONTROL @@ -1,7 +1,6 @@ Source: abseil -Version: 2018-07-30 +Version: 2018-09-18-3 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. -Build-Depends: cctz diff --git a/ports/abseil/portfile.cmake b/ports/abseil/portfile.cmake index a45b31b06..7894b5654 100644 --- a/ports/abseil/portfile.cmake +++ b/ports/abseil/portfile.cmake @@ -7,8 +7,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO abseil/abseil-cpp - REF c2e00d341913bf03b4597ade5b056042e23e8c58 - SHA512 60e9f0abc4ebbc356314c144b769a6918d4c5215df9f01aafb234f94756b08b670bdaf4cf88363ea4daf3bd19cb193ba6817aba70b208275d3d5d1ed2926ce9a + REF 8ff1374008259719b54a8cb128ef951c02da164c + SHA512 c8eaef8d3a829152bbe1a9adf60fad74858d10e78d2fd1ad8409a027add2f9e24df9994e4981960550b04845838ec6f5ac83b09d6a8850d129fb078d15c4b94f HEAD_REF master ) diff --git a/ports/ace/CONTROL b/ports/ace/CONTROL index 80279d6ed..8323188d9 100644 --- a/ports/ace/CONTROL +++ b/ports/ace/CONTROL @@ -1,3 +1,3 @@ Source: ace -Version: 6.5.1 +Version: 6.5.2 Description: The ADAPTIVE Communication Environment diff --git a/ports/ace/portfile.cmake b/ports/ace/portfile.cmake index 116459c8b..98b000122 100644 --- a/ports/ace/portfile.cmake +++ b/ports/ace/portfile.cmake @@ -9,9 +9,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.5.1.zip" - FILENAME "ACE-6.5.1.zip" - SHA512 b6444b183a356f4a9fc4af57ccc239a400121fbb00547ff9d13c51f0fc20f38b0aa87b9568531472e5f7fde82deea3d4c3d91d7504aca89799a2505ba492c73a + URLS "http://download.dre.vanderbilt.edu/previous_versions/ACE-6.5.2.zip" + FILENAME "ACE-6.5.2.zip" + SHA512 ca8a55942b50628e851cad7074a249c480d82f916979a50bb24174432248037fb7a79ca055c7e6553d96aa58f14b97e8e8bf5dbc8671b72b8712e8a65f63ac98 ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/alembic/CONTROL b/ports/alembic/CONTROL index 9a43a7b00..a2aefabec 100644 --- a/ports/alembic/CONTROL +++ b/ports/alembic/CONTROL @@ -1,4 +1,4 @@ Source: alembic -Version: 1.7.8 +Version: 1.7.9 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/alembic/portfile.cmake b/ports/alembic/portfile.cmake index d9720a178..295afa34a 100644 --- a/ports/alembic/portfile.cmake +++ b/ports/alembic/portfile.cmake @@ -8,8 +8,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alembic/alembic - REF 1.7.8 - SHA512 bc36e30d1aecd67da16247365a973c462e9716309d090fefe36f625c8d2ab2d517fe8ac694a9188cd6eeb623a3217f59f461c82fcfec43d0a60a07381526983a + REF 1.7.9 + SHA512 8025c20525ffbd5bdc9dd5a33ad8238e49f063d244ab9d112e7d1ddb7ee7cf9b36ceb74cb45d658ce22d3033552c89bddf6b818cf466ea46aa1a70a41fdeddb2 HEAD_REF master ) diff --git a/ports/apr/CONTROL b/ports/apr/CONTROL index 1f771a0ed..b4ea1f213 100644 --- a/ports/apr/CONTROL +++ b/ports/apr/CONTROL @@ -1,3 +1,3 @@ Source: apr -Version: 1.6.3 +Version: 1.6.5 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/apr/portfile.cmake b/ports/apr/portfile.cmake index 22bd260c8..40ced3049 100644 --- a/ports/apr/portfile.cmake +++ b/ports/apr/portfile.cmake @@ -4,13 +4,13 @@ endif() include(vcpkg_common_functions) -set(VERSION 1.6.3) +set(VERSION 1.6.5) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/apr-${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://www.apache.org/dist/apr/apr-${VERSION}.tar.bz2" FILENAME "apr-${VERSION}.tar.bz2" - SHA512 f6b8679ae7fafff793c825c78775c84a646267c441710a50664589850e13148719b4eab48ab6e7c95b7aed085cff831115687434a7b160dcc2faa0eae63ac996 + SHA512 d3511e320457b5531f565813e626e7941f6b82864852db6aa03dd298a65dbccdcdc4bd580f5314f8be45d268388edab25efe88cf8340b7d2897a4dbe9d0a41fc ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/asyncplusplus/CONTROL b/ports/asyncplusplus/CONTROL new file mode 100644 index 000000000..eb82afe70 --- /dev/null +++ b/ports/asyncplusplus/CONTROL @@ -0,0 +1,3 @@ +Source: asyncplusplus +Version: 1.0-1 +Description: Async++ is a lightweight concurrency framework for C++11 diff --git a/ports/asyncplusplus/portfile.cmake b/ports/asyncplusplus/portfile.cmake new file mode 100644 index 000000000..d348dc83e --- /dev/null +++ b/ports/asyncplusplus/portfile.cmake @@ -0,0 +1,34 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Amanieu/asyncplusplus + REF v1.0 + SHA512 bb1fc032d2d8de49b4505e0629d48e5cfa99edfcafbf17848f160ceb320bcd993f1549095248d1a0ef8fc1ec07ecbaad6b634a770ddc1974092d373a508a5fe3 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/Async++.cmake ${CURRENT_PACKAGES_DIR}/cmake/Async++Targets.cmake) + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake TARGET_PATH share/async++) + +file(RENAME ${CURRENT_PACKAGES_DIR}/share/async++/Async++Targets.cmake ${CURRENT_PACKAGES_DIR}/share/async++/Async++.cmake) + +file(READ ${CURRENT_PACKAGES_DIR}/share/async++/Async++Config.cmake _contents) +file(WRITE ${CURRENT_PACKAGES_DIR}/share/async++/Async++Config.cmake "include(CMakeFindDependencyMacro)\n${_contents}") + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) + +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/asyncplusplus) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/asyncplusplus/LICENSE ${CURRENT_PACKAGES_DIR}/share/asyncplusplus/copyright) + +vcpkg_test_cmake(PACKAGE_NAME Async++) diff --git a/ports/aws-sdk-cpp/CONTROL b/ports/aws-sdk-cpp/CONTROL index 611b1989b..7402c2e35 100644 --- a/ports/aws-sdk-cpp/CONTROL +++ b/ports/aws-sdk-cpp/CONTROL @@ -1,8 +1,8 @@ Source: aws-sdk-cpp -Version: 1.5.2 +Version: 1.6.12-1 Description: AWS SDK for C++ Build-Depends: openssl (!uwp&!windows), curl (!uwp&!windows) -Default-Features: dynamodb, ec2, kms, rds, s3, sns, sqs +Default-Features: dynamodb, s3, kinesis # Automatically generated by generateFeatures.ps1 Feature: access-management diff --git a/ports/aws-sdk-cpp/CONTROL.in b/ports/aws-sdk-cpp/CONTROL.in index 184374de6..13b206bfa 100644 --- a/ports/aws-sdk-cpp/CONTROL.in +++ b/ports/aws-sdk-cpp/CONTROL.in @@ -2,4 +2,4 @@ Source: aws-sdk-cpp Version: 1.4.30-1 Description: AWS SDK for C++ Build-Depends: openssl (!uwp&!windows), curl (!uwp&!windows) -Default-Features: dynamodb, ec2, kms, rds, s3, sns, sqs +Default-Features: dynamodb, s3, kinesis diff --git a/ports/aws-sdk-cpp/portfile.cmake b/ports/aws-sdk-cpp/portfile.cmake index a6d2ac514..854e24fcb 100644 --- a/ports/aws-sdk-cpp/portfile.cmake +++ b/ports/aws-sdk-cpp/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aws/aws-sdk-cpp - REF 1.5.2 - SHA512 d157e12ff836ee1ee875755ffd96312bdad7d8ad17d3cf7b5919f01f755ba62e53366eee0d32c1f41e9da7aa678fe3349cc19dd14bbaf5f2908474d6e66d6146 + REF 1.6.12 + SHA512 37cd573ea354394c170a081572f63dfe604bf631d0129a53f066f121680b92c8f64b343a4d841de9a178679a322755a858a1148fbfc99c3f525a1f025fdfbd84 HEAD_REF master ) diff --git a/ports/azure-storage-cpp/CONTROL b/ports/azure-storage-cpp/CONTROL index e3f158a95..cde95570e 100644 --- a/ports/azure-storage-cpp/CONTROL +++ b/ports/azure-storage-cpp/CONTROL @@ -1,5 +1,5 @@ Source: azure-storage-cpp -Version: 5.0.0 +Version: 5.1.1 Build-Depends: cpprestsdk, atlmfc (windows), boost-log (!windows&!uwp), boost-locale (!windows&!uwp), libxml2 (!windows&!uwp), libuuid (!windows&!uwp) 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/ diff --git a/ports/azure-storage-cpp/portfile.cmake b/ports/azure-storage-cpp/portfile.cmake index be9f8074c..07affc756 100644 --- a/ports/azure-storage-cpp/portfile.cmake +++ b/ports/azure-storage-cpp/portfile.cmake @@ -7,8 +7,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-storage-cpp - REF v5.0.0 - SHA512 730d082b4bf4ef73ee8aa5f8c87927149e4c2b65fc58dc9609f992ab8fcdd7e9fdbc4b77fbc46378ebd575196477dee7943db5d43724591d505aba511fe3052a + REF v5.1.1 + SHA512 e5983d767681cf82a68af3c983a83515a2a7a3b5bf2ffbadcd2992dbcdf213bb322f8d0c4369a4c729ac7536e3e0f52e44cde012cbe1f9464df3ad901f635b6a HEAD_REF master PATCHES ${CMAKE_CURRENT_LIST_DIR}/pplx-do-while.patch diff --git a/ports/blaze/portfile.cmake b/ports/blaze/portfile.cmake index 53e845b70..a44808249 100644 --- a/ports/blaze/portfile.cmake +++ b/ports/blaze/portfile.cmake @@ -6,10 +6,6 @@ vcpkg_from_bitbucket( REF bbe39c81b68eb0d8647da703899e1ee4a82cdfd3 SHA512 84eb8226672d9d11d194d165e7aaa333a0d49ca090bb94472f19242e5f2ad0c3e08a30cdafe055cff51b210b603533f879800bd6784f3ffdb0d9eeca65d58b25 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES avoid-src-dir-generation.patch ) diff --git a/ports/boost-lockfree/CONTROL b/ports/boost-lockfree/CONTROL index 84f27b3fb..bc193d0ec 100644 --- a/ports/boost-lockfree/CONTROL +++ b/ports/boost-lockfree/CONTROL @@ -1,5 +1,5 @@ # Automatically generated by boost-vcpkg-helpers/generate-ports.ps1 Source: boost-lockfree -Version: 1.68.0 -Build-Depends: boost-align, boost-array, boost-assert, boost-atomic, boost-config, boost-core, boost-integer, boost-mpl, boost-parameter, boost-predef, boost-static-assert, boost-tuple, boost-type-traits, boost-utility, boost-vcpkg-helpers +Version: 1.68.0-1 +Build-Depends: boost-align, boost-array, boost-assert, boost-atomic, boost-config, boost-core, boost-integer, boost-mpl, boost-parameter, boost-predef, boost-static-assert, boost-tuple, boost-type-traits, boost-utility, boost-iterator, boost-vcpkg-helpers Description: Boost lockfree module diff --git a/ports/breakpad/CONTROL b/ports/breakpad/CONTROL index 190d48875..55ca2a8c3 100644 --- a/ports/breakpad/CONTROL +++ b/ports/breakpad/CONTROL @@ -1,4 +1,4 @@ Source: breakpad -Version: 2018-07-30-2 +Version: 2018-09-18 Build-Depends: libdisasm Description: a set of client and server components which implement a crash-reporting system. diff --git a/ports/breakpad/portfile.cmake b/ports/breakpad/portfile.cmake index b5f2959fe..18b1b8152 100644 --- a/ports/breakpad/portfile.cmake +++ b/ports/breakpad/portfile.cmake @@ -5,8 +5,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/breakpad - REF 9fecc95c72549452959431ddc0e4ec4e0cda8689 - SHA512 b579c4f7058cfd86df343e41496c0d4fc0fb1160bf239fab9cfecfd3d60108367f43f1788d744a9d813d585e8a05e06adf90b01d619448a262522a969d8d5054 + REF 54fa71efbe50fb2b58096d871575b59e12edba6d + SHA512 ecd1c6c5cc0e3984d05fe86ec11172e93b0e31c39ce0af9d0de08b8d03083686e2288e0cd787180c599446c277e58f48550ce4ab718019576c64fc403a592745 HEAD_REF master ) diff --git a/ports/cairo/CMakeLists.txt b/ports/cairo/CMakeLists.txt index 5ace57604..137dba7f3 100644 --- a/ports/cairo/CMakeLists.txt +++ b/ports/cairo/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.11) project(cairo C) # Add include directories @@ -162,14 +162,10 @@ set(CMAKE_DEBUG_POSTFIX "d") find_package(ZLIB REQUIRED) find_package(PNG REQUIRED) - -# Make the pixman library available -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(PIXMAN_SUFFIX "d") -endif() -find_library(PIXMAN_LIBRARY NAMES pixman-1${PIXMAN_SUFFIX}) - -find_package(Freetype CONFIG REQUIRED) +find_package(Freetype REQUIRED) +find_package(unofficial-glib CONFIG REQUIRED) +find_package(unofficial-fontconfig CONFIG REQUIRED) +find_package(unofficial-pixman CONFIG REQUIRED) # Cairo needs to be told which features of FreeType are availible add_definitions( @@ -179,9 +175,6 @@ add_definitions( -DHAVE_FT_LOAD_SFNT_TABLE=1 -DHAVE_FT_GET_X11_FONT_FORMAT=1) -# Find FontConfig -find_library(FONTCONFIG_LIBRARY fontconfig) - # additional features for macOS if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") add_definitions( @@ -196,20 +189,7 @@ endif() add_library(cairo ${SOURCES}) -if(MSVC) - # cairo produces a lot of warnings which are disabled here because they otherwise fill up the log files - # NOTE: options only available to MSVC, clang in macOS doesn't understand these flags - target_compile_options(cairo PUBLIC "/wd4244" PUBLIC "/wd4146" PUBLIC "/wd4312" PUBLIC "/wd4267" - PUBLIC "/wd4996" PUBLIC "/wd4311" PUBLIC "/wd4334" PUBLIC "/wd4101") -endif() - -target_link_libraries(cairo gdi32 msimg32 user32 ZLIB::ZLIB PNG::PNG freetype ${PIXMAN_LIBRARY} ${FONTCONFIG_LIBRARY}) - -install(TARGETS cairo - RUNTIME DESTINATION bin - LIBRARY DESTINATION bin - ARCHIVE DESTINATION lib -) +target_link_libraries(cairo PRIVATE gdi32 msimg32 user32 ZLIB::ZLIB PNG::PNG Freetype::Freetype unofficial::pixman::pixman-1 unofficial::fontconfig::fontconfig) # GObject support module @@ -225,16 +205,43 @@ if(BUILD_SHARED_LIBS) PROPERTIES COMPILE_DEFINITIONS "cairo_public=__declspec(dllexport)") endif() -# Make GLib's GObject available -find_path(GLIB_INCLUDE_DIR glib.h) -find_library(GLIB_LIBRARY NAMES glib-2.0) -find_library(GOBJECT_LIBRARY NAMES gobject-2.0) -set(GLIB_LIBRARIES ${GLIB_LIBRARY} ${GOBJECT_LIBRARY}) - add_library(cairo-gobject ${CAIRO_GOBJECT_SOURCES}) -target_link_libraries(cairo-gobject cairo ${GLIB_LIBRARIES}) -target_include_directories(cairo-gobject PRIVATE ${GLIB_INCLUDE_DIR}) -install(TARGETS cairo-gobject +target_link_libraries(cairo-gobject PRIVATE cairo unofficial::glib::gobject unofficial::glib::glib) + +if(MSVC) + # cairo produces a lot of warnings which are disabled here because they otherwise fill up the log files + # NOTE: options only available to MSVC, clang in macOS doesn't understand these flags + target_compile_options(cairo PRIVATE + "/wd4244" "/wd4146" "/wd4312" "/wd4267" "/wd4996" "/wd4311" "/wd4334" "/wd4101" + ) + target_compile_options(cairo-gobject PRIVATE + "/wd4244" "/wd4146" "/wd4312" "/wd4267" "/wd4996" "/wd4311" "/wd4334" "/wd4101" + ) +endif() + +install(TARGETS cairo cairo-gobject + EXPORT cairo-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) + ARCHIVE DESTINATION lib +) + +install( + EXPORT cairo-targets + NAMESPACE unofficial::cairo:: + FILE unofficial-cairo-targets.cmake + DESTINATION share/unofficial-cairo +) + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/unofficial-cairo-config.cmake " +include(CMakeFindDependencyMacro) +find_dependency(ZLIB) +find_dependency(PNG) +find_dependency(Freetype) +find_dependency(unofficial-glib CONFIG) +find_dependency(unofficial-fontconfig CONFIG) +find_dependency(unofficial-pixman CONFIG) + +include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-cairo-targets.cmake) +") +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-cairo-config.cmake DESTINATION share/unofficial-cairo) diff --git a/ports/cairo/CONTROL b/ports/cairo/CONTROL index eb1964c8a..2f182e84b 100644 --- a/ports/cairo/CONTROL +++ b/ports/cairo/CONTROL @@ -1,4 +1,4 @@ Source: cairo -Version: 1.15.8-2 +Version: 1.15.8-3 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/portfile.cmake b/ports/cairo/portfile.cmake index bc74654d0..53d944b54 100644 --- a/ports/cairo/portfile.cmake +++ b/ports/cairo/portfile.cmake @@ -1,25 +1,18 @@ -# 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) 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 5af1eebf432201dae0efaa5b6766b151d8273ea00dae48e104d56477005b4d423d64b5d11c512736a4cb076632fb2a572ec35becd922825a68d933bb5ff96ca1 ) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/export-only-in-shared-build.patch" - "${CMAKE_CURRENT_LIST_DIR}/0001_fix_osx_defined.patch" +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${CAIRO_VERSION} + PATCHES + export-only-in-shared-build.patch + 0001_fix_osx_defined.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/src) @@ -32,6 +25,8 @@ vcpkg_configure_cmake( vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-cairo TARGET_PATH share/unofficial-cairo) + # Copy the appropriate header files. foreach(FILE "${SOURCE_PATH}/src/cairo.h" @@ -64,3 +59,5 @@ file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/cairo file(RENAME ${CURRENT_PACKAGES_DIR}/share/cairo/COPYING ${CURRENT_PACKAGES_DIR}/share/cairo/copyright) vcpkg_copy_pdbs() + +vcpkg_test_cmake(PACKAGE_NAME unofficial-cairo) diff --git a/ports/catch2/CONTROL b/ports/catch2/CONTROL index 41b534b59..10c288d42 100644 --- a/ports/catch2/CONTROL +++ b/ports/catch2/CONTROL @@ -1,4 +1,4 @@ Source: catch2 -Version: 2.3.0 +Version: 2.4.0 Description: A modern, header-only test framework for unit testing. Issues, PRs and changelogs can be found at https://github.com/catchorg/Catch2 diff --git a/ports/catch2/portfile.cmake b/ports/catch2/portfile.cmake index 763ee1987..81a0f6d0d 100644 --- a/ports/catch2/portfile.cmake +++ b/ports/catch2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO catchorg/Catch2 - REF v2.3.0 - SHA512 e9a089b504c339e87bda0fb1a4040d9d19c932a4bc7dca41bdad6edfcf8c428f4152ff1e0c898dfdf6b20bd5d901c343bed00ad89351fa5182f3c106e0fb4b03 + REF v2.4.0 + SHA512 7bd148271520dfce24f64bab084226387a6adc9f0a5439b6cb2fa6b4e44b495475ecd9bc5936c6fa4f17e45132e826d8d47410b33d6c218d7a3202f5bb0ccbf4 HEAD_REF master ) diff --git a/ports/cgal/CONTROL b/ports/cgal/CONTROL index 12765f391..ef39cf54e 100644 --- a/ports/cgal/CONTROL +++ b/ports/cgal/CONTROL @@ -1,8 +1,8 @@ Source: cgal -Version: 4.12 +Version: 4.13-1 Build-Depends: mpfr, mpir, zlib, boost-format, boost-container, boost-iterator, boost-variant, boost-any, boost-unordered, boost-random, boost-foreach, boost-graph, boost-heap, boost-logic Description: The Computational Geometry Algorithms Library (CGAL) is a C++ library that aims to provide easy access to efficient and reliable algorithms in computational geometry. Feature: qt -Build-Depends: qt5 +Build-Depends: qt5-base, qt5-3d, qt5-svg, qt5-xmlpatterns, qt5-script, eigen3 Description: Qt GUI support for CGAL diff --git a/ports/cgal/portfile.cmake b/ports/cgal/portfile.cmake index 1d9661862..bf261f66a 100644 --- a/ports/cgal/portfile.cmake +++ b/ports/cgal/portfile.cmake @@ -3,13 +3,13 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CGAL/cgal - REF f7c3c8212b56c0d6dae63787efc99093f4383415 - SHA512 fc40483b5f0e2071c3458cbd67ee7e503f68b7f6a1bbb525b6003d1a440e662cb85c257167ce6d55a73e0cc49b27a7d2b56dcf6b5eeddc78772567fdc48ba160 + REF releases/CGAL-4.13 + SHA512 3a12d7f567487c282928a162a47737c41c22258556ca0083b9cf492fc8f0a7c334b491b14dbfd6a62e71feeeb1b4995769c13a604e0882548f21c41b996d4eaf HEAD_REF master ) set(WITH_CGAL_Qt5 OFF) -if("qt5" IN_LIST FEATURES) +if("qt" IN_LIST FEATURES) set(WITH_CGAL_Qt5 ON) endif() @@ -30,11 +30,31 @@ vcpkg_copy_pdbs() # Clean file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +else() + foreach(ROOT ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) + file(REMOVE + ${ROOT}/cgal_create_CMakeLists + ${ROOT}/cgal_create_cmake_script + ${ROOT}/cgal_make_macosx_app + ) + endforeach() +endif() file(READ ${CURRENT_PACKAGES_DIR}/share/cgal/CGALConfig.cmake _contents) string(REPLACE "CGAL_IGNORE_PRECONFIGURED_GMP" "1" _contents "${_contents}") string(REPLACE "CGAL_IGNORE_PRECONFIGURED_MPFR" "1" _contents "${_contents}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/cgal/CGALConfig.cmake "${_contents}") +file(WRITE ${CURRENT_PACKAGES_DIR}/lib/cgal/CGALConfig.cmake "${_contents}") -# Handle copyright of suitesparse and metis -file(COPY ${SOURCE_PATH}/copyright DESTINATION ${CURRENT_PACKAGES_DIR}/share/cgal) +file(COPY ${SOURCE_PATH}/Installation/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cgal) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/cgal/LICENSE ${CURRENT_PACKAGES_DIR}/share/cgal/copyright) + +file( + COPY + ${SOURCE_PATH}/Installation/LICENSE.BSL + ${SOURCE_PATH}/Installation/LICENSE.FREE_USE + ${SOURCE_PATH}/Installation/LICENSE.GPL + ${SOURCE_PATH}/Installation/LICENSE.LGPL + DESTINATION ${CURRENT_PACKAGES_DIR}/share/cgal +) diff --git a/ports/chakracore/CONTROL b/ports/chakracore/CONTROL index 1939a4a64..cc29aa2d5 100644 --- a/ports/chakracore/CONTROL +++ b/ports/chakracore/CONTROL @@ -1,3 +1,3 @@ Source: chakracore -Version: 1.10.1-1 +Version: 1.11.1-1 Description: Core part of the Chakra Javascript engine diff --git a/ports/chakracore/portfile.cmake b/ports/chakracore/portfile.cmake index ad5431267..3d7b2630d 100644 --- a/ports/chakracore/portfile.cmake +++ b/ports/chakracore/portfile.cmake @@ -9,8 +9,8 @@ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/ChakraCore - REF v1.10.1 - SHA512 e3a9a9e6506b603922e5a5ed1fb900d43dfd6c8e5e091e12bf902dbe58cd12753e6b7f59a895081cea880eb78bcc55571ee561fe03c96d6312608626a5b653f2 + REF v1.11.1 + SHA512 cabec836af505504ffff99050de79320fe32e7311842bc5c715dae18ae7e006b63bb56f4d071016708ddec05a2a07143677371a76a57def68fb7f428012452d3 HEAD_REF master ) @@ -24,10 +24,7 @@ set(BUILDTREE_PATH ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) file(REMOVE_RECURSE ${BUILDTREE_PATH}) file(COPY ${SOURCE_PATH}/ DESTINATION ${BUILDTREE_PATH}) -set(CHAKRA_RUNTIME_LIB "static_library") # ChakraCore default is static CRT linkage -if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") - set(CHAKRA_RUNTIME_LIB "dynamic_library") -endif() +set(CHAKRA_RUNTIME_LIB "static_library") # ChakraCore only supports static CRT linkage vcpkg_build_msbuild( PROJECT_PATH ${BUILDTREE_PATH}/Build/Chakra.Core.sln diff --git a/ports/cimg/CONTROL b/ports/cimg/CONTROL index c3acc587c..ecb4df9f9 100644 --- a/ports/cimg/CONTROL +++ b/ports/cimg/CONTROL @@ -1,3 +1,3 @@ Source: cimg -Version: 2.3.3 +Version: 2.3.6 Description: The CImg Library is a small, open-source, and modern C++ toolkit for image processing diff --git a/ports/cimg/portfile.cmake b/ports/cimg/portfile.cmake index 8704f0f7b..edf4839d3 100644 --- a/ports/cimg/portfile.cmake +++ b/ports/cimg/portfile.cmake @@ -2,9 +2,9 @@ include(vcpkg_common_functions) vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO "dtschump/CImg" - REF v.2.3.3 + REF v.2.3.6 HEAD_REF master - SHA512 506dd0e55ecab3a1c3b230c97050b302614f187e7ec8634d8499353b278c783cd58408211abd3815d34b4e2b748e4481ccea79d1253d1df511fd3d0723ae4568) + SHA512 b2214e6f72eee0dd4fd20739030c4082bfe67923a7f2efe74709b42e07d58552a6b7d1306f0fddf9478294e822313fe3bae0bff5c141e7dbb4453d08b3d9b05d) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/cpprestsdk/CONTROL b/ports/cpprestsdk/CONTROL index f3053c7be..2693d2390 100644 --- a/ports/cpprestsdk/CONTROL +++ b/ports/cpprestsdk/CONTROL @@ -1,5 +1,5 @@ Source: cpprestsdk -Version: 2.10.5 +Version: 2.10.6-1 Build-Depends: zlib, openssl (!uwp), boost-system (!uwp), boost-date-time (!uwp), boost-regex (!uwp), websocketpp (!uwp), boost-thread (!uwp&!windows), boost-filesystem (!uwp&!windows), boost-random (!uwp&!windows), boost-chrono (!uwp&!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. diff --git a/ports/cpprestsdk/portfile.cmake b/ports/cpprestsdk/portfile.cmake index b19bb8eb4..c84e6ff90 100644 --- a/ports/cpprestsdk/portfile.cmake +++ b/ports/cpprestsdk/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/cpprestsdk - REF v2.10.5 - SHA512 7942185e0e1cd5080b57737887f44c12e706cfb6428e55762dcbad2fd2c557f25bd26abe25b6abd9769ab6c0cea564541e7e95dcaff53e609124dda065fa41be + REF v2.10.6 + SHA512 f0848f329df80ced68132600914f0f4ba1ed42c7c16188e0f2bd41cf0c50173c27ca42c8db72ff239ca881bc8789fa4d1e3189c492832f6c22d36d504b7ce8dd HEAD_REF master ) @@ -32,7 +32,14 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -vcpkg_fixup_cmake_targets() +if (EXISTS "${CURRENT_PACKAGES_DIR}/lib/share") # transition + vcpkg_fixup_cmake_targets(CONFIG_PATH lib/share/cpprestsdk) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/share ${CURRENT_PACKAGES_DIR}/lib/share) +else() + vcpkg_fixup_cmake_targets() # v2.10.6 and below +endif() + + file(INSTALL ${SOURCE_PATH}/license.txt diff --git a/ports/cryptopp/CONTROL b/ports/cryptopp/CONTROL index 6fea020bd..89db4de57 100644 --- a/ports/cryptopp/CONTROL +++ b/ports/cryptopp/CONTROL @@ -1,3 +1,3 @@ Source: cryptopp -Version: 6.1.0-2 +Version: 7.0.0 Description: Crypto++ is a free C++ class library of cryptographic schemes. diff --git a/ports/cryptopp/cmake.patch b/ports/cryptopp/cmake.patch index fbe725eb9..699ebd564 100644 --- a/ports/cryptopp/cmake.patch +++ b/ports/cryptopp/cmake.patch @@ -1,15 +1,19 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 5b6e1e6..a0adcf6 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -329,6 +329,10 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FI\"winapifamily.h\"" ) - endif () - -+if(WINDOWS_STORE) -+ add_definitions(-DCRYPTOPP_DISABLE_NACL=1) -+endif() -+ - # Enable PIC for all target machines except 32-bit i386 due to register pressures. - if (NOT CRYPTOPP_I386) - SET(CMAKE_POSITION_INDEPENDENT_CODE 1) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8cf9fa2..86a756b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -336,9 +336,13 @@ if (MSVC) + if (CMAKE_SYSTEM_VERSION MATCHES "10\\.0.*") + list(APPEND CRYPTOPP_COMPILE_DEFINITIONS "_WIN32_WINNT=0x0A00") + endif () +- list(APPEND CRYPTOPP_COMPILE_OPTIONS "/FI\"winapifamily.h\"") ++ list(APPEND CRYPTOPP_COMPILE_OPTIONS "/FIwinapifamily.h") + endif () + ++if(WINDOWS_STORE) ++ add_definitions(-DCRYPTOPP_DISABLE_NACL=1) ++endif() ++ + # Enable PIC for all target machines except 32-bit i386 due to register pressures. + if (NOT CRYPTOPP_I386) + SET(CMAKE_POSITION_INDEPENDENT_CODE 1) diff --git a/ports/cryptopp/patch.patch b/ports/cryptopp/patch.patch index 5c49d2757..937738d5b 100644 --- a/ports/cryptopp/patch.patch +++ b/ports/cryptopp/patch.patch @@ -1,8 +1,8 @@ -diff --git a/config.h b/config.h -index b96b7aa..3f004ac 100644 ---- a/config.h -+++ b/config.h -@@ -795,6 +795,7 @@ NAMESPACE_END +diff --git a/config.h b/config.h +index f06992a2..be6eda31 100644 +--- a/config.h ++++ b/config.h +@@ -814,6 +814,7 @@ NAMESPACE_END #endif #ifdef CRYPTOPP_WIN32_AVAILABLE diff --git a/ports/cryptopp/portfile.cmake b/ports/cryptopp/portfile.cmake index 6b4b844c4..82893be41 100644 --- a/ports/cryptopp/portfile.cmake +++ b/ports/cryptopp/portfile.cmake @@ -1,35 +1,30 @@ -if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - message(STATUS "Warning: Dynamic building not supported. Building static.") # See note below - set(VCPKG_LIBRARY_LINKAGE static) -endif() include(vcpkg_common_functions) +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + vcpkg_from_github( OUT_SOURCE_PATH CMAKE_SOURCE_PATH REPO noloader/cryptopp-cmake - REF aab149932675e4bb777a9d3d6b3f8b8182583fd7 - SHA512 748c77e936888d042bf4a72cc7ee3b7b2ecf16c003cb23296c1af413c9a0cba00cc942ecace26274fc8ac8bd4d848946beb9d7bf2253c5eab3315a4419ef5f1f + REF 2729870f277bd568a8e8183b5ba7799e0c2dbf96 + SHA512 fff9468774f66a895ab44ce76d37b320aeaa9398514b66d5116ffe84705ef7a202586622d598ea03f7c1636587893d46c6eee5e0da965c58fb74131c4b76223c HEAD_REF master + PATCHES + cmake.patch + simon-speck.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO weidai11/cryptopp - REF CRYPTOPP_6_1_0 - SHA512 4bc02fef33f1859a07434a4752c2575afd781056e9a91eed99a13cebe2c91d66cbc7173e34d362da63dad6d38f9594ff291accd27e111232996ccd536bba0f39 + REF CRYPTOPP_7_0_0 + SHA512 bc83f6adf0ae627c57ff9172d8cee69e7000d9b414ec903a50f11f9a68da08d1dd4985ddaffada86bf58e8168a2df065185efd932201d2df9db3f73025825e54 HEAD_REF master + PATCHES patch.patch ) file(COPY ${CMAKE_SOURCE_PATH}/cryptopp-config.cmake DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_SOURCE_PATH}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -vcpkg_apply_patches( - SOURCE_PATH "${SOURCE_PATH}" - PATCHES - "${CMAKE_CURRENT_LIST_DIR}/patch.patch" - "${CMAKE_CURRENT_LIST_DIR}/cmake.patch" -) - # Dynamic linking should be avoided for Crypto++ to reduce the attack surface, # so generate a static lib for both dynamic and static vcpkg targets. # See also: diff --git a/ports/cryptopp/simon-speck.patch b/ports/cryptopp/simon-speck.patch new file mode 100644 index 000000000..a1d911930 --- /dev/null +++ b/ports/cryptopp/simon-speck.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7d64977..4ec3ebd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -497,6 +497,8 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU + set_source_files_properties(${SRC_DIR}/simeck-simd.cpp PROPERTIES COMPILE_FLAGS "-mssse3") + set_source_files_properties(${SRC_DIR}/simon128-simd.cpp PROPERTIES COMPILE_FLAGS "-mssse3") + set_source_files_properties(${SRC_DIR}/speck128-simd.cpp PROPERTIES COMPILE_FLAGS "-mssse3") ++ set_source_files_properties(${SRC_DIR}/simon-simd.cpp PROPERTIES COMPILE_FLAGS "-mssse3") ++ set_source_files_properties(${SRC_DIR}/speck-simd.cpp PROPERTIES COMPILE_FLAGS "-mssse3") + if (CRYPTOPP_IA32_SSE41 AND NOT DISABLE_SSE4) + set_source_files_properties(${SRC_DIR}/blake2-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.1") + set_source_files_properties(${SRC_DIR}/simon64-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.1") diff --git a/ports/curl/0001_cmake.patch b/ports/curl/0001_cmake.patch index 4298321b3..7796af413 100644 --- a/ports/curl/0001_cmake.patch +++ b/ports/curl/0001_cmake.patch @@ -1,28 +1,28 @@ diff --git a/CMake/FindLibSSH2.cmake b/CMake/FindLibSSH2.cmake -index 12a7c61..9839c67 100644 +index 84822dba7..0d6219425 100644 --- a/CMake/FindLibSSH2.cmake +++ b/CMake/FindLibSSH2.cmake -@@ -12,7 +12,7 @@ endif (LIBSSH2_INCLUDE_DIR AND LIBSSH2_LIBRARY) - FIND_PATH(LIBSSH2_INCLUDE_DIR libssh2.h +@@ -12,7 +12,7 @@ endif() + find_path(LIBSSH2_INCLUDE_DIR libssh2.h ) --FIND_LIBRARY(LIBSSH2_LIBRARY NAMES ssh2 -+FIND_LIBRARY(LIBSSH2_LIBRARY NAMES ssh2 libssh2 +-find_library(LIBSSH2_LIBRARY NAMES ssh2 ++find_library(LIBSSH2_LIBRARY NAMES ssh2 libssh2 ) if(LIBSSH2_INCLUDE_DIR) diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7b73b98..6c7c559 100644 +index e6dbb73f1..1e2ff138e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1132,7 +1132,9 @@ function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE) +@@ -1144,7 +1144,9 @@ function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE) endfunction() -if(WIN32 AND NOT CYGWIN) +if(MSVC) -+ set(CURL_INSTALL_CMAKE_DIR share/curl) ++ set(CURL_INSTALL_CMAKE_DIR share/curl) +elseif(WIN32 AND NOT CYGWIN) - set(CURL_INSTALL_CMAKE_DIR CMake) + set(CURL_INSTALL_CMAKE_DIR CMake) else() - set(CURL_INSTALL_CMAKE_DIR lib/cmake/curl) + set(CURL_INSTALL_CMAKE_DIR lib/cmake/curl) diff --git a/ports/curl/0004_nghttp2_staticlib.patch b/ports/curl/0004_nghttp2_staticlib.patch index c5cba9c5f..69c1854f9 100644 --- a/ports/curl/0004_nghttp2_staticlib.patch +++ b/ports/curl/0004_nghttp2_staticlib.patch @@ -6,7 +6,7 @@ index 490cc19..51c0a92 100644 find_package(NGHTTP2 REQUIRED) include_directories(${NGHTTP2_INCLUDE_DIRS}) list(APPEND CURL_LIBS ${NGHTTP2_LIBRARIES}) -+ if(CURL_STATICLIB) ++ if(NOT BUILD_SHARED_LIBS) + add_definitions(-DNGHTTP2_STATICLIB) + endif() endif() diff --git a/ports/curl/CONTROL b/ports/curl/CONTROL index 59eaaf095..95040eba1 100644 --- a/ports/curl/CONTROL +++ b/ports/curl/CONTROL @@ -1,5 +1,5 @@ Source: curl -Version: 7.61.0 +Version: 7.61.1-1 Build-Depends: zlib Description: A library for transferring data with URLs Default-Features: ssl diff --git a/ports/curl/portfile.cmake b/ports/curl/portfile.cmake index f941b11e2..0b156c4d0 100644 --- a/ports/curl/portfile.cmake +++ b/ports/curl/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO curl/curl - REF curl-7_61_0 - SHA512 b6d2f57059e72139540cb93b945703857cb447920ed9b283993611453fed623432290adc5a3558181e3decc15c7cf54fff475010d922957807a37d1a1449be6c + REF curl-7_61_1 + SHA512 09fa3c87f8d516eabe3241247a5094c32ee0481961cf85bf78ecb13acdf23bb2ec82f113d2660271d22742c79e76d73fb122730fa28e34c7f5477c05a4a6534c HEAD_REF master PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001_cmake.patch @@ -114,6 +114,8 @@ else() file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/curl-config ${CURRENT_PACKAGES_DIR}/debug/bin/curl-config) if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/libcurl_imp.lib") file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libcurl_imp.lib ${CURRENT_PACKAGES_DIR}/lib/libcurl.lib) + endif() + if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/libcurl-d_imp.lib") file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libcurl-d_imp.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libcurl.lib) endif() endif() diff --git a/ports/darts-clone/CMakeLists.txt b/ports/darts-clone/CMakeLists.txt new file mode 100644 index 000000000..024cd2f74 --- /dev/null +++ b/ports/darts-clone/CMakeLists.txt @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 3.8) +project(darts) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +add_library(darts src/darts.cc) + +target_include_directories(darts + PUBLIC + $ + $ + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/src +) + +install( + TARGETS darts + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_HEADERS) + install( + DIRECTORY include/ DESTINATION include/ + ) +endif() diff --git a/ports/darts-clone/CONTROL b/ports/darts-clone/CONTROL new file mode 100644 index 000000000..2d34f86c7 --- /dev/null +++ b/ports/darts-clone/CONTROL @@ -0,0 +1,3 @@ +Source: darts-clone +Version: 1767ab87cffe +Description: A static double-array trie structure diff --git a/ports/darts-clone/portfile.cmake b/ports/darts-clone/portfile.cmake new file mode 100644 index 000000000..2979e83b5 --- /dev/null +++ b/ports/darts-clone/portfile.cmake @@ -0,0 +1,26 @@ +include(vcpkg_common_functions) +vcpkg_check_linkage( + ONLY_STATIC_LIBRARY +) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO s-yata/darts-clone + REF 1767ab87cffe7302856d1bb41e1c21b1df93f19e + SHA512 63112a4d8d6302d2602a8f161bf5fe5ec1b5b3b3097de9b28331f5261d76c06efb48601c08df26f242ddc881b917928baf54f24ccebac65da29e94380b6db0f5 + 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}/COPYING.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/darts-clone RENAME copyright) diff --git a/ports/directxmesh/CONTROL b/ports/directxmesh/CONTROL index 427998eb4..e625af354 100644 --- a/ports/directxmesh/CONTROL +++ b/ports/directxmesh/CONTROL @@ -1,3 +1,3 @@ Source: directxmesh -Version: jul2018 +Version: aug2018 Description: DirectXMesh geometry processing library \ No newline at end of file diff --git a/ports/directxmesh/portfile.cmake b/ports/directxmesh/portfile.cmake index e8d48d1c8..4263b2aa8 100644 --- a/ports/directxmesh/portfile.cmake +++ b/ports/directxmesh/portfile.cmake @@ -12,8 +12,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXMesh - REF jul2018 - SHA512 080306d23153c5db6d84cf1df7700d89a25405064806ca9b8d07291ebe80d89793dfe540a98313afc137964e2fb900158d40feee6bb2a68ef9af2d872f0ebe3c + REF aug2018 + SHA512 5aaafd434024327b9ab59eab7f0247a5e0d439e5cad22929adc78edd41ac987c5da70e3ae26637beea923333651ceae3127f1ff274aad3497948508a1a8b1912 HEAD_REF master ) diff --git a/ports/directxtex/CONTROL b/ports/directxtex/CONTROL index 9340c9f3e..3196c68b1 100644 --- a/ports/directxtex/CONTROL +++ b/ports/directxtex/CONTROL @@ -1,3 +1,3 @@ Source: directxtex -Version: jul2018 +Version: aug2018b Description: DirectXTex texture processing library \ No newline at end of file diff --git a/ports/directxtex/portfile.cmake b/ports/directxtex/portfile.cmake index 4ea0216b0..bcdeebfbd 100644 --- a/ports/directxtex/portfile.cmake +++ b/ports/directxtex/portfile.cmake @@ -12,8 +12,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXTex - REF jul2018 - SHA512 83408840bf1fedef240c808c59b94d9b77133cf6bc1803c49a4faf5a319fa4b16c26c16240748fb4dd29fb907a4366c724171c64deeb71b0a15214ee74859b4d + REF aug2018b + SHA512 51ccd4855d399db4980a0f859da25e9473cf5b4ae44f2594b13ba7813d4fd3f4c424ce750ca0b096e40999c935269522fb6bfe2b2e1910f0f8a6c6c1ea76c399 HEAD_REF master ) diff --git a/ports/directxtk/CONTROL b/ports/directxtk/CONTROL index 254c61337..1f0637c44 100644 --- a/ports/directxtk/CONTROL +++ b/ports/directxtk/CONTROL @@ -1,3 +1,3 @@ Source: directxtk -Version: jul2018 +Version: aug2018 Description: A collection of helper classes for writing DirectX 11.x code in C++. diff --git a/ports/directxtk/portfile.cmake b/ports/directxtk/portfile.cmake index 317831c96..5ef37d1f2 100644 --- a/ports/directxtk/portfile.cmake +++ b/ports/directxtk/portfile.cmake @@ -12,8 +12,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXTK - REF jul2018 - SHA512 1e962bc7f3ab730616bb7ec07d54904cbd636033ca0bba722170690dc906524968df66ad440e3423273120b9e4dc53a28ae7edb8a2568c58e5eed816d8e9a619 + REF aug2018 + SHA512 9408916864900a098bb77244144c71d1786b3fe76468c50a92fbf21f71407c7f7c6834d9e69a13b4b93161362252599ccb12f6a87b6ca7a8b23d12e6e73dd166 HEAD_REF master ) diff --git a/ports/dlib/CONTROL b/ports/dlib/CONTROL index 4b7b820d1..4e726c662 100644 --- a/ports/dlib/CONTROL +++ b/ports/dlib/CONTROL @@ -1,5 +1,5 @@ Source: dlib -Version: 19.15 +Version: 19.16 Build-Depends: libjpeg-turbo, libpng, sqlite3, fftw3, openblas, clapack Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++ diff --git a/ports/dlib/portfile.cmake b/ports/dlib/portfile.cmake index 613b5d673..f6cdf4eeb 100644 --- a/ports/dlib/portfile.cmake +++ b/ports/dlib/portfile.cmake @@ -8,8 +8,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO davisking/dlib - REF v19.15 - SHA512 e815d4cd3cf75de4bf3df25597f1b13e831129b8e780909194be05bde4c811792886e7370980edf0fe294aa1ad7a69ba9b9ca729e05713d3ee4f6aa4236baaf7 + REF v19.16 + SHA512 4e040ef88acff05e1a48e499b813c876b22ad3f989d076bdf19969d01036b62e51a0dff30b70046910ba31dfa1b1c2450a7fad41ae3142b7285ed74b8d584887 HEAD_REF master ) diff --git a/ports/docopt/001-fix-unresolved-symbol.patch b/ports/docopt/001-fix-unresolved-symbol.patch new file mode 100644 index 000000000..3078fa44c --- /dev/null +++ b/ports/docopt/001-fix-unresolved-symbol.patch @@ -0,0 +1,28 @@ +diff --git a/docopt.h b/docopt.h +index 4c40741..06a04f8 100644 +--- a/docopt.h ++++ b/docopt.h +@@ -85,6 +85,9 @@ namespace docopt { + bool help = true, + std::string const& version = {}, + bool options_first = false) noexcept; ++ ++ /// Write out the contents to the ostream ++ std::ostream DOCOPT_API & operator<<(std::ostream&, value const&); + } + + #ifdef DOCOPT_HEADER_ONLY +diff --git a/docopt_value.h b/docopt_value.h +index a923219..7f0d6d6 100644 +--- a/docopt_value.h ++++ b/docopt_value.h +@@ -102,9 +102,6 @@ namespace docopt { + Kind kind = Kind::Empty; + Variant variant {}; + }; +- +- /// Write out the contents to the ostream +- std::ostream& operator<<(std::ostream&, value const&); + } + + namespace std { diff --git a/ports/docopt/002-fix-install-path.patch b/ports/docopt/002-fix-install-path.patch new file mode 100644 index 000000000..332e6e4c2 --- /dev/null +++ b/ports/docopt/002-fix-install-path.patch @@ -0,0 +1,16 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1aba5ae..5407e4a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -113,7 +113,10 @@ endif() + set(export_name "docopt-targets") + + # Runtime package +-install(TARGETS docopt EXPORT ${export_name} DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++install(TARGETS docopt EXPORT ${export_name} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + # Development package + install(TARGETS docopt_s EXPORT ${export_name} DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/ports/docopt/CONTROL b/ports/docopt/CONTROL new file mode 100644 index 000000000..0fc6d09c8 --- /dev/null +++ b/ports/docopt/CONTROL @@ -0,0 +1,3 @@ +Source: docopt +Version: 2018-04-16-2 +Description: Command line arguments parser that will make you smile (C++11 port). diff --git a/ports/docopt/install-one-flavor.patch b/ports/docopt/install-one-flavor.patch new file mode 100644 index 000000000..f6cda826a --- /dev/null +++ b/ports/docopt/install-one-flavor.patch @@ -0,0 +1,21 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bff867c..cc7d706 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -113,13 +113,15 @@ endif() + set(export_name "docopt-targets") + + # Runtime package ++if(BUILD_SHARED_LIBS) + install(TARGETS docopt EXPORT ${export_name} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +- ++else() + # Development package + install(TARGETS docopt_s EXPORT ${export_name} DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++endif() + install(FILES ${docopt_HEADERS} DESTINATION include/docopt) + + # CMake Package diff --git a/ports/docopt/portfile.cmake b/ports/docopt/portfile.cmake new file mode 100644 index 000000000..5076bf742 --- /dev/null +++ b/ports/docopt/portfile.cmake @@ -0,0 +1,46 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO docopt/docopt.cpp + REF 4f491249e6def236937dbfac7602852e7d99aff8 + SHA512 d3a61f8d8a8c11723064f3405f03eb838a2ac9aa574f86771b1db89a2dd81996b639215fe5d4465343b893bf71502da178c7af8d883c112c1e45f43c17d473b7 + HEAD_REF master + PATCHES + 001-fix-unresolved-symbol.patch + 002-fix-install-path.patch + install-one-flavor.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DWITH_EXAMPLE=OFF + -DWITH_TESTS=OFF + -DUSE_BOOST_REGEX=OFF +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/docopt) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + file(READ ${CURRENT_PACKAGES_DIR}/include/docopt/docopt.h _contents) + string(REPLACE "#ifdef DOCOPT_DLL" "#if 1" _contents "${_contents}") + file(WRITE ${CURRENT_PACKAGES_DIR}/include/docopt/docopt.h "${_contents}") +endif() + +# Header-only style when DOCOPT_HEADER_ONLY is defined +file(COPY + ${SOURCE_PATH}/docopt.cpp + DESTINATION ${CURRENT_PACKAGES_DIR}/include/docopt) + +# Handle copyright +file(INSTALL + ${SOURCE_PATH}/LICENSE-MIT + DESTINATION ${CURRENT_PACKAGES_DIR}/share/docopt RENAME copyright) + +vcpkg_copy_pdbs() diff --git a/ports/doctest/CONTROL b/ports/doctest/CONTROL index 3de9dedb3..214950929 100644 --- a/ports/doctest/CONTROL +++ b/ports/doctest/CONTROL @@ -1,3 +1,3 @@ Source: doctest -Version: 1.2.9 +Version: 2.0.0 Description: The fastest feature-rich C++ single-header testing framework for unit tests and TDD diff --git a/ports/doctest/portfile.cmake b/ports/doctest/portfile.cmake index 433a52f53..007b3a21d 100644 --- a/ports/doctest/portfile.cmake +++ b/ports/doctest/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO onqtam/doctest - REF 1.2.9 - SHA512 9500570fb0ef7b06799fbe92b8f96eacf16eba630abe4f67a235901995192e31fafb812704f327f0a2582c8fe61c3bb458d2eaf3c4287f24c1ffbc04c46a2471 + REF 2.0.0 + SHA512 ad167201fa10890e868fab628d73588e66470fbf6d5bdf0cd4e4ce13510f0727411fa709eb748eb1b5de19307c75d2efbcd71cb678e3ef1d0632056d7af2f012 HEAD_REF master ) diff --git a/ports/double-conversion/CONTROL b/ports/double-conversion/CONTROL index fb0afdb9a..66cf5b1dd 100644 --- a/ports/double-conversion/CONTROL +++ b/ports/double-conversion/CONTROL @@ -1,3 +1,3 @@ Source: double-conversion -Version: 3.0.0-2 +Version: 3.1.0 Description: Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles. diff --git a/ports/double-conversion/portfile.cmake b/ports/double-conversion/portfile.cmake index 47f3fba4e..99be98024 100644 --- a/ports/double-conversion/portfile.cmake +++ b/ports/double-conversion/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/double-conversion - REF v3.0.0 - SHA512 5057af6e72f2aaace56ebdd9a0ddfa34318cbdfeabec5c361b60e6c92f160c8999c046c50f8c6f8d590eb8e97aa70bb6e97ba8148f0dc95dbc42f204fcdc1abf + REF 3.1.0 + SHA512 ba797a7203bc7eb8ba697dc758a3341578f0405b5ab42fbd5a22d9fac09d11dd8cb5ed9ff9ff369e8ae9397ec74c04c62fca29d1bc469c6d2ea1a84a6dff9188 HEAD_REF master ) @@ -26,35 +26,6 @@ vcpkg_install_cmake() if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake/double-conversion) vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/double-conversion) endif() -if(NOT VCPKG_USE_HEAD_VERSION) - if(EXISTS ${CURRENT_PACKAGES_DIR}/CMake) - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/CMake/double-conversionLibraryDepends-debug.cmake - ${CURRENT_PACKAGES_DIR}/debug/CMake/double-conversionTargets-debug.cmake) - endif() - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - file(RENAME ${CURRENT_PACKAGES_DIR}/CMake/double-conversionLibraryDepends-release.cmake - ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets-release.cmake) - endif() - file(RENAME ${CURRENT_PACKAGES_DIR}/CMake/double-conversionLibraryDepends.cmake - ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake) - - file(READ ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake TARGETS_FILE) - string(REPLACE "double-conversionLibraryDepends" "double-conversionTargets" TARGETS_FILE "${TARGETS_FILE}") - file(WRITE ${CURRENT_PACKAGES_DIR}/CMake/double-conversionTargets.cmake "${TARGETS_FILE}") - - # Remove hardcoded paths from config file - file(READ ${CURRENT_PACKAGES_DIR}/CMake/double-conversionConfig.cmake CONFIG_FILE) - string(REPLACE "${CURRENT_PACKAGES_DIR}/lib/cmake/double-conversion/double-conversionLibraryDepends.cmake" - "\${double-conversion_CMAKE_DIR}/double-conversionTargets.cmake" CONFIG_FILE "${CONFIG_FILE}") - string(REPLACE "${CURRENT_PACKAGES_DIR}" - "\${double-conversion_CMAKE_DIR}/../.." CONFIG_FILE "${CONFIG_FILE}") - file(WRITE ${CURRENT_PACKAGES_DIR}/CMake/double-conversionConfig.cmake "${CONFIG_FILE}") - - vcpkg_fixup_cmake_targets(CONFIG_PATH CMake) - endif() - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) -endif() vcpkg_copy_pdbs() diff --git a/ports/eastl/CONTROL b/ports/eastl/CONTROL index 74ee1d5eb..c45a2c740 100644 --- a/ports/eastl/CONTROL +++ b/ports/eastl/CONTROL @@ -1,4 +1,4 @@ Source: eastl -Version: 3.10.00 +Version: 3.12.01 Description: Electronic Arts Standard Template Library. It is a C++ template library of containers, algorithms, and iterators useful for runtime and tool development across multiple platforms. It is a fairly extensive and robust implementation of such a library and has an emphasis on high performance above all other considerations. diff --git a/ports/eastl/portfile.cmake b/ports/eastl/portfile.cmake index 491ce8581..ddc5950b6 100644 --- a/ports/eastl/portfile.cmake +++ b/ports/eastl/portfile.cmake @@ -8,8 +8,8 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/eastl) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO electronicarts/EASTL - REF 3.10.00 - SHA512 281a8d79d30a39136d9a9c6fd63ca712b450cd45019aab1ac3a219bb8704e094a5b8f461a7cd7ab8480f41beca94f1589162fe4899406869898a2e1ffc497b78 + REF 3.12.01 + SHA512 22053823299386337934abb473be5bad4766db571656ee8f93eb04f6079c1860fd598ae8b7a955ca5dcf26661370d558aaf35037c989ec5a976feae87a445aad HEAD_REF master ) diff --git a/ports/ecm/CONTROL b/ports/ecm/CONTROL index 147603756..6076cf714 100644 --- a/ports/ecm/CONTROL +++ b/ports/ecm/CONTROL @@ -1,3 +1,3 @@ Source: ecm -Version: 5.40.0 +Version: 5.50.0 Description: Extra CMake Modules (ECM), extra modules and scripts for CMake diff --git a/ports/ecm/portfile.cmake b/ports/ecm/portfile.cmake index 56dcdcf7d..325a6505c 100644 --- a/ports/ecm/portfile.cmake +++ b/ports/ecm/portfile.cmake @@ -4,8 +4,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/extra-cmake-modules - REF v5.40.0 - SHA512 1f79d797770367e79c2c6dd73c125d32fcc5fe404b350d953b69cc6544babc1c73e2986c833635daaac85a5af966977e40fe41c01ac48ccc45d46d2e1636d21f + REF v5.50.0 + SHA512 625f934b97c56cceed44d8fa0e335fb1f593806e52b8bfd2fd467561b4de2528940add756a8e903bd5502e912422cc3835e65e047cc4c205d3b8629452627abd HEAD_REF master ) diff --git a/ports/ecsutil/CONTROL b/ports/ecsutil/CONTROL index 1a4eff9c2..fada181ac 100644 --- a/ports/ecsutil/CONTROL +++ b/ports/ecsutil/CONTROL @@ -1,3 +1,4 @@ Source: ecsutil -Version: 1.0.1.2 +Version: 1.0.1.2-1 Description: Native Windows SDK for accessing ECS via the S3 HTTP protocol. +Build-Depends: atlmfc diff --git a/ports/ecsutil/disable-setversion.patch b/ports/ecsutil/disable-setversion.patch new file mode 100644 index 000000000..2899a0108 --- /dev/null +++ b/ports/ecsutil/disable-setversion.patch @@ -0,0 +1,36 @@ +diff --git a/ECSUtil/ECSUtil.vcxproj b/ECSUtil/ECSUtil.vcxproj +index 05c5726..f8ac64e 100644 +--- a/ECSUtil/ECSUtil.vcxproj ++++ b/ECSUtil/ECSUtil.vcxproj +@@ -274,7 +274,6 @@ + $(IntDir);%(AdditionalIncludeDirectories) + + +- $(SolutionDir)bin\setversion.exe /getversion "#define ECSUTIL_VERSION" "$(SolutionDir)ECSUtil\Version.h" $(OutDir)ECSUtil.dll + + + set version resource in DLL from source file +@@ -361,7 +360,6 @@ + $(IntDir);%(AdditionalIncludeDirectories) + + +- $(SolutionDir)bin\setversion.exe /getversion "#define ECSUTIL_VERSION" "$(SolutionDir)ECSUtil\Version.h" $(OutDir)ECSUtil.dll + + + set version resource in DLL from source file +@@ -445,7 +443,6 @@ + $(IntDir);%(AdditionalIncludeDirectories) + + +- $(SolutionDir)bin\setversion.exe /getversion "#define ECSUTIL_VERSION" "$(SolutionDir)ECSUtil\Version.h" $(OutDir)ECSUtil.dll + + + set version resource in DLL from source file +@@ -541,7 +538,6 @@ + $(IntDir);%(AdditionalIncludeDirectories) + + +- $(SolutionDir)bin\setversion.exe /getversion "#define ECSUTIL_VERSION" "$(SolutionDir)ECSUtil\Version.h" $(OutDir)ECSUtil.dll + + + set version resource in DLL from source file diff --git a/ports/ecsutil/portfile.cmake b/ports/ecsutil/portfile.cmake index 874759afc..4a8e48b2b 100644 --- a/ports/ecsutil/portfile.cmake +++ b/ports/ecsutil/portfile.cmake @@ -1,80 +1,52 @@ -# 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) -set(ECSUTIL_VERSION "v1.0.1.2") -set(ECSUtil_HASH 399aec10a625ee6eb8f7869005b9221a1e4930c7e8774c20467ddc0e86312e7e1224fb29a1b54d3c9669b78708a23db548195f8973a19eb5559338f600688888) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src) - -#architecture detection if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(ECSUtil_ARCH Win32) + set(PLATFORM x86) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") - set(ECSUtil_ARCH x64) + set(PLATFORM x64) else() - message(FATAL_ERROR "unsupported architecture") + message(FATAL_ERROR "Unsupported architecture") +endif() + +if(VCPKG_CMAKE_SYSTEM_NAME) + message(FATAL_ERROR "Unsupported platform. ECSUTIL currently only supports windows desktop.") endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(ECSUtil_CONFIGURATION_RELEASE Release) set(ECSUtil_CONFIGURATION_DEBUG Debug) else() - if (VCPKG_CRT_LINKAGE STREQUAL dynamic) - set(ECSUtil_CONFIGURATION_RELEASE "Release Lib") - set(ECSUtil_CONFIGURATION_DEBUG "Debug Lib") - else() - set(ECSUtil_CONFIGURATION_RELEASE "Release Lib Static") - set(ECSUtil_CONFIGURATION_DEBUG "Debug Lib Static") - endif() + if (VCPKG_CRT_LINKAGE STREQUAL dynamic) + set(ECSUtil_CONFIGURATION_RELEASE "Release Lib") + set(ECSUtil_CONFIGURATION_DEBUG "Debug Lib") + else() + set(ECSUtil_CONFIGURATION_RELEASE "Release Lib Static") + set(ECSUtil_CONFIGURATION_DEBUG "Debug Lib Static") + endif() endif() -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/EMCECS/ecs-object-client-windows-cpp/releases/download/${ECSUTIL_VERSION}/ecs-object-client-windows-cpp.${ECSUTIL_VERSION}.zip" - FILENAME "ecs-object-client-windows-cpp.${ECSUTIL_VERSION}.zip" - SHA512 ${ECSUtil_HASH} +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO EMCECS/ecs-object-client-windows-cpp + REF v1.0.1.2 + SHA512 ee6c9086111f9cb4a3b9b0645a6a8921bae1d3e8fba0d054d824935b0ff82a57db5c1476183202694afe33f89bfc47db1ef91696a739a1a43a1e2411e4361e6f + HEAD_REF master + PATCHES disable-setversion.patch ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_build_msbuild( - PROJECT_PATH ${SOURCE_PATH}/ECSUtil.sln - TARGET ECSUtil +vcpkg_install_msbuild( + SOURCE_PATH ${SOURCE_PATH} + PROJECT_SUBPATH ECSUtil.sln + PLATFORM ${PLATFORM} + LICENSE_SUBPATH license.txt + TARGET ECSUtil RELEASE_CONFIGURATION ${ECSUtil_CONFIGURATION_RELEASE} DEBUG_CONFIGURATION ${ECSUtil_CONFIGURATION_DEBUG} ) file(COPY ${SOURCE_PATH}/ECSUtil DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN *.h) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/ECSUtil/res) - -if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - file(COPY ${SOURCE_PATH}/Debug/${ECSUtil_ARCH}/ECSUtil.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(COPY ${SOURCE_PATH}/Debug/${ECSUtil_ARCH}/ECSUtil.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(COPY ${SOURCE_PATH}/Release/${ECSUtil_ARCH}/ECSUtil.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - file(COPY ${SOURCE_PATH}/Release/${ECSUtil_ARCH}/ECSUtil.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -elseif (VCPKG_LIBRARY_LINKAGE STREQUAL static) - if (VCPKG_CRT_LINKAGE STREQUAL dynamic) - file(COPY "${SOURCE_PATH}/Debug Lib/${ECSUtil_ARCH}/ECSUtil.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(COPY "${SOURCE_PATH}/objDebug Lib/${ECSUtil_ARCH}/ECSUtil/ECSUtil.pdb" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(COPY "${SOURCE_PATH}/Release Lib/${ECSUtil_ARCH}/ECSUtil.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) - file(COPY "${SOURCE_PATH}/objRelease Lib/${ECSUtil_ARCH}/ECSUtil/ECSUtil.pdb" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) - else() - file(COPY "${SOURCE_PATH}/Debug Lib Static/${ECSUtil_ARCH}/ECSUtil.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(COPY "${SOURCE_PATH}/objDebug Lib Static/${ECSUtil_ARCH}/ECSUtil/ECSUtil.pdb" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(COPY "${SOURCE_PATH}/Release Lib Static/${ECSUtil_ARCH}/ECSUtil.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) - file(COPY "${SOURCE_PATH}/objRelease Lib Static/${ECSUtil_ARCH}/ECSUtil/ECSUtil.pdb" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) - endif() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/ECSUtil/res ${CURRENT_PACKAGES_DIR}/tools) +file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/NatvisAddIn.dll ${CURRENT_PACKAGES_DIR}/debug/bin/NatvisAddIn.dll) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() - -# Handle copyright -file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/ecsutil/copyright) - -vcpkg_copy_pdbs() diff --git a/ports/entt/CONTROL b/ports/entt/CONTROL index d03cf86a4..fa3a82458 100644 --- a/ports/entt/CONTROL +++ b/ports/entt/CONTROL @@ -1,3 +1,3 @@ Source: entt -Version: 2.7.1 +Version: 2.7.2 Description: Gaming meets modern C++ - a fast and reliable entity-component system and much more. diff --git a/ports/entt/portfile.cmake b/ports/entt/portfile.cmake index 96a509270..c99554c59 100644 --- a/ports/entt/portfile.cmake +++ b/ports/entt/portfile.cmake @@ -4,8 +4,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO skypjack/entt - REF v2.7.1 - SHA512 6db7aa43194dd30026f409ee7f1012d48c3812ec99fc525864527142e5b94bef3950759874d7afcafa264af1c7ccfd39979c550c641e942cc6871e537938d508 + REF v2.7.2 + SHA512 334b94ef142bb234204315e47c9783f55c7639c59a214b772ce76c6b7cf4008280ab6762a3cf6049f51932773f5ae62e45d9423efe0dd5043b20103b1f857167 ) file(INSTALL diff --git a/ports/esaxx/CONTROL b/ports/esaxx/CONTROL new file mode 100644 index 000000000..48b7eebec --- /dev/null +++ b/ports/esaxx/CONTROL @@ -0,0 +1,3 @@ +Source: esaxx +Version: ca7cb332011ec37 +Description: This library provides the implementation of enhanced suffix array. diff --git a/ports/esaxx/portfile.cmake b/ports/esaxx/portfile.cmake new file mode 100644 index 000000000..93e24ff36 --- /dev/null +++ b/ports/esaxx/portfile.cmake @@ -0,0 +1,17 @@ +#header-only library +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO hillbig/esaxx + REF ca7cb332011ec37a8436487f210f396b84bd8273 + SHA512 8346fc93498f7979fd422db527d0e2db73080b2c372263a72a887ddc8328a29391bce6def5845f4500a180f5c2e641105d0ce108092e6eac9020c6bd67fb46df +) + +file(INSTALL + ${SOURCE_PATH}/esa.hxx + DESTINATION ${CURRENT_PACKAGES_DIR}/include +) + +# Handle copyright/readme/package files +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/esaxx RENAME copyright) diff --git a/ports/exiv2/CONTROL b/ports/exiv2/CONTROL index e96c322ec..a89b87f8e 100644 --- a/ports/exiv2/CONTROL +++ b/ports/exiv2/CONTROL @@ -1,4 +1,4 @@ Source: exiv2 -Version: 2018-07-30 +Version: 2018-09-18 Build-Depends: zlib, expat, libiconv Description: Image metadata library and tools http://www.exiv2.org diff --git a/ports/exiv2/portfile.cmake b/ports/exiv2/portfile.cmake index 54a071f19..4af8fb986 100644 --- a/ports/exiv2/portfile.cmake +++ b/ports/exiv2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Exiv2/exiv2 - REF e67910a6691f5238e85d5a43477af7dd13f0574e - SHA512 6f7fddf25fd7c557911678f009412986df959dd32594b66d81524ae666fc260f5ba9df461eab3ad8e7f1cad939e355be7e0801f1e6ee275e9eddfc53961ad0ab + REF 37b8725565f42c260f9773fe4cfb8fa39f566746 + SHA512 8be6079546099ac7267978ed3aa1c8e42215baa06b5da30c78918dac8193a725b3c38f6fb47fb50e7724580a964360163e2167b08c7e5929485fd3bd037338b0 HEAD_REF master PATCHES "${CMAKE_CURRENT_LIST_DIR}/iconv.patch" ) diff --git a/ports/expat/CONTROL b/ports/expat/CONTROL index edbcf2326..4cdb03f6e 100644 --- a/ports/expat/CONTROL +++ b/ports/expat/CONTROL @@ -1,3 +1,3 @@ Source: expat -Version: 2.2.5 +Version: 2.2.6 Description: XML parser library written in C diff --git a/ports/expat/portfile.cmake b/ports/expat/portfile.cmake index 485320a8b..7e2c322db 100644 --- a/ports/expat/portfile.cmake +++ b/ports/expat/portfile.cmake @@ -6,8 +6,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libexpat/libexpat - REF R_2_2_5 - SHA512 61ce2a479521412e0c56c352106c4adfb61a6bedb883921aba3ebccc29311ddd192646ac2c51b41572728d4de6ab4cb60a1dbc71515d742a80a8b59d89ca74d6 + REF R_2_2_6 + SHA512 727fbd24041c9af71b32353448583a6d8b38ddf93b10c97510e847939c2ad2be9b40ff6e6e27b725bff277982c2fc96c75f19c4a3ac4a246133eb62870c963d8 HEAD_REF master) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) @@ -43,3 +43,5 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(REPLACE "!defined(XML_STATIC)" "/* vcpkg static build !defined(XML_STATIC) */ 0" EXPAT_EXTERNAL_H "${EXPAT_EXTERNAL_H}") endif() file(WRITE ${CURRENT_PACKAGES_DIR}/include/expat_external.h "${EXPAT_EXTERNAL_H}") + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/expat) diff --git a/ports/expat/usage b/ports/expat/usage new file mode 100644 index 000000000..a2d35a66e --- /dev/null +++ b/ports/expat/usage @@ -0,0 +1,4 @@ +The package expat is compatible with built-in CMake targets: + + find_package(EXPAT REQUIRED) + target_link_libraries(main PRIVATE EXPAT::EXPAT) diff --git a/ports/exprtk/CONTROL b/ports/exprtk/CONTROL index 4df1a2e2b..c2e69703e 100644 --- a/ports/exprtk/CONTROL +++ b/ports/exprtk/CONTROL @@ -1,3 +1,3 @@ Source: exprtk -Version: 2018.04.30-46877b6 +Version: 2018.09.30-9836f21 Description: Simple to use, easy to integrate and extremely efficient run-time C++ mathematical expression parser and evaluation engine. diff --git a/ports/exprtk/portfile.cmake b/ports/exprtk/portfile.cmake index 69d9921ec..a863941af 100644 --- a/ports/exprtk/portfile.cmake +++ b/ports/exprtk/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ArashPartow/exprtk - REF 46877b604cfcc0a0e592fc7a8a874cf2a9f90cf4 - SHA512 1043b5b6aa64bc3f8d989d2aac3e3a125188b1526ab92e245ad526ab1fe37e10cb275f2b77d311b4d91bd4ea32e1d81dfcd8abf8373b723a8b664842690ee1ae + REF 9836f21d07b1bf799e6877324268708f61c01f73 + SHA512 44acb6e835dc215d4338ff4c2b3444373a93475ece15b3f1bfdc0781f7c28992af7c289644bf9557d041f78c7435f5907e4ba606321aab17faee6f4a70562065 ) file(COPY ${SOURCE_PATH}/exprtk.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/fastfeat/CMakeLists.txt b/ports/fastfeat/CMakeLists.txt new file mode 100644 index 000000000..89f1dc226 --- /dev/null +++ b/ports/fastfeat/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.8) +project(fastfeat) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + +include_directories(.) +file( GLOB SRCS *.c *.def) +add_library(fastfeat ${SRCS}) + + +install( + TARGETS fastfeat + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_HEADERS) + install( + FILES fast.h DESTINATION include + ) +endif() diff --git a/ports/fastfeat/CONTROL b/ports/fastfeat/CONTROL new file mode 100644 index 000000000..ff76128fc --- /dev/null +++ b/ports/fastfeat/CONTROL @@ -0,0 +1,3 @@ +Source: fastfeat +Version: 391d5e9 +Description: FAST feature detectors in C diff --git a/ports/fastfeat/fastfeat.def b/ports/fastfeat/fastfeat.def new file mode 100644 index 000000000..21e048362 --- /dev/null +++ b/ports/fastfeat/fastfeat.def @@ -0,0 +1,19 @@ +LIBRARY fastfeat +EXPORTS + fast9_detect_nonmax @1 + fast10_detect_nonmax @2 + fast9_corner_score @3 + fast10_corner_score @4 + fast11_corner_score @5 + fast12_corner_score @6 + fast9_detect @7 + fast10_detect @8 + fast11_detect @9 + fast12_detect @10 + fast9_score @11 + fast10_score @12 + fast11_score @13 + fast12_score @14 + fast11_detect_nonmax @15 + fast12_detect_nonmax @16 + nonmax_suppression @17 diff --git a/ports/fastfeat/portfile.cmake b/ports/fastfeat/portfile.cmake new file mode 100644 index 000000000..95d178ea4 --- /dev/null +++ b/ports/fastfeat/portfile.cmake @@ -0,0 +1,28 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO edrosten/fast-C-src + REF 391d5e939eb1545d24c10533d7de424db8d9c191 + SHA512 d6f401e2f80193c4f1f99e1ef59af7107d674c515574cf513c5977c4c95c49c0520d2a6e6787f617b42d9e3bd93c78b8fa7f1d8dc8901351820590078e62130e + HEAD_REF master +) + + +file(COPY +${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt + ${CMAKE_CURRENT_LIST_DIR}/fastfeat.def +DESTINATION ${SOURCE_PATH} +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/fastfeat RENAME copyright) diff --git a/ports/flatbuffers/portfile.cmake b/ports/flatbuffers/portfile.cmake index 51212bd32..b6a0e6ba5 100644 --- a/ports/flatbuffers/portfile.cmake +++ b/ports/flatbuffers/portfile.cmake @@ -30,22 +30,22 @@ vcpkg_configure_cmake( vcpkg_install_cmake() vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/flatbuffers") -if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/bin AND NOT EXISTS ${CURRENT_PACKAGES_DIR}/debug/bin/flatc) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) -endif() -if(EXISTS ${CURRENT_PACKAGES_DIR}/bin/flatc.exe) +file(GLOB flatc_path ${CURRENT_PACKAGES_DIR}/bin/flatc*) +if(flatc_path) make_directory(${CURRENT_PACKAGES_DIR}/tools/flatbuffers) + get_filename_component(flatc_executable ${flatc_path} NAME) file( RENAME - ${CURRENT_PACKAGES_DIR}/bin/flatc.exe - ${CURRENT_PACKAGES_DIR}/tools/flatbuffers/flatc.exe + ${flatc_path} + ${CURRENT_PACKAGES_DIR}/tools/flatbuffers/${flatc_executable} ) - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) - vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/flatbuffers) +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/flatbuffers) endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/flatbuffers) file(RENAME ${CURRENT_PACKAGES_DIR}/share/flatbuffers/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/flatbuffers/copyright) + diff --git a/ports/fmt/CONTROL b/ports/fmt/CONTROL index 64cdec426..88f41b36e 100644 --- a/ports/fmt/CONTROL +++ b/ports/fmt/CONTROL @@ -1,3 +1,3 @@ Source: fmt -Version: 5.1.0 +Version: 5.2.0 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/fmt/portfile.cmake b/ports/fmt/portfile.cmake index 3cd23d8fe..9389d2fbf 100644 --- a/ports/fmt/portfile.cmake +++ b/ports/fmt/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fmtlib/fmt - REF 5.1.0 - SHA512 b759a718353254fa8cd981e483bf01a45af0fc76901216404ace5e47f5d3edf43d42422184e5413c221e49832322fdf60d1860e8ec87349c674511064b31e5d6 + REF 5.2.0 + SHA512 75d53e6d8087288607f75fb891bb8812c7b9fe65e5ab7a20cdffeb5e56bd1f48e0de24c8cf1c2dd603fe3ed76f9fa067804ec5d3560f177db8f0a747c36f9d1c HEAD_REF master ) diff --git a/ports/folly/CONTROL b/ports/folly/CONTROL index 9dd27d158..51a31ef8b 100644 --- a/ports/folly/CONTROL +++ b/ports/folly/CONTROL @@ -1,5 +1,5 @@ Source: folly -Version: 2018.07.30.00 +Version: 2018.09.17.00 Description: An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows Build-Depends: openssl, libevent, double-conversion, glog, gflags, boost-chrono, boost-context, boost-conversion, boost-crc, boost-date-time, boost-filesystem, boost-multi-index, boost-program-options, boost-regex, boost-system, boost-thread Default-Features: zlib diff --git a/ports/folly/portfile.cmake b/ports/folly/portfile.cmake index 2112c9280..e1ce597bf 100644 --- a/ports/folly/portfile.cmake +++ b/ports/folly/portfile.cmake @@ -17,8 +17,8 @@ vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/folly - REF v2018.07.30.00 - SHA512 38e7b713572d4af0a6453d001eddc32c74b4ec100158300c0a3a61a88ec546b449f1973c2b624273da4278173782aa71695d981dba3c8f423f5b76ed1375d286 + REF v2018.09.17.00 + SHA512 fe1f5ff2b55262717cb0e923ee3d8b5a82c85432823911afc924c209fc7e97ab776a3820c4b17e003a7a55150c8e0061918eaee33bdf7ca12ec1090ed7537592 HEAD_REF master PATCHES find-gflags.patch diff --git a/ports/fontconfig/CMakeLists.txt b/ports/fontconfig/CMakeLists.txt index 5fa5c547a..1c552468e 100644 --- a/ports/fontconfig/CMakeLists.txt +++ b/ports/fontconfig/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.11) project(fontconfig C) add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS -DHAVE_CONFIG_H) @@ -6,8 +6,7 @@ add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS -DHAVE_CONF # find dependencies find_package(unofficial-iconv CONFIG REQUIRED) find_package(Freetype REQUIRED) -find_path(EXPAT_INCLUDE_DIR expat.h) -find_library(EXPAT_LIBRARY expat) +find_package(EXPAT REQUIRED) add_library(fontconfig src/fcatomic.c @@ -49,9 +48,10 @@ else() target_include_directories(fontconfig PRIVATE ${FC_INCLUDE_DIR}/unix) endif() -target_link_libraries(fontconfig PRIVATE unofficial::iconv::libiconv Freetype::Freetype ${EXPAT_LIBRARY}) +target_link_libraries(fontconfig PRIVATE unofficial::iconv::libiconv Freetype::Freetype EXPAT::EXPAT) install(TARGETS fontconfig + EXPORT fontconfig-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) @@ -73,3 +73,20 @@ if(NOT FC_SKIP_TOOLS) install(FILES fonts.conf DESTINATION tools/fontconfig/fonts) install(DIRECTORY conf.d DESTINATION tools/fontconfig/fonts FILES_MATCHING PATTERN "*.conf") endif() + +install( + EXPORT fontconfig-targets + NAMESPACE unofficial::fontconfig:: + FILE unofficial-fontconfig-targets.cmake + DESTINATION share/unofficial-fontconfig +) + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/unofficial-fontconfig-config.cmake " +include(CMakeFindDependencyMacro) +find_dependency(unofficial-iconv CONFIG) +find_dependency(Freetype) +find_dependency(EXPAT) + +include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-fontconfig-targets.cmake) +") +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-fontconfig-config.cmake DESTINATION share/unofficial-fontconfig) diff --git a/ports/fontconfig/CONTROL b/ports/fontconfig/CONTROL index c0cf971da..536661659 100644 --- a/ports/fontconfig/CONTROL +++ b/ports/fontconfig/CONTROL @@ -1,4 +1,4 @@ Source: fontconfig -Version: 2.12.4-3 +Version: 2.12.4-7 Description: Library for configuring and customizing font access. Build-Depends: freetype, expat, libiconv, dirent diff --git a/ports/fontconfig/portfile.cmake b/ports/fontconfig/portfile.cmake index d35bbb64a..fff6eb477 100644 --- a/ports/fontconfig/portfile.cmake +++ b/ports/fontconfig/portfile.cmake @@ -1,18 +1,18 @@ include(vcpkg_common_functions) + set(FONTCONFIG_VERSION 2.12.4) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/fontconfig-${FONTCONFIG_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://www.freedesktop.org/software/fontconfig/release/fontconfig-${FONTCONFIG_VERSION}.tar.gz" FILENAME "fontconfig-${FONTCONFIG_VERSION}.tar.gz" - SHA512 2be3ee0e8e0e3b62571135a3cae06e456c289dd1ad40ef2a7c780406418ee5efce863a833eca5a8ef55bc737a0ea04ef562bba6fd27e174ae43e42131b52810d) + SHA512 2be3ee0e8e0e3b62571135a3cae06e456c289dd1ad40ef2a7c780406418ee5efce863a833eca5a8ef55bc737a0ea04ef562bba6fd27e174ae43e42131b52810d +) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - "${CMAKE_CURRENT_LIST_DIR}/fcobjtypehash.patch" +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${FONTCONFIG_VERSION} + PATCHES fcobjtypehash.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) @@ -28,6 +28,9 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-fontconfig TARGET_PATH share/unofficial-fontconfig) + vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) @@ -40,3 +43,5 @@ endif() file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/fontconfig) file(RENAME ${CURRENT_PACKAGES_DIR}/share/fontconfig/COPYING ${CURRENT_PACKAGES_DIR}/share/fontconfig/copyright) + +vcpkg_test_cmake(PACKAGE_NAME unofficial-fontconfig) diff --git a/ports/forest/CONTROL b/ports/forest/CONTROL index f4534c115..e33353ee7 100644 --- a/ports/forest/CONTROL +++ b/ports/forest/CONTROL @@ -1,3 +1,3 @@ Source: forest -Version: 9.0.1 +Version: 9.0.5 Description: Template library of tree data structures diff --git a/ports/forest/portfile.cmake b/ports/forest/portfile.cmake index 52a891b69..3b3d5c889 100644 --- a/ports/forest/portfile.cmake +++ b/ports/forest/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xorz57/forest - REF bc6b82ce436dfbf60d6e8882252c55cf923ad99e - SHA512 e711148025c40fb73e6ae221fe5a4416bea006994d9ff958d565cd3cefa75c9ee7241087c7470ecb6530be073ac9171fe724351898ecd33db61f5752c3a950bc + REF 9.0.5 + SHA512 1dd3ae568ea2ce66cab285f392b167a08eef29387fffef3e9283c3ddaf1d461e5f6408cbce17bbaa928ba773a7890ec31f2612e5a2280cc4fe4a02824fbcd4a3 HEAD_REF master ) diff --git a/ports/freeglut/CONTROL b/ports/freeglut/CONTROL index 8baaba1dc..c6f595c2f 100644 --- a/ports/freeglut/CONTROL +++ b/ports/freeglut/CONTROL @@ -1,3 +1,3 @@ Source: freeglut -Version: 3.0.0-4 +Version: 3.0.0-5 Description: Open source implementation of GLUT with source and binary backwards compatibility. diff --git a/ports/freeglut/portfile.cmake b/ports/freeglut/portfile.cmake index 913fc90ff..3be83ed4a 100644 --- a/ports/freeglut/portfile.cmake +++ b/ports/freeglut/portfile.cmake @@ -25,6 +25,12 @@ else() set(FREEGLUT_DYNAMIC OFF) endif() +# Patch header +file(READ ${SOURCE_PATH}/include/GL/freeglut_std.h FREEGLUT_STDH) +string(REGEX REPLACE "\"freeglut[_a-z]+.lib\"" + "\"freeglut.lib\"" FREEGLUT_STDH "${FREEGLUT_STDH}") +file(WRITE ${SOURCE_PATH}/include/GL/freeglut_std.h "${FREEGLUT_STDH}") + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} OPTIONS @@ -36,14 +42,6 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -# Patch header -file(READ ${CURRENT_PACKAGES_DIR}/include/GL/freeglut_std.h FREEGLUT_STDH) -string(REPLACE "pragma comment (lib, \"freeglut_staticd.lib\")" - "pragma comment (lib, \"freeglut.lib\")" FREEGLUT_STDH "${FREEGLUT_STDH}") -string(REPLACE "pragma comment (lib, \"freeglutd.lib\")" - "pragma comment (lib, \"freeglut.lib\")" FREEGLUT_STDH "${FREEGLUT_STDH}") -file(WRITE ${CURRENT_PACKAGES_DIR}/include/GL/freeglut_std.h "${FREEGLUT_STDH}") - # Rename static lib (otherwise it's incompatible with FindGLUT.cmake) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") diff --git a/ports/freetype-gl/CONTROL b/ports/freetype-gl/CONTROL index ba4db5391..df88ab84f 100644 --- a/ports/freetype-gl/CONTROL +++ b/ports/freetype-gl/CONTROL @@ -1,4 +1,4 @@ Source: freetype-gl -Version: 2018-02-25 +Version: 2018-09-18 Description: OpenGL text using one vertex buffer, one texture and FreeType Build-Depends: glew, freetype diff --git a/ports/freetype-gl/portfile.cmake b/ports/freetype-gl/portfile.cmake index c627ad43c..2a811d714 100644 --- a/ports/freetype-gl/portfile.cmake +++ b/ports/freetype-gl/portfile.cmake @@ -8,14 +8,10 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rougier/freetype-gl - REF bcd2b5fb5d19f1ea5d384d0edbdda2f6d0590fa0 - SHA512 10bd8e874598e796c3123c8bc277ecb6f5d95c924c6d6bab1bec4700864c83e2f71bf9ac45c15eadba9e150660cbe9debe3509428b10264eb6a8ba64a80f3651 + REF 7a290ac372d2bd94137a9fed6b2f5a6ac4360ec2 + SHA512 bcdd34b7cee1ebe01ae83211e7b772742f9740aa713298f6fb72e7076f5fecdb3aea12f67a5fe04e8606d9533a0ceef7c1152368643dc51a7339b0e5dd307afa HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-Use-external-Glew-and-Freetype.patch" + PATCHES 0001-Use-external-Glew-and-Freetype.patch ) # make sure that no "internal" libraries are used by removing them diff --git a/ports/freetype/portfile.cmake b/ports/freetype/portfile.cmake index 9cdcd0f09..d74c53220 100644 --- a/ports/freetype/portfile.cmake +++ b/ports/freetype/portfile.cmake @@ -2,7 +2,7 @@ include(vcpkg_common_functions) set(FT_VERSION 2.8.1) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/freetype-${FT_VERSION}) vcpkg_download_distfile(ARCHIVE - URLS "https://download.savannah.gnu.org/releases/freetype/freetype-${FT_VERSION}.tar.bz2" + URLS "https://download-mirror.savannah.gnu.org/releases/freetype/freetype-${FT_VERSION}.tar.bz2" FILENAME "freetype-${FT_VERSION}.tar.bz2" SHA512 ca59e47f0fceeeb9b8032be2671072604d0c79094675df24187829c05e99757d0a48a0f8062d4d688e056f783aa8f6090d732ad116562e94784fccf1339eb823 ) diff --git a/ports/fruit/CONTROL b/ports/fruit/CONTROL new file mode 100644 index 000000000..4e7bd9f8d --- /dev/null +++ b/ports/fruit/CONTROL @@ -0,0 +1,4 @@ +Source: fruit +Version: 3.4.0-1 +Description: Fruit, a dependency injection framework for C++ by Google + diff --git a/ports/fruit/portfile.cmake b/ports/fruit/portfile.cmake new file mode 100644 index 000000000..a945e63bd --- /dev/null +++ b/ports/fruit/portfile.cmake @@ -0,0 +1,22 @@ +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/fruit + REF v3.4.0 + SHA512 d78c76432c77acc4cc6ccf3fd9627a3fb2a0aa55d1baf7346422e9f1c1e048237d136588b44cfa943b542b43adbbb62fcd524e4a1cb870e9ffe8b7cf4dadb35d + HEAD_REF master +) + +# TODO: Make boost an optional dependency? +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DFRUIT_USES_BOOST=False +) + +vcpkg_install_cmake() +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/fruit/copyright COPYONLY) diff --git a/ports/gdal/0001-Fix-debug-crt-flags.patch b/ports/gdal/0001-Fix-debug-crt-flags.patch index 753d53131..aab3d40ca 100644 --- a/ports/gdal/0001-Fix-debug-crt-flags.patch +++ b/ports/gdal/0001-Fix-debug-crt-flags.patch @@ -1,7 +1,7 @@ diff -Nuar a/nmake.opt b/nmake.opt --- a/nmake.opt 2018-05-04 09:05:46.000000000 +0200 +++ b/nmake.opt 2018-05-11 22:58:39.387603800 +0200 -@@ -120,11 +120,21 @@ +@@ -124,11 +124,21 @@ CXX_PDB_FLAGS= !ENDIF diff --git a/ports/gdal/CONTROL b/ports/gdal/CONTROL index be75e6693..7686d13ab 100644 --- a/ports/gdal/CONTROL +++ b/ports/gdal/CONTROL @@ -1,4 +1,13 @@ Source: gdal -Version: 2.3.0-1 +Version: 2.3.2 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: proj, libpng, geos, sqlite3, curl, expat, libpq, openjpeg, libwebp, libxml2, liblzma +Default-Features: mysql-libmysql + +Feature: mysql-libmysql +Build-Depends: libmysql +Description: Add mysql support using libmysql + +Feature: mysql-libmariadb +Build-Depends: libmariadb +Description: Add mysql support using libmariadb diff --git a/ports/gdal/no-my-bool.patch b/ports/gdal/no-my-bool.patch deleted file mode 100644 index 2589ff044..000000000 --- a/ports/gdal/no-my-bool.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nuar a/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp b/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp ---- a/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp 2018-05-04 09:09:26.000000000 +0200 -+++ b/ogr/ogrsf_frmts/mysql/ogrmysqldatasource.cpp 2018-05-11 23:07:44.284558300 +0200 -@@ -235,7 +235,7 @@ - // Enable automatic reconnection - // Must be called after mysql_real_connect() on MySQL < 5.0.19 - // and at any point on more recent versions. -- my_bool reconnect = 1; -+ bool reconnect = 1; - mysql_options(hConn, MYSQL_OPT_RECONNECT, &reconnect); - } - diff --git a/ports/gdal/portfile.cmake b/ports/gdal/portfile.cmake index 70eea8583..1f3ca96e3 100644 --- a/ports/gdal/portfile.cmake +++ b/ports/gdal/portfile.cmake @@ -1,10 +1,10 @@ # vcpkg portfile.cmake for GDAL # # NOTE: update the version and checksum for new GDAL release -set(GDAL_VERSION_STR "2.3.0") -set(GDAL_VERSION_PKG "230") +set(GDAL_VERSION_STR "2.3.2") +set(GDAL_VERSION_PKG "232") set(GDAL_VERSION_LIB "203") -set(GDAL_PACKAGE_SUM "f3f790b7ecb28916d6d0628b15ddc6b396a25a8f1f374589ea5e95b5a50addc99e05e363113f907b6c96faa69870b5dc9fdf3d771f9c8937b4aa8819bd78b190") +set(GDAL_PACKAGE_SUM "9eb26be57657b1f1eaada4794859584d53bd58e0d504eb12ab97e9c60353d0a565dc894a89829ee50fc549cb7d069a75b7895c0dd4cea887e010671f63e945b8") if (TRIPLET_SYSTEM_ARCH MATCHES "arm") message(FATAL_ERROR "ARM is currently not supported.") @@ -22,21 +22,27 @@ vcpkg_download_distfile(ARCHIVE URLS "http://download.osgeo.org/gdal/${GDAL_VERSION_STR}/gdal${GDAL_VERSION_PKG}.zip" FILENAME "gdal${GDAL_VERSION_PKG}.zip" SHA512 ${GDAL_PACKAGE_SUM} - ) +) # Extract source into architecture specific directory, because GDALs' nmake based build currently does not # support out of source builds. set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-debug/gdal-${GDAL_VERSION_STR}) set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-release/gdal-${GDAL_VERSION_STR}) -foreach(BUILD_TYPE debug release) +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + list(APPEND BUILD_TYPES "release") +endif() +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + list(APPEND BUILD_TYPES "debug") +endif() + +foreach(BUILD_TYPE IN LISTS BUILD_TYPES) file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}) vcpkg_extract_source_archive(${ARCHIVE} ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}) vcpkg_apply_patches( SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src-${TARGET_TRIPLET}-${BUILD_TYPE}/gdal-${GDAL_VERSION_STR} PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-debug-crt-flags.patch - ${CMAKE_CURRENT_LIST_DIR}/no-my-bool.patch ) endforeach() @@ -76,11 +82,6 @@ file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" SQLITE_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/sqlite3.lib" SQLITE_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/sqlite3.lib" SQLITE_LIBRARY_DBG) -# Setup MySQL libraries + include path -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/mysql" MYSQL_INCLUDE_DIR) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib" MYSQL_LIBRARY_REL) -file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib" MYSQL_LIBRARY_DBG) - # Setup PostgreSQL libraries + include path file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" PGSQL_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libpq.lib" PGSQL_LIBRARY_REL) @@ -106,7 +107,26 @@ file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" LZMA_INCLUDE_DIR) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/lzma.lib" LZMA_LIBRARY_REL) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/lzma.lib" LZMA_LIBRARY_DBG) -set(NMAKE_OPTIONS +if("mysql-libmysql" IN_LIST FEATURES OR "mysql-libmariadb" IN_LIST FEATURES) + # Setup MySQL libraries + include path + if("mysql-libmysql" IN_LIST FEATURES) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/mysql" MYSQL_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libmysql.lib" MYSQL_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libmysql.lib" MYSQL_LIBRARY_DBG) + endif() + + if("mysql-libmariadb" IN_LIST FEATURES) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include/mysql" MYSQL_INCLUDE_DIR) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/libmariadb.lib" MYSQL_LIBRARY_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/libmariadb.lib" MYSQL_LIBRARY_DBG) + endif() + + list(APPEND NMAKE_OPTIONS MYSQL_INC_DIR=${MYSQL_INCLUDE_DIR}) + list(APPEND NMAKE_OPTIONS_REL MYSQL_LIB=${MYSQL_LIBRARY_REL}) + list(APPEND NMAKE_OPTIONS_DBG MYSQL_LIB=${MYSQL_LIBRARY_DBG}) +endif() + +list(APPEND NMAKE_OPTIONS GDAL_HOME=${NATIVE_PACKAGES_DIR} DATADIR=${NATIVE_DATA_DIR} HTMLDIR=${NATIVE_HTML_DIR} @@ -117,7 +137,6 @@ set(NMAKE_OPTIONS EXPAT_INCLUDE=-I${EXPAT_INCLUDE_DIR} CURL_INC=-I${CURL_INCLUDE_DIR} SQLITE_INC=-I${SQLITE_INCLUDE_DIR} - MYSQL_INC_DIR=${MYSQL_INCLUDE_DIR} PG_INC_DIR=${PGSQL_INCLUDE_DIR} OPENJPEG_ENABLED=YES OPENJPEG_CFLAGS=-I${OPENJPEG_INCLUDE_DIR} @@ -147,8 +166,8 @@ else() set(LINKAGE_FLAGS "/MD") endif() -set(NMAKE_OPTIONS_REL - "${NMAKE_OPTIONS}" +list(APPEND NMAKE_OPTIONS_REL + ${NMAKE_OPTIONS} CXX_CRT_FLAGS=${LINKAGE_FLAGS} PROJ_LIBRARY=${PROJ_LIBRARY_REL} PNG_LIB=${PNG_LIBRARY_REL} @@ -156,15 +175,14 @@ set(NMAKE_OPTIONS_REL EXPAT_LIB=${EXPAT_LIBRARY_REL} "CURL_LIB=${CURL_LIBRARY_REL} wsock32.lib wldap32.lib winmm.lib" SQLITE_LIB=${SQLITE_LIBRARY_REL} - MYSQL_LIB=${MYSQL_LIBRARY_REL} PG_LIB=${PGSQL_LIBRARY_REL} OPENJPEG_LIB=${OPENJPEG_LIBRARY_REL} WEBP_LIBS=${WEBP_LIBRARY_REL} LIBXML2_LIB=${XML2_LIBRARY_REL} ) -set(NMAKE_OPTIONS_DBG - "${NMAKE_OPTIONS}" +list(APPEND NMAKE_OPTIONS_DBG + ${NMAKE_OPTIONS} CXX_CRT_FLAGS="${LINKAGE_FLAGS}d" PROJ_LIBRARY=${PROJ_LIBRARY_DBG} PNG_LIB=${PNG_LIBRARY_DBG} @@ -172,36 +190,40 @@ set(NMAKE_OPTIONS_DBG EXPAT_LIB=${EXPAT_LIBRARY_DBG} "CURL_LIB=${CURL_LIBRARY_DBG} wsock32.lib wldap32.lib winmm.lib" SQLITE_LIB=${SQLITE_LIBRARY_DBG} - MYSQL_LIB=${MYSQL_LIBRARY_DBG} PG_LIB=${PGSQL_LIBRARY_DBG} OPENJPEG_LIB=${OPENJPEG_LIBRARY_DBG} WEBP_LIBS=${WEBP_LIBRARY_DBG} LIBXML2_LIB=${XML2_LIBRARY_DBG} DEBUG=1 ) -################ -# Release build -################ -message(STATUS "Building ${TARGET_TRIPLET}-rel") -vcpkg_execute_required_process( + +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + ################ + # Release build + ################ + message(STATUS "Building ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( COMMAND ${NMAKE} -f makefile.vc "${NMAKE_OPTIONS_REL}" WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} LOGNAME nmake-build-${TARGET_TRIPLET}-release -) -message(STATUS "Building ${TARGET_TRIPLET}-rel done") + ) + message(STATUS "Building ${TARGET_TRIPLET}-rel done") +endif() -################ -# Debug build -################ -message(STATUS "Building ${TARGET_TRIPLET}-dbg") -vcpkg_execute_required_process( - COMMAND ${NMAKE} /G -f makefile.vc - "${NMAKE_OPTIONS_DBG}" - WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} - LOGNAME nmake-build-${TARGET_TRIPLET}-debug -) -message(STATUS "Building ${TARGET_TRIPLET}-dbg done") +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + ################ + # Debug build + ################ + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${NMAKE} /G -f makefile.vc + "${NMAKE_OPTIONS_DBG}" + WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} + LOGNAME nmake-build-${TARGET_TRIPLET}-debug + ) + message(STATUS "Building ${TARGET_TRIPLET}-dbg done") +endif() message(STATUS "Packaging ${TARGET_TRIPLET}") file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/gdal/html) @@ -218,16 +240,27 @@ vcpkg_execute_required_process( if (VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/gdal_i.lib) - file(COPY ${SOURCE_PATH_DEBUG}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(COPY ${SOURCE_PATH_RELEASE}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib) + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(COPY ${SOURCE_PATH_RELEASE}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(COPY ${SOURCE_PATH_DEBUG}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib) + endif() else() file(GLOB EXE_FILES ${CURRENT_PACKAGES_DIR}/bin/*.exe) file(REMOVE ${EXE_FILES} ${CURRENT_PACKAGES_DIR}/lib/gdal.lib) - file(COPY ${SOURCE_PATH_DEBUG}/gdal${GDAL_VERSION_LIB}.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - file(COPY ${SOURCE_PATH_DEBUG}/gdal_i.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/lib/gdal.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib) + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/lib/gdal.lib) + endif() + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(COPY ${SOURCE_PATH_DEBUG}/gdal${GDAL_VERSION_LIB}.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + file(COPY ${SOURCE_PATH_DEBUG}/gdal_i.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib) + endif() endif() # Copy over PDBs diff --git a/ports/geos/CONTROL b/ports/geos/CONTROL index 1a32a8103..0a4421eea 100644 --- a/ports/geos/CONTROL +++ b/ports/geos/CONTROL @@ -1,3 +1,3 @@ Source: geos -Version: 3.6.2-3 +Version: 3.6.3-2 Description: Geometry Engine Open Source diff --git a/ports/geos/portfile.cmake b/ports/geos/portfile.cmake index e5a404254..2f374e79d 100644 --- a/ports/geos/portfile.cmake +++ b/ports/geos/portfile.cmake @@ -1,53 +1,40 @@ -# 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) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/geos-3.6.2) + +set(GEOS_VERSION 3.6.3) vcpkg_download_distfile(ARCHIVE - URLS "http://download.osgeo.org/geos/geos-3.6.2.tar.bz2" - FILENAME "geos-3.6.2.tar.bz2" - SHA512 515d8700b8a28282678e481faee355e3a43d7b70160472a63335b8d7225d9ba10437be782378f18f31a15288118126d411a2d862f01ce35d27c96f6bc0a73016 + URLS "http://download.osgeo.org/geos/geos-${GEOS_VERSION}.tar.bz2" + FILENAME "geos-${GEOS_VERSION}.tar.bz2" + SHA512 f88adcf363433e247a51fb1a2c0b53f39b71aba8a6c01dd08aa416c2e980fe274a195e6edcb5bb5ff8ea81b889da14a1a8fb2849e04669aeba3b6d55754dc96a ) -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches( - -SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/geos_c-static-support.patch +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${GEOS_VERSION} + PATCHES 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) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA # Disable this option if project cannot be built with Ninja + PREFER_NINJA OPTIONS - -DCMAKE_DEBUG_POSTFIX=d - -DGEOS_ENABLE_TESTS=False + -DCMAKE_DEBUG_POSTFIX=d + -DGEOS_ENABLE_TESTS=False ) vcpkg_install_cmake() -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -# Handle copyright -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/geos) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/geos/COPYING ${CURRENT_PACKAGES_DIR}/share/geos/copyright) -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/libgeos.lib ${CURRENT_PACKAGES_DIR}/debug/lib/libgeosd.lib) -else() - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) - file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/geos.lib ${CURRENT_PACKAGES_DIR}/debug/lib/geosd.lib) - file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/geos_c.lib ${CURRENT_PACKAGES_DIR}/debug/lib/geos_cd.lib) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +if(EXISTS ${CURRENT_PACKAGES_DIR}/bin/geos-config) + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/geos) + file(RENAME ${CURRENT_PACKAGES_DIR}/bin/geos-config ${CURRENT_PACKAGES_DIR}/share/geos/geos-config) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/geos-config) endif() +# Handle copyright +configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/geos/copyright COPYONLY) + vcpkg_copy_pdbs() diff --git a/ports/glbinding/CONTROL b/ports/glbinding/CONTROL index 1fd781901..d225e60c8 100644 --- a/ports/glbinding/CONTROL +++ b/ports/glbinding/CONTROL @@ -1,3 +1,3 @@ Source: glbinding -Version: 2.1.1-3 +Version: 3.0.2-3 Description: glbinding is an MIT licensed, cross-platform C++ binding for the OpenGL API diff --git a/ports/glbinding/force-system-install.patch b/ports/glbinding/force-system-install.patch new file mode 100644 index 000000000..1674f145a --- /dev/null +++ b/ports/glbinding/force-system-install.patch @@ -0,0 +1,36 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 011577a..e52d19d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -42,11 +42,13 @@ include(cmake/GenerateTemplateExportHeader.cmake) + # + + # Get git revision ++if(NOT DEFINED GIT_REV) + get_git_head_revision(GIT_REFSPEC GIT_SHA1) + string(SUBSTRING "${GIT_SHA1}" 0 12 GIT_REV) + if(NOT GIT_SHA1) + set(GIT_REV "0") + endif() ++endif() + + # Meta information about the project + set(META_PROJECT_NAME "glbinding") +@@ -135,7 +137,7 @@ if("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr" OR "${CMAKE_INSTALL_PREFIX}" STREQU + endif() + + # Installation paths +-if(UNIX AND SYSTEM_DIR_INSTALL) ++if(1) + # Install into the system (/usr/bin or /usr/local/bin) + set(INSTALL_ROOT "share/${project}") # /usr/[local]/share/ + set(INSTALL_CMAKE "share/${project}/cmake") # /usr/[local]/share//cmake +@@ -148,7 +150,7 @@ if(UNIX AND SYSTEM_DIR_INSTALL) + set(INSTALL_DOC "share/doc/${project}") # /usr/[local]/share/doc/ + set(INSTALL_SHORTCUTS "share/applications") # /usr/[local]/share/applications + set(INSTALL_ICONS "share/pixmaps") # /usr/[local]/share/pixmaps +- set(INSTALL_INIT "/etc/init") # /etc/init (upstart init scripts) ++ set(INSTALL_INIT "etc/init") # /etc/init (upstart init scripts) + else() + # Install into local directory + set(INSTALL_ROOT ".") # ./ diff --git a/ports/glbinding/portfile.cmake b/ports/glbinding/portfile.cmake index cf3f64e5d..64063bc73 100644 --- a/ports/glbinding/portfile.cmake +++ b/ports/glbinding/portfile.cmake @@ -1,79 +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) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cginternals/glbinding - REF v2.1.1 - SHA512 6c7251555801272a90c87a9386324eb6993102601a036fc7d9f9b4ebed64c74d011909566e5fc5a34ef8242e24915848296023daa1420c91aaf08cf9635be397 + REF v3.0.2 + SHA512 524ad20a11af7d8ee1764f53326b43efb3b3dbd6c64d1539f4d9fa2bcb7b58a6bd6caf460d6944aed4fd7439b82536d8f28a0f0f51c14c62c2f0c73baab9afcb HEAD_REF master + PATCHES force-system-install.patch ) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DOPTION_BUILD_TESTS=OFF -DOPTION_BUILD_GPU_TESTS=OFF + -DOPTION_BUILD_TOOLS=OFF + -DGIT_REV=0 + -DCMAKE_DISABLE_FIND_PACKAGE_cpplocate=ON ) -#vcpkg_build_cmake() vcpkg_install_cmake() - file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share) -file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/glbinding ${CURRENT_PACKAGES_DIR}/share/glbinding) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake) -file(READ ${CURRENT_PACKAGES_DIR}/debug/cmake/glbinding/glbinding-export-debug.cmake GLBINDING_DEBUG_MODULE) -string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" GLBINDING_DEBUG_MODULE "${GLBINDING_DEBUG_MODULE}") -string(REPLACE "glbindingd.dll" "bin/glbindingd.dll" GLBINDING_DEBUG_MODULE "${GLBINDING_DEBUG_MODULE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-export-debug.cmake "${GLBINDING_DEBUG_MODULE}") -file(READ ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-export-release.cmake RELEASE_CONF) -string(REPLACE "glbinding.dll" "bin/glbinding.dll" RELEASE_CONF "${RELEASE_CONF}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-export-release.cmake "${RELEASE_CONF}") -file(REMOVE ${CURRENT_PACKAGES_DIR}/glbinding-config.cmake) -file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/glbinding-config.cmake) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-export.cmake ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-config.cmake) -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) - file(RENAME ${CURRENT_PACKAGES_DIR}/glbinding.dll ${CURRENT_PACKAGES_DIR}/bin/glbinding.dll) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/glbindingd.dll ${CURRENT_PACKAGES_DIR}/debug/bin/glbindingd.dll) -endif() -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake) -file(RENAME ${CURRENT_PACKAGES_DIR}/data ${CURRENT_PACKAGES_DIR}/share/data) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/data) -file(REMOVE ${CURRENT_PACKAGES_DIR}/AUTHORS - ${CURRENT_PACKAGES_DIR}/LICENSE - ${CURRENT_PACKAGES_DIR}/README.md - ${CURRENT_PACKAGES_DIR}/VERSION - ${CURRENT_PACKAGES_DIR}/debug/AUTHORS - ${CURRENT_PACKAGES_DIR}/debug/LICENSE - ${CURRENT_PACKAGES_DIR}/debug/README.md - ${CURRENT_PACKAGES_DIR}/debug/VERSION - ) +vcpkg_fixup_cmake_targets(CONFIG_PATH share/glbinding/cmake/glbinding TARGET_PATH share/glbinding/cmake/glbinding) +vcpkg_fixup_cmake_targets(CONFIG_PATH share/glbinding/cmake/glbinding-aux TARGET_PATH share/glbinding/cmake/glbinding-aux) -# There are some executables that are only built if glfw is found by CMake (see source/tools/*/CMakeLists.txt). -# glfw is not listed as a dependency for glbinding, so this only happen on systems where package glfw3 is present. -# glbinding's CMake doesn't offer the choice to exlude those tools from the build process, so deleting them here: -file(REMOVE ${CURRENT_PACKAGES_DIR}/glcontexts.exe - ${CURRENT_PACKAGES_DIR}/glfunctions.exe - ${CURRENT_PACKAGES_DIR}/glmeta.exe - ${CURRENT_PACKAGES_DIR}/glqueries.exe - ${CURRENT_PACKAGES_DIR}/debug/glcontextsd.exe - ${CURRENT_PACKAGES_DIR}/debug/glfunctionsd.exe - ${CURRENT_PACKAGES_DIR}/debug/glmetad.exe - ${CURRENT_PACKAGES_DIR}/debug/glqueriesd.exe -) +file(WRITE ${CURRENT_PACKAGES_DIR}/share/glbinding/glbinding-config.cmake "include(\${CMAKE_CURRENT_LIST_DIR}/cmake/glbinding/glbinding-export.cmake)\ninclude(\${CMAKE_CURRENT_LIST_DIR}/cmake/glbinding-aux/glbinding-aux-export.cmake)\nset(glbinding_FOUND TRUE)\n") +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) # Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/glbinding) file(RENAME ${CURRENT_PACKAGES_DIR}/share/glbinding/LICENSE ${CURRENT_PACKAGES_DIR}/share/glbinding/copyright) -vcpkg_copy_pdbs() \ No newline at end of file +vcpkg_copy_pdbs() diff --git a/ports/glm/CONTROL b/ports/glm/CONTROL index 7dbcec7d4..c7c099c72 100644 --- a/ports/glm/CONTROL +++ b/ports/glm/CONTROL @@ -1,3 +1,3 @@ Source: glm -Version: 0.9.9.0 +Version: 0.9.9.2 Description: OpenGL Mathematics (GLM) https://glm.g-truc.net diff --git a/ports/glm/disable_warnings_as_error.patch b/ports/glm/disable_warnings_as_error.patch new file mode 100644 index 000000000..f87616b1e --- /dev/null +++ b/ports/glm/disable_warnings_as_error.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 756673a3..5fbc8906 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -216,7 +216,7 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + message("GLM: Visual C++ - ${CMAKE_CXX_COMPILER_ID} compiler") + endif() + +- add_compile_options(/W4 /WX) ++ add_compile_options(/W4) + add_compile_options(/wd4309 /wd4324 /wd4389 /wd4127 /wd4267 /wd4146 /wd4201 /wd4464 /wd4514 /wd4701 /wd4820 /wd4365) + add_definitions(-D_CRT_SECURE_NO_WARNINGS) + endif() diff --git a/ports/glm/ignore-warning-C4201.patch b/ports/glm/ignore-warning-C4201.patch deleted file mode 100644 index b94b123db..000000000 --- a/ports/glm/ignore-warning-C4201.patch +++ /dev/null @@ -1,128 +0,0 @@ -diff --git a/glm/detail/type_vec1.hpp b/glm/detail/type_vec1.hpp -index f5c7f017..69c7274a 100644 ---- a/glm/detail/type_vec1.hpp -+++ b/glm/detail/type_vec1.hpp -@@ -39,6 +39,10 @@ namespace glm - # pragma clang diagnostic push - # pragma clang diagnostic ignored "-Wgnu-anonymous-struct" - # pragma clang diagnostic ignored "-Wnested-anon-types" -+# endif -+# if GLM_COMPILER & GLM_COMPILER_VC -+# pragma warning(push) -+# pragma warning(disable: 4201) - # endif - - union -@@ -60,6 +64,9 @@ namespace glm - # endif//GLM_SWIZZLE*/ - }; - -+# if GLM_COMPILER & GLM_COMPILER_VC -+# pragma warning(pop) -+# endif - # if GLM_COMPILER & GLM_COMPILER_CLANG - # pragma clang diagnostic pop - # endif -diff --git a/glm/detail/type_vec2.hpp b/glm/detail/type_vec2.hpp -index a9af32e3..b8b8f32e 100644 ---- a/glm/detail/type_vec2.hpp -+++ b/glm/detail/type_vec2.hpp -@@ -38,6 +38,10 @@ namespace glm - # pragma clang diagnostic push - # pragma clang diagnostic ignored "-Wgnu-anonymous-struct" - # pragma clang diagnostic ignored "-Wnested-anon-types" -+# endif -+# if GLM_COMPILER & GLM_COMPILER_VC -+# pragma warning(push) -+# pragma warning(disable: 4201) - # endif - - union -@@ -60,6 +64,9 @@ namespace glm - - }; - -+# if GLM_COMPILER & GLM_COMPILER_VC -+# pragma warning(pop) -+# endif - # if GLM_COMPILER & GLM_COMPILER_CLANG - # pragma clang diagnostic pop - # endif -diff --git a/glm/detail/type_vec3.hpp b/glm/detail/type_vec3.hpp -index f85f0a5c..28e6c6ed 100644 ---- a/glm/detail/type_vec3.hpp -+++ b/glm/detail/type_vec3.hpp -@@ -38,6 +38,10 @@ namespace glm - # pragma clang diagnostic push - # pragma clang diagnostic ignored "-Wgnu-anonymous-struct" - # pragma clang diagnostic ignored "-Wnested-anon-types" -+# endif -+# if GLM_COMPILER & GLM_COMPILER_VC -+# pragma warning(push) -+# pragma warning(disable: 4201) - # endif - - union -@@ -59,6 +63,9 @@ namespace glm - # endif//GLM_SWIZZLE - }; - -+# if GLM_COMPILER & GLM_COMPILER_VC -+# pragma warning(pop) -+# endif - # if GLM_COMPILER & GLM_COMPILER_CLANG - # pragma clang diagnostic pop - # endif -diff --git a/glm/detail/type_vec4.hpp b/glm/detail/type_vec4.hpp -index 5e89b744..0a16bc2c 100644 ---- a/glm/detail/type_vec4.hpp -+++ b/glm/detail/type_vec4.hpp -@@ -38,6 +38,10 @@ namespace glm - # pragma clang diagnostic push - # pragma clang diagnostic ignored "-Wgnu-anonymous-struct" - # pragma clang diagnostic ignored "-Wnested-anon-types" -+# endif -+# if GLM_COMPILER & GLM_COMPILER_VC -+# pragma warning(push) -+# pragma warning(disable: 4201) - # endif - - union -@@ -61,6 +65,9 @@ namespace glm - # endif//GLM_SWIZZLE - }; - -+# if GLM_COMPILER & GLM_COMPILER_VC -+# pragma warning(pop) -+# endif - # if GLM_COMPILER & GLM_COMPILER_CLANG - # pragma clang diagnostic pop - # endif -diff --git a/glm/gtc/quaternion.hpp b/glm/gtc/quaternion.hpp -index 8af1c8bf..ff8c4aa6 100644 ---- a/glm/gtc/quaternion.hpp -+++ b/glm/gtc/quaternion.hpp -@@ -49,6 +49,10 @@ namespace glm - # pragma clang diagnostic push - # pragma clang diagnostic ignored "-Wgnu-anonymous-struct" - # pragma clang diagnostic ignored "-Wnested-anon-types" -+# endif -+# if GLM_COMPILER & GLM_COMPILER_VC -+# pragma warning(push) -+# pragma warning(disable: 4201) - # endif - - union -@@ -57,6 +61,9 @@ namespace glm - typename detail::storage::value>::type data; - }; - -+# if GLM_COMPILER & GLM_COMPILER_VC -+# pragma warning(pop) -+# endif - # if GLM_COMPILER & GLM_COMPILER_CLANG - # pragma clang diagnostic pop - # endif --- -2.15.1.windows.2 - diff --git a/ports/glm/portfile.cmake b/ports/glm/portfile.cmake index b975cc370..90f7875fb 100644 --- a/ports/glm/portfile.cmake +++ b/ports/glm/portfile.cmake @@ -3,14 +3,14 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO g-truc/glm - REF 0.9.9.0 - SHA512 b7a6996cb98bc334130c33a339275b50ea28d8dfce300f3d14ac52edf0b5c38bf216d318f411e898edef428876c0b2d1f6a6e951f160f31425fe0852ad150421 + REF 0.9.9.2 + SHA512 80a5fbeaaea5f1034cd6f8ad3f4daf8b5fa8d9410ccce15ced20f37e24c0f6083332fde82b1fa7357399b3e37c1a31dd3a14f257b7847a5f1ddefa627b50351a HEAD_REF master ) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/ignore-warning-C4201.patch" + PATCHES "${CMAKE_CURRENT_LIST_DIR}/disable_warnings_as_error.patch" ) vcpkg_configure_cmake( diff --git a/ports/globjects/CONTROL b/ports/globjects/CONTROL index df9c862dc..b75b256c6 100644 --- a/ports/globjects/CONTROL +++ b/ports/globjects/CONTROL @@ -1,5 +1,5 @@ Source: globjects Maintainer: mattias@mattiascibien.net -Version: 1.0.0-1 +Version: 1.1.0-2018-09-19 Build-Depends: glbinding, glm Description: C++ library strictly wrapping OpenGL objects. diff --git a/ports/globjects/portfile.cmake b/ports/globjects/portfile.cmake index 08fae6ec3..5019fea0d 100644 --- a/ports/globjects/portfile.cmake +++ b/ports/globjects/portfile.cmake @@ -1,66 +1,37 @@ -# 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) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/globjects-1.0.0) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/cginternals/globjects/archive/v1.0.0.zip" - FILENAME "globjects-1.0.0.zip" - SHA512 e03ae16786b11891a61f0e2f85b0d98a858d1bad3cf4c45944982d6a753dbaa8b28975dc02153360a5ac0f3be73fe86c91af130cfc0dda7459dd782f16868eeb + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO cginternals/globjects + REF fe53c4a386506d3374df12ad6f1f67c4232aa389 + SHA512 62b40675671acf050bfe4836da5b6b6a757185d296a86ad1079cf79e4a149820971ed46fce7379b73707dff368919b63d52044230a7ce75601441fe368d91e63 + HEAD_REF master + PATCHES system-install.patch ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS -DOPTION_BUILD_TESTS=OFF -DOPTION_BUILD_GPU_TESTS=OFF + -DGIT_REV=0 ) -#vcpkg_build_cmake() + vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share/globjects/cmake/globjects TARGET_PATH share/globjects/cmake/globjects) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share) -file(RENAME ${CURRENT_PACKAGES_DIR}/cmake/globjects ${CURRENT_PACKAGES_DIR}/share/globjects) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) -file(READ ${CURRENT_PACKAGES_DIR}/debug/cmake/globjects/globjects-export-debug.cmake globjects_DEBUG_MODULE) -string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" globjects_DEBUG_MODULE "${globjects_DEBUG_MODULE}") -string(REPLACE "globjectsd.dll" "bin/globjectsd.dll" globjects_DEBUG_MODULE "${globjects_DEBUG_MODULE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/globjects/globjects-export-debug.cmake "${globjects_DEBUG_MODULE}") -file(READ ${CURRENT_PACKAGES_DIR}/share/globjects/globjects-export-release.cmake RELEASE_CONF) -string(REPLACE "globjects.dll" "bin/globjects.dll" RELEASE_CONF "${RELEASE_CONF}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/globjects/globjects-export-release.cmake "${RELEASE_CONF}") -file(REMOVE ${CURRENT_PACKAGES_DIR}/globjects-config.cmake) -file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/globjects-config.cmake) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/globjects/globjects-export.cmake ${CURRENT_PACKAGES_DIR}/share/globjects/globjects-config.cmake) -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) - file(RENAME ${CURRENT_PACKAGES_DIR}/globjects.dll ${CURRENT_PACKAGES_DIR}/bin/globjects.dll) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/globjectsd.dll ${CURRENT_PACKAGES_DIR}/debug/bin/globjectsd.dll) -endif() -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/cmake) -file(RENAME ${CURRENT_PACKAGES_DIR}/data ${CURRENT_PACKAGES_DIR}/share/data) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/data) -file(REMOVE ${CURRENT_PACKAGES_DIR}/AUTHORS - ${CURRENT_PACKAGES_DIR}/LICENSE - ${CURRENT_PACKAGES_DIR}/README.md - ${CURRENT_PACKAGES_DIR}/VERSION - ${CURRENT_PACKAGES_DIR}/debug/AUTHORS - ${CURRENT_PACKAGES_DIR}/debug/LICENSE - ${CURRENT_PACKAGES_DIR}/debug/README.md - ${CURRENT_PACKAGES_DIR}/debug/VERSION - ) +file(WRITE ${CURRENT_PACKAGES_DIR}/share/globjects/globjects-config.cmake "include(CMakeFindDependencyMacro) +find_dependency(glm) +find_dependency(glbinding) + +include(\${CMAKE_CURRENT_LIST_DIR}/cmake/globjects/globjects-export.cmake) +") # Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/globjects) file(RENAME ${CURRENT_PACKAGES_DIR}/share/globjects/LICENSE ${CURRENT_PACKAGES_DIR}/share/globjects/copyright) vcpkg_copy_pdbs() diff --git a/ports/globjects/system-install.patch b/ports/globjects/system-install.patch new file mode 100644 index 000000000..10e0c5b49 --- /dev/null +++ b/ports/globjects/system-install.patch @@ -0,0 +1,27 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6556346..48ba95d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -42,11 +42,13 @@ include(cmake/GenerateTemplateExportHeader.cmake) + # + + # Get git revision ++if(NOT DEFINED GIT_REV) + get_git_head_revision(GIT_REFSPEC GIT_SHA1) + string(SUBSTRING "${GIT_SHA1}" 0 12 GIT_REV) + if(NOT GIT_SHA1) + set(GIT_REV "0") + endif() ++endif() + + # Meta information about the project + set(META_PROJECT_NAME "globjects") +@@ -133,7 +135,7 @@ if("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr" OR "${CMAKE_INSTALL_PREFIX}" STREQU + endif() + + # Installation paths +-if(UNIX AND SYSTEM_DIR_INSTALL) ++if(1) + # Install into the system (/usr/bin or /usr/local/bin) + set(INSTALL_ROOT "share/${project}") # /usr/[local]/share/ + set(INSTALL_CMAKE "share/${project}/cmake") # /usr/[local]/share//cmake diff --git a/ports/glslang/0001-Fix-export-symbol-for-Windows.patch b/ports/glslang/0001-Fix-export-symbol-for-Windows.patch deleted file mode 100644 index 80ce58da4..000000000 --- a/ports/glslang/0001-Fix-export-symbol-for-Windows.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 1ccadd2cb6db3ce5a00635f65db21e561eb7f705 Mon Sep 17 00:00:00 2001 -From: vlj -Date: Fri, 25 Nov 2016 17:12:35 +0100 -Subject: [PATCH] Fix export symbol for Windows. - ---- - StandAlone/CMakeLists.txt | 1 + - StandAlone/ResourceLimits.cpp | 3 +++ - StandAlone/ResourceLimits.h | 10 ++++++++++ - 3 files changed, 14 insertions(+) - -diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt -index 231ba27..3aff02e 100644 ---- a/StandAlone/CMakeLists.txt -+++ b/StandAlone/CMakeLists.txt -@@ -2,6 +2,7 @@ add_library(glslang-default-resource-limits - ${CMAKE_CURRENT_SOURCE_DIR}/ResourceLimits.cpp - ) - set_property(TARGET glslang-default-resource-limits PROPERTY FOLDER glslang) -+set_property(TARGET glslang-default-resource-limits PROPERTY COMPILE_DEFINITIONS DLLEXPORT) - - target_include_directories(glslang-default-resource-limits - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} -diff --git a/StandAlone/ResourceLimits.cpp b/StandAlone/ResourceLimits.cpp -index e22ec80..634d9c9 100644 ---- a/StandAlone/ResourceLimits.cpp -+++ b/StandAlone/ResourceLimits.cpp -@@ -41,6 +41,7 @@ - - namespace glslang { - -+DLL_EXPORT - const TBuiltInResource DefaultTBuiltInResource = { - /* .MaxLights = */ 32, - /* .MaxClipPlanes = */ 6, -@@ -137,6 +138,7 @@ const TBuiltInResource DefaultTBuiltInResource = { - /* .generalConstantMatrixVectorIndexing = */ 1, - }}; - -+DLL_EXPORT - std::string GetDefaultTBuiltInResourceString() - { - std::ostringstream ostream; -@@ -239,6 +241,7 @@ std::string GetDefaultTBuiltInResourceString() - return ostream.str(); - } - -+DLL_EXPORT - void DecodeResourceLimits(TBuiltInResource* resources, char* config) - { - static const char* delims = " \t\n\r"; -diff --git a/StandAlone/ResourceLimits.h b/StandAlone/ResourceLimits.h -index 9c3eb3e..932a59f 100644 ---- a/StandAlone/ResourceLimits.h -+++ b/StandAlone/ResourceLimits.h -@@ -39,17 +39,27 @@ - - #include "glslang/Include/ResourceLimits.h" - -+#ifdef DLLEXPORT -+#define DLL_EXPORT __declspec(dllexport) -+#else -+#define DLL_EXPORT __declspec(dllimport) -+#endif -+ - namespace glslang { - - // These are the default resources for TBuiltInResources, used for both - // - parsing this string for the case where the user didn't supply one, - // - dumping out a template for user construction of a config file. -+ -+DLL_EXPORT - extern const TBuiltInResource DefaultTBuiltInResource; - - // Returns the DefaultTBuiltInResource as a human-readable string. -+DLL_EXPORT - std::string GetDefaultTBuiltInResourceString(); - - // Decodes the resource limits from |config| to |resources|. -+DLL_EXPORT - void DecodeResourceLimits(TBuiltInResource* resources, char* config); - - } // end namespace glslang --- -2.10.2.windows.1 - diff --git a/ports/glslang/CONTROL b/ports/glslang/CONTROL index 22d5a054e..c92482843 100644 --- a/ports/glslang/CONTROL +++ b/ports/glslang/CONTROL @@ -1,3 +1,3 @@ Source: glslang -Version: 2018-03-02 +Version: 2018-03-02-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 2182d9bcd..b7cbdb98e 100644 --- a/ports/glslang/portfile.cmake +++ b/ports/glslang/portfile.cmake @@ -1,8 +1,6 @@ include(vcpkg_common_functions) -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - message(WARNING "Dynamic not supported. Building static") - set(VCPKG_LIBRARY_LINKAGE "static") -endif() + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH @@ -15,6 +13,7 @@ vcpkg_from_github( vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA + OPTIONS -DCMAKE_DEBUG_POSTFIX=d ) vcpkg_install_cmake() diff --git a/ports/gmmlib/CONTROL b/ports/gmmlib/CONTROL new file mode 100644 index 000000000..a06044494 --- /dev/null +++ b/ports/gmmlib/CONTROL @@ -0,0 +1,3 @@ +Source: gmmlib +Version: 18.3.pre2-1 +Description: intel's graphics memory management library diff --git a/ports/gmmlib/portfile.cmake b/ports/gmmlib/portfile.cmake new file mode 100644 index 000000000..6ed92151f --- /dev/null +++ b/ports/gmmlib/portfile.cmake @@ -0,0 +1,32 @@ +include(vcpkg_common_functions) + +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + message(FATAL_ERROR "Intel gmmlib currently only supports Linux platforms") +endif() + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO intel/gmmlib + REF intel-gmmlib-18.3.pre2 + SHA512 9831f6e6f001ba99d5b4860c68697dfc33535a20aa853716534a18b6e4df6c7b95039fff7ffe6f0303cfeb70db4c53ad26a6fa6a8fb6148fa4080e456bff3859 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DARCH=64 +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/gmmlib/copyright COPYONLY) + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/igdgmm/GmmLib/Scripts) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/igdgmm/GmmLib/Resource) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/igdgmm/GmmLib/GlobalInfo) diff --git a/ports/graphicsmagick/CMakeLists.txt b/ports/graphicsmagick/CMakeLists.txt index 27f9fb109..c156b69c7 100644 --- a/ports/graphicsmagick/CMakeLists.txt +++ b/ports/graphicsmagick/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required (VERSION 3.6) project (graphicsmagick) -find_package(Zlib REQUIRED) +find_package(ZLIB REQUIRED) find_package(Bzip2 REQUIRED) find_package(JPEG REQUIRED) find_package(PNG REQUIRED) @@ -29,13 +29,6 @@ include_directories("Magick++") include_directories("Magick++/lib") include_directories("wand") -include_directories(${ZLIB_INCLUDE_DIRS}) -include_directories(${BZIP2_INCLUDE_DIR}) -include_directories(${NATIVE_JPEG_INCLUDE_PATH}) -include_directories(${PNG_INCLUDE_DIRS}) -include_directories(${TIFF_INCLUDE_DIRS}) -include_directories(${FREETYPE_INCLUDE_DIRS}) - file(READ "magick/magick_config.h.in" CONFIG_H) string(REPLACE "#undef HasBZLIB" "#define HasBZLIB" CONFIG_H "${CONFIG_H}") string(REPLACE "#undef HasJPEG" "#define HasJPEG" CONFIG_H "${CONFIG_H}") @@ -108,18 +101,49 @@ add_library(graphicsmagick coders/art.c coders/avs.c Magick++/lib/TypeMetric.cpp wand/drawing_wand.c wand/magick_compat.c wand/magick_wand.c wand/pixel_wand.c) -TARGET_LINK_LIBRARIES(graphicsmagick ${ZLIB_LIBRARIES}) -TARGET_LINK_LIBRARIES(graphicsmagick ${BZIP2_LIBRARIES}) -TARGET_LINK_LIBRARIES(graphicsmagick ${JPEG_LIBRARIES}) -TARGET_LINK_LIBRARIES(graphicsmagick ${PNG_LIBRARIES}) -TARGET_LINK_LIBRARIES(graphicsmagick ${TIFF_LIBRARIES}) -TARGET_LINK_LIBRARIES(graphicsmagick ${FREETYPE_LIBRARIES}) +TARGET_LINK_LIBRARIES(graphicsmagick PRIVATE + ZLIB::ZLIB + BZip2::BZip2 + #${JPEG_LIBRARIES} + JPEG::JPEG + PNG::PNG + TIFF::TIFF + Freetype::Freetype +) +target_include_directories(graphicsmagick INTERFACE $) install(TARGETS graphicsmagick + EXPORT graphicsmagick-targets RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) +install( + EXPORT graphicsmagick-targets + FILE unofficial-graphicsmagick-targets.cmake + NAMESPACE unofficial::graphicsmagick:: + DESTINATION share/unofficial-graphicsmagick +) +find_package(ZLIB REQUIRED) +find_package(BZip2 REQUIRED) +find_package(JPEG REQUIRED) +find_package(PNG REQUIRED) +find_package(TIFF REQUIRED) +find_package(Freetype REQUIRED) + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/unofficial-graphicsmagick-config.cmake " +include(CMakeFindDependencyMacro) +find_dependency(ZLIB) +find_dependency(BZip2) +find_dependency(JPEG) +find_dependency(PNG) +find_dependency(TIFF) +find_dependency(Freetype) + +include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-graphicsmagick-targets.cmake) +") +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-graphicsmagick-config.cmake DESTINATION share/unofficial-graphicsmagick) + option(INSTALL_HEADERS "Install development header files" ON) if (INSTALL_HEADERS) diff --git a/ports/graphicsmagick/CONTROL b/ports/graphicsmagick/CONTROL index 1d6f327df..f8519040f 100644 --- a/ports/graphicsmagick/CONTROL +++ b/ports/graphicsmagick/CONTROL @@ -1,5 +1,5 @@ Source: graphicsmagick Maintainer: josuegomes@gmail.com -Version: 1.3.30 +Version: 1.3.30-1 Build-Depends: zlib, bzip2, freetype, libjpeg-turbo, libpng, tiff Description: Image processing library diff --git a/ports/graphicsmagick/disable_graphicsmagick_modules.patch b/ports/graphicsmagick/disable_graphicsmagick_modules.patch new file mode 100644 index 000000000..bfb91d0fd --- /dev/null +++ b/ports/graphicsmagick/disable_graphicsmagick_modules.patch @@ -0,0 +1,11 @@ +--- a/magick/studio.h 2018-06-23 14:13:49.191541000 -0400 ++++ b/magick/studio.h 2018-09-02 11:50:41.856753700 -0400 +@@ -414,7 +414,7 @@ + #endif + + #if defined(HasLTDL) || ( defined(MSWINDOWS) && defined(_DLL) ) +-# define SupportMagickModules ++//# define SupportMagickModules + #endif + + #if defined(_MAGICKMOD_) diff --git a/ports/graphicsmagick/portfile.cmake b/ports/graphicsmagick/portfile.cmake index 0c47813f6..b04842eb1 100644 --- a/ports/graphicsmagick/portfile.cmake +++ b/ports/graphicsmagick/portfile.cmake @@ -1,31 +1,41 @@ include(vcpkg_common_functions) set(GM_VERSION 1.3.30) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/graphicsmagick-${GM_VERSION}-windows-source) vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/${GM_VERSION}/GraphicsMagick-${GM_VERSION}-windows-source.7z" FILENAME "GraphicsMagick-${GM_VERSION}-windows-source.7z" SHA512 9e4cfff57ae547f133e6208033213d3aa790cd8c95a061c101c63b8ae8896e7504d02f302efdd20ff24f72c07760a0a5e2b32e21fe454717ed1deb2edeef159c - ) -vcpkg_extract_source_archive(${ARCHIVE}) +) + +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF "${GM_VERSION}" + PATCHES + # GM always requires a dynamic BZIP2. This patch makes this dependent if _DLL is defined + dynamic_bzip2.patch + + # Bake GM's own modules into the .dll itself. This fixes a bug whereby + # 'vcpkg install graphicsmagick' did not lead to a copy of GM that could + # load either PNG or JPEG files (due to missing GM Modules, with names + # matching "IM_*.DLL"). + disable_graphicsmagick_modules.patch +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/magick_types.h DESTINATION ${SOURCE_PATH}/magick) -# GM always requires a dynamic BZIP2. This patch makes this dependent if _DLL is defined -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES - ${CMAKE_CURRENT_LIST_DIR}/dynamic_bzip2.patch) - vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS_DEBUG -DINSTALL_HEADERS=OFF + OPTIONS_DEBUG + -DINSTALL_HEADERS=OFF ) vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-graphicsmagick TARGET_PATH share/unofficial-graphicsmagick) + # copy license file(COPY ${SOURCE_PATH}/Copyright.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/graphicsmagick) file(RENAME ${CURRENT_PACKAGES_DIR}/share/graphicsmagick/Copyright.txt ${CURRENT_PACKAGES_DIR}/share/graphicsmagick/copyright) @@ -40,3 +50,5 @@ string(REPLACE "@windows_font_dir@" "$ENV{SYSTEMROOT}/Fonts/" TYPE_MGK "${TYPE_M file(WRITE ${CURRENT_PACKAGES_DIR}/share/graphicsmagick/config/type.mgk "${TYPE_MGK}") vcpkg_copy_pdbs() + +vcpkg_test_cmake(PACKAGE_NAME unofficial-graphicsmagick) diff --git a/ports/harfbuzz/0001-fix-cmake-export.patch b/ports/harfbuzz/0001-fix-cmake-export.patch new file mode 100644 index 000000000..a5abffa41 --- /dev/null +++ b/ports/harfbuzz/0001-fix-cmake-export.patch @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e881dbd1..69496561 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -761,11 +761,17 @@ endif () + + if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) + install(TARGETS harfbuzz ++ EXPORT harfbuzzConfig + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + FRAMEWORK DESTINATION Library/Frameworks + ) ++ install(EXPORT harfbuzzConfig ++ NAMESPACE harfbuzz:: ++ FILE harfbuzz-config.cmake ++ DESTINATION share/harfbuzz ++ ) + if (HB_BUILD_UTILS) + install(TARGETS hb-view + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL index fc9ce8370..f3c58ee6e 100644 --- a/ports/harfbuzz/CONTROL +++ b/ports/harfbuzz/CONTROL @@ -1,5 +1,5 @@ Source: harfbuzz -Version: 1.8.4 +Version: 1.8.4-2 Description: HarfBuzz OpenType text shaping engine Build-Depends: freetype, ragel Default-Features: ucdn diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake index 4a1a0309b..382b045e1 100644 --- a/ports/harfbuzz/portfile.cmake +++ b/ports/harfbuzz/portfile.cmake @@ -6,14 +6,11 @@ vcpkg_from_github( REF 1.8.4 SHA512 92742b754713d1df8975d4d8467de04765784d7fd566b7e07e7e7a261b0338e997a5fc11fa4fe282d6d5540d242db40c993812fbc4a881becd95fd3aae598c80 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - "${CMAKE_CURRENT_LIST_DIR}/0001-fix-uwp-build.patch" - "${CMAKE_CURRENT_LIST_DIR}/find-package-freetype-2.patch" - "${CMAKE_CURRENT_LIST_DIR}/glib-cmake.patch" + 0001-fix-uwp-build.patch + find-package-freetype-2.patch + glib-cmake.patch + 0001-fix-cmake-export.patch ) SET(HB_HAVE_ICU "OFF") @@ -59,8 +56,11 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share/harfbuzz TARGET_PATH share/harfbuzz) vcpkg_copy_pdbs() # Handle copyright file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/harfbuzz) file(RENAME ${CURRENT_PACKAGES_DIR}/share/harfbuzz/COPYING ${CURRENT_PACKAGES_DIR}/share/harfbuzz/copyright) + +vcpkg_test_cmake(PACKAGE_NAME harfbuzz) diff --git a/ports/hwloc/CMakeLists.txt b/ports/hwloc/CMakeLists.txt index 7f75c558c..1b2e1c802 100644 --- a/ports/hwloc/CMakeLists.txt +++ b/ports/hwloc/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required(VERSION 3.0) -project(hwloc C) +project(hwloc + LANGUAGES C + VERSION 1.11.7) configure_file(contrib/windows/hwloc_config.h include/hwloc/autogen/config.h COPYONLY) configure_file(contrib/windows/static-components.h include/static-components.h COPYONLY) @@ -36,14 +38,30 @@ add_library(libhwloc src/dolib.c) set_target_properties(libhwloc PROPERTIES DEFINE_SYMBOL _USRDLL) -target_include_directories(libhwloc PRIVATE ./include ./src ${CMAKE_CURRENT_BINARY_DIR}/include) -target_compile_definitions(libhwloc PRIVATE _CRT_SECURE_NO_WARNINGS) + +add_executable(hwloc-info + utils/hwloc/hwloc-info.c) + +target_link_libraries(hwloc-info PRIVATE libhwloc) + +foreach(Target IN ITEMS libhwloc hwloc-info) + target_include_directories(${Target} PRIVATE ./include ./src ${CMAKE_CURRENT_BINARY_DIR}/include) + target_compile_definitions(${Target} PRIVATE _CRT_SECURE_NO_WARNINGS) +endforeach(Target) install(TARGETS libhwloc RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) +install(TARGETS hwloc-info + RUNTIME DESTINATION tools/hwloc) +if(BUILD_SHARED_LIBS) + install(TARGETS libhwloc + RUNTIME DESTINATION tools/hwloc) +endif(BUILD_SHARED_LIBS) + + if(NOT HWLOC_SKIP_INCLUDES) install(FILES include/hwloc.h DESTINATION include) install(DIRECTORY include/hwloc DESTINATION include FILES_MATCHING PATTERN "*.h") diff --git a/ports/hwloc/CONTROL b/ports/hwloc/CONTROL index ef2564050..e2c820060 100644 --- a/ports/hwloc/CONTROL +++ b/ports/hwloc/CONTROL @@ -1,4 +1,4 @@ Source: hwloc -Version: 1.11.7-2 +Version: 1.11.7-3 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/hwloc/portfile.cmake b/ports/hwloc/portfile.cmake index a2031bdcb..64a18ddc7 100644 --- a/ports/hwloc/portfile.cmake +++ b/ports/hwloc/portfile.cmake @@ -28,6 +28,8 @@ else() endif() file(WRITE ${CURRENT_PACKAGES_DIR}/include/hwloc/autogen/config.h "${PUBLIC_CONFIG_H}") +file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/tools) + # Handle copyright file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/hwloc) file(RENAME ${CURRENT_PACKAGES_DIR}/share/hwloc/COPYING ${CURRENT_PACKAGES_DIR}/share/hwloc/copyright) diff --git a/ports/icu/CONTROL b/ports/icu/CONTROL index 602e4341a..0cb924a2a 100644 --- a/ports/icu/CONTROL +++ b/ports/icu/CONTROL @@ -1,3 +1,3 @@ Source: icu -Version: 61.1-3 +Version: 61.1-4 Description: Mature and widely used Unicode and localization library. diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake index 9e3d9c48b..2061111e9 100644 --- a/ports/icu/portfile.cmake +++ b/ports/icu/portfile.cmake @@ -34,36 +34,38 @@ set(CONFIGURE_OPTIONS_RELASE "--disable-debug --enable-release --prefix=${CURREN set(CONFIGURE_OPTIONS_DEBUG "--enable-debug --disable-release --prefix=${CURRENT_PACKAGES_DIR}/debug") if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") - set(BASH bash) set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -fPIC") set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -fPIC") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + # Configure release + message(STATUS "Configuring ${TARGET_TRIPLET}-rel") + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + set(ENV{CFLAGS} "-O2 ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_RELEASE}") + set(ENV{CXXFLAGS} "-O2 ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_RELEASE}") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c + "${SOURCE_PATH}/source/runConfigureICU Linux ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_RELASE}" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" + LOGNAME "configure-${TARGET_TRIPLET}-rel") + message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") + endif() - # Configure release - message(STATUS "Configuring ${TARGET_TRIPLET}-rel") - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - set(ENV{CFLAGS} "-O2 ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_RELEASE}") - set(ENV{CXXFLAGS} "-O2 ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_RELEASE}") - vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc -c - "${SOURCE_PATH}/source/runConfigureICU Linux ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_RELASE}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" - LOGNAME "configure-${TARGET_TRIPLET}-rel") - message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") - - # Configure debug - message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - set(ENV{CFLAGS} "-O0 -g ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_DEBUG}") - set(ENV{CXXFLAGS} "-O0 -g ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_DEBUG}") - vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc -c - "${SOURCE_PATH}/source/runConfigureICU Linux ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_DEBUG}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" - LOGNAME "configure-${TARGET_TRIPLET}-dbg") - message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + # Configure debug + message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + set(ENV{CFLAGS} "-O0 -g ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_DEBUG}") + set(ENV{CXXFLAGS} "-O0 -g ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_DEBUG}") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c + "${SOURCE_PATH}/source/runConfigureICU Linux ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_DEBUG}" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + LOGNAME "configure-${TARGET_TRIPLET}-dbg") + message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") + endif() else() @@ -87,55 +89,62 @@ else() set(ICU_RUNTIME "-MD") endif() - # Configure release - message(STATUS "Configuring ${TARGET_TRIPLET}-rel") - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - set(ENV{CFLAGS} "${ICU_RUNTIME} -O2 -Oi -Zi ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_RELEASE}") - set(ENV{CXXFLAGS} "${ICU_RUNTIME} -O2 -Oi -Zi ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_RELEASE}") - set(ENV{LDFLAGS} "-DEBUG -INCREMENTAL:NO -OPT:REF -OPT:ICF") - vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc -c - "${SOURCE_PATH}/source/runConfigureICU MSYS/MSVC ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_RELASE}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" - LOGNAME "configure-${TARGET_TRIPLET}-rel") - message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") - - # Configure debug - message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - set(ENV{CFLAGS} "${ICU_RUNTIME}d -Od -Zi -RTC1 ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_DEBUG}") - set(ENV{CXXFLAGS} "${ICU_RUNTIME}d -Od -Zi -RTC1 ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_DEBUG}") - set(ENV{LDFLAGS} "-DEBUG") - vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc -c - "${SOURCE_PATH}/source/runConfigureICU MSYS/MSVC ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_DEBUG}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" - LOGNAME "configure-${TARGET_TRIPLET}-dbg") - message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + # Configure release + message(STATUS "Configuring ${TARGET_TRIPLET}-rel") + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + set(ENV{CFLAGS} "${ICU_RUNTIME} -O2 -Oi -Zi ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_RELEASE}") + set(ENV{CXXFLAGS} "${ICU_RUNTIME} -O2 -Oi -Zi ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_RELEASE}") + set(ENV{LDFLAGS} "-DEBUG -INCREMENTAL:NO -OPT:REF -OPT:ICF") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c + "${SOURCE_PATH}/source/runConfigureICU MSYS/MSVC ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_RELASE}" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" + LOGNAME "configure-${TARGET_TRIPLET}-rel") + message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") + endif() + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + # Configure debug + message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") + file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + set(ENV{CFLAGS} "${ICU_RUNTIME}d -Od -Zi -RTC1 ${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_DEBUG}") + set(ENV{CXXFLAGS} "${ICU_RUNTIME}d -Od -Zi -RTC1 ${VCPKG_CXX_FLAGS} ${VCPKG_CXX_FLAGS_DEBUG}") + set(ENV{LDFLAGS} "-DEBUG") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c + "${SOURCE_PATH}/source/runConfigureICU MSYS/MSVC ${CONFIGURE_OPTIONS} ${CONFIGURE_OPTIONS_DEBUG}" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + LOGNAME "configure-${TARGET_TRIPLET}-dbg") + message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") + endif() endif() unset(ENV{CFLAGS}) unset(ENV{CXXFLAGS}) unset(ENV{LDFLAGS}) -# Build release -message(STATUS "Package ${TARGET_TRIPLET}-rel") -vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc -c "make && make install" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" - LOGNAME "build-${TARGET_TRIPLET}-rel") -message(STATUS "Package ${TARGET_TRIPLET}-rel done") +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + # Build release + message(STATUS "Package ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c "make && make install" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" + LOGNAME "build-${TARGET_TRIPLET}-rel") + message(STATUS "Package ${TARGET_TRIPLET}-rel done") +endif() -# Build debug -message(STATUS "Package ${TARGET_TRIPLET}-dbg") -vcpkg_execute_required_process( - COMMAND ${BASH} --noprofile --norc -c "make && make install" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" - LOGNAME "build-${TARGET_TRIPLET}-dbg") -message(STATUS "Package ${TARGET_TRIPLET}-dbg done") +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + # Build debug + message(STATUS "Package ${TARGET_TRIPLET}-dbg") + vcpkg_execute_required_process( + COMMAND ${BASH} --noprofile --norc -c "make && make install" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" + LOGNAME "build-${TARGET_TRIPLET}-dbg") + message(STATUS "Package ${TARGET_TRIPLET}-dbg done") +endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin @@ -155,17 +164,27 @@ file(REMOVE ${TEST_LIBS}) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") # copy icu dlls from lib to bin - file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll) - file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/icu*d${ICU_VERSION_MAJOR}.dll) - file(COPY ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) - file(COPY ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/lib/icu*${ICU_VERSION_MAJOR}.dll) + file(COPY ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/lib/icu*d${ICU_VERSION_MAJOR}.dll) + file(COPY ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + endif() else() if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") # rename static libraries to match import libs # see https://gitlab.kitware.com/cmake/cmake/issues/16617 foreach(MODULE dt in io tu uc) - file(RENAME ${CURRENT_PACKAGES_DIR}/lib/sicu${MODULE}.lib ${CURRENT_PACKAGES_DIR}/lib/icu${MODULE}.lib) - file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/sicu${MODULE}d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/icu${MODULE}d.lib) + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/sicu${MODULE}.lib ${CURRENT_PACKAGES_DIR}/lib/icu${MODULE}.lib) + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/sicu${MODULE}d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/icu${MODULE}d.lib) + endif() endforeach() endif() diff --git a/ports/imgui/CMakeLists.txt b/ports/imgui/CMakeLists.txt index 5bcf278f7..1b4fc86e5 100644 --- a/ports/imgui/CMakeLists.txt +++ b/ports/imgui/CMakeLists.txt @@ -17,6 +17,7 @@ set(IMGUI_SOURCES imgui.cpp imgui_demo.cpp imgui_draw.cpp + imgui_widgets.cpp ) add_library(${PROJECT_NAME} diff --git a/ports/imgui/CONTROL b/ports/imgui/CONTROL index 03c1e0e7c..a973b215b 100644 --- a/ports/imgui/CONTROL +++ b/ports/imgui/CONTROL @@ -1,3 +1,3 @@ Source: imgui -Version: 1.62 +Version: 1.65 Description: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies. diff --git a/ports/imgui/portfile.cmake b/ports/imgui/portfile.cmake index b477ba7b7..1f427a068 100644 --- a/ports/imgui/portfile.cmake +++ b/ports/imgui/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ocornut/imgui - REF v1.62 - SHA512 aa9701481d108e6b2f030cac71fdef49e299cfa930c8ec7e74847757a059b8c629f09cb7d7d1eb4cb9d3ef263404906dfa52670850c6a490d56eaff981d56049 + REF v1.65 + SHA512 f68bbf84b781ea3e409beccb02b0bf8fe78d56e1ce7d8fce785f629758310ae75c9624ed62b2b6194e50f00cc7cc17f643191f4fbbad9236aa2e82a9ea4f6aac HEAD_REF master ) diff --git a/ports/io2d/CONTROL b/ports/io2d/CONTROL new file mode 100644 index 000000000..7e36cb5d9 --- /dev/null +++ b/ports/io2d/CONTROL @@ -0,0 +1,4 @@ +Source: io2d +Version: 0.1-1 +Description: a lightweight, cross platform drawing library +Build-Depends: cairo, graphicsmagick diff --git a/ports/io2d/find-package.patch b/ports/io2d/find-package.patch new file mode 100644 index 000000000..10d83f95b --- /dev/null +++ b/ports/io2d/find-package.patch @@ -0,0 +1,47 @@ +diff --git a/P0267_RefImpl/P0267_RefImpl/cairo/CMakeLists.txt b/P0267_RefImpl/P0267_RefImpl/cairo/CMakeLists.txt +index 3d4791c..1864b7a 100644 +--- a/P0267_RefImpl/P0267_RefImpl/cairo/CMakeLists.txt ++++ b/P0267_RefImpl/P0267_RefImpl/cairo/CMakeLists.txt +@@ -23,7 +23,15 @@ target_compile_features(io2d_cairo PUBLIC cxx_std_17) + + target_link_libraries(io2d_cairo PUBLIC io2d_core) + +-if(MSVC) ++if(DEFINED VCPKG_TARGET_TRIPLET) ++ find_package(unofficial-cairo CONFIG REQUIRED) ++ set(CAIRO_INCLUDE_DIR) ++ set(CAIRO_LIB_DEBUG "CAIRO_LIB_DEBUG-NOTFOUND") ++ set(CAIRO_LIB_RELEASE unofficial::cairo::cairo) ++ find_package(unofficial-graphicsmagick CONFIG REQUIRED) ++ set(GRAPHICSMAGICK_INCLUDE_DIR) ++ set(GRAPHICSMAGICK_LIB unofficial::graphicsmagick::graphicsmagick) ++elseif(MSVC) + find_path(CAIRO_INCLUDE_DIR cairo.h) + find_path(GRAPHICSMAGICK_INCLUDE_DIR magick/api.h) + find_library(CAIRO_LIB_DEBUG cairod) +diff --git a/P0267_RefImpl/P0267_RefImpl/cairo/win32/CMakeLists.txt b/P0267_RefImpl/P0267_RefImpl/cairo/win32/CMakeLists.txt +index abb1501..b7a6e71 100644 +--- a/P0267_RefImpl/P0267_RefImpl/cairo/win32/CMakeLists.txt ++++ b/P0267_RefImpl/P0267_RefImpl/cairo/win32/CMakeLists.txt +@@ -24,20 +24,7 @@ target_compile_features(io2d_cairo_win32 PUBLIC cxx_std_17) + target_link_libraries(io2d_cairo_win32 PUBLIC io2d_cairo) + + if(MSVC) +- target_compile_definitions(io2d_cairo_win32 PUBLIC -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS) +- +- find_library(PIXMAN_LIB pixman-1) +- find_library(FREETYPE_LIB freetype) +- find_library(FONTCONFIG_LIB fontconfig) +- find_library(BZ_LIB bz2) +- find_library(JPEG_LIB jpeg) +- find_library(TIFF_LIB tiff) +- find_library(EXPAT_LIB expat) +- find_library(LZMA_LIB lzma) +- find_library(ICONV_LIB libiconv) +- find_library(CHARSET_LIB libcharset) +- +- target_link_libraries(io2d_cairo_win32 PUBLIC ${PIXMAN_LIB} ${FREETYPE_LIB} ${FONTCONFIG_LIB} ${BZ_LIB} ${JPEG_LIB} ${TIFF_LIB} ${EXPAT_LIB} ${LZMA_LIB} ${ICONV_LIB} ${CHARSET_LIB}) ++ target_compile_definitions(io2d_cairo_win32 PRIVATE -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS) + endif() + + install( diff --git a/ports/io2d/portfile.cmake b/ports/io2d/portfile.cmake new file mode 100644 index 000000000..c1d536d57 --- /dev/null +++ b/ports/io2d/portfile.cmake @@ -0,0 +1,56 @@ + +# Allow use of vcpkg functions +include(vcpkg_common_functions) + +# For now, io2d is always a static library. +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +# Optionally, uncomment and modify one of the 'set(...)' calls below +# to use io2d sources from a local directory, rather than Github. +# set(SOURCE_PATH "C:\\Path\\To\\P0267_RefImpl\\") +# set(SOURCE_PATH "/Path/To/P0267_RefImpl") + +# Retrieve and validate io2d source code, as-needed +if ("${SOURCE_PATH}" STREQUAL "") + # TODO: point at cpp-io2d/(whatever), if and as needed + vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO cpp-io2d/P0267_RefImpl + REF 21ae92c8be6916034e6e18f08aa57899a975dfb0 + SHA512 5b674f98ca7705d6901af339a4189d5ce4f2c3118bfb99430734f355159602f177bc8d1b345c3a2f17947a62547553f7b91747a1f16da063707a4da7f990391d + HEAD_REF master + PATCHES find-package.patch + ) +endif() + +# Configure the library, using CMake +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DIO2D_WITHOUT_SAMPLES=1 + -DIO2D_WITHOUT_TESTS=1 + -DCMAKE_INSTALL_INCLUDEDIR:STRING=include +) + +# Build + install the library, using CMake +vcpkg_install_cmake() + +# Don't have duplicate header files in both include/ and debug/include/ folders +# (within /installed/io2d_*/, as installed by vcpkg_install_cmake()): +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/io2d) + +file(RENAME ${CURRENT_PACKAGES_DIR}/share/io2d/io2dConfig.cmake ${CURRENT_PACKAGES_DIR}/share/io2d/io2dTargets.cmake) +file(WRITE ${CURRENT_PACKAGES_DIR}/share/io2d/io2dConfig.cmake " +include(CMakeFindDependencyMacro) +find_dependency(unofficial-cairo CONFIG) +find_dependency(unofficial-graphicsmagick CONFIG) + +include(\${CMAKE_CURRENT_LIST_DIR}/io2dTargets.cmake) +") + +file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/io2d RENAME copyright) + +vcpkg_test_cmake(PACKAGE_NAME io2d) diff --git a/ports/jsonnet/CONTROL b/ports/jsonnet/CONTROL index b8214fd9f..c89a34afc 100644 --- a/ports/jsonnet/CONTROL +++ b/ports/jsonnet/CONTROL @@ -1,3 +1,3 @@ Source: jsonnet -Version: 2018-07-30 +Version: 2018-09-18 Description: Jsonnet - The data templating language diff --git a/ports/jsonnet/portfile.cmake b/ports/jsonnet/portfile.cmake index 71cc4029e..918a4de8d 100644 --- a/ports/jsonnet/portfile.cmake +++ b/ports/jsonnet/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/jsonnet - REF 467a62662cb700289cb9b2e6d841d6897a155774 - SHA512 a9b702c485bf8c9a87cfeee7612bb179bfec9153c25a1428277f07dd3b9d3f2508eb45cbd27b3533bed9a38d2b68bbabbde9702553ca7b90da0c1bd2411c83ee + REF 48df4a1007a88202495a30bf2fa65528335b35e6 + SHA512 46734d797499d51a79c1c63d653bc8e6496d385a57c7a83a45c3ab82fa4f106abdb67a57b9641d5c9e1cf286f4f0a66cfdbc5e1987bda234d614c91d7be79c94 HEAD_REF master ) diff --git a/ports/kangaru/CONTROL b/ports/kangaru/CONTROL new file mode 100644 index 000000000..42f8277fd --- /dev/null +++ b/ports/kangaru/CONTROL @@ -0,0 +1,3 @@ +Source: kangaru +Version: 4.1.2 +Description: A dependency injection container for C++11, C++14 and later diff --git a/ports/kangaru/portfile.cmake b/ports/kangaru/portfile.cmake new file mode 100644 index 000000000..6de69896b --- /dev/null +++ b/ports/kangaru/portfile.cmake @@ -0,0 +1,28 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO gracicot/kangaru + REF v4.1.2 + SHA512 44ca94da38c80aa8495bb58cc26db0591d5e1b32b52c3ff242d95598856c5e84f25d7e7184c1e15e44d9a89987856740548fb070ad393cbe51da4bb79aa216d2 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS -DKANGARU_EXPORT=Off -DKANGARU_TEST=Off +) + +vcpkg_install_cmake() + +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/kangaru") + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/lib + ${CURRENT_PACKAGES_DIR}/debug +) + + +# Put the license file where vcpkg expects it +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/kangaru/) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/kangaru/LICENSE ${CURRENT_PACKAGES_DIR}/share/kangaru/copyright) diff --git a/ports/kf5archive/CONTROL b/ports/kf5archive/CONTROL new file mode 100644 index 000000000..c3e0e5dee --- /dev/null +++ b/ports/kf5archive/CONTROL @@ -0,0 +1,4 @@ +Source: kf5archive +Version: 5.50.0 +Description: File compression +Build-Depends: ecm, qt5-base, zlib, bzip2 \ No newline at end of file diff --git a/ports/kf5archive/portfile.cmake b/ports/kf5archive/portfile.cmake new file mode 100644 index 000000000..6f587a096 --- /dev/null +++ b/ports/kf5archive/portfile.cmake @@ -0,0 +1,27 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KDE/karchive + REF v5.50.0 + SHA512 519dd69ef76c9655cdf9d8f16484244469a6d5d2185c1d588bad325a401dd11f35699e3c115dfd52e5db38aa26aea3d9b35c7e83b76a36bda926574a7d3ce50f + HEAD_REF master +) + +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/KF5Archive) +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/etc) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/etc) +file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/kf5archive RENAME copyright) diff --git a/ports/kf5holidays/CONTROL b/ports/kf5holidays/CONTROL new file mode 100644 index 000000000..cd1e09ccf --- /dev/null +++ b/ports/kf5holidays/CONTROL @@ -0,0 +1,4 @@ +Source: kf5holidays +Version: 5.50.0 +Description: Holiday calculation library +Build-Depends: ecm, qt5-base, qt5-declarative, qt5-tools \ No newline at end of file diff --git a/ports/kf5holidays/portfile.cmake b/ports/kf5holidays/portfile.cmake new file mode 100644 index 000000000..b56abec1a --- /dev/null +++ b/ports/kf5holidays/portfile.cmake @@ -0,0 +1,31 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KDE/kholidays + REF v5.50.0 + SHA512 01c1258213e1bbab90b9af9c41965599637b1ccd4cd285cbe9bc11579fae1363162567ae14c33001b8b1cc085bae4dfdf4ed79b7ff27f93187bce79db662b4e2 + HEAD_REF master +) + +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/KF5Holidays) +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/etc) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/etc) + +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/qml ${CURRENT_PACKAGES_DIR}/debug/qml ) +file(RENAME ${CURRENT_PACKAGES_DIR}/lib/qml ${CURRENT_PACKAGES_DIR}/qml ) + +file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/kf5holidays RENAME copyright) diff --git a/ports/kf5plotting/CONTROL b/ports/kf5plotting/CONTROL index a24b8e352..70439a5dc 100644 --- a/ports/kf5plotting/CONTROL +++ b/ports/kf5plotting/CONTROL @@ -1,4 +1,4 @@ Source: kf5plotting -Version: 5.37.0 +Version: 5.50.0 Description: Lightweight plotting framework -Build-Depends: ecm, qt5 +Build-Depends: ecm, qt5-base diff --git a/ports/kf5plotting/portfile.cmake b/ports/kf5plotting/portfile.cmake index 39d6e8893..36f862d13 100644 --- a/ports/kf5plotting/portfile.cmake +++ b/ports/kf5plotting/portfile.cmake @@ -1,11 +1,12 @@ 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_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KDE/kplotting + REF v5.50.0 + SHA512 512a0f8e8a5147f06345d86fa29effa8d0a59b62f5a24b70a09c4ddf5204d626e13f421be7c42d2103c5634e863db5ac8e6763db886351597f0798e05bc97f33 + HEAD_REF master ) -vcpkg_extract_source_archive(${ARCHIVE}) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -21,4 +22,4 @@ 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) +file(INSTALL ${SOURCE_PATH}/COPYING.LIB DESTINATION ${CURRENT_PACKAGES_DIR}/share/kf5plotting RENAME copyright) diff --git a/ports/leptonica/CONTROL b/ports/leptonica/CONTROL index e3543173f..5fd60614d 100644 --- a/ports/leptonica/CONTROL +++ b/ports/leptonica/CONTROL @@ -1,4 +1,4 @@ Source: leptonica -Version: 1.74.4-5 +Version: 1.76.0 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 index 18eb8cde5..b08a971f6 100644 --- a/ports/leptonica/fix-cmakelists.patch +++ b/ports/leptonica/fix-cmakelists.patch @@ -1,34 +1,12 @@ ---- 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 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 945100a..6daad98 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -14,7 +14,6 @@ if (MSVC) + set_source_files_properties(${src} PROPERTIES LANGUAGE CXX) 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() +-string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}) + add_library (leptonica ${LIBRARY_TYPE} ${src} ${hdr}) + set_target_properties (leptonica PROPERTIES VERSION ${VERSION_PLAIN}) diff --git a/ports/leptonica/portfile.cmake b/ports/leptonica/portfile.cmake index 156ed3dd2..d42fa6b90 100644 --- a/ports/leptonica/portfile.cmake +++ b/ports/leptonica/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DanBloomberg/leptonica - REF 1.74.4 - SHA512 3b9d0be937883f733f72cbdf0b624ec245d9256a8b4622997f437d309efd7ad9695ad1cbe2224d543eb3ef8c44833567b3cc9a95e9a774ef9046b7acaf0ae744 + REF 1.76.0 + SHA512 0d7575dc38d1e656a228ef30412a2cbb908b9c7c8636e4e96f4a7dc0429c04709316b8ad04893285ab430c1b2063d71537fc5b989a0f9dbdbec488713e1bab1f HEAD_REF master PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-cmakelists.patch diff --git a/ports/libarchive/CONTROL b/ports/libarchive/CONTROL index dfcfa66b3..af3d528b8 100644 --- a/ports/libarchive/CONTROL +++ b/ports/libarchive/CONTROL @@ -1,4 +1,29 @@ Source: libarchive -Version: 3.3.2-2 +Version: 3.3.3-2 Description: Library for reading and writing streaming archives -Build-Depends: zlib, bzip2, libxml2, lz4, liblzma, openssl +Build-Depends: zlib +Default-Features: bzip2, libxml2, lz4, lzma, lzo, openssl + +Feature: bzip2 +Build-Depends: bzip2 +Description: BZip2 support + +Feature: libxml2 +Build-Depends: libxml2 +Description: Libxml2 support + +Feature: lz4 +Build-Depends: lz4 +Description: LZ4 support + +Feature: lzma +Build-Depends: liblzma +Description: LZMA support + +Feature: lzo +Build-Depends: lzo +Description: LZO support + +Feature: openssl +Build-Depends: openssl +Description: OpenSSL support diff --git a/ports/libarchive/portfile.cmake b/ports/libarchive/portfile.cmake index 1e36af1bb..a2a35ad65 100644 --- a/ports/libarchive/portfile.cmake +++ b/ports/libarchive/portfile.cmake @@ -7,8 +7,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libarchive/libarchive - REF v3.3.2 - SHA512 7bc17d6f742080278e35f86b0233d70045df0ca1578cd427126e0acce183709bf33ecca689db65e2e67bdfaf687c04d36cae1202a926beeebc88076648aa40bc + REF v3.3.3 + SHA512 10063764b610c0c966ba0177cac0d2cb781e297a45545cc8a587741513089af26f40769670894c86e7985b73c47e9cb985253bc3bef3a12fa83fe2a6a30acb6d HEAD_REF master PATCHES ${CMAKE_CURRENT_LIST_DIR}/fix-buildsystem.patch @@ -17,11 +17,48 @@ vcpkg_from_github( ${CMAKE_CURRENT_LIST_DIR}/no-werror.patch ) +set(BUILD_libarchive_bzip2 OFF) +if("bzip2" IN_LIST FEATURES) + set(BUILD_libarchive_bzip2 ON) +endif() + +set(BUILD_libarchive_libxml2 OFF) +if("libxml2" IN_LIST FEATURES) + set(BUILD_libarchive_libxml2 ON) +endif() +set(BUILD_libarchive_libxml2 OFF) + +set(BUILD_libarchive_lz4 OFF) +if("lz4" IN_LIST FEATURES) + set(BUILD_libarchive_lz4 ON) +endif() + +set(BUILD_libarchive_lzma OFF) +if("lzma" IN_LIST FEATURES) + set(BUILD_libarchive_lzma ON) +endif() + +set(BUILD_libarchive_lzo OFF) +if("lzo" IN_LIST FEATURES) + set(BUILD_libarchive_lzo ON) +endif() + +set(BUILD_libarchive_openssl OFF) +if("openssl" IN_LIST FEATURES) + set(BUILD_libarchive_openssl ON) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS - -DENABLE_LZO=OFF + -DENABLE_BZip2=${BUILD_libarchive_bzip2} + -DENABLE_LIBXML2=${BUILD_libarchive_libxml2} + -DENABLE_LZ4=${BUILD_libarchive_lz4} + -DENABLE_LZMA=${BUILD_libarchive_lzma} + -DENABLE_LZO=${BUILD_libarchive_lzo} + -DENABLE_OPENSSL=${BUILD_libarchive_openssl} + -DENABLE_PCREPOSIX=OFF -DENABLE_NETTLE=OFF -DENABLE_EXPAT=OFF -DENABLE_LibGCC=OFF diff --git a/ports/libflac/CONTROL b/ports/libflac/CONTROL index 1a16c7a6a..afdb70cbe 100644 --- a/ports/libflac/CONTROL +++ b/ports/libflac/CONTROL @@ -1,4 +1,4 @@ Source: libflac -Version: 1.3.2-5 +Version: 1.3.2-6 Description: Library for manipulating FLAC files Build-Depends: libogg diff --git a/ports/libflac/portfile.cmake b/ports/libflac/portfile.cmake index 236f51c8e..894107447 100644 --- a/ports/libflac/portfile.cmake +++ b/ports/libflac/portfile.cmake @@ -1,17 +1,20 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flac-1.3.2) -vcpkg_download_distfile(ARCHIVE - URLS "http://downloads.xiph.org/releases/flac/flac-1.3.2.tar.xz" - FILENAME "flac-1.3.2.tar.xz" - SHA512 63910e8ebbe508316d446ffc9eb6d02efbd5f47d29d2ea7864da9371843c8e671854db6e89ba043fe08aef1845b8ece70db80f1cce853f591ca30d56ef7c3a15) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_download_distfile(FLAC_MAX_MIN_PATCH + URLS "https://github.com/xiph/flac/commit/64f47c2d71ffba5aa8cd1d2a447339fd95f362f9.patch" + FILENAME "flac-max-min.patch" + SHA512 7ce9ccf9f081b478664cccd677c10269567672a8aa3a60839ef203b3d0a626d2b2c2f34d4c7fc897c31a436d7c22fb740bca5449a465dab39d60655417fe7772) -vcpkg_apply_patches( - SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/flac-1.3.2 +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO xiph/flac + REF 1.3.2 + SHA512 d0e177cadee371940516864bf72e1eb3d101a5f2779c854ecb8a3361a654a9b9e7efd303c83e2f308bacc7e54298d37705f677e2b955d4a9fe3470c364fa45f3 + HEAD_REF master PATCHES - "${CMAKE_CURRENT_LIST_DIR}/uwp-library-console.patch" - "${CMAKE_CURRENT_LIST_DIR}/uwp-createfile2.patch" + "${FLAC_MAX_MIN_PATCH}" + "${CMAKE_CURRENT_LIST_DIR}/uwp-library-console.patch" + "${CMAKE_CURRENT_LIST_DIR}/uwp-createfile2.patch" ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) diff --git a/ports/libgit2/CONTROL b/ports/libgit2/CONTROL index 9a2b518a4..f44900b72 100644 --- a/ports/libgit2/CONTROL +++ b/ports/libgit2/CONTROL @@ -1,4 +1,4 @@ Source: libgit2 -Version: 0.27.4-1 +Version: 0.27.4-2 Build-Depends: openssl (!windows&&!uwp) Description: Git linkable library diff --git a/ports/libgit2/portfile.cmake b/ports/libgit2/portfile.cmake index be3139a81..0982e5be1 100644 --- a/ports/libgit2/portfile.cmake +++ b/ports/libgit2/portfile.cmake @@ -10,13 +10,17 @@ vcpkg_from_github( REPO libgit2/libgit2 REF v0.27.4 SHA512 d27db86eb1b9f0d4057f8538ba1985ee76c3ca106e57d417fa9bff79d575f91a07ad28693112b58dc1d61d68116a82e6a145f12276158f2806b6c4964d741f61 - HEAD_REF master) + HEAD_REF master +) + +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS -DBUILD_CLAR=OFF + -DSTATIC_CRT=${STATIC_CRT} ) vcpkg_install_cmake() diff --git a/ports/libirecovery/CONTROL b/ports/libirecovery/CONTROL index 0916cd698..c3f423b93 100644 --- a/ports/libirecovery/CONTROL +++ b/ports/libirecovery/CONTROL @@ -1,4 +1,4 @@ Source: libirecovery -Version: 1.0.25-1 +Version: 1.0.25-2 Description: Library and utility to talk to iBoot/iBSS via USB on Mac OS X, Windows, and Linux -Build-Depends: libusbmuxd, readline \ No newline at end of file +Build-Depends: libusbmuxd, readline, getopt \ No newline at end of file diff --git a/ports/libjpeg-turbo/portfile.cmake b/ports/libjpeg-turbo/portfile.cmake index 7f6bc4973..c077fd16c 100644 --- a/ports/libjpeg-turbo/portfile.cmake +++ b/ports/libjpeg-turbo/portfile.cmake @@ -1,11 +1,4 @@ include(vcpkg_common_functions) -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO libjpeg-turbo/libjpeg-turbo - REF 1.5.3 - SHA512 0e7a2cd9943b610f49b562c20a5c350a50326a87bce1d39f14fe45760ed2f89a0d2d3e3f0de9f6a7714f566aabadec6b2422b592591ebb98bbad600ea411fea7 - HEAD_REF master -) vcpkg_download_distfile(GETENV_PATCH URLS "https://github.com/libjpeg-turbo/libjpeg-turbo/commit/bd96b30b74fe166fc94218cfc64a097fafdcc05f.diff" @@ -13,10 +6,15 @@ vcpkg_download_distfile(GETENV_PATCH SHA512 4cd064521b5e4baba4adf972f9f574f6dd43a2cd3e3ad143ca2cdf0f165024406d4fd2ed094124d0c17c5370394140e82fdd892d3cdc49609acdf8f79db1758c ) -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES "${CMAKE_CURRENT_LIST_DIR}/add-options-for-exes-docs-headers.patch" - "${CMAKE_CURRENT_LIST_DIR}/linux-cmake.patch" +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO libjpeg-turbo/libjpeg-turbo + REF 1.5.3 + SHA512 0e7a2cd9943b610f49b562c20a5c350a50326a87bce1d39f14fe45760ed2f89a0d2d3e3f0de9f6a7714f566aabadec6b2422b592591ebb98bbad600ea411fea7 + HEAD_REF master + PATCHES + add-options-for-exes-docs-headers.patch + linux-cmake.patch "${GETENV_PATCH}" ) @@ -67,3 +65,6 @@ file(COPY file(RENAME ${CURRENT_PACKAGES_DIR}/share/libjpeg-turbo/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/libjpeg-turbo/copyright) vcpkg_copy_pdbs() file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/jpeg) + +vcpkg_test_cmake(PACKAGE_NAME JPEG MODULE) diff --git a/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake b/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake new file mode 100644 index 000000000..5b0dae6c7 --- /dev/null +++ b/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,28 @@ +_find_package(${ARGS}) +if(JPEG_FOUND AND NOT TARGET JPEG::JPEG) + # Backfill JPEG::JPEG to versions of cmake before 3.12 + add_library(JPEG::JPEG UNKNOWN IMPORTED) + if(DEFINED JPEG_INCLUDE_DIRS) + set_target_properties(JPEG::JPEG PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${JPEG_INCLUDE_DIRS}") + endif() + if(EXISTS "${JPEG_LIBRARY}") + set_target_properties(JPEG::JPEG PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${JPEG_LIBRARY}") + endif() + if(EXISTS "${JPEG_LIBRARY_RELEASE}") + set_property(TARGET JPEG::JPEG APPEND PROPERTY + IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(JPEG::JPEG PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" + IMPORTED_LOCATION_RELEASE "${JPEG_LIBRARY_RELEASE}") + endif() + if(EXISTS "${JPEG_LIBRARY_DEBUG}") + set_property(TARGET JPEG::JPEG APPEND PROPERTY + IMPORTED_CONFIGURATIONS DEBUG) + set_target_properties(JPEG::JPEG PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" + IMPORTED_LOCATION_DEBUG "${JPEG_LIBRARY_DEBUG}") + endif() +endif() diff --git a/ports/liblzma/CMakeLists.txt b/ports/liblzma/CMakeLists.txt index 2c809a5aa..6b84c004a 100644 --- a/ports/liblzma/CMakeLists.txt +++ b/ports/liblzma/CMakeLists.txt @@ -12,7 +12,7 @@ if(NOT MSVC) endif() if(WIN32) - include_directories(windows) + include_directories(windows/vs2017) else() include_directories(${CMAKE_CURRENT_BINARY_DIR}) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/config.h diff --git a/ports/liblzma/CONTROL b/ports/liblzma/CONTROL index c29002b9c..20c26f980 100644 --- a/ports/liblzma/CONTROL +++ b/ports/liblzma/CONTROL @@ -1,3 +1,3 @@ Source: liblzma -Version: 5.2.3-2 +Version: 5.2.4 Description: Compression library with an API similar to that of zlib. diff --git a/ports/liblzma/portfile.cmake b/ports/liblzma/portfile.cmake index f6b037c43..26b8bff78 100644 --- a/ports/liblzma/portfile.cmake +++ b/ports/liblzma/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xz-mirror/xz - REF v5.2.3 - SHA512 d126666e58c6536aa7ae6aa6aac480f421e25aa61c4b5e7adb3de7b99423275a94d583ceaf0b15d559eaf9bc9be18f381cd46e49b1f8cb238c1d715876731063 + REF v5.2.4 + SHA512 fce7dc65e77a9b89dbdd6192cb37efc39e3f2cf343f79b54d2dfcd845025dab0e1d5b0f59c264eab04e5cbaf914eeb4818d14cdaac3ae0c1c5de24418656a4b7 HEAD_REF master ) diff --git a/ports/libmariadb/portfile.cmake b/ports/libmariadb/portfile.cmake index 4486564f6..e37afb22f 100644 --- a/ports/libmariadb/portfile.cmake +++ b/ports/libmariadb/portfile.cmake @@ -23,33 +23,51 @@ vcpkg_configure_cmake( vcpkg_install_cmake() -# remove debug header -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + # remove debug header + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +endif() + +if(VCPKG_BUILD_TYPE STREQUAL "debug") + # move headers + file(RENAME + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/include) +endif() # fix libmariadb lib & dll directory. if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - file(RENAME - ${CURRENT_PACKAGES_DIR}/lib/mariadb/mariadbclient.lib - ${CURRENT_PACKAGES_DIR}/lib/mariadbclient.lib) - file(RENAME - ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/mariadbclient.lib - ${CURRENT_PACKAGES_DIR}/debug/lib/mariadbclient.lib) + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(RENAME + ${CURRENT_PACKAGES_DIR}/lib/mariadb/mariadbclient.lib + ${CURRENT_PACKAGES_DIR}/lib/mariadbclient.lib) + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(RENAME + ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/mariadbclient.lib + ${CURRENT_PACKAGES_DIR}/debug/lib/mariadbclient.lib) + endif() else() - file(MAKE_DIRECTORY - ${CURRENT_PACKAGES_DIR}/bin - ${CURRENT_PACKAGES_DIR}/debug/bin) - file(RENAME - ${CURRENT_PACKAGES_DIR}/lib/mariadb/libmariadb.dll - ${CURRENT_PACKAGES_DIR}/bin/libmariadb.dll) - file(RENAME - ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/libmariadb.dll - ${CURRENT_PACKAGES_DIR}/debug/bin/libmariadb.dll) - file(RENAME - ${CURRENT_PACKAGES_DIR}/lib/mariadb/libmariadb.lib - ${CURRENT_PACKAGES_DIR}/lib/libmariadb.lib) - file(RENAME - ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/libmariadb.lib - ${CURRENT_PACKAGES_DIR}/debug/lib/libmariadb.lib) + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) + file(RENAME + ${CURRENT_PACKAGES_DIR}/lib/mariadb/libmariadb.dll + ${CURRENT_PACKAGES_DIR}/bin/libmariadb.dll) + file(RENAME + ${CURRENT_PACKAGES_DIR}/lib/mariadb/libmariadb.lib + ${CURRENT_PACKAGES_DIR}/lib/libmariadb.lib) + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) + file(RENAME + ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/libmariadb.dll + ${CURRENT_PACKAGES_DIR}/debug/bin/libmariadb.dll) + file(RENAME + ${CURRENT_PACKAGES_DIR}/debug/lib/mariadb/libmariadb.lib + ${CURRENT_PACKAGES_DIR}/debug/lib/libmariadb.lib) + endif() endif() # remove plugin folder diff --git a/ports/libmysql/CONTROL b/ports/libmysql/CONTROL index 6f856c607..007718af7 100644 --- a/ports/libmysql/CONTROL +++ b/ports/libmysql/CONTROL @@ -1,4 +1,4 @@ Source: libmysql -Version: 8.0.4-2 +Version: 8.0.4-3 Build-Depends: boost-algorithm, boost-geometry, boost-optional, boost-functional, boost-graph, openssl, icu, libevent, liblzma, lz4, zlib Description: A MySQL client library for C development. diff --git a/ports/libmysql/portfile.cmake b/ports/libmysql/portfile.cmake index 0e7b69edf..dfd38c41c 100644 --- a/ports/libmysql/portfile.cmake +++ b/ports/libmysql/portfile.cmake @@ -100,13 +100,18 @@ else() ${CURRENT_PACKAGES_DIR}/lib/mysqlclient.lib ${CURRENT_PACKAGES_DIR}/debug/lib/mysqlclient.lib) - # correct the dll directory - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) - file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/bin/libmysql.dll) - file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/bin/libmysql.pdb) - file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.dll) - file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.pdb) + # correct the dll directory + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) + file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/bin/libmysql.dll) + file (RENAME ${CURRENT_PACKAGES_DIR}/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/bin/libmysql.pdb) + endif() + + if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) + file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.dll ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.dll) + file (RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmysql.pdb ${CURRENT_PACKAGES_DIR}/debug/bin/libmysql.pdb) + endif() endif() file(READ ${CURRENT_PACKAGES_DIR}/include/mysql/mysql_com.h _contents) diff --git a/ports/libplist/CONTROL b/ports/libplist/CONTROL index 22e209d14..bb7db384c 100644 --- a/ports/libplist/CONTROL +++ b/ports/libplist/CONTROL @@ -1,3 +1,3 @@ Source: libplist -Version: 2.0.1.197-1 +Version: 2.0.1.197-2 Description: A library to handle Apple Property List format in binary or XML diff --git a/ports/libplist/portfile.cmake b/ports/libplist/portfile.cmake index e7761884d..51549e4ca 100644 --- a/ports/libplist/portfile.cmake +++ b/ports/libplist/portfile.cmake @@ -11,6 +11,9 @@ vcpkg_from_github( PATCHES dllexport.patch ) +set(ENV{_CL_} "$ENV{_CL_} /GL-") +set(ENV{_LINK_} "$ENV{_LINK_} /LTCG:OFF") + vcpkg_install_msbuild( SOURCE_PATH ${SOURCE_PATH} PROJECT_SUBPATH libplist.sln diff --git a/ports/libpqxx/CMakeLists.txt b/ports/libpqxx/CMakeLists.txt index c33d8863f..1d0473376 100644 --- a/ports/libpqxx/CMakeLists.txt +++ b/ports/libpqxx/CMakeLists.txt @@ -1,9 +1,11 @@ cmake_minimum_required(VERSION 3.5) project(libpqxx VERSION 6.0.0 LANGUAGES CXX) -set(CMAKE_DEBUG_POSTFIX "D") -find_library(LIBPQD libpqd) -find_library(LIBPQ libpq) +set(CMAKE_DEBUG_POSTFIX "d") +set(CMAKE_CXX_STANDARD 14) + +find_library(LIBPQD NAMES libpqd pqd) +find_library(LIBPQ NAMES libpq pq) find_path(LIBPQ_FE_H libpq-fe.h) find_path(POSTGRES_EXT_H postgres_ext.h) diff --git a/ports/libpqxx/CONTROL b/ports/libpqxx/CONTROL index 8860ddaf9..ce1a688e9 100644 --- a/ports/libpqxx/CONTROL +++ b/ports/libpqxx/CONTROL @@ -1,4 +1,4 @@ Source: libpqxx -Version: 6.0.0 +Version: 6.0.0-1 Description: The official C++ client API for PostgreSQL Build-Depends: libpq diff --git a/ports/libusbmuxd/CONTROL b/ports/libusbmuxd/CONTROL index b93c9d379..3773d17f9 100644 --- a/ports/libusbmuxd/CONTROL +++ b/ports/libusbmuxd/CONTROL @@ -1,4 +1,4 @@ Source: libusbmuxd -Version: 1.0.107-1 +Version: 1.0.107-2 Description: A client library to multiplex connections from and to iOS devices Build-Depends: libplist diff --git a/ports/libusbmuxd/portfile.cmake b/ports/libusbmuxd/portfile.cmake index 36414f68d..c4d338b19 100644 --- a/ports/libusbmuxd/portfile.cmake +++ b/ports/libusbmuxd/portfile.cmake @@ -11,6 +11,9 @@ vcpkg_from_github( PATCHES dllexport.patch ) +set(ENV{_CL_} "$ENV{_CL_} /GL-") +set(ENV{_LINK_} "$ENV{_LINK_} /LTCG:OFF") + vcpkg_install_msbuild( SOURCE_PATH ${SOURCE_PATH} PROJECT_SUBPATH libusbmuxd.sln diff --git a/ports/libuv/CONTROL b/ports/libuv/CONTROL index 29abd6bdf..5d9f3607f 100644 --- a/ports/libuv/CONTROL +++ b/ports/libuv/CONTROL @@ -1,3 +1,3 @@ Source: libuv -Version: 1.22.0 +Version: 1.23.0 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 29640eb62..29741433c 100644 --- a/ports/libuv/portfile.cmake +++ b/ports/libuv/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libuv/libuv - REF v1.22.0 - SHA512 e79cae6aa1d9cf2c8f7c0262c866fea2858d7104ece7c556e537e7d1cf884f191d5cd3e56539bfe857fa15dc50b57fdcb33019824cd585a2ca250a77d923af73 + REF v1.23.0 + SHA512 d1622ea9c03661ce2dfa18e1725fc1bfdf3b16d7e40babc552dcc5b2f86d52f4dd81cac9bf89914024b11e4ed3671264dfcfba867cfa3b1a2206b89c59c95851 HEAD_REF v1.x ) diff --git a/ports/libvorbis/CONTROL b/ports/libvorbis/CONTROL index 96b9ed8df..355d89e80 100644 --- a/ports/libvorbis/CONTROL +++ b/ports/libvorbis/CONTROL @@ -1,4 +1,4 @@ Source: libvorbis -Version: 1.3.6-112d3bd +Version: 1.3.6-112d3bd-1 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/libvorbis/portfile.cmake b/ports/libvorbis/portfile.cmake index 6a862c84b..83db50e01 100644 --- a/ports/libvorbis/portfile.cmake +++ b/ports/libvorbis/portfile.cmake @@ -1,29 +1,27 @@ -# 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) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/vorbis-112d3bd0aaacad51305e1464d4b381dabad0e88b) -vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/xiph/vorbis/archive/112d3bd0aaacad51305e1464d4b381dabad0e88b.zip" - FILENAME "vorbis-112d3bd0aaacad51305e1464d4b381dabad0e88b.zip" - SHA512 94e773a34f3e8d1c8ed0422f0eab345b35f76a96760141af83d69d007ebf076fca2d083a77d36bfa4ea10dfefa03a8fa35201aced963655ab8a524aaa7580b11 -) - -vcpkg_extract_source_archive(${ARCHIVE}) -vcpkg_apply_patches(SOURCE_PATH ${SOURCE_PATH} +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO xiph/vorbis + REF 112d3bd0aaacad51305e1464d4b381dabad0e88b + SHA512 df20e072a5e024ca2b8fc0e2890bb8968c0c948a833149a6026d2eaf6ab57b88b6d00d0bfb3b8bfcf879c7875e7cfacb8c6bf454bfc083b41d76132c567ff7ae + HEAD_REF master PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001-Dont-export-vorbisenc-functions.patch - ${CMAKE_CURRENT_LIST_DIR}/0002-Allow-deprecated-functions.patch + 0001-Dont-export-vorbisenc-functions.patch + 0002-Allow-deprecated-functions.patch ) -file(TO_NATIVE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/include" OGG_INCLUDE) -file(TO_NATIVE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/lib/ogg.lib" OGG_LIB_REL) -file(TO_NATIVE_PATH "${VCPKG_ROOT_DIR}/installed/${TARGET_TRIPLET}/debug/lib/ogg.lib" OGG_LIB_DBG) +file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/include" OGG_INCLUDE) +foreach(LIBNAME ogg.lib libogg.a libogg.dylib libogg.so) + if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/${LIBNAME}" OR EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/${LIBNAME}") + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/lib/${LIBNAME}" OGG_LIB_REL) + file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib/${LIBNAME}" OGG_LIB_DBG) + break() + endif() +endforeach() + +if(NOT OGG_LIB_REL) + message(FATAL_ERROR "Could not find libraries for dependency libogg!") +endif() vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} @@ -38,7 +36,6 @@ vcpkg_install_cmake() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright -file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libvorbis) -file(RENAME ${CURRENT_PACKAGES_DIR}/share/libvorbis/COPYING ${CURRENT_PACKAGES_DIR}/share/libvorbis/copyright) +configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/libvorbis/copyright COPYONLY) vcpkg_copy_pdbs() diff --git a/ports/libwebsockets/CONTROL b/ports/libwebsockets/CONTROL index bf33021a2..fdc4e7a55 100644 --- a/ports/libwebsockets/CONTROL +++ b/ports/libwebsockets/CONTROL @@ -1,4 +1,4 @@ Source: libwebsockets -Version: 3.0.0 +Version: 3.0.1 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. diff --git a/ports/libwebsockets/portfile.cmake b/ports/libwebsockets/portfile.cmake index 79903c3a4..7d95b5add 100644 --- a/ports/libwebsockets/portfile.cmake +++ b/ports/libwebsockets/portfile.cmake @@ -3,15 +3,11 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO warmcat/libwebsockets - REF v3.0.0 - SHA512 626edd00cc4f7559c67fc1663cbc4679a3c4e7a1b60944a7cf6968c6676073bbc15f9b90f4f2ea629394ebbcf84856663ae032a3557bae383bd0db54838d30e8 + REF v3.0.1 + SHA512 ba96af918dc53e5fe15792985892e726154ec6cd8b0e6b71ec133e1ac53792c42276fd6ae2c48c274acf4163579d8326e403201a8090fc58be29518c9c5b4304 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-UWP.patch + 0001-Fix-UWP.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LWS_WITH_STATIC) diff --git a/ports/libyaml/0001-fix-version.patch b/ports/libyaml/0001-fix-version.patch new file mode 100644 index 000000000..c2a59d30f --- /dev/null +++ b/ports/libyaml/0001-fix-version.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1abdd77..60a6b44 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -3,8 +3,8 @@ cmake_minimum_required(VERSION 3.0) + project (yaml C) + + set (YAML_VERSION_MAJOR 0) +-set (YAML_VERSION_MINOR 1) +-set (YAML_VERSION_PATCH 7) ++set (YAML_VERSION_MINOR 2) ++set (YAML_VERSION_PATCH 1) + set (YAML_VERSION_STRING "${YAML_VERSION_MAJOR}.${YAML_VERSION_MINOR}.${YAML_VERSION_PATCH}") + + option(BUILD_SHARED_LIBS "Build libyaml as a shared library" OFF) diff --git a/ports/libyaml/CONTROL b/ports/libyaml/CONTROL new file mode 100644 index 000000000..1c770b2b9 --- /dev/null +++ b/ports/libyaml/CONTROL @@ -0,0 +1,3 @@ +Source: libyaml +Version: 0.2.1-1 +Description: A C library for parsing and emitting YAML. diff --git a/ports/libyaml/portfile.cmake b/ports/libyaml/portfile.cmake new file mode 100644 index 000000000..047692719 --- /dev/null +++ b/ports/libyaml/portfile.cmake @@ -0,0 +1,23 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO yaml/libyaml + REF 0.2.1 + SHA512 8b91738183a6d81c2c0381b4279cff9d8f811dac643ce5e08aa869058f5653ad8a2d9d8f9e563b26ad75b617b80b10ccb32753984a50ed684529a90bdd248bff + HEAD_REF master + PATCHES 0001-fix-version.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/include/config.h) + +vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) + +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/libyaml/copyright COPYONLY) diff --git a/ports/linenoise-ng/CONTROL b/ports/linenoise-ng/CONTROL new file mode 100644 index 000000000..8023c7f7d --- /dev/null +++ b/ports/linenoise-ng/CONTROL @@ -0,0 +1,3 @@ +Source: linenoise-ng +Version: 4754bee2d8eb3 +Description: A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters. \ No newline at end of file diff --git a/ports/linenoise-ng/portfile.cmake b/ports/linenoise-ng/portfile.cmake new file mode 100644 index 000000000..c5e448e86 --- /dev/null +++ b/ports/linenoise-ng/portfile.cmake @@ -0,0 +1,22 @@ +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO arangodb/linenoise-ng + REF 4754bee2d8eb3c4511e6ac87cac62255b2011e2f + SHA512 080c6b4cde911a162885a2e6fc95143ab481b4dcc0f8b871a55a071ccb4ab868b19201ec17475a3c3ceef1b82325d757913383b3c46da6946ddc8bfc0d82d9ca + HEAD_REF master +) + + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/linenoise-ng RENAME copyright) diff --git a/ports/live555/CMakeLists.txt b/ports/live555/CMakeLists.txt index 8be171fc2..9d126cda1 100644 --- a/ports/live555/CMakeLists.txt +++ b/ports/live555/CMakeLists.txt @@ -8,6 +8,10 @@ include_directories( UsageEnvironment/include ) +if (NOT MSVC) + add_compile_options(-DSOCKLEN_T=socklen_t) +endif() + file(GLOB BASIC_USAGE_ENVIRONMENT_SRCS BasicUsageEnvironment/*.c BasicUsageEnvironment/*.cpp) add_library(BasicUsageEnvironment ${BASIC_USAGE_ENVIRONMENT_SRCS}) diff --git a/ports/lodepng/CONTROL b/ports/lodepng/CONTROL index 684e658f4..e6c10c474 100644 --- a/ports/lodepng/CONTROL +++ b/ports/lodepng/CONTROL @@ -1,3 +1,3 @@ Source: lodepng -Version: 2018-07-30 +Version: 2018-09-18-1 Description: PNG encoder and decoder in C and C++ diff --git a/ports/lodepng/algorithm.patch b/ports/lodepng/algorithm.patch new file mode 100644 index 000000000..796bdfc66 --- /dev/null +++ b/ports/lodepng/algorithm.patch @@ -0,0 +1,12 @@ +diff --git a/lodepng_util.cpp b/lodepng_util.cpp +index 4b571bb..58ba81a 100644 +--- a/lodepng_util.cpp ++++ b/lodepng_util.cpp +@@ -26,6 +26,7 @@ freely, subject to the following restrictions: + #include "lodepng_util.h" + #include + #include "math.h" ++#include + + namespace lodepng + { diff --git a/ports/lodepng/portfile.cmake b/ports/lodepng/portfile.cmake index 1d85c7084..367764456 100644 --- a/ports/lodepng/portfile.cmake +++ b/ports/lodepng/portfile.cmake @@ -3,9 +3,10 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lvandeve/lodepng - REF 955a04e517c1ec266f77f28a89a51d8041a4f1a0 - SHA512 97f516df220749f6a89b4621be23c419e83a439f8e2689fe9b4719a792909399aa2cf7294ce90f3ac28a13e31f703537e6c701ea032eab1d983093305ed04a5e + REF ceb6b482b5a16d2bb3d6b3c735ca2b16322780d5 + SHA512 5293f6c629ff006410c9180cabac5f4de7643f04ec6c3d7ff46c1b09317ff9156d28ed4344a46db0b3a06937349590aa8958722ba0432178a347da58736cbf41 HEAD_REF master + PATCHES algorithm.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/luabridge/CONTROL b/ports/luabridge/CONTROL new file mode 100644 index 000000000..595e3b113 --- /dev/null +++ b/ports/luabridge/CONTROL @@ -0,0 +1,3 @@ +Source: luabridge +Version: 2.1-1 +Description: A lightweight, dependency-free library for binding Lua to C++ diff --git a/ports/luabridge/portfile.cmake b/ports/luabridge/portfile.cmake new file mode 100644 index 000000000..6ff91dd3a --- /dev/null +++ b/ports/luabridge/portfile.cmake @@ -0,0 +1,20 @@ +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO vinniefalco/LuaBridge + REF 2.1 + SHA512 062efda16fe43a02bcc757aaebba839e0ec72a9a3b7bf1e5bc1427a54d664a52197c8bcd4ac584f0d04cce812c0f078e257716e8bca016bcabda82c2c332ac04 + HEAD_REF master +) + +file( + COPY ${SOURCE_PATH}/Source/LuaBridge + DESTINATION ${CURRENT_PACKAGES_DIR}/include +) + +# Handle copyright +configure_file( + ${SOURCE_PATH}/README.md + ${CURRENT_PACKAGES_DIR}/share/luabridge/copyright + COPYONLY +) diff --git a/ports/luasocket/CONTROL b/ports/luasocket/CONTROL index c46c2afd3..ec478e62f 100644 --- a/ports/luasocket/CONTROL +++ b/ports/luasocket/CONTROL @@ -1,4 +1,4 @@ Source: luasocket -Version: 2018-06-12 +Version: 2018-09-18 Description: LuaSocket is a Lua extension library that is composed by two parts: a C core that provides support for the TCP and UDP transport layers, and a set of Lua modules that add support for functionality commonly needed by applications that deal with the Internet. Build-Depends: lua diff --git a/ports/luasocket/portfile.cmake b/ports/luasocket/portfile.cmake index 650e1ca2e..b7288fed1 100644 --- a/ports/luasocket/portfile.cmake +++ b/ports/luasocket/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO diegonehab/luasocket - REF 4df569e9f867432f25f0bfbfa56b0962feb3326e - SHA512 ef4aa61f12822a6004096c422ba2ea4f109bee1cc2eb3847bd2b16f6ec2dd28b20a767bfd8b1ee73e355f7b0ced3c2f7c4cf5123e8d0472e25c193920c2d34a1 + REF 288219fd6b53ce2e709745c9918aa4c4b7f715c9 + SHA512 f7b1f90437655352ab69a733bc2b2a0080d116fb8b6896fce0eb8ba6c593e2e3f64684c956d387a198d5aa48c4a9208531ab5e96805d92f0d4ca3ed46179be0b HEAD_REF master) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/lz4/CONTROL b/ports/lz4/CONTROL index bf2dd6c08..439116519 100644 --- a/ports/lz4/CONTROL +++ b/ports/lz4/CONTROL @@ -1,3 +1,3 @@ Source: lz4 -Version: 1.8.2 +Version: 1.8.3 Description: Lossless compression algorithm, providing compression speed at 400 MB/s per core. diff --git a/ports/lz4/portfile.cmake b/ports/lz4/portfile.cmake index bbeee708f..bf0d3d52e 100644 --- a/ports/lz4/portfile.cmake +++ b/ports/lz4/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lz4/lz4 - REF v1.8.2 - SHA512 5fadc79334d37739c947d6dfc24f48ce82989fc5ee4f2bb8201ccf7ee3230b9e6e7c8488beb64050a035369f4247161d258bdb539578bec224ccebfef1b8a763 + REF v1.8.3 + SHA512 5d284f75a0c4ad11ebc4abb4394d98c863436da0718d62f648ef2e2cda8e5adf47617a4b43594375f7b0b673541a9ccfaf73880a55fd240986594558214dbf9f HEAD_REF dev) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/mbedtls/CONTROL b/ports/mbedtls/CONTROL index ae9d78cc9..04cb1003c 100644 --- a/ports/mbedtls/CONTROL +++ b/ports/mbedtls/CONTROL @@ -1,3 +1,3 @@ Source: mbedtls -Version: 2.12.0 +Version: 2.13.1 Description: An open source, portable, easy to use, readable and flexible SSL library diff --git a/ports/mbedtls/portfile.cmake b/ports/mbedtls/portfile.cmake index 495dfb53c..59d067f11 100644 --- a/ports/mbedtls/portfile.cmake +++ b/ports/mbedtls/portfile.cmake @@ -5,8 +5,8 @@ set(VCPKG_LIBRARY_LINKAGE static) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ARMmbed/mbedtls - REF mbedtls-2.12.0 - SHA512 c7c2aeb1717886ad87486af2dccb05b2f051372c69fc914f30e4ace1067f5be39ba04e093ad522f904e23a576c1ff430bd772e77823d0f4720f6fc5c1b8aa98c + REF mbedtls-2.13.1 + SHA512 1a70446b533534c075de38ce0839f7947077ffdddffa57172594b8f8a3c4a3fbdfa9b06d13c198008abad33633e509f06abe5362f603f63850d9ec44734b3c0b HEAD_REF master ) diff --git a/ports/modp-base64/CMakeLists.txt b/ports/modp-base64/CMakeLists.txt new file mode 100644 index 000000000..d470ccc20 --- /dev/null +++ b/ports/modp-base64/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.8) +project(libmodpbase64 C) + +if(MSVC) + add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) +endif() + + +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake" +"${CMAKE_CURRENT_BINARY_DIR}/config.h" @ONLY) + + +include_directories(src ${CMAKE_CURRENT_BINARY_DIR}) + + +add_library(libmodpbase64 src/modp_b64.c libmodpbase64.def) + + +install( + TARGETS libmodpbase64 + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + + +if(NOT DISABLE_INSTALL_HEADERS) + install( + FILES src/modp_b64.h + DESTINATION include + ) +endif() diff --git a/ports/modp-base64/CONTROL b/ports/modp-base64/CONTROL new file mode 100644 index 000000000..3f277871a --- /dev/null +++ b/ports/modp-base64/CONTROL @@ -0,0 +1,3 @@ +Source: modp-base64 +Version: +Description: diff --git a/ports/modp-base64/config.h.cmake b/ports/modp-base64/config.h.cmake new file mode 100644 index 000000000..da32c2481 --- /dev/null +++ b/ports/modp-base64/config.h.cmake @@ -0,0 +1,4 @@ +#ifndef MODP_CONFIG_H +#define MODP_CONFIG_H + +#endif diff --git a/ports/modp-base64/libmodpbase64.def b/ports/modp-base64/libmodpbase64.def new file mode 100644 index 000000000..defd83b15 --- /dev/null +++ b/ports/modp-base64/libmodpbase64.def @@ -0,0 +1,4 @@ +LIBRARY libmodpbase64 +EXPORTS + modp_b64_encode @1 + modp_b64_decode @2 diff --git a/ports/modp-base64/modp_b64_data.h b/ports/modp-base64/modp_b64_data.h new file mode 100644 index 000000000..e3c54b4bc --- /dev/null +++ b/ports/modp-base64/modp_b64_data.h @@ -0,0 +1,480 @@ +#include +#define CHAR62 '+' +#define CHAR63 '/' +#define CHARPAD '=' +static const char e0[256] = { + 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', + 'C', 'C', 'D', 'D', 'D', 'D', 'E', 'E', 'E', 'E', + 'F', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'H', 'H', + 'H', 'H', 'I', 'I', 'I', 'I', 'J', 'J', 'J', 'J', + 'K', 'K', 'K', 'K', 'L', 'L', 'L', 'L', 'M', 'M', + 'M', 'M', 'N', 'N', 'N', 'N', 'O', 'O', 'O', 'O', + 'P', 'P', 'P', 'P', 'Q', 'Q', 'Q', 'Q', 'R', 'R', + 'R', 'R', 'S', 'S', 'S', 'S', 'T', 'T', 'T', 'T', + 'U', 'U', 'U', 'U', 'V', 'V', 'V', 'V', 'W', 'W', + 'W', 'W', 'X', 'X', 'X', 'X', 'Y', 'Y', 'Y', 'Y', + 'Z', 'Z', 'Z', 'Z', 'a', 'a', 'a', 'a', 'b', 'b', + 'b', 'b', 'c', 'c', 'c', 'c', 'd', 'd', 'd', 'd', + 'e', 'e', 'e', 'e', 'f', 'f', 'f', 'f', 'g', 'g', + 'g', 'g', 'h', 'h', 'h', 'h', 'i', 'i', 'i', 'i', + 'j', 'j', 'j', 'j', 'k', 'k', 'k', 'k', 'l', 'l', + 'l', 'l', 'm', 'm', 'm', 'm', 'n', 'n', 'n', 'n', + 'o', 'o', 'o', 'o', 'p', 'p', 'p', 'p', 'q', 'q', + 'q', 'q', 'r', 'r', 'r', 'r', 's', 's', 's', 's', + 't', 't', 't', 't', 'u', 'u', 'u', 'u', 'v', 'v', + 'v', 'v', 'w', 'w', 'w', 'w', 'x', 'x', 'x', 'x', + 'y', 'y', 'y', 'y', 'z', 'z', 'z', 'z', '0', '0', + '0', '0', '1', '1', '1', '1', '2', '2', '2', '2', + '3', '3', '3', '3', '4', '4', '4', '4', '5', '5', + '5', '5', '6', '6', '6', '6', '7', '7', '7', '7', + '8', '8', '8', '8', '9', '9', '9', '9', '+', '+', + '+', '+', '/', '/', '/', '/' +}; + +static const char e1[256] = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', + 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', + 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', '+', '/', 'A', 'B', 'C', 'D', 'E', 'F', + 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', + 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', + 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', + 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', + '4', '5', '6', '7', '8', '9', '+', '/', 'A', 'B', + 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', + 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', + 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + '+', '/', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', + 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', + 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', + 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', + 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', + 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', + '6', '7', '8', '9', '+', '/' +}; + +static const char e2[256] = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', + 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', + 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', + 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', '+', '/', 'A', 'B', 'C', 'D', 'E', 'F', + 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', + 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', + 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', + 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', + '4', '5', '6', '7', '8', '9', '+', '/', 'A', 'B', + 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', + 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', + 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', + 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + '+', '/', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', + 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', + 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', + 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', + 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', + 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', + '6', '7', '8', '9', '+', '/' +}; + + + +#ifdef WORDS_BIGENDIAN + + +/* SPECIAL DECODE TABLES FOR BIG ENDIAN (IBM/MOTOROLA/SUN) CPUS */ + +static const uint32_t d0[256] = { +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x00f80000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00fc0000, +0x00d00000, 0x00d40000, 0x00d80000, 0x00dc0000, 0x00e00000, 0x00e40000, +0x00e80000, 0x00ec0000, 0x00f00000, 0x00f40000, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000, +0x00040000, 0x00080000, 0x000c0000, 0x00100000, 0x00140000, 0x00180000, +0x001c0000, 0x00200000, 0x00240000, 0x00280000, 0x002c0000, 0x00300000, +0x00340000, 0x00380000, 0x003c0000, 0x00400000, 0x00440000, 0x00480000, +0x004c0000, 0x00500000, 0x00540000, 0x00580000, 0x005c0000, 0x00600000, +0x00640000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x00680000, 0x006c0000, 0x00700000, 0x00740000, 0x00780000, +0x007c0000, 0x00800000, 0x00840000, 0x00880000, 0x008c0000, 0x00900000, +0x00940000, 0x00980000, 0x009c0000, 0x00a00000, 0x00a40000, 0x00a80000, +0x00ac0000, 0x00b00000, 0x00b40000, 0x00b80000, 0x00bc0000, 0x00c00000, +0x00c40000, 0x00c80000, 0x00cc0000, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff +}; + + +static const uint32_t d1[256] = { +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x0003e000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x0003f000, +0x00034000, 0x00035000, 0x00036000, 0x00037000, 0x00038000, 0x00039000, +0x0003a000, 0x0003b000, 0x0003c000, 0x0003d000, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000, +0x00001000, 0x00002000, 0x00003000, 0x00004000, 0x00005000, 0x00006000, +0x00007000, 0x00008000, 0x00009000, 0x0000a000, 0x0000b000, 0x0000c000, +0x0000d000, 0x0000e000, 0x0000f000, 0x00010000, 0x00011000, 0x00012000, +0x00013000, 0x00014000, 0x00015000, 0x00016000, 0x00017000, 0x00018000, +0x00019000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x0001a000, 0x0001b000, 0x0001c000, 0x0001d000, 0x0001e000, +0x0001f000, 0x00020000, 0x00021000, 0x00022000, 0x00023000, 0x00024000, +0x00025000, 0x00026000, 0x00027000, 0x00028000, 0x00029000, 0x0002a000, +0x0002b000, 0x0002c000, 0x0002d000, 0x0002e000, 0x0002f000, 0x00030000, +0x00031000, 0x00032000, 0x00033000, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff +}; + + +static const uint32_t d2[256] = { +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x00000f80, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000fc0, +0x00000d00, 0x00000d40, 0x00000d80, 0x00000dc0, 0x00000e00, 0x00000e40, +0x00000e80, 0x00000ec0, 0x00000f00, 0x00000f40, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000, +0x00000040, 0x00000080, 0x000000c0, 0x00000100, 0x00000140, 0x00000180, +0x000001c0, 0x00000200, 0x00000240, 0x00000280, 0x000002c0, 0x00000300, +0x00000340, 0x00000380, 0x000003c0, 0x00000400, 0x00000440, 0x00000480, +0x000004c0, 0x00000500, 0x00000540, 0x00000580, 0x000005c0, 0x00000600, +0x00000640, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x00000680, 0x000006c0, 0x00000700, 0x00000740, 0x00000780, +0x000007c0, 0x00000800, 0x00000840, 0x00000880, 0x000008c0, 0x00000900, +0x00000940, 0x00000980, 0x000009c0, 0x00000a00, 0x00000a40, 0x00000a80, +0x00000ac0, 0x00000b00, 0x00000b40, 0x00000b80, 0x00000bc0, 0x00000c00, +0x00000c40, 0x00000c80, 0x00000cc0, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff +}; + + +static const uint32_t d3[256] = { +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x0000003e, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x0000003f, +0x00000034, 0x00000035, 0x00000036, 0x00000037, 0x00000038, 0x00000039, +0x0000003a, 0x0000003b, 0x0000003c, 0x0000003d, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000, +0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, +0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c, +0x0000000d, 0x0000000e, 0x0000000f, 0x00000010, 0x00000011, 0x00000012, +0x00000013, 0x00000014, 0x00000015, 0x00000016, 0x00000017, 0x00000018, +0x00000019, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x0000001a, 0x0000001b, 0x0000001c, 0x0000001d, 0x0000001e, +0x0000001f, 0x00000020, 0x00000021, 0x00000022, 0x00000023, 0x00000024, +0x00000025, 0x00000026, 0x00000027, 0x00000028, 0x00000029, 0x0000002a, +0x0000002b, 0x0000002c, 0x0000002d, 0x0000002e, 0x0000002f, 0x00000030, +0x00000031, 0x00000032, 0x00000033, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff +}; + + +#else + + +/* SPECIAL DECODE TABLES FOR LITTLE ENDIAN (INTEL) CPUS */ + +static const uint32_t d0[256] = { +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x000000f8, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x000000fc, +0x000000d0, 0x000000d4, 0x000000d8, 0x000000dc, 0x000000e0, 0x000000e4, +0x000000e8, 0x000000ec, 0x000000f0, 0x000000f4, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000, +0x00000004, 0x00000008, 0x0000000c, 0x00000010, 0x00000014, 0x00000018, +0x0000001c, 0x00000020, 0x00000024, 0x00000028, 0x0000002c, 0x00000030, +0x00000034, 0x00000038, 0x0000003c, 0x00000040, 0x00000044, 0x00000048, +0x0000004c, 0x00000050, 0x00000054, 0x00000058, 0x0000005c, 0x00000060, +0x00000064, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x00000068, 0x0000006c, 0x00000070, 0x00000074, 0x00000078, +0x0000007c, 0x00000080, 0x00000084, 0x00000088, 0x0000008c, 0x00000090, +0x00000094, 0x00000098, 0x0000009c, 0x000000a0, 0x000000a4, 0x000000a8, +0x000000ac, 0x000000b0, 0x000000b4, 0x000000b8, 0x000000bc, 0x000000c0, +0x000000c4, 0x000000c8, 0x000000cc, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff +}; + + +static const uint32_t d1[256] = { +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x0000e003, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x0000f003, +0x00004003, 0x00005003, 0x00006003, 0x00007003, 0x00008003, 0x00009003, +0x0000a003, 0x0000b003, 0x0000c003, 0x0000d003, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000, +0x00001000, 0x00002000, 0x00003000, 0x00004000, 0x00005000, 0x00006000, +0x00007000, 0x00008000, 0x00009000, 0x0000a000, 0x0000b000, 0x0000c000, +0x0000d000, 0x0000e000, 0x0000f000, 0x00000001, 0x00001001, 0x00002001, +0x00003001, 0x00004001, 0x00005001, 0x00006001, 0x00007001, 0x00008001, +0x00009001, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x0000a001, 0x0000b001, 0x0000c001, 0x0000d001, 0x0000e001, +0x0000f001, 0x00000002, 0x00001002, 0x00002002, 0x00003002, 0x00004002, +0x00005002, 0x00006002, 0x00007002, 0x00008002, 0x00009002, 0x0000a002, +0x0000b002, 0x0000c002, 0x0000d002, 0x0000e002, 0x0000f002, 0x00000003, +0x00001003, 0x00002003, 0x00003003, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff +}; + + +static const uint32_t d2[256] = { +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x00800f00, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00c00f00, +0x00000d00, 0x00400d00, 0x00800d00, 0x00c00d00, 0x00000e00, 0x00400e00, +0x00800e00, 0x00c00e00, 0x00000f00, 0x00400f00, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000, +0x00400000, 0x00800000, 0x00c00000, 0x00000100, 0x00400100, 0x00800100, +0x00c00100, 0x00000200, 0x00400200, 0x00800200, 0x00c00200, 0x00000300, +0x00400300, 0x00800300, 0x00c00300, 0x00000400, 0x00400400, 0x00800400, +0x00c00400, 0x00000500, 0x00400500, 0x00800500, 0x00c00500, 0x00000600, +0x00400600, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x00800600, 0x00c00600, 0x00000700, 0x00400700, 0x00800700, +0x00c00700, 0x00000800, 0x00400800, 0x00800800, 0x00c00800, 0x00000900, +0x00400900, 0x00800900, 0x00c00900, 0x00000a00, 0x00400a00, 0x00800a00, +0x00c00a00, 0x00000b00, 0x00400b00, 0x00800b00, 0x00c00b00, 0x00000c00, +0x00400c00, 0x00800c00, 0x00c00c00, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff +}; + + +static const uint32_t d3[256] = { +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x003e0000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x003f0000, +0x00340000, 0x00350000, 0x00360000, 0x00370000, 0x00380000, 0x00390000, +0x003a0000, 0x003b0000, 0x003c0000, 0x003d0000, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000, +0x00010000, 0x00020000, 0x00030000, 0x00040000, 0x00050000, 0x00060000, +0x00070000, 0x00080000, 0x00090000, 0x000a0000, 0x000b0000, 0x000c0000, +0x000d0000, 0x000e0000, 0x000f0000, 0x00100000, 0x00110000, 0x00120000, +0x00130000, 0x00140000, 0x00150000, 0x00160000, 0x00170000, 0x00180000, +0x00190000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x001a0000, 0x001b0000, 0x001c0000, 0x001d0000, 0x001e0000, +0x001f0000, 0x00200000, 0x00210000, 0x00220000, 0x00230000, 0x00240000, +0x00250000, 0x00260000, 0x00270000, 0x00280000, 0x00290000, 0x002a0000, +0x002b0000, 0x002c0000, 0x002d0000, 0x002e0000, 0x002f0000, 0x00300000, +0x00310000, 0x00320000, 0x00330000, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, +0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff +}; + + +#endif diff --git a/ports/modp-base64/portfile.cmake b/ports/modp-base64/portfile.cmake new file mode 100644 index 000000000..3ff058474 --- /dev/null +++ b/ports/modp-base64/portfile.cmake @@ -0,0 +1,33 @@ +include(vcpkg_common_functions) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/modp-base64-v2.0.0) +vcpkg_download_distfile(ARCHIVE + URLS "https://web.archive.org/web/20060620024518/http://modp.com:80/release/base64/modp-base64-v2.0.0.tar.bz2" + FILENAME "modp-base64-v2.0.0.tar.bz2" + SHA512 474e20cbbc47f31af5e981a6a9028fcec57e3ae9bb5ba979aa5c5c4cab6f301208fe6f441a0106df4c223d89fb6f18b19ab8812cf9f3c9900e54524e35b45720 +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY + ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt + ${CMAKE_CURRENT_LIST_DIR}/config.h.cmake + ${CMAKE_CURRENT_LIST_DIR}/libmodpbase64.def + DESTINATION ${SOURCE_PATH} +) +file(COPY + ${CMAKE_CURRENT_LIST_DIR}/modp_b64_data.h + DESTINATION ${SOURCE_PATH}/src +) + + + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON +) + +vcpkg_install_cmake() + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/modp-base64 RENAME copyright) diff --git a/ports/morton-nd/CONTROL b/ports/morton-nd/CONTROL new file mode 100644 index 000000000..40065dbee --- /dev/null +++ b/ports/morton-nd/CONTROL @@ -0,0 +1,3 @@ +Source: morton-nd +Version: 2.0.0 +Description: (C++14) header-only library for fast Morton encoding/decoding in N dimensions. diff --git a/ports/morton-nd/portfile.cmake b/ports/morton-nd/portfile.cmake new file mode 100644 index 000000000..63c8ee95f --- /dev/null +++ b/ports/morton-nd/portfile.cmake @@ -0,0 +1,16 @@ +#header-only library +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO kevinhartman/morton-nd + REF v2.0.0 + SHA512 f349187a9c6094ebdc8dc10a0b028e119a82721946e2f629b3f64edade9665a97824d6a52496e470da61e5b65ae46c953346b271c2db11f5f2e3c7748de03daf + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/morton-nd) +file(COPY ${SOURCE_PATH}/NOTICE DESTINATION ${CURRENT_PACKAGES_DIR}/share/morton-nd) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/morton-nd/LICENSE ${CURRENT_PACKAGES_DIR}/share/morton-nd/copyright) + +file(GLOB HEADER_FILES ${SOURCE_PATH}/morton-nd/include/*.h) +file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/morton-nd) diff --git a/ports/ms-gsl/CONTROL b/ports/ms-gsl/CONTROL index 9171c29f7..37285222e 100644 --- a/ports/ms-gsl/CONTROL +++ b/ports/ms-gsl/CONTROL @@ -1,3 +1,3 @@ Source: ms-gsl -Version: 2018-07-30 +Version: 2018-09-18 Description: Microsoft implementation of the Guidelines Support Library \ No newline at end of file diff --git a/ports/ms-gsl/portfile.cmake b/ports/ms-gsl/portfile.cmake index 959c3b21b..22d6fc21e 100644 --- a/ports/ms-gsl/portfile.cmake +++ b/ports/ms-gsl/portfile.cmake @@ -4,8 +4,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/GSL - REF 5778149583e69b34ab375039ffcc5d51a4dd7b37 - SHA512 d59d73b09ca9f3a1be21f13437ae456eaed3378284557eac5305bd97525a2286b650ecefff2c9e8575ab3ac54351c7b82f8ddc6ac93d99d757d0d9811a378def + REF 1995e86d1ad70519465374fb4876c6ef7c9f8c61 + SHA512 00d512269f9f126c93882001704c2c1926556d72fd5e26f8ba223d92f09d9955194e7bf08b172483b5d649021b0b7b54eca3e3ea2337e16b4cd5a8313a85ba66 HEAD_REF master ) diff --git a/ports/nana/CONTROL b/ports/nana/CONTROL index 221a7e643..09b9cba0d 100644 --- a/ports/nana/CONTROL +++ b/ports/nana/CONTROL @@ -1,4 +1,4 @@ Source: nana -Version: 1.6.1 +Version: 1.6.2 Description: Cross-platform library for GUI programming in modern C++ style. Build-Depends: libpng, libjpeg-turbo, freetype (!uwp&&!windows), fontconfig (!uwp&&!windows) diff --git a/ports/nana/portfile.cmake b/ports/nana/portfile.cmake index 80c2d57f6..ff9f43145 100644 --- a/ports/nana/portfile.cmake +++ b/ports/nana/portfile.cmake @@ -11,8 +11,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cnjinhao/nana - REF v1.6.1 - SHA512 79a5176afe1ab88050ee0f3797615d20783acaf5b94688ae1efe61d08983865046af0cd3271969139c50ef23d927c1599bdb35e06760f717b508971d8531c882 + REF v1.6.2 + SHA512 95271764813e64126abf2941bfc13b399ffe093c570891f65f331505066ce0dcad7df4170b2616951b7e0234ea2d6d21219cdfd15b112ecf598a3afa992cceb4 HEAD_REF develop ) diff --git a/ports/nanodbc/CONTROL b/ports/nanodbc/CONTROL index 0343119a0..ef676937e 100644 --- a/ports/nanodbc/CONTROL +++ b/ports/nanodbc/CONTROL @@ -1,3 +1,3 @@ Source: nanodbc -Version: 2.12.4-1 +Version: 2.12.4-2 Description: A small C++ wrapper for the native C ODBC API. diff --git a/ports/nanodbc/portfile.cmake b/ports/nanodbc/portfile.cmake index fc735f03f..7019852ea 100644 --- a/ports/nanodbc/portfile.cmake +++ b/ports/nanodbc/portfile.cmake @@ -6,7 +6,7 @@ include(vcpkg_common_functions) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/nanodbc-2.12.4) vcpkg_download_distfile(ARCHIVE - URLS "https://github.com/lexicalunit/nanodbc/archive/v2.12.4.tar.gz" + URLS "https://github.com/nanodbc/nanodbc/archive/v2.12.4.tar.gz" FILENAME "nanodbc-2.12.4.tar.gz" SHA512 b9a924516b2a777e5f1497774997672320548722ed53413b0a7ad5d503e2f8ca1099f5059a912b7aae410928f4c4edcdfd02e4cfbf415976cd222697b354b4e6 ) diff --git a/ports/nghttp2/CONTROL b/ports/nghttp2/CONTROL index 4b69590c0..09297c507 100644 --- a/ports/nghttp2/CONTROL +++ b/ports/nghttp2/CONTROL @@ -1,3 +1,3 @@ Source: nghttp2 -Version: 1.32.1 +Version: 1.33.0 Description: Implementation of the Hypertext Transfer Protocol version 2 in C diff --git a/ports/nghttp2/portfile.cmake b/ports/nghttp2/portfile.cmake index 354e8e9d2..96829566c 100644 --- a/ports/nghttp2/portfile.cmake +++ b/ports/nghttp2/portfile.cmake @@ -1,7 +1,7 @@ include(vcpkg_common_functions) set(LIB_NAME nghttp2) -set(LIB_VERSION 1.32.1) +set(LIB_VERSION 1.33.0) set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.gz) set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION}) @@ -9,7 +9,7 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://github.com/nghttp2/nghttp2/releases/download/v${LIB_VERSION}/${LIB_FILENAME}" FILENAME "${LIB_FILENAME}" - SHA512 8f138e96ad7029711d3c177267dcd35759867d711a935212b2257e20ef9a274c65d247b5d44f03d81edc8f52cb5fb1b751ae102cebcac39d102c1637ad040903 + SHA512 39c37a6579d1da6a6bcfb32c822f59943796ef4c11d82146924b8e279653c4afca496b6cc7fd65b0181f95fa5007a2dd0589038d6f4354c75d65e60d29528268 ) vcpkg_extract_source_archive(${ARCHIVE}) diff --git a/ports/nlohmann-json/CONTROL b/ports/nlohmann-json/CONTROL index f6dc15495..8ee107a92 100644 --- a/ports/nlohmann-json/CONTROL +++ b/ports/nlohmann-json/CONTROL @@ -1,3 +1,3 @@ Source: nlohmann-json -Version: 3.2.0 +Version: 3.3.0 Description: JSON for Modern C++ diff --git a/ports/nlohmann-json/portfile.cmake b/ports/nlohmann-json/portfile.cmake index 9abe4152d..5cee9565e 100644 --- a/ports/nlohmann-json/portfile.cmake +++ b/ports/nlohmann-json/portfile.cmake @@ -1,11 +1,11 @@ include(vcpkg_common_functions) -set(SOURCE_VERSION 3.2.0) +set(SOURCE_VERSION 3.3.0) vcpkg_download_distfile(HEADER URLS "https://github.com/nlohmann/json/releases/download/v${SOURCE_VERSION}/json.hpp" FILENAME "nlohmann-json-${SOURCE_VERSION}.hpp" - SHA512 c9090ccb5b00812d69e9fde44826b7168ba4a68d254440f3b4ac9354899785871a9d2806aac5cdba84359035a55ac19ec024c36a32a893eee1c7740536dd0eca + SHA512 c4e4bb84d1488f87a02c4e12409491225e345cc508e6dbbee1a3542fbd4953052c256d0fe78c4d3ce02d44c3a2155fe66f0c8a93a3851ddf94fec4f9f3fd6918 ) vcpkg_download_distfile(LICENSE diff --git a/ports/nng/CONTROL b/ports/nng/CONTROL index 9db656338..b70aaa5b0 100644 --- a/ports/nng/CONTROL +++ b/ports/nng/CONTROL @@ -1,3 +1,7 @@ Source: nng Version: 1.0.1 Description: NNG, like its predecessors nanomsg (and to some extent ZeroMQ), is a lightweight, broker-less library, offering a simple API to solve common recurring messaging problems, such as publish/subscribe, RPC-style request/reply, or service discovery. + +Feature: mbedtls +Description: nng built with TLS support(needs mbedTLS) +Build-Depends: mbedtls diff --git a/ports/nng/portfile.cmake b/ports/nng/portfile.cmake index f0da2d5d2..d7465170a 100644 --- a/ports/nng/portfile.cmake +++ b/ports/nng/portfile.cmake @@ -11,6 +11,12 @@ vcpkg_from_github( string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" NNG_STATIC_LIB) +if("mbedtls" IN_LIST FEATURES) + set(NNG_ENABLE_TLS ON) +else() + set(NNG_ENABLE_TLS OFF) +endif() + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA @@ -19,6 +25,7 @@ vcpkg_configure_cmake( -DNNG_STATIC_LIB=${NNG_STATIC_LIB} -DNNG_TESTS=OFF -DNNG_ENABLE_NNGCAT=OFF + -DNNG_ENABLE_TLS=${NNG_ENABLE_TLS} ) vcpkg_install_cmake() diff --git a/ports/nuklear/CONTROL b/ports/nuklear/CONTROL index 8132c1ce8..cfcacd03d 100644 --- a/ports/nuklear/CONTROL +++ b/ports/nuklear/CONTROL @@ -1,3 +1,3 @@ Source: nuklear -Version: 2018-07-01 +Version: 2018-09-18 Description: This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain diff --git a/ports/nuklear/portfile.cmake b/ports/nuklear/portfile.cmake index b18e67fc7..e50f291f8 100644 --- a/ports/nuklear/portfile.cmake +++ b/ports/nuklear/portfile.cmake @@ -2,8 +2,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vurtun/nuklear - REF aeb18269131ab2c8d579aab935e15a8f4b040e38 - SHA512 174595cb9c196af2c7648b6f88d43f66585a97fd99e3147c2ab2e371821a1b56cf60178a1aef53ee09afb9213548993cff6be615a32c5c16dca1e0858c19e162 + REF 2a379bc03879dc22ceb3a03f957fdf4870716cc6 + SHA512 5425267abcd410cf0f2e6d9e7a685eb33289f054b90fc5a9ea9630b5f9c03056c3ca92d0ee00d884806b9b1911bb2b30ebea447278d1eebcdda29347dd547d07 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/nuklear.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/openal-soft/CONTROL b/ports/openal-soft/CONTROL index cd7078c08..296608f0f 100644 --- a/ports/openal-soft/CONTROL +++ b/ports/openal-soft/CONTROL @@ -1,3 +1,3 @@ Source: openal-soft -Version: 1.18.2-2 +Version: 1.19.0 Description: OpenAL Soft is an LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API. diff --git a/ports/openal-soft/portfile.cmake b/ports/openal-soft/portfile.cmake index f35e81b4e..0f1abb08c 100644 --- a/ports/openal-soft/portfile.cmake +++ b/ports/openal-soft/portfile.cmake @@ -6,16 +6,12 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kcat/openal-soft - REF openal-soft-1.18.2 - SHA512 85c62d3d16d2a371c1930310eed7219031203824289d9a30d60000f8e124ffa67e1bbfb15f1ba6841ef7346e88c000b9cca51c79d32c02e5dc9870392c536723 + REF openal-soft-1.19.0 + SHA512 59623792e560c9ef8069b7b4e4c12c67c9814433fc57d5b5650951f3adad338570ec785bbac8f7e1e7596220bab433e9f29161ced7d1a37da4f5418f6a3b7581 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/dont-export-symbols-in-static-build.patch - ${CMAKE_CURRENT_LIST_DIR}/cmake-3-11.patch + dont-export-symbols-in-static-build.patch + cmake-3-11.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") diff --git a/ports/openimageio/CONTROL b/ports/openimageio/CONTROL index 0645c03a1..12bc943d7 100644 --- a/ports/openimageio/CONTROL +++ b/ports/openimageio/CONTROL @@ -1,5 +1,5 @@ Source: openimageio -Version: Release-1.8.12-1 +Version: Release-1.8.13 Description: A library for reading and writing images, and a bunch of related classes, utilities, and application Build-Depends: libjpeg-turbo, tiff, libpng, openexr, boost-thread, boost-smart-ptr, boost-foreach, boost-regex, boost-type-traits, boost-static-assert, boost-unordered, boost-config, boost-algorithm, boost-filesystem, boost-system, boost-thread, boost-asio, boost-random, robin-map diff --git a/ports/openimageio/portfile.cmake b/ports/openimageio/portfile.cmake index 86d83aba4..c5786db64 100644 --- a/ports/openimageio/portfile.cmake +++ b/ports/openimageio/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenImageIO/oiio - REF Release-1.8.12 - SHA512 2475792ff475d34b47b6af5ca71c6cf6d9d8c60452a506b1bf740b9dbb20ea72109117dc9a531b8302095de99f6280172723f26e23dc6e038256cbb43b697145 + REF Release-1.8.13 + SHA512 578d039399846f994dd8e4b94a7b56f2bcec45571c2144705fc4e2fe6a3e1d878d79a96c0484350d54b46eef7796d46becda9f5d50f266cd730f63d97af0650e HEAD_REF master PATCHES # fix_libraw: replace 'LibRaw_r_LIBRARIES' occurences by 'LibRaw_LIBRARIES' diff --git a/ports/openmesh/CONTROL b/ports/openmesh/CONTROL index b803484eb..cf502b2a2 100644 --- a/ports/openmesh/CONTROL +++ b/ports/openmesh/CONTROL @@ -1,3 +1,3 @@ Source: openmesh -Version: 6.3 +Version: 7.0 Description: A generic and efficient polygon mesh data structure diff --git a/ports/openmesh/portfile.cmake b/ports/openmesh/portfile.cmake index 26c167adb..7bfacfe0e 100644 --- a/ports/openmesh/portfile.cmake +++ b/ports/openmesh/portfile.cmake @@ -1,24 +1,18 @@ -# 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_gitlab( +set(VERSION 7.0) + +# Note: upstream GitLab instance at https://graphics.rwth-aachen.de:9000 often goes down +vcpkg_download_distfile(ARCHIVE + URLS "https://www.openmesh.org/media/Releases/${VERSION}/OpenMesh-${VERSION}.tar.gz" + FILENAME "OpenMesh-${VERSION}.tar.gz" + SHA512 29280c8fe7208d39bd923c4d0444a24463e36b95402e6a75f42adc27bc1b261df9113442f69e1001dc1a8b1198488069ffb049742dcf6eac6ac1ecf4f216fad8 +) + +vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH - GITLAB_URL "https://graphics.rwth-aachen.de:9000" - REPO "OpenMesh/OpenMesh" - REF "OpenMesh-7.0" - HEAD_REF "master" - SHA512 "70e414088c094199af31a8694fb91fa5f9b574b3cc86b30b3fb64d938e6a218f9f38d857c559f958276b01ec9263ef71cd4039444e50a8cb38e820243aac7956" + ARCHIVE "${ARCHIVE}" + REF "${VERSION}" ) vcpkg_configure_cmake( diff --git a/ports/openssl-unix/CMakeLists.txt b/ports/openssl-unix/CMakeLists.txt index fd5964506..7639d1d4e 100644 --- a/ports/openssl-unix/CMakeLists.txt +++ b/ports/openssl-unix/CMakeLists.txt @@ -36,10 +36,10 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") set(CFLAGS "-Wno-error=unused-command-line-argument ${CMAKE_C_FLAGS}") endif() if(CMAKE_C_COMPILER_TARGET) - set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_TARGET} ${CMAKE_C_COMPILER_TARGET}") + set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_TARGET}${CMAKE_C_COMPILER_TARGET}") endif() if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN) - set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} ${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}") + set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}") endif() if(CMAKE_SYSROOT AND CMAKE_C_COMPILE_OPTIONS_SYSROOT) set(CFLAGS "${CFLAGS} ${CMAKE_C_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}") @@ -106,7 +106,7 @@ add_custom_command( no-md2 ${PLATFORM} "--prefix=${CMAKE_INSTALL_PREFIX}" - "--openssldir=${CMAKE_INSTALL_PREFIX}" + "--openssldir=/etc/ssl" ${CFLAGS} COMMAND "${CMAKE_COMMAND}" "-DDIR=${BUILDDIR}" -P "${CMAKE_CURRENT_LIST_DIR}/remove-deps.cmake" VERBATIM diff --git a/ports/openssl-unix/CONTROL b/ports/openssl-unix/CONTROL index db47c018b..6413eb371 100644 --- a/ports/openssl-unix/CONTROL +++ b/ports/openssl-unix/CONTROL @@ -1,3 +1,3 @@ Source: openssl-unix -Version: 1.0.2o-1 +Version: 1.0.2p 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-unix/portfile.cmake b/ports/openssl-unix/portfile.cmake index 7bfbb06e5..1484fc66c 100644 --- a/ports/openssl-unix/portfile.cmake +++ b/ports/openssl-unix/portfile.cmake @@ -3,7 +3,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAM endif() include(vcpkg_common_functions) -set(OPENSSL_VERSION 1.0.2o) +set(OPENSSL_VERSION 1.0.2p) set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-${OPENSSL_VERSION}) vcpkg_find_acquire_program(PERL) @@ -11,7 +11,7 @@ vcpkg_find_acquire_program(PERL) vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.0.2/openssl-${OPENSSL_VERSION}.tar.gz" FILENAME "openssl-${OPENSSL_VERSION}.tar.gz" - SHA512 8a2c93657c85143e76785bb32ee836908c31a6f5f8db993fa9777acba6079e630cdddd03edbad65d1587199fc13a1507789eacf038b56eb99139c2091d9df7fd + SHA512 958c5a7c3324bbdc8f07dfb13e11329d9a1b4452c07cf41fbd2d42b5fe29c95679332a3476d24c2dc2b88be16e4a24744aba675a05a388c0905756c77a8a2f16 ) vcpkg_extract_source_archive(${OPENSSL_SOURCE_ARCHIVE}) diff --git a/ports/openssl-windows/CONTROL b/ports/openssl-windows/CONTROL index a9c10c583..881c311d0 100644 --- a/ports/openssl-windows/CONTROL +++ b/ports/openssl-windows/CONTROL @@ -1,3 +1,3 @@ Source: openssl-windows -Version: 1.0.2o +Version: 1.0.2p-1 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-windows/portfile.cmake b/ports/openssl-windows/portfile.cmake index 7c93a5bce..d58d51431 100644 --- a/ports/openssl-windows/portfile.cmake +++ b/ports/openssl-windows/portfile.cmake @@ -3,7 +3,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME) endif() include(vcpkg_common_functions) -set(OPENSSL_VERSION 1.0.2o) +set(OPENSSL_VERSION 1.0.2p) set(MASTER_COPY_SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/openssl-${OPENSSL_VERSION}) vcpkg_find_acquire_program(PERL) @@ -14,7 +14,7 @@ set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}") vcpkg_download_distfile(OPENSSL_SOURCE_ARCHIVE URLS "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz" "https://www.openssl.org/source/old/1.0.2/openssl-${OPENSSL_VERSION}.tar.gz" FILENAME "openssl-${OPENSSL_VERSION}.tar.gz" - SHA512 8a2c93657c85143e76785bb32ee836908c31a6f5f8db993fa9777acba6079e630cdddd03edbad65d1587199fc13a1507789eacf038b56eb99139c2091d9df7fd + SHA512 958c5a7c3324bbdc8f07dfb13e11329d9a1b4452c07cf41fbd2d42b5fe29c95679332a3476d24c2dc2b88be16e4a24744aba675a05a388c0905756c77a8a2f16 ) vcpkg_extract_source_archive(${OPENSSL_SOURCE_ARCHIVE}) @@ -57,72 +57,76 @@ endif() file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) -file(COPY ${MASTER_COPY_SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) -set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/openssl-${OPENSSL_VERSION}) -set(OPENSSLDIR_RELEASE ${CURRENT_PACKAGES_DIR}) +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + file(COPY ${MASTER_COPY_SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) + set(SOURCE_PATH_RELEASE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/openssl-${OPENSSL_VERSION}) + set(OPENSSLDIR_RELEASE ${CURRENT_PACKAGES_DIR}) -message(STATUS "Configure ${TARGET_TRIPLET}-rel") -vcpkg_execute_required_process( - COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_RELEASE}" "--openssldir=${OPENSSLDIR_RELEASE}" -FS - WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} - LOGNAME configure-perl-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-rel -) -vcpkg_execute_required_process( - COMMAND ${OPENSSL_DO} - WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} - LOGNAME configure-do-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-rel -) -message(STATUS "Configure ${TARGET_TRIPLET}-rel done") + message(STATUS "Configure ${TARGET_TRIPLET}-rel") + vcpkg_execute_required_process( + COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_RELEASE}" "--openssldir=${OPENSSLDIR_RELEASE}" -FS + WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} + LOGNAME configure-perl-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-rel + ) + vcpkg_execute_required_process( + COMMAND ${OPENSSL_DO} + WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} + LOGNAME configure-do-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-rel + ) + message(STATUS "Configure ${TARGET_TRIPLET}-rel done") -message(STATUS "Build ${TARGET_TRIPLET}-rel") -# Openssl's buildsystem has a race condition which will cause JOM to fail at some point. -# This is ok; we just do as much work as we can in parallel first, then follow up with a single-threaded build. -make_directory(${SOURCE_PATH_RELEASE}/inc32/openssl) -execute_process( - COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE} - WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} - OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-out.log - ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log -) -vcpkg_execute_required_process( - COMMAND nmake -f ${OPENSSL_MAKEFILE} install - WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} - LOGNAME build-${TARGET_TRIPLET}-rel-1) + message(STATUS "Build ${TARGET_TRIPLET}-rel") + # Openssl's buildsystem has a race condition which will cause JOM to fail at some point. + # This is ok; we just do as much work as we can in parallel first, then follow up with a single-threaded build. + make_directory(${SOURCE_PATH_RELEASE}/inc32/openssl) + execute_process( + COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE} + WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} + OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-out.log + ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log + ) + vcpkg_execute_required_process( + COMMAND nmake -f ${OPENSSL_MAKEFILE} install + WORKING_DIRECTORY ${SOURCE_PATH_RELEASE} + LOGNAME build-${TARGET_TRIPLET}-rel-1) -message(STATUS "Build ${TARGET_TRIPLET}-rel done") + message(STATUS "Build ${TARGET_TRIPLET}-rel done") +endif() -message(STATUS "Configure ${TARGET_TRIPLET}-dbg") -file(COPY ${MASTER_COPY_SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) -set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/openssl-${OPENSSL_VERSION}) -set(OPENSSLDIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug) +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + message(STATUS "Configure ${TARGET_TRIPLET}-dbg") + file(COPY ${MASTER_COPY_SOURCE_PATH} DESTINATION ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) + set(SOURCE_PATH_DEBUG ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/openssl-${OPENSSL_VERSION}) + set(OPENSSLDIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug) -vcpkg_execute_required_process( - COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS - WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} - LOGNAME configure-perl-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-dbg -) -vcpkg_execute_required_process( - COMMAND ${OPENSSL_DO} - WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} - LOGNAME configure-do-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-dbg -) -message(STATUS "Configure ${TARGET_TRIPLET}-dbg done") + vcpkg_execute_required_process( + COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS + WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} + LOGNAME configure-perl-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-dbg + ) + vcpkg_execute_required_process( + COMMAND ${OPENSSL_DO} + WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} + LOGNAME configure-do-${TARGET_TRIPLET}-${CMAKE_BUILD_TYPE}-dbg + ) + message(STATUS "Configure ${TARGET_TRIPLET}-dbg done") -message(STATUS "Build ${TARGET_TRIPLET}-dbg") -make_directory(${SOURCE_PATH_DEBUG}/inc32/openssl) -execute_process( - COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE} - WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} - OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-out.log - ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log -) -vcpkg_execute_required_process( - COMMAND nmake -f ${OPENSSL_MAKEFILE} install - WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} - LOGNAME build-${TARGET_TRIPLET}-dbg-1) + message(STATUS "Build ${TARGET_TRIPLET}-dbg") + make_directory(${SOURCE_PATH_DEBUG}/inc32/openssl) + execute_process( + COMMAND ${JOM} -k -j $ENV{NUMBER_OF_PROCESSORS} -f ${OPENSSL_MAKEFILE} + WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} + OUTPUT_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-out.log + ERROR_FILE ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log + ) + vcpkg_execute_required_process( + COMMAND nmake -f ${OPENSSL_MAKEFILE} install + WORKING_DIRECTORY ${SOURCE_PATH_DEBUG} + LOGNAME build-${TARGET_TRIPLET}-dbg-1) -message(STATUS "Build ${TARGET_TRIPLET}-dbg done") + message(STATUS "Build ${TARGET_TRIPLET}-dbg done") +endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) diff --git a/ports/opusfile/CONTROL b/ports/opusfile/CONTROL index 5a9cf2002..82307c100 100644 --- a/ports/opusfile/CONTROL +++ b/ports/opusfile/CONTROL @@ -1,5 +1,5 @@ Source: opusfile -Version: 0.9-3 +Version: 0.11-1 Description: Stand-alone decoder library for .opus streams Build-Depends: libogg, opus diff --git a/ports/opusfile/portfile.cmake b/ports/opusfile/portfile.cmake index c538a692f..30c633ca2 100644 --- a/ports/opusfile/portfile.cmake +++ b/ports/opusfile/portfile.cmake @@ -6,8 +6,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/opusfile - REF v0.9 - SHA512 8bada67cf12511fd914813fe782a5bf40a5d1ecadbe77e2e8d7bf40bf09bf0e6af3dfbc9b7987496dea813d3b120897cb9117f06521eeb098105e1a795ab702b + REF v0.11 + SHA512 b67976176ffacbeecacd00815877d1b332e149430b49f68d41d6a2f95e6d291e979214903314e14b4cc3f20e07ec8975b906f12f12aef8c786f74f6160d8791d HEAD_REF master) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) diff --git a/ports/parson/CONTROL b/ports/parson/CONTROL index 5a6d27896..1210c7e2e 100644 --- a/ports/parson/CONTROL +++ b/ports/parson/CONTROL @@ -1,3 +1,3 @@ Source: parson -Version: 2018-05-17 +Version: 2018-09-18 Description: a lighweight json library written in C diff --git a/ports/parson/portfile.cmake b/ports/parson/portfile.cmake index 134520fbd..cfc1d861e 100644 --- a/ports/parson/portfile.cmake +++ b/ports/parson/portfile.cmake @@ -8,8 +8,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kgabis/parson - REF 4f3eaa6849ba62404fc5756650168bb2056d0b46 - SHA512 dd98ebdb7f39387e600d529b8c92986f20781e7ec6b2baffcdc553e834be826ada4724247750300a897cacdee8f942d3c7d540e6bb410c2854a9291a80df847f + REF 0a1896939faff5f69e179637fc49f678ff0128ba + SHA512 cb982ce7dbbe0b5a4d08a28a459e9dce5347f90d75b0a37c56698f5b79ad37aa0bd22fe6b6d5c8a6fda2dd83b072605486581360b8ed3591012ebaa1e1518fc6 HEAD_REF master ) diff --git a/ports/pcl/CONTROL b/ports/pcl/CONTROL index a9f0186fb..b1b20fe06 100644 --- a/ports/pcl/CONTROL +++ b/ports/pcl/CONTROL @@ -1,5 +1,5 @@ Source: pcl -Version: 1.8.1-11 +Version: 1.8.1-12 Description: Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing. Build-Depends: eigen3, flann, qhull, vtk, libpng, boost-system, boost-filesystem, boost-thread, boost-date-time, boost-iostreams, boost-random, boost-foreach, boost-dynamic-bitset, boost-property-map, boost-graph, boost-multi-array, boost-signals2, boost-ptr-container, boost-uuid, boost-interprocess, boost-asio diff --git a/ports/pcl/portfile.cmake b/ports/pcl/portfile.cmake index a3b65ebac..dc4619ed3 100644 --- a/ports/pcl/portfile.cmake +++ b/ports/pcl/portfile.cmake @@ -57,6 +57,7 @@ vcpkg_configure_cmake( # PCL -DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS} -DPCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS} + -DPCL_BUILD_WITH_QHULL_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS} -DPCL_SHARED_LIBS=${PCL_SHARED_LIBS} # WITH -DWITH_CUDA=${WITH_CUDA} diff --git a/ports/pixman/CMakeLists.txt b/ports/pixman/CMakeLists.txt index 8dc9940cb..d355fe8c6 100644 --- a/ports/pixman/CMakeLists.txt +++ b/ports/pixman/CMakeLists.txt @@ -46,14 +46,14 @@ file(GLOB SOURCES ) add_library(pixman-1 ${SOURCES}) +target_include_directories(pixman-1 PUBLIC $) # pixman requires the three PACKAGE* definitions in order to compile. The USE_SSE2 definition lets it use SSE2 instructions for speed. Every target machine should have SSE2 these days. target_compile_definitions(pixman-1 - PUBLIC + PRIVATE PACKAGE="pixman-1" PACKAGE_VERSION="0.34.0" PACKAGE_BUGREPORT="" - PRIVATE USE_SSE2 ) @@ -63,7 +63,15 @@ if(MSVC) endif() install(TARGETS pixman-1 + EXPORT pixman-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) + +install( + EXPORT pixman-targets + NAMESPACE unofficial::pixman:: + FILE unofficial-pixman-config.cmake + DESTINATION share/unofficial-pixman +) diff --git a/ports/pixman/CONTROL b/ports/pixman/CONTROL index 0deb60d33..d3a5cede7 100644 --- a/ports/pixman/CONTROL +++ b/ports/pixman/CONTROL @@ -1,3 +1,3 @@ Source: pixman -Version: 0.34.0-3 +Version: 0.34.0-4 Description: Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization. diff --git a/ports/pixman/portfile.cmake b/ports/pixman/portfile.cmake index 4fb37f6d9..83daa9a51 100644 --- a/ports/pixman/portfile.cmake +++ b/ports/pixman/portfile.cmake @@ -1,13 +1,16 @@ include(vcpkg_common_functions) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/pixman-0.34.0) - +set(PIXMAN_VERSION 0.34.0) vcpkg_download_distfile(ARCHIVE - URLS "https://www.cairographics.org/releases/pixman-0.34.0.tar.gz" - FILENAME "pixman-0.34.0.tar.gz" + URLS "https://www.cairographics.org/releases/pixman-${PIXMAN_VERSION}.tar.gz" + FILENAME "pixman-${PIXMAN_VERSION}.tar.gz" SHA512 81caca5b71582b53aaac473bc37145bd66ba9acebb4773fa8cdb51f4ed7fbcb6954790d8633aad85b2826dd276bcce725e26e37997a517760e9edd72e2669a6d ) -vcpkg_extract_source_archive(${ARCHIVE}) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${PIXMAN_VERSION} +) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/pixman) @@ -18,6 +21,8 @@ vcpkg_configure_cmake( vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-pixman TARGET_PATH share/unofficial-pixman) + # Copy the appropriate header files. file(COPY "${SOURCE_PATH}/pixman/pixman.h" @@ -36,3 +41,5 @@ file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/pixma file(RENAME ${CURRENT_PACKAGES_DIR}/share/pixman/COPYING ${CURRENT_PACKAGES_DIR}/share/pixman/copyright) vcpkg_copy_pdbs() + +vcpkg_test_cmake(PACKAGE_NAME unofficial-pixman) diff --git a/ports/pmdk/CONTROL b/ports/pmdk/CONTROL index 16c6138cc..4c667eac0 100644 --- a/ports/pmdk/CONTROL +++ b/ports/pmdk/CONTROL @@ -1,3 +1,3 @@ Source: pmdk -Version: 1.4.1-1 +Version: 1.4.2 Description: Persistent Memory Development Kit \ No newline at end of file diff --git a/ports/pmdk/portfile.cmake b/ports/pmdk/portfile.cmake index 302ce07bf..330a8abeb 100644 --- a/ports/pmdk/portfile.cmake +++ b/ports/pmdk/portfile.cmake @@ -18,8 +18,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pmem/pmdk - REF 1.4.1 - SHA512 a4bffb393f07e5e2ffbd2a7835b906148401abf0f3cff28262cf8607691fc2d567d153358a3fb3a15197db699519c7b3a4699b67a51c15fecd707bc30795c5c7 + REF 1.4.2 + SHA512 87aa226487046aba14f3a0b51d066f4498a6021580fd203df45f0900fc0c0c5cdb192156a4c730a5a7dc5826e204d688531e5680145161750057803cb24d088d HEAD_REF master PATCHES "${CMAKE_CURRENT_LIST_DIR}/addPowerShellExecutionPolicy.patch" diff --git a/ports/poco/CONTROL b/ports/poco/CONTROL index 9656723bb..5817429fa 100644 --- a/ports/poco/CONTROL +++ b/ports/poco/CONTROL @@ -1,5 +1,5 @@ Source: poco -Version: 1.9.0 +Version: 1.9.0-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/poco/portfile.cmake b/ports/poco/portfile.cmake index 271e223f8..c94a09387 100644 --- a/ports/poco/portfile.cmake +++ b/ports/poco/portfile.cmake @@ -6,15 +6,11 @@ vcpkg_from_github( REF poco-1.9.0-release SHA512 de2346d62b2e89ba04abe62a83f6ede7a496e80bcbe53a880a1aa8e87a8ebd9a430dd70fdc6aada836bb1021c6df21375fd0cbcf62dbb6e29a2f65d6d90cf2b9 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/config_h.patch - ${CMAKE_CURRENT_LIST_DIR}/find_pcre.patch - ${CMAKE_CURRENT_LIST_DIR}/foundation-public-include-pcre.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-static-internal-pcre.patch + config_h.patch + find_pcre.patch + foundation-public-include-pcre.patch + fix-static-internal-pcre.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" POCO_STATIC) @@ -46,8 +42,13 @@ vcpkg_configure_cmake( vcpkg_install_cmake() file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools) -file(RENAME ${CURRENT_PACKAGES_DIR}/bin/cpspc.exe ${CURRENT_PACKAGES_DIR}/tools/cpspc.exe) -file(RENAME ${CURRENT_PACKAGES_DIR}/bin/f2cpsp.exe ${CURRENT_PACKAGES_DIR}/tools/f2cpsp.exe) +if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/cpspc.exe") + file(RENAME ${CURRENT_PACKAGES_DIR}/bin/cpspc.exe ${CURRENT_PACKAGES_DIR}/tools/cpspc.exe) + file(RENAME ${CURRENT_PACKAGES_DIR}/bin/f2cpsp.exe ${CURRENT_PACKAGES_DIR}/tools/f2cpsp.exe) +else() + file(RENAME ${CURRENT_PACKAGES_DIR}/bin/cpspc ${CURRENT_PACKAGES_DIR}/tools/cpspc) + file(RENAME ${CURRENT_PACKAGES_DIR}/bin/f2cpsp ${CURRENT_PACKAGES_DIR}/tools/f2cpsp) +endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE @@ -64,7 +65,7 @@ else() endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/poco) +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Poco) # copy license file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/poco) diff --git a/ports/protobuf/CONTROL b/ports/protobuf/CONTROL index 3c480a1e4..c2be8e0f3 100644 --- a/ports/protobuf/CONTROL +++ b/ports/protobuf/CONTROL @@ -1,5 +1,5 @@ Source: protobuf -Version: 3.6.1-2 +Version: 3.6.1-4 Description: Protocol Buffers - Google's data interchange format Feature: zlib diff --git a/ports/protobuf/disable-lite.patch b/ports/protobuf/disable-lite.patch new file mode 100644 index 000000000..ceb34671c --- /dev/null +++ b/ports/protobuf/disable-lite.patch @@ -0,0 +1,41 @@ +diff --git a/cmake/install.cmake b/cmake/install.cmake +index 82036cb..378db2d 100644 +--- a/cmake/install.cmake ++++ b/cmake/install.cmake +@@ -15,10 +15,12 @@ foreach(_library ${_protobuf_libraries}) + PROPERTY INTERFACE_INCLUDE_DIRECTORIES + $ + $) ++ if(NOT "${_library}" STREQUAL "libprotobuf-lite") + install(TARGETS ${_library} EXPORT protobuf-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${_library} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${_library} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT ${_library}) ++ endif() + endforeach() + + if (protobuf_BUILD_PROTOC_BINARIES) +@@ -26,7 +28,7 @@ if (protobuf_BUILD_PROTOC_BINARIES) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT protoc) + endif (protobuf_BUILD_PROTOC_BINARIES) + +-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/protobuf.pc ${CMAKE_CURRENT_BINARY_DIR}/protobuf-lite.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/protobuf.pc DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + + file(STRINGS extract_includes.bat.in _extract_strings + REGEX "^copy") +@@ -107,12 +109,12 @@ configure_file(protobuf-options.cmake + # Allows the build directory to be used as a find directory. + + if (protobuf_BUILD_PROTOC_BINARIES) +- export(TARGETS libprotobuf-lite libprotobuf libprotoc protoc ++ export(TARGETS libprotobuf libprotoc protoc + NAMESPACE protobuf:: + FILE ${CMAKE_INSTALL_CMAKEDIR}/protobuf-targets.cmake + ) + else (protobuf_BUILD_PROTOC_BINARIES) +- export(TARGETS libprotobuf-lite libprotobuf ++ export(TARGETS libprotobuf + NAMESPACE protobuf:: + FILE ${CMAKE_INSTALL_CMAKEDIR}/protobuf-targets.cmake + ) diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake index 37919a820..1dc7e6cf5 100644 --- a/ports/protobuf/portfile.cmake +++ b/ports/protobuf/portfile.cmake @@ -7,7 +7,8 @@ vcpkg_from_github( SHA512 1bc175d24b49de1b1e41eaf39598194e583afffb924c86c8d2e569d935af21874be76b2cbd4d9655a1d38bac3d4cd811de88bc2c72d81bad79115e69e5b0d839 HEAD_REF master PATCHES - "${CMAKE_CURRENT_LIST_DIR}/fix-uwp.patch" + fix-uwp.patch + disable-lite.patch ) if(CMAKE_HOST_WIN32 AND NOT VCPKG_TARGET_ARCHITECTURE MATCHES "x64" AND NOT VCPKG_TARGET_ARCHITECTURE MATCHES "x86") @@ -110,6 +111,10 @@ else() protobuf_try_remove_recurse_wait(${CURRENT_PACKAGES_DIR}/bin) endif() +if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/libprotobuf-lite.lib) + message(FATAL_ERROR "Expected to not build the lite runtime because it contains some of the same symbols as the full runtime.") +endif() + 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}") diff --git a/ports/qt5-base/configure_qt.cmake b/ports/qt5-base/configure_qt.cmake index 356361a9b..b66f6d22e 100644 --- a/ports/qt5-base/configure_qt.cmake +++ b/ports/qt5-base/configure_qt.cmake @@ -30,12 +30,13 @@ function(configure_qt) vcpkg_execute_required_process( COMMAND "${_csc_SOURCE_PATH}/${CONFIGURE_BAT}" ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} -debug - -prefix ${CURRENT_PACKAGES_DIR}/debug - -hostbindir ${CURRENT_PACKAGES_DIR}/debug/tools/qt5 - -archdatadir ${CURRENT_PACKAGES_DIR}/share/qt5/debug - -datadir ${CURRENT_PACKAGES_DIR}/share/qt5/debug - -plugindir ${CURRENT_PACKAGES_DIR}/debug/plugins - -qmldir ${CURRENT_PACKAGES_DIR}/debug/qml + -prefix ${CURRENT_INSTALLED_DIR}/debug + -extprefix ${CURRENT_PACKAGES_DIR}/debug + -hostbindir ${CURRENT_INSTALLED_DIR}/debug/tools/qt5 + -archdatadir ${CURRENT_INSTALLED_DIR}/share/qt5/debug + -datadir ${CURRENT_INSTALLED_DIR}/share/qt5/debug + -plugindir ${CURRENT_INSTALLED_DIR}/debug/plugins + -qmldir ${CURRENT_INSTALLED_DIR}/debug/qml -headerdir ${CURRENT_PACKAGES_DIR}/include -I ${CURRENT_INSTALLED_DIR}/include -L ${CURRENT_INSTALLED_DIR}/debug/lib @@ -44,18 +45,19 @@ function(configure_qt) LOGNAME config-${TARGET_TRIPLET}-dbg ) message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") - + message(STATUS "Configuring ${TARGET_TRIPLET}-rel") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) vcpkg_execute_required_process( COMMAND "${_csc_SOURCE_PATH}/${CONFIGURE_BAT}" ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} -release - -prefix ${CURRENT_PACKAGES_DIR} - -hostbindir ${CURRENT_PACKAGES_DIR}/tools/qt5 - -archdatadir ${CURRENT_PACKAGES_DIR}/share/qt5 - -datadir ${CURRENT_PACKAGES_DIR}/share/qt5 - -plugindir ${CURRENT_PACKAGES_DIR}/plugins - -qmldir ${CURRENT_PACKAGES_DIR}/qml + -prefix ${CURRENT_INSTALLED_DIR} + -extprefix ${CURRENT_PACKAGES_DIR} + -hostbindir ${CURRENT_INSTALLED_DIR}/tools/qt5 + -archdatadir ${CURRENT_INSTALLED_DIR}/share/qt5 + -datadir ${CURRENT_INSTALLED_DIR}/share/qt5 + -plugindir ${CURRENT_INSTALLED_DIR}/plugins + -qmldir ${CURRENT_INSTALLED_DIR}/qml -I ${CURRENT_INSTALLED_DIR}/include -L ${CURRENT_INSTALLED_DIR}/lib -platform ${_csc_PLATFORM} @@ -64,4 +66,4 @@ function(configure_qt) ) message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") -endfunction() \ No newline at end of file +endfunction() diff --git a/ports/qt5-script/CONTROL b/ports/qt5-script/CONTROL new file mode 100755 index 000000000..adcc055c8 --- /dev/null +++ b/ports/qt5-script/CONTROL @@ -0,0 +1,3 @@ +Source: qt5-script +Version: 5.9.2 +Description:Qt5 Script Module. diff --git a/ports/qt5-script/portfile.cmake b/ports/qt5-script/portfile.cmake new file mode 100755 index 000000000..9e6f5f338 --- /dev/null +++ b/ports/qt5-script/portfile.cmake @@ -0,0 +1,5 @@ + +include(vcpkg_common_functions) +include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake) + +qt_modular_library(qtscript 3ce2e57a0a6b2382614f689edca0deed87afe944c1c41decb3b9f420449fa59f2b79e6330e78e01a950761a95903113eaa7fbf261886361114acf5015d93254c) diff --git a/ports/re2/CONTROL b/ports/re2/CONTROL index 8e271f5ca..e35601ab5 100644 --- a/ports/re2/CONTROL +++ b/ports/re2/CONTROL @@ -1,3 +1,3 @@ Source: re2 -Version: 2018-07-30 +Version: 2018-09-18 Description: RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library. \ No newline at end of file diff --git a/ports/re2/portfile.cmake b/ports/re2/portfile.cmake index 06ba4f581..48aa9e48d 100644 --- a/ports/re2/portfile.cmake +++ b/ports/re2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/re2 - REF 3b4a3d57f3a0231cfb70ad649099c3aed0499555 - SHA512 3ff7ece9fafd595d5016d0ad1942dfc1747610cd93e505512179307f7abba2e16d1c830712f9b4a04278ad8bcdc182dc883bcdabad340f2d08264d34d8f08f92 + REF 4c916c947ab7f2ba2d280bb8c87540c365d30695 + SHA512 7f34073415b2afd36469a0ffedb5d6d38b0230a82d633f2b45538e66d00ff0e411ffff1e34f74747c68518b1fdf07f7a601c23d39b001a75bcf9dadfc1350f04 HEAD_REF master ) diff --git a/ports/realsense2/CONTROL b/ports/realsense2/CONTROL index 62f249090..959292d5c 100644 --- a/ports/realsense2/CONTROL +++ b/ports/realsense2/CONTROL @@ -1,5 +1,5 @@ Source: realsense2 -Version: 2.13.0 +Version: 2.16.1 Description: Intel® RealSense™ SDK 2.0 is a cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300). Feature: tools diff --git a/ports/realsense2/portfile.cmake b/ports/realsense2/portfile.cmake index e9edc21e2..e6073099c 100644 --- a/ports/realsense2/portfile.cmake +++ b/ports/realsense2/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO IntelRealSense/librealsense - REF v2.13.0 - SHA512 5cee1371e83a0bcd24829c073c064c630347a6f69b59377603a75b5d036c6306e9b36285a7deef519bd63a42dfaf933c99709a25942407be97f1791361c4becf + REF v2.16.1 + SHA512 e030f7b1833db787b8976ead734535fb2209a19317d74d4f68bd8f8cae38abe2343d584e88131a1a66bf6f9f1c0a17bc2c64540841a74cf6300fecf3e69f9dff HEAD_REF development ) diff --git a/ports/restbed/CONTROL b/ports/restbed/CONTROL new file mode 100644 index 000000000..d0eab13ce --- /dev/null +++ b/ports/restbed/CONTROL @@ -0,0 +1,4 @@ +Source: restbed +Version: 4.16-07-28-2018 +Description: Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++11 applications. +Build-Depends: asio \ No newline at end of file diff --git a/ports/restbed/cmake.patch b/ports/restbed/cmake.patch new file mode 100644 index 000000000..5d73409f9 --- /dev/null +++ b/ports/restbed/cmake.patch @@ -0,0 +1,59 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b66143e..85c5315 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -42,7 +42,9 @@ endif ( ) + set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake" ) + + find_package( asio REQUIRED ) ++if(NOT DISABLE_TESTS) + find_package( catch REQUIRED ) ++endif() + if ( BUILD_SSL ) + find_package( openssl REQUIRED ) + endif ( ) +@@ -54,6 +56,7 @@ include_directories( ${INCLUDE_DIR} SYSTEM ${asio_INCLUDE} ${kashmir_INCLUDE} ${ + # + file( GLOB_RECURSE MANIFEST "${SOURCE_DIR}/*.cpp" ) + ++if(NOT BUILD_SHARED_LIBS) + set( STATIC_LIBRARY_NAME "${PROJECT_NAME}-static" ) + add_library( ${STATIC_LIBRARY_NAME} STATIC ${MANIFEST} ) + set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD 11 ) +@@ -64,7 +67,9 @@ if ( BUILD_SSL ) + else ( ) + target_link_libraries( ${STATIC_LIBRARY_NAME} ) + endif ( ) ++endif() + ++if(BUILD_SHARED_LIBS) + set( SHARED_LIBRARY_NAME "${PROJECT_NAME}-shared" ) + add_library( ${SHARED_LIBRARY_NAME} SHARED ${MANIFEST} ) + set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD 11 ) +@@ -76,12 +81,15 @@ if ( BUILD_SSL ) + else ( ) + target_link_libraries( ${SHARED_LIBRARY_NAME} ) + endif ( ) ++endif() + ++if(NOT DISABLE_TESTS) + enable_testing( ) + add_subdirectory( "${PROJECT_SOURCE_DIR}/test/unit" ) + add_subdirectory( "${PROJECT_SOURCE_DIR}/test/feature" ) + add_subdirectory( "${PROJECT_SOURCE_DIR}/test/regression" ) + add_subdirectory( "${PROJECT_SOURCE_DIR}/test/integration" ) ++endif() + + # + # Install +@@ -90,5 +98,8 @@ file( GLOB ARTIFACTS "${SOURCE_DIR}/*.hpp" ) + + install( FILES "${INCLUDE_DIR}/${PROJECT_NAME}" DESTINATION "${CMAKE_INSTALL_PREFIX}/include" ) + install( FILES ${ARTIFACTS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include/corvusoft/${PROJECT_NAME}" ) +-install( TARGETS ${STATIC_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ) +-install( TARGETS ${SHARED_LIBRARY_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ) ++if(NOT BUILD_SHARED_LIBS) ++install( TARGETS ${STATIC_LIBRARY_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ) ++else() ++install( TARGETS ${SHARED_LIBRARY_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ) ++endif() diff --git a/ports/restbed/portfile.cmake b/ports/restbed/portfile.cmake new file mode 100644 index 000000000..60f1247d8 --- /dev/null +++ b/ports/restbed/portfile.cmake @@ -0,0 +1,28 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO Corvusoft/restbed + REF 0f8af8d8ed183a88e208adeb22da0080d5d74d1e + SHA512 f0175a10c88f1ad4f16c8e4cff7ceea7b80c56b0724b59791c23e91f1ecf146dfdbda9e9238d31a35f21d8cdcc413b586cc633725dd0ba87de6b599a7087916f + HEAD_REF master + PATCHES cmake.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DBUILD_SSL=OFF + -DDISABLE_TESTS=ON +) + +vcpkg_install_cmake() + +#Remove include debug files +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/restbed/copyright COPYONLY) diff --git a/ports/rs-core-lib/CONTROL b/ports/rs-core-lib/CONTROL index c86bfe250..33f0a1f63 100644 --- a/ports/rs-core-lib/CONTROL +++ b/ports/rs-core-lib/CONTROL @@ -1,4 +1,4 @@ Source: rs-core-lib -Version: 2018-07-30 +Version: 2018-09-18 Description: Minimal common utilities by Ross Smith diff --git a/ports/rs-core-lib/portfile.cmake b/ports/rs-core-lib/portfile.cmake index feba9947d..927f34ea6 100644 --- a/ports/rs-core-lib/portfile.cmake +++ b/ports/rs-core-lib/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CaptainCrowbar/rs-core-lib - REF 989a68109c28c8a4c9352fd166809f63f2e92ce4 - SHA512 e4b0b0e20ffc67ed737fd26db9860d111f0a59e9d98b0350f5997225b0536768d9987f0fb75fdb08516b36e266ad11c1a0bd3bab7c14eb65ee18e5cd90ff03cb + REF 9ffa126a7ca1a717ffd2c055c5049a15e1507d54 + SHA512 cdb02c546ff4514b63b3467b3296b0e5353ddcce8b774fa8accfbfd6559ab4a258af4822c219a5ce005719216c0c8c8707d377d2ce3ddb7d7a45fd9501787b60 HEAD_REF master ) diff --git a/ports/shaderc/CMakeLists.txt b/ports/shaderc/CMakeLists.txt index 580ffa1d1..7ecdd03f9 100644 --- a/ports/shaderc/CMakeLists.txt +++ b/ports/shaderc/CMakeLists.txt @@ -15,8 +15,8 @@ ENDIF() add_library(glslang STATIC IMPORTED GLOBAL) set_property(TARGET glslang PROPERTY IMPORTED_LOCATION "${GLSLANG}") -set(glslang_SOURCE_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" CACHE STRING "glslang source dir") -set_property(TARGET glslang APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") +find_path(glslang_SOURCE_DIR glslang/Include/Common) +set_property(TARGET glslang APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${glslang_SOURCE_DIR}") add_library(OSDependent STATIC IMPORTED GLOBAL) set_property(TARGET OSDependent PROPERTY IMPORTED_LOCATION "${OSDEPENDENT}") diff --git a/ports/shaderc/CMakeLists_spirv.txt b/ports/shaderc/CMakeLists_spirv.txt index 618177fa6..d9e013601 100644 --- a/ports/shaderc/CMakeLists_spirv.txt +++ b/ports/shaderc/CMakeLists_spirv.txt @@ -1,14 +1,8 @@ -option(SUFFIX_D "Add d Suffix to lib" ${SUFFIX_D}) -if(NOT SUFFIX_D) - find_library(SPIRVTOOLSOPT spirv-tools-opt) - find_library(SPIRVTOOLS spirv-tools) -ELSE() - find_library(SPIRVTOOLSOPT spirv-tools-opt) - find_library(SPIRVTOOLS spirv-tools) -ENDIF() +find_library(SPIRVTOOLSOPT SPIRV-Tools-opt) +find_library(SPIRVTOOLS SPIRV-Tools) add_library(SPIRV-Tools-opt STATIC IMPORTED GLOBAL) set_property(TARGET SPIRV-Tools-opt PROPERTY IMPORTED_LOCATION "${SPIRVTOOLSOPT}") add_library(SPIRV-Tools STATIC IMPORTED GLOBAL) -set_property(TARGET SPIRV-Tools PROPERTY IMPORTED_LOCATION "${SPIRVTOOLS}") \ No newline at end of file +set_property(TARGET SPIRV-Tools PROPERTY IMPORTED_LOCATION "${SPIRVTOOLS}") diff --git a/ports/shaderc/CONTROL b/ports/shaderc/CONTROL index 5a5c2c580..c428c0ea9 100644 --- a/ports/shaderc/CONTROL +++ b/ports/shaderc/CONTROL @@ -1,4 +1,4 @@ Source: shaderc -Version: 12fb656ab20ea9aa06e7084a74e5ff832b7ce2da-1 +Version: 12fb656ab20ea9aa06e7084a74e5ff832b7ce2da-2 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 2b925455b..d3ed5d023 100644 --- a/ports/shaderc/portfile.cmake +++ b/ports/shaderc/portfile.cmake @@ -1,11 +1,3 @@ -# 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) vcpkg_from_github( @@ -14,11 +6,8 @@ vcpkg_from_github( REF 12fb656ab20ea9aa06e7084a74e5ff832b7ce2da SHA512 6fb45a0b01e6709c44a11658648b9271fe06bd94023dcc5042c47b5f2a04889c2efb0ab4c166f18728594ac9b9aa9f8b354af46d88eb7f7c39c7246f52f5a933 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/0001-Do-not-generate-build-version.inc.patch + PATCHES + 0001-Do-not-generate-build-version.inc.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/third_party/glslang) @@ -36,11 +25,11 @@ endif() # shaderc uses python to manipulate copyright information vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY) -set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}") +vcpkg_add_to_path(PREPEND "${PYTHON3_EXE_PATH}") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} - OPTIONS -DSHADERC_SKIP_TESTS=true ${OPTIONS} + OPTIONS -DSHADERC_SKIP_TESTS=true ${OPTIONS} -Dglslang_SOURCE_DIR=${CURRENT_INSTALLED_DIR}/include OPTIONS_DEBUG -DSUFFIX_D=true OPTIONS_RELEASE -DSUFFIX_D=false ) diff --git a/ports/simpleini/CONTROL b/ports/simpleini/CONTROL new file mode 100644 index 000000000..b0c70335f --- /dev/null +++ b/ports/simpleini/CONTROL @@ -0,0 +1,3 @@ +Source: simpleini +Version: 2018-08-31-1 +Description: Cross-platform C++ library providing a simple API to read and write INI-style configuration files diff --git a/ports/simpleini/portfile.cmake b/ports/simpleini/portfile.cmake new file mode 100644 index 000000000..508043cd1 --- /dev/null +++ b/ports/simpleini/portfile.cmake @@ -0,0 +1,14 @@ +# header-only library +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO brofield/simpleini + REF fe082fa81f4a55ddceb55056622136be616b3c6f + SHA512 9ba3fc0e5d4d426a7943a6783f3e66203d3b822a9ac6bc2b261e877f70e099495ad22e03fd6ad3dd7aab422192701b2b450ace750ebd3bc6b4e6266c6d15184d + HEAD_REF master +) + +file(COPY ${SOURCE_PATH}/simpleini.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +file(INSTALL ${SOURCE_PATH}/LICENCE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/simpleini RENAME copyright) diff --git a/ports/spirv-cross/CONTROL b/ports/spirv-cross/CONTROL new file mode 100644 index 000000000..cfba267dd --- /dev/null +++ b/ports/spirv-cross/CONTROL @@ -0,0 +1,3 @@ +Source: spirv-cross +Version: 2018-08-07-1 +Description: SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages. diff --git a/ports/spirv-cross/portfile.cmake b/ports/spirv-cross/portfile.cmake new file mode 100644 index 000000000..8ed881d41 --- /dev/null +++ b/ports/spirv-cross/portfile.cmake @@ -0,0 +1,30 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KhronosGroup/SPIRV-Cross + REF 2018-08-07 + SHA512 1ac6ee6b2864d950199d4e856ae1576f9435827501baa5d53821a973cd68aaa03ec428094bf74c570784997baac5b2e3802ddc7f02844e2ee546741fa726bf91 + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=OFF +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +foreach(COMPONENT core cpp glsl hlsl msl reflect util) + vcpkg_fixup_cmake_targets(CONFIG_PATH share/spirv_cross_${COMPONENT}/cmake TARGET_PATH share/spirv_cross_${COMPONENT}) +endforeach() + +# cleanup +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/spirv-cross/copyright COPYONLY) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) diff --git a/ports/spirv-tools/portfile.cmake b/ports/spirv-tools/portfile.cmake index 5120dc4f1..11d332a39 100644 --- a/ports/spirv-tools/portfile.cmake +++ b/ports/spirv-tools/portfile.cmake @@ -1,9 +1,6 @@ include(vcpkg_common_functions) -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - message(WARNING "Dynamic not supported. Building static") - set(VCPKG_LIBRARY_LINKAGE "static") -endif() +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH @@ -23,12 +20,14 @@ vcpkg_from_github( vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) -set(ENV{PATH} "$ENV{PATH};${PYTHON3_DIR}") +vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA - OPTIONS -DSPIRV-Headers_SOURCE_DIR=${SPIRV_HEADERS_PATH} + OPTIONS + -DSPIRV-Headers_SOURCE_DIR=${SPIRV_HEADERS_PATH} + -DSPIRV_WERROR=OFF ) vcpkg_install_cmake() diff --git a/ports/strtk/CONTROL b/ports/strtk/CONTROL index 0c9cf1720..613ee7db1 100644 --- a/ports/strtk/CONTROL +++ b/ports/strtk/CONTROL @@ -1,4 +1,4 @@ Source: strtk -Version: 2018.05.07-48c9554 +Version: 2018.09.30-b887974 Description: robust, optimized and portable string processing algorithms for the C++ language Build-Depends: boost diff --git a/ports/strtk/portfile.cmake b/ports/strtk/portfile.cmake index f98f06930..1fed1a4a6 100644 --- a/ports/strtk/portfile.cmake +++ b/ports/strtk/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ArashPartow/strtk - REF 48c9554b3f079e34205c0af661c81c6f75f1da05 - SHA512 92a1b34808f20489d9b8c94aed384b08fcf2586967185c23a0027ee6d7170d5998e255d6aedc1fbb68327f48c0b106b8efd39f476e4041d6bcc5685c73fc1015 + REF b88797408e614ff5a127df12cc520bf41769ada6 + SHA512 3bb5bfc5f12f46180bc7751b865c5ef9120b3c8764ccc86ca2b4b344d6b9d1744e7bd45e9a9202fe4349f8ce75fbb0c37e807cb1e072f5aef28e790ec94646ca ) file(COPY ${SOURCE_PATH}/strtk.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) diff --git a/ports/tbb/CMakeLists.txt b/ports/tbb/CMakeLists.txt new file mode 100644 index 000000000..cc1dd3933 --- /dev/null +++ b/ports/tbb/CMakeLists.txt @@ -0,0 +1,18 @@ +project(tbb CXX) + +file(GLOB SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*) +file(COPY ${SOURCES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/src) + +include(${CMAKE_CURRENT_BINARY_DIR}/src/cmake/TBBBuild.cmake REQUIRED) +tbb_build(TBB_ROOT ${CMAKE_CURRENT_BINARY_DIR}/src MAKE_ARGS extra_inc=big_iron.inc) + +set(SUBDIR ${CMAKE_CURRENT_BINARY_DIR}/tbb_cmake_build/tbb_cmake_build_subdir) +if(CMAKE_BUILD_TYPE STREQUAL "Release") + set(SUBDIR "${SUBDIR}_release") +else() + set(SUBDIR "${SUBDIR}_debug") +endif() + +file(GLOB OUTPUTS ${SUBDIR}/*.so.* ${SUBDIR}/*.so ${SUBDIR}/*.a ${SUBDIR}/*.dylib ${SUBDIR}/*.dylib.*) + +install(FILES ${OUTPUTS} DESTINATION lib) diff --git a/ports/tbb/CONTROL b/ports/tbb/CONTROL index e70178a80..e87106dc3 100644 --- a/ports/tbb/CONTROL +++ b/ports/tbb/CONTROL @@ -1,3 +1,3 @@ Source: tbb -Version: 2018_U5 +Version: 2018_U5-4 Description: Intel's Threading Building Blocks. diff --git a/ports/tbb/portfile.cmake b/ports/tbb/portfile.cmake index 8a66fe2e3..ac47360f8 100644 --- a/ports/tbb/portfile.cmake +++ b/ports/tbb/portfile.cmake @@ -1,91 +1,86 @@ -if (VCPKG_LIBRARY_LINKAGE STREQUAL static) - message(STATUS "Warning: Static building not supported yet. Building dynamic.") - set(VCPKG_LIBRARY_LINKAGE dynamic) -endif() -if (VCPKG_CRT_LINKAGE STREQUAL static) - message(FATAL_ERROR "TBB does not currently support static crt linkage") +include(vcpkg_common_functions) + +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() -include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO 01org/tbb REF 2018_U5 SHA512 3e8d20276ccb1b50099f96b6cf968e3d0ada53caea1fa836ecb8652f1dca236fbbbf2c783e64ea2f761f7f21725064d19b72d176e35e4dc29706b8a30965153b - HEAD_REF tbb_2018) + HEAD_REF tbb_2018 +) -if(TRIPLET_SYSTEM_ARCH STREQUAL x86) - set(BUILD_ARCH Win32) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + ) + + vcpkg_install_cmake() + + # Settings for TBBConfigForSource.cmake.in + set(TBB_LIB_EXT a) + set(TBB_LIB_PREFIX lib) else() - set(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) + if (VCPKG_CRT_LINKAGE STREQUAL static) + set(RELEASE_CONFIGURATION Release-MT) + set(DEBUG_CONFIGURATION Debug-MT) + else() + set(RELEASE_CONFIGURATION Release) + set(DEBUG_CONFIGURATION Debug) + endif() + + vcpkg_install_msbuild( + SOURCE_PATH ${SOURCE_PATH} + PROJECT_SUBPATH build/vs2013/makefile.sln + RELEASE_CONFIGURATION ${RELEASE_CONFIGURATION} + DEBUG_CONFIGURATION ${DEBUG_CONFIGURATION} + ) + # Settings for TBBConfigForSource.cmake.in + set(TBB_LIB_EXT lib) + set(TBB_LIB_PREFIX) endif() -set(TBB_MSBUILD_PROJECT_DIR ${SOURCE_PATH}/build/vs2013) - -vcpkg_build_msbuild(PROJECT_PATH ${TBB_MSBUILD_PROJECT_DIR}/makefile.sln PLATFORM ${BUILD_ARCH}) - -# Installation -message(STATUS "Installing") file(COPY ${SOURCE_PATH}/include/tbb ${SOURCE_PATH}/include/serial DESTINATION ${CURRENT_PACKAGES_DIR}/include) -set(DEBUG_OUTPUT_PATH ${TBB_MSBUILD_PROJECT_DIR}/${BUILD_ARCH}/Debug) -set(RELEASE_OUTPUT_PATH ${TBB_MSBUILD_PROJECT_DIR}/${BUILD_ARCH}/Release) +# Settings for TBBConfigForSource.cmake.in +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + set(TBB_DEFAULT_COMPONENTS tbb tbbmalloc) +else() + set(TBB_DEFAULT_COMPONENTS tbb tbbmalloc tbbmalloc_proxy) +endif() +file(READ "${SOURCE_PATH}/include/tbb/tbb_stddef.h" _tbb_stddef) +string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_stddef}") +string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_stddef}") +string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_stddef}") +set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}") +set(TBB_RELEASE_DIR "\${_tbb_root}/lib") +set(TBB_DEBUG_DIR "\${_tbb_root}/debug/lib") -file(COPY - ${RELEASE_OUTPUT_PATH}/tbb.lib - ${RELEASE_OUTPUT_PATH}/tbbmalloc.lib - ${RELEASE_OUTPUT_PATH}/tbbmalloc_proxy.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/lib) -file(COPY - ${DEBUG_OUTPUT_PATH}/tbb_debug.lib - ${DEBUG_OUTPUT_PATH}/tbbmalloc_debug.lib - ${DEBUG_OUTPUT_PATH}/tbbmalloc_proxy_debug.lib - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) - -file(COPY - ${RELEASE_OUTPUT_PATH}/tbb.dll - ${RELEASE_OUTPUT_PATH}/tbbmalloc.dll - ${RELEASE_OUTPUT_PATH}/tbbmalloc_proxy.dll - DESTINATION ${CURRENT_PACKAGES_DIR}/bin) -file(COPY - ${DEBUG_OUTPUT_PATH}/tbb_debug.dll - ${DEBUG_OUTPUT_PATH}/tbbmalloc_debug.dll - ${DEBUG_OUTPUT_PATH}/tbbmalloc_proxy_debug.dll - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) - -vcpkg_copy_pdbs() - -include(${SOURCE_PATH}/cmake/TBBMakeConfig.cmake) -tbb_make_config(TBB_ROOT ${CURRENT_PACKAGES_DIR} - CONFIG_DIR TBB_CONFIG_DIR # is set to ${CURRENT_PACKAGES_DIR}/cmake - SYSTEM_NAME "Windows" - CONFIG_FOR_SOURCE - TBB_RELEASE_DIR "\${_tbb_root}/bin" - TBB_DEBUG_DIR "\${_tbb_root}/debug/bin") - -file(COPY ${TBB_CONFIG_DIR}/TBBConfig.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb) -file(COPY ${TBB_CONFIG_DIR}/TBBConfigVersion.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb) -file(REMOVE_RECURSE ${TBB_CONFIG_DIR}) - -# make it work with our installation layout -file(READ ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake TBB_CONFIG_CMAKE) +configure_file( + ${SOURCE_PATH}/cmake/templates/TBBConfigForSource.cmake.in + ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake + @ONLY +) +file(READ ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake _contents) string(REPLACE -"get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)" -"get_filename_component(_tbb_root \"\${_tbb_root}\" PATH) -get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}") -string(REPLACE -"\${_tbb_root}/bin/\${_tbb_component}.lib" -"\${_tbb_root}/lib/\${_tbb_component}.lib" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}") -string(REPLACE -"\${_tbb_root}/debug/bin/\${_tbb_component}_debug.lib" -"\${_tbb_root}/debug/lib/\${_tbb_component}_debug.lib" TBB_CONFIG_CMAKE "${TBB_CONFIG_CMAKE}") -file(WRITE ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake "${TBB_CONFIG_CMAKE}") - -message(STATUS "Installing done") + "get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)" + "get_filename_component(_tbb_root \"\${_tbb_root}\" PATH)\nget_filename_component(_tbb_root \"\${_tbb_root}\" PATH)" + _contents + "${_contents}" +) +string(REPLACE "SHARED IMPORTED)" "UNKNOWN IMPORTED)" _contents "${_contents}") +file(WRITE ${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake "${_contents}") # Handle copyright -file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb) +file(COPY ${SOURCE_PATH}/LICENSE ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/tbb) file(RENAME ${CURRENT_PACKAGES_DIR}/share/tbb/LICENSE ${CURRENT_PACKAGES_DIR}/share/tbb/copyright) + +vcpkg_test_cmake(PACKAGE_NAME TBB) diff --git a/ports/tbb/usage b/ports/tbb/usage new file mode 100644 index 000000000..ecea9834c --- /dev/null +++ b/ports/tbb/usage @@ -0,0 +1,4 @@ +The package tbb provides CMake targets: + + find_package(TBB CONFIG REQUIRED) + target_link_libraries(main PRIVATE TBB::tbb) diff --git a/ports/thrift/CONTROL b/ports/thrift/CONTROL index 6868dfb79..b654f4816 100644 --- a/ports/thrift/CONTROL +++ b/ports/thrift/CONTROL @@ -1,4 +1,4 @@ Source: thrift -Version: 2018-07-30 +Version: 2018-09-18 Build-Depends: zlib, libevent, openssl, boost-range, boost-smart-ptr, boost-date-time, boost-locale, boost-scope-exit 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 4322ad19a..88c74d6e1 100644 --- a/ports/thrift/portfile.cmake +++ b/ports/thrift/portfile.cmake @@ -15,8 +15,8 @@ vcpkg_find_acquire_program(BISON) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apache/thrift - REF dabb539d64fb303a443c7962caccc9177669ca80 - SHA512 5132e1f9d6afbaff736f34f5ab18bd0febed6143fe3042b86f0bab522b22324d10ff1fd3de7cef872fd2d434864ef98126636ad3a1cb4a0aae65ffcbabe4febe + REF 12f8b14fff9888dbfe6f5d6c64dc462254922a31 + SHA512 e067b1e5533f323c7f3f20365388ab4dfd796bca427ec5e087e5bac2ae74412536eec1dea4f694c58e1b9e91763d16a8a07c25daa03676ec33bf8b1107913e47 HEAD_REF master ) diff --git a/ports/tiff/portfile.cmake b/ports/tiff/portfile.cmake index 5ff4baa92..7062c1ce1 100644 --- a/ports/tiff/portfile.cmake +++ b/ports/tiff/portfile.cmake @@ -1,21 +1,20 @@ include(vcpkg_common_functions) set(LIBTIFF_VERSION 4.0.9) -set(LIBTIFF_HASH 04f3d5eefccf9c1a0393659fe27f3dddd31108c401ba0dc587bca152a1c1f6bc844ba41622ff5572da8cc278593eff8c402b44e7af0a0090e91d326c2d79f6cd) -set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/tiff-${LIBTIFF_VERSION}) vcpkg_download_distfile(ARCHIVE URLS "http://download.osgeo.org/libtiff/tiff-${LIBTIFF_VERSION}.tar.gz" FILENAME "tiff-${LIBTIFF_VERSION}.tar.gz" - SHA512 ${LIBTIFF_HASH} + SHA512 04f3d5eefccf9c1a0393659fe27f3dddd31108c401ba0dc587bca152a1c1f6bc844ba41622ff5572da8cc278593eff8c402b44e7af0a0090e91d326c2d79f6cd ) -vcpkg_extract_source_archive(${ARCHIVE}) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/add-component-options.patch - ${CMAKE_CURRENT_LIST_DIR}/fix-cxx-shared-libs.patch - ${CMAKE_CURRENT_LIST_DIR}/crt-secure-no-deprecate.patch +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE ${ARCHIVE} + REF ${LIBTIFF_VERSION} + PATCHES + add-component-options.patch + fix-cxx-shared-libs.patch + crt-secure-no-deprecate.patch ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") @@ -53,5 +52,8 @@ file(INSTALL DESTINATION ${CURRENT_PACKAGES_DIR}/share/tiff RENAME copyright ) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/tiff) vcpkg_copy_pdbs() + +vcpkg_test_cmake(PACKAGE_NAME TIFF MODULE) diff --git a/ports/tiff/usage b/ports/tiff/usage new file mode 100644 index 000000000..d5312603a --- /dev/null +++ b/ports/tiff/usage @@ -0,0 +1,4 @@ +The package tiff is compatible with built-in CMake targets: + + find_package(TIFF REQUIRED) + target_link_libraries(main PRIVATE TIFF::TIFF) diff --git a/ports/tiff/vcpkg-cmake-wrapper.cmake b/ports/tiff/vcpkg-cmake-wrapper.cmake index fed3875b8..8edcb5e43 100644 --- a/ports/tiff/vcpkg-cmake-wrapper.cmake +++ b/ports/tiff/vcpkg-cmake-wrapper.cmake @@ -8,15 +8,16 @@ if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") endif() find_package(JPEG) - list(APPEND TIFF_EXTRA_LIBRARIES ${JPEG_LIBRARIES}) - find_package(ZLIB) if(TARGET TIFF::TIFF) - set_property(TARGET TIFF::TIFF APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${TIFF_EXTRA_LIBRARIES} ZLIB::ZLIB) + set_property(TARGET TIFF::TIFF APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${TIFF_EXTRA_LIBRARIES} JPEG::JPEG ZLIB::ZLIB) + if(UNIX) + set_property(TARGET TIFF::TIFF APPEND PROPERTY INTERFACE_LINK_LIBRARIES m) + endif() endif() if(TIFF_LIBRARIES) - list(APPEND TIFF_LIBRARIES ${TIFF_EXTRA_LIBRARIES} ${ZLIB_LIBRARIES}) + list(APPEND TIFF_LIBRARIES ${TIFF_EXTRA_LIBRARIES} ${JPEG_LIBRARIES} ${ZLIB_LIBRARIES}) if(UNIX) list(APPEND TIFF_LIBRARIES m) endif() diff --git a/ports/tiny-dnn/CONTROL b/ports/tiny-dnn/CONTROL index f7f010bc2..2ce2693ac 100644 --- a/ports/tiny-dnn/CONTROL +++ b/ports/tiny-dnn/CONTROL @@ -1,3 +1,3 @@ Source: tiny-dnn -Version: 2018-07-30 +Version: 2018-09-18 Description: A C++14 implementation of deep learning. It is suitable for deep learning on limited computational resource. diff --git a/ports/tiny-dnn/portfile.cmake b/ports/tiny-dnn/portfile.cmake index daf9457cc..56946f95f 100644 --- a/ports/tiny-dnn/portfile.cmake +++ b/ports/tiny-dnn/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tiny-dnn/tiny-dnn - REF a8de26ad40d955908c5ec4fc946c3c67dd381c6c - SHA512 4dc89f038a4dd4bd706077f1c72afdd503fa41edc3b1eb0e8c459c55c9a658d17add98e66dac48914e253df121818da3d277b1a0fac945f22efe9d76d2f9476e + REF 1aec6a1ece0ba7a5e018a070bd52e045d49d1411 + SHA512 173607504cf4e6cc5f70febbfc305dd1fe7168bc6eff82c90d202caa342c3aecf13a3c3cc7f70f4f9674b5649d3a14180fb682742025c408e3e4ea9ec6b99f8a HEAD_REF master ) diff --git a/ports/tinyfiledialogs/CMakeLists.txt b/ports/tinyfiledialogs/CMakeLists.txt new file mode 100644 index 000000000..4adabaf9a --- /dev/null +++ b/ports/tinyfiledialogs/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.4) +project(tinyfiledialogs C) + +add_library(tinyfiledialogs tinyfiledialogs.c) + +install( + TARGETS tinyfiledialogs + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) diff --git a/ports/tinyfiledialogs/CONTROL b/ports/tinyfiledialogs/CONTROL new file mode 100644 index 000000000..bb3a2ff33 --- /dev/null +++ b/ports/tinyfiledialogs/CONTROL @@ -0,0 +1,3 @@ +Source: tinyfiledialogs +Version: 3.3.7-1 +Description: Highly portable and cross-platform dialogs for native inputbox, passwordbox, colorpicker and more diff --git a/ports/tinyfiledialogs/portfile.cmake b/ports/tinyfiledialogs/portfile.cmake new file mode 100644 index 000000000..66f1735a8 --- /dev/null +++ b/ports/tinyfiledialogs/portfile.cmake @@ -0,0 +1,37 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +set(SHA 03d35a86696859128d41f8b967c1ef3e39c980ce) + +vcpkg_download_distfile(HEADERFILE + URLS "https://sourceforge.net/p/tinyfiledialogs/code/ci/${SHA}/tree/tinyfiledialogs.h?format=raw" + FILENAME "tinyfiledialogs-h-${SHA}" + SHA512 e3503165bcbb665c2f09c19591f28eba63e50b8d20fd4e65f31ec6a33742879c007aa7402cfd429ff92a2847534f0f0cc1b979954372be0c6578d49ed5f3e18d +) +vcpkg_download_distfile(SOURCEFILE + URLS "https://sourceforge.net/p/tinyfiledialogs/code/ci/${SHA}/tree/tinyfiledialogs.c?format=raw" + FILENAME "tinyfiledialogs-c-${SHA}" + SHA512 263a9fcd11af3dcfd3cd7b6cfaad216cfdd94925639e613d43e7a2dbae2b4387fe8182cd72401e19b2891a08809bc68caece341df28e91b5894cc4b9ecd157f4 +) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SHA}) + +configure_file(${HEADERFILE} ${SOURCE_PATH}/tinyfiledialogs.h COPYONLY) +configure_file(${SOURCEFILE} ${SOURCE_PATH}/tinyfiledialogs.c COPYONLY) +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() + +configure_file(${HEADERFILE} ${CURRENT_PACKAGES_DIR}/include/tinyfiledialogs.h COPYONLY) + +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/tinyfiledialogs) +file(READ ${HEADERFILE} _contents) +string(SUBSTRING "${_contents}" 0 1024 _contents) +file(WRITE ${CURRENT_PACKAGES_DIR}/share/tinyfiledialogs/copyright "${_contents}") diff --git a/ports/tinyspline/CONTROL b/ports/tinyspline/CONTROL new file mode 100644 index 000000000..ef83e311b --- /dev/null +++ b/ports/tinyspline/CONTROL @@ -0,0 +1,3 @@ +Source: tinyspline +Version: 0.2.0-1 +Description: Library for NURBS, B-Splines, and B?zier curves, allowing you to handle splines with ease diff --git a/ports/tinyspline/cmake.patch b/ports/tinyspline/cmake.patch new file mode 100644 index 000000000..2cb6a2602 --- /dev/null +++ b/ports/tinyspline/cmake.patch @@ -0,0 +1,29 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 02dfb83..35e01f8 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -387,6 +387,9 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + # TINYSPLINE_LIBRARY_C_FLAGS + set(TINYSPLINE_LIBRARY_C_FLAGS "${TINYSPLINE_LIBRARY_C_FLAGS} /Wall") + set(TINYSPLINE_LIBRARY_C_FLAGS "${TINYSPLINE_LIBRARY_C_FLAGS} /WX") ++ set(TINYSPLINE_LIBRARY_C_FLAGS "${TINYSPLINE_LIBRARY_C_FLAGS} /wd4820") ++ set(TINYSPLINE_LIBRARY_C_FLAGS "${TINYSPLINE_LIBRARY_C_FLAGS} /wd5045") ++ set(TINYSPLINE_LIBRARY_C_FLAGS "${TINYSPLINE_LIBRARY_C_FLAGS} /wd4711") + + # TINYSPLINE_LIBRARY_CXX_FLAGS + set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /Wall") +@@ -395,6 +398,14 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4710") + set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4350") + set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4820") ++ set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd5045") ++ set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4571") ++ set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4625") ++ set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4626") ++ set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd5026") ++ set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd5027") ++ set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4774") ++ set(TINYSPLINE_LIBRARY_CXX_FLAGS "${TINYSPLINE_LIBRARY_CXX_FLAGS} /wd4711") + + # TINYSPLINE_BINDING_CXX_FLAGS + set(TINYSPLINE_BINDING_CXX_FLAGS "${TINYSPLINE_BINDING_CXX_FLAGS} /w") diff --git a/ports/tinyspline/portfile.cmake b/ports/tinyspline/portfile.cmake new file mode 100644 index 000000000..a290cf3a7 --- /dev/null +++ b/ports/tinyspline/portfile.cmake @@ -0,0 +1,25 @@ +include(vcpkg_common_functions) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO msteinbeck/tinyspline + REF 0.2.0 + SHA512 50cf4927b311eeca6de7954f1b8d585cbf71355f5e5b0aac2f92f5f4ba37986df16eb3251f94a2304d27dab27d4f6b838b410f53e30de28bab53facf194eb640 + HEAD_REF master + PATCHES + cmake.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH}/src + PREFER_NINJA +) + +vcpkg_install_cmake() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/tinyspline/copyright COPYONLY) diff --git a/ports/tinyutf8/CONTROL b/ports/tinyutf8/CONTROL new file mode 100644 index 000000000..e67cee3fc --- /dev/null +++ b/ports/tinyutf8/CONTROL @@ -0,0 +1,3 @@ +Source: tinyutf8 +Version: 2.1.1-1 +Description: TINYUTF8 is a library for extremely easy integration of Unicode into an arbitrary C++11 project. diff --git a/ports/tinyutf8/fixbuild.patch b/ports/tinyutf8/fixbuild.patch new file mode 100644 index 000000000..c1798ada1 --- /dev/null +++ b/ports/tinyutf8/fixbuild.patch @@ -0,0 +1,29 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4ec8787..cfea5b3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,7 +1,7 @@ + cmake_minimum_required(VERSION 3.1) + project(tinyutf8) + +-set(CMAKE_CXX_STANDARD 11) ++set(CMAKE_CXX_STANDARD 17) + + option(TINYUTF8_BUILD_STATIC "Build as static library" On) + +@@ -14,3 +14,14 @@ endif() + add_library(tinyutf8 ${LIB_BUILD_TYPE} lib/tinyutf8.cpp) + + target_include_directories(tinyutf8 PUBLIC include) ++ ++if(MSVC) ++ ADD_DEFINITIONS(-D_UNICODE) ++endif() ++ ++install(TARGETS tinyutf8 ++ RUNTIME DESTINATION bin ++ ARCHIVE DESTINATION lib ++ LIBRARY DESTINATION lib) ++ ++install(FILES include/tinyutf8.h DESTINATION include) +\ No newline at end of file diff --git a/ports/tinyutf8/portfile.cmake b/ports/tinyutf8/portfile.cmake new file mode 100644 index 000000000..c768260c9 --- /dev/null +++ b/ports/tinyutf8/portfile.cmake @@ -0,0 +1,29 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO DuffsDevice/tinyutf8 + REF v2.1.1 + SHA512 0be9cebe1ac962c89e0620586d4f8d4f3059b52394e13506f19723855d146c35e6a1205ae5430a53ba95a89c60216054bfad9c4e8e8f1ec047f4096585de2efc + HEAD_REF master + PATCHES fixbuild.patch +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" TINYUTF8_BUILD_STATIC) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS -DTINYUTF8_BUILD_STATIC=${TINYUTF8_BUILD_STATIC} +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +# Handle copyright +configure_file(${SOURCE_PATH}/LICENCE ${CURRENT_PACKAGES_DIR}/share/tinyutf8/copyright COPYONLY) + +# remove unneeded files +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) diff --git a/ports/tl-expected/CONTROL b/ports/tl-expected/CONTROL new file mode 100644 index 000000000..440efe9fa --- /dev/null +++ b/ports/tl-expected/CONTROL @@ -0,0 +1,3 @@ +Source: tl-expected +Version: 0.3-1 +Description: C++11/14/17 std::expected implementation with functional-style extensions diff --git a/ports/tl-expected/portfile.cmake b/ports/tl-expected/portfile.cmake new file mode 100644 index 000000000..95a4861c2 --- /dev/null +++ b/ports/tl-expected/portfile.cmake @@ -0,0 +1,15 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO TartanLlama/expected + REF v0.3 + SHA512 a228399f7103020ed814f1c755b82cf831b3d8c6aaa23dbc3aedc226b3cbd39c22075952dda3af84c8cf6f74ab1131c6997a2431ee62314bd82ccafdc9ab23a3 + HEAD_REF master +) + +# Install header file +file(INSTALL ${SOURCE_PATH}/tl DESTINATION ${CURRENT_PACKAGES_DIR}/include) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/tl-expected RENAME copyright) diff --git a/ports/tmx/CONTROL b/ports/tmx/CONTROL new file mode 100644 index 000000000..9079cb85e --- /dev/null +++ b/ports/tmx/CONTROL @@ -0,0 +1,4 @@ +Source: tmx +Version: 1.0.0 +Description: A portable C library to load tiled maps in your games. +Build-Depends: zlib, libxml2 diff --git a/ports/tmx/portfile.cmake b/ports/tmx/portfile.cmake new file mode 100644 index 000000000..b3f70f4d1 --- /dev/null +++ b/ports/tmx/portfile.cmake @@ -0,0 +1,29 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO baylej/tmx + REF tmx_1.0.0 + HEAD_REF master + SHA512 d045c45efd03f91a81dae471cb9ddc80d222b3ac52e13b729deeaf3e07d0a03b8e0956b30336ef410c72ddbbf33bea6811da5454b88d44b1db75683ef2a9383a +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake/tmx/tmxExports.cmake ${CURRENT_PACKAGES_DIR}/lib/cmake/tmx/tmxTargets.cmake) +vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/tmx") +file(RENAME ${CURRENT_PACKAGES_DIR}/share/tmx/tmxTargets.cmake ${CURRENT_PACKAGES_DIR}/share/tmx/tmxExports.cmake) + +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/share +) + +# Handle copyright +configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/tmx/copyright COPYONLY) diff --git a/ports/unicorn-lib/CONTROL b/ports/unicorn-lib/CONTROL index 7fec5c07a..f6a3bc9c0 100644 --- a/ports/unicorn-lib/CONTROL +++ b/ports/unicorn-lib/CONTROL @@ -1,4 +1,4 @@ Source: unicorn-lib -Version: 2018-07-30 +Version: 2018-09-18 Description: Unicode library for C++ by Ross Smith Build-Depends: rs-core-lib, pcre2, zlib, libiconv diff --git a/ports/unicorn-lib/portfile.cmake b/ports/unicorn-lib/portfile.cmake index c62fe70bc..3b97d3c01 100644 --- a/ports/unicorn-lib/portfile.cmake +++ b/ports/unicorn-lib/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CaptainCrowbar/unicorn-lib - REF 6d33ec8d828c3740cc6fd66ef03f395526450ad6 - SHA512 4f802b4889e0683bd156a3dcc670cff737b532169f092d99434e2877b152bd2963984000a00bf928e11ba5142e10c5af8e0986f2c92fa6b7251d53cb688bd96a + REF 6456df41b6dfeecd35ec1d50eb86657512c76c40 + SHA512 04756035039b93905713e7c7f2fac66d545f3792d39b9c2c95946c4423a9e1bdef7fe736488764800f494570a3e9a83adc84b60a750bf62b2af4508671f76afe HEAD_REF master ) diff --git a/ports/unicorn/CONTROL b/ports/unicorn/CONTROL index 74a6c282d..80d33202c 100644 --- a/ports/unicorn/CONTROL +++ b/ports/unicorn/CONTROL @@ -1,3 +1,3 @@ Source: unicorn -Version: 2018-07-30 +Version: 2018-09-18 Description: Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework diff --git a/ports/unicorn/portfile.cmake b/ports/unicorn/portfile.cmake index 272dc0bc1..2a52c6be6 100644 --- a/ports/unicorn/portfile.cmake +++ b/ports/unicorn/portfile.cmake @@ -14,8 +14,8 @@ set(VCPKG_CRT_LINKAGE "static") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO unicorn-engine/unicorn - REF e3af0d086dc58f3a25f45da2446f99c13a63885e - SHA512 0049efa4ca7a1f40d03872bd310766f56bb4c5456544b0d50f78dcc149ac5e62f2e5ba9b1f651d92b4d8ac42780029f3b8ae5f2d7da3295d507226bfa592b8e6 + REF 46999575fb9e82ccd925e835d0d7db47200e010d + SHA512 9a93157266f2f6b7f5b6fabefda77b4d617648f0112ff6b575be8c92eea16ea6c96b0575f040fd5a893240907492335c53c03c840fee58ca8808b39762fefc34 HEAD_REF master ) diff --git a/ports/uriparser/CONTROL b/ports/uriparser/CONTROL index 553d44de9..4a2789309 100644 --- a/ports/uriparser/CONTROL +++ b/ports/uriparser/CONTROL @@ -1,3 +1,3 @@ Source: uriparser -Version: 0.8.5 +Version: 0.8.6 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/uriparser/portfile.cmake b/ports/uriparser/portfile.cmake index cb8f1b14a..262c43592 100644 --- a/ports/uriparser/portfile.cmake +++ b/ports/uriparser/portfile.cmake @@ -1,11 +1,10 @@ - include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO uriparser/uriparser - REF uriparser-0.8.5 - SHA512 b5a4eb316b96bdd5b87cac9fdd30b8988c158914e71030a45aafabd04df67a94bba9696782d98e9fa2169baf351e95ab1479bc76d8afe37968a941bc27a3ffb6 + REF uriparser-0.8.6 + SHA512 281063a3cde215142305815b6469f96fe670d3693ae1add36683368c8b7e8fb04624bfb9a57770f0c5b8b5586419cb713a6d98aa29c34b9b2382682a71bff084 HEAD_REF master ) diff --git a/ports/usrsctp/CONTROL b/ports/usrsctp/CONTROL new file mode 100644 index 000000000..5e5f172ba --- /dev/null +++ b/ports/usrsctp/CONTROL @@ -0,0 +1,3 @@ +Source: usrsctp +Version: 35c1d97020a +Description: This is a userland SCTP stack supporting FreeBSD, Linux, Mac OS X and Windows. diff --git a/ports/usrsctp/portfile.cmake b/ports/usrsctp/portfile.cmake new file mode 100644 index 000000000..863b3f75c --- /dev/null +++ b/ports/usrsctp/portfile.cmake @@ -0,0 +1,36 @@ +include(vcpkg_common_functions) +vcpkg_check_linkage( + ONLY_STATIC_LIBRARY +) +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO sctplab/usrsctp + REF 35c1d97020a20014b989bba4f20225fd9429c4f4 + SHA512 18786825ec2c8c8aeb6b0bcab97deeac40420f7a9bdb427c891b26633ff759266409381ae2545c5572a740322ae1a56f80da1a784d71e50fce97177c343d27ce + HEAD_REF master +) + + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +file(GLOB_RECURSE release_dlls ${CURRENT_PACKAGES_DIR}/lib/*.dll) +file(GLOB_RECURSE debug_dlls ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) + +if(release_dlls) + file(REMOVE ${release_dlls}) +endif() +if(debug_dlls) + file(REMOVE ${debug_dlls}) +endif() + + +file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/usrsctp RENAME copyright) diff --git a/ports/vulkan-memory-allocator/CONTROL b/ports/vulkan-memory-allocator/CONTROL new file mode 100644 index 000000000..ec6c0757a --- /dev/null +++ b/ports/vulkan-memory-allocator/CONTROL @@ -0,0 +1,3 @@ +Source: vulkan-memory-allocator +Version: 2.1.0-1 +Description: Easy to integrate Vulkan memory allocation library from GPUOpen diff --git a/ports/vulkan-memory-allocator/portfile.cmake b/ports/vulkan-memory-allocator/portfile.cmake new file mode 100644 index 000000000..c72af8935 --- /dev/null +++ b/ports/vulkan-memory-allocator/portfile.cmake @@ -0,0 +1,15 @@ +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator + REF v2.1.0 + SHA512 4d7d431d52503d4d448a8b571935678a8a04d8f4a7eceb6ad49cde4f78954e7a2a0a91e48c75382699a62d81cf00601aaa0a358d979ed8e14741a9956484b51e + HEAD_REF master +) + +file(COPY "${SOURCE_PATH}/src/vk_mem_alloc.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/unofficial-vulkan-memory-allocator-config.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/unofficial-vulkan-memory-allocator) + +configure_file(${SOURCE_PATH}/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/vulkan-memory-allocator/copyright COPYONLY) diff --git a/ports/vulkan-memory-allocator/unofficial-vulkan-memory-allocator-config.cmake b/ports/vulkan-memory-allocator/unofficial-vulkan-memory-allocator-config.cmake new file mode 100644 index 000000000..fc9f62550 --- /dev/null +++ b/ports/vulkan-memory-allocator/unofficial-vulkan-memory-allocator-config.cmake @@ -0,0 +1,8 @@ + +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) + +add_library(unofficial::vulkan-memory-allocator::vulkan-memory-allocator INTERFACE IMPORTED) +set_target_properties(unofficial::vulkan-memory-allocator::vulkan-memory-allocator PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include") +set(_IMPORT_PREFIX) diff --git a/ports/woff2/CONTROL b/ports/woff2/CONTROL new file mode 100644 index 000000000..e4e6511ca --- /dev/null +++ b/ports/woff2/CONTROL @@ -0,0 +1,4 @@ +Source: woff2 +Version: 1.0.2 +Build-Depends: brotli +Description: font compression reference code diff --git a/ports/woff2/portfile.cmake b/ports/woff2/portfile.cmake new file mode 100644 index 000000000..41efbba0a --- /dev/null +++ b/ports/woff2/portfile.cmake @@ -0,0 +1,32 @@ +include(vcpkg_common_functions) + +vcpkg_check_linkage( + ONLY_STATIC_LIBRARY +) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO google/woff2 + REF v1.0.2 + SHA512 c788bba1530aec463e755e901f9342f4b599e3a07f54645fef1dc388ab5d5c30625535e5dd38e9e792e04a640574baa50eeefb6b7338ab403755f4a4e0c3044d + HEAD_REF master +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA +) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +file(COPY ${CURRENT_PACKAGES_DIR}/bin/ DESTINATION ${CURRENT_PACKAGES_DIR}/tools/woff2) +file(REMOVE_RECURSE + ${CURRENT_PACKAGES_DIR}/bin + ${CURRENT_PACKAGES_DIR}/debug/bin + ${CURRENT_PACKAGES_DIR}/debug/include +) + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/woff2) +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/woff2 RENAME copyright) diff --git a/ports/wt/CONTROL b/ports/wt/CONTROL index de121050a..ff99b10b5 100644 --- a/ports/wt/CONTROL +++ b/ports/wt/CONTROL @@ -1,4 +1,4 @@ Source: wt -Version: 4.0.3-1 +Version: 4.0.4 Description: Wt is a C++ library for developing web applications Build-Depends: openssl, sqlite3, libpq, pango, glew, boost-date-time, boost-regex, boost-program-options, boost-signals, boost-system, boost-filesystem, boost-thread, boost-random, boost-multi-index, boost-signals2, boost-asio, boost-ublas, boost-conversion, boost-array, boost-smart-ptr, boost-tuple, boost-algorithm, boost-logic, boost-interprocess diff --git a/ports/wt/portfile.cmake b/ports/wt/portfile.cmake index b33e9110b..614480168 100644 --- a/ports/wt/portfile.cmake +++ b/ports/wt/portfile.cmake @@ -3,17 +3,13 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO emweb/wt - REF 4.0.3 - SHA512 5985f72cbd3065ac696aad4d11711f2d69e066ee17141b56fd7c2616c7f7353586ab8d13db2baa90fa8f3cb116aa7c9044ee3cc42e99e8f5c8704f886ac3b2b6 + REF 4.0.4 + SHA512 7f9fee9b1c145adb610bf9b0860867a2f09699a1c914418938955c5648b3207db361ec48b3afe9e6faa6cc0b5874bedd44481fdd8adb8fc558cfc3dc17369ee7 HEAD_REF master -) - -vcpkg_apply_patches( - SOURCE_PATH ${SOURCE_PATH} PATCHES - ${CMAKE_CURRENT_LIST_DIR}/0001-boost-1.66.patch - ${CMAKE_CURRENT_LIST_DIR}/0002-link-glew.patch - ${CMAKE_CURRENT_LIST_DIR}/0003-disable-boost-autolink.patch + 0001-boost-1.66.patch + 0002-link-glew.patch + 0003-disable-boost-autolink.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SHARED_LIBS) diff --git a/ports/x264/CONTROL b/ports/x264/CONTROL index 245fb8f7f..44b664142 100644 --- a/ports/x264/CONTROL +++ b/ports/x264/CONTROL @@ -1,3 +1,3 @@ Source: x264 -Version: 152-e9a5903edf8ca59-1 +Version: 157-303c484ec828ed0 Description: x264 is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC compression format diff --git a/ports/x264/portfile.cmake b/ports/x264/portfile.cmake index d5f85ecdd..67d7ab087 100644 --- a/ports/x264/portfile.cmake +++ b/ports/x264/portfile.cmake @@ -1,12 +1,12 @@ include(vcpkg_common_functions) -set(X264_VERSION 152) +set(X264_VERSION 157) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mirror/x264 - REF e9a5903edf8ca59ef20e6f4894c196f135af735e - SHA512 063da238264b33ab7ccf097c1f8a7d6b1bf1f0777b433ccbb6ab98090f050fa4d289eeff37b701b8fd7fb5ad460b7fa13d61b68b3f397bc78a8eaa50379e4878 + REF 303c484ec828ed0d8bfe743500e70314d026c3bd + SHA512 faf210a3f9543028ed882c8348b243dd7ae6638e7b3ef43bec1326b717f23370f57c13d0ddb5e1ae94411088a2e33031a137b68ae9f64c18f8f33f601a0da54d HEAD_REF master ) diff --git a/ports/yara/CMakeLists.txt b/ports/yara/CMakeLists.txt index 783d322fb..89780ce42 100644 --- a/ports/yara/CMakeLists.txt +++ b/ports/yara/CMakeLists.txt @@ -17,12 +17,28 @@ include_directories( libyara/include ) +set(PROC_PLATFORM_SOURCE "libyara/proc/none.c") +set(PROC_PLATFORM_INTERFACE "USE_NO_PROC") + +if(APPLE AND CMAKE_SYSTEM_NAME MATCHES "Darwin") + set(PROC_PLATFORM_SOURCE "libyara/proc/mach.c") + set(PROC_PLATFORM_INTERFACE "USE_MACH_PROC") +elseif(WIN32 OR MINGW OR CYGWIN) + set(PROC_PLATFORM_SOURCE "libyara/proc/windows.c") + set(PROC_PLATFORM_INTERFACE "USE_WINDOWS_PROC") +elseif(UNIX AND CMAKE_SYSTEM_NAME MATCHES "Linux") + set(THREADS_PREFER_PTHREAD_FLAG TRUE) + set(PROC_PLATFORM_SOURCE "libyara/proc/linux.c") + set(PROC_PLATFORM_INTERFACE "USE_LINUX_PROC") +endif() + set( libyara_sources libyara/ahocorasick.c libyara/arena.c libyara/atoms.c libyara/compiler.c + libyara/endian.c libyara/exec.c libyara/exefiles.c libyara/filemap.c @@ -47,13 +63,14 @@ set( libyara/object.c libyara/parser.c libyara/proc.c - libyara/proc/windows.c + ${PROC_PLATFORM_SOURCE} libyara/re.c libyara/re_grammar.c libyara/re_lexer.c libyara/rules.c libyara/scan.c libyara/sizedstr.c + libyara/stopwatch.c libyara/stream.c libyara/strutils.c libyara/threading.c @@ -70,22 +87,40 @@ set( yarac_sources yarac.c ) -add_library(libyara ${libyara_sources}) -target_link_libraries(libyara PRIVATE OpenSSL::SSL OpenSSL::Crypto ${JANSSON_LIBRARY}) -target_compile_definitions( - libyara - PRIVATE - -DHAVE_LIBCRYPTO -DUSE_WINDOWS_PROC - -DCUCKOO_MODULE- DHASH_MODULE -DDOTNET_MODULE +find_package(Threads REQUIRED) + +set( + libyara_dependencies + OpenSSL::SSL + OpenSSL::Crypto + Threads::Threads + ${JANSSON_LIBRARY} ) +if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") + list(APPEND libyara_dependencies m) +endif() + +set( + libyara_definitions + -DHAVE_LIBCRYPTO + -D${PROC_PLATFORM_INTERFACE} + -DCUCKOO_MODULE + -DHASH_MODULE + -DDOTNET_MODULE +) + +add_library(libyara ${libyara_sources}) +target_link_libraries(libyara PRIVATE ${libyara_dependencies}) +target_compile_definitions(libyara PRIVATE ${libyara_definitions}) + add_executable(yara ${yara_sources}) add_executable(yarac ${yarac_sources}) -target_link_libraries(yarac PRIVATE libyara OpenSSL::SSL OpenSSL::Crypto ${JANSSON_LIBRARY}) -target_link_libraries(yara PRIVATE libyara OpenSSL::SSL OpenSSL::Crypto ${JANSSON_LIBRARY}) +target_link_libraries(yarac PRIVATE libyara ${libyara_dependencies}) +target_link_libraries(yara PRIVATE libyara ${libyara_dependencies}) install( TARGETS libyara diff --git a/ports/yara/CONTROL b/ports/yara/CONTROL index 8772a00c6..fb29eaad0 100644 --- a/ports/yara/CONTROL +++ b/ports/yara/CONTROL @@ -1,4 +1,4 @@ Source: yara -Version: e3439e4ead4ed5d3b75a0b46eaf15ddda2110bb9 +Version: e3439e4ead4ed5d3b75a0b46eaf15ddda2110bb9-1 Description: The pattern matching swiss knife Build-Depends: openssl, jansson diff --git a/ports/zeromq/CONTROL b/ports/zeromq/CONTROL index d2de1a290..ba419fb39 100644 --- a/ports/zeromq/CONTROL +++ b/ports/zeromq/CONTROL @@ -1,3 +1,3 @@ Source: zeromq -Version: 2018-07-30 +Version: 2018-09-18 Description: The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products diff --git a/ports/zeromq/portfile.cmake b/ports/zeromq/portfile.cmake index 0f6add1a9..188eb0918 100644 --- a/ports/zeromq/portfile.cmake +++ b/ports/zeromq/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/libzmq - REF da8024d3c9bb9ee5fa7f0f2e9d05f7e01db73cbf - SHA512 2585e784eeb9b79ec2e83eae302593f8da4542d28e53dc6975447d6e44532baedb7145569712e8c76ab3972a3d46585e017dfeb895a45954f20b979f485d9647 + REF ea517a28ff23cff24a3b2ead42e1f6a44e6fad0e + SHA512 11425b151192b39e770ece1df3139b99315a4647ec242e951b736cc232da79a0b80f635b071d87adaa7d3f6d4266ab67d31b8f95f31fe3ab278e53febc5ae796 HEAD_REF master ) diff --git a/scripts/bootstrap.ps1 b/scripts/bootstrap.ps1 index 5554ddc1e..7ebbb2930 100644 --- a/scripts/bootstrap.ps1 +++ b/scripts/bootstrap.ps1 @@ -349,6 +349,7 @@ $arguments = ( "/p:Platform=$platform", "/p:PlatformToolset=$platformToolset", "/p:TargetPlatformVersion=$windowsSDK", +"/p:PreferredToolArchitecture=x64", "/verbosity:minimal", "/m", "/nologo", diff --git a/scripts/cleanEnvironmentHelper.ps1 b/scripts/cleanEnvironmentHelper.ps1 index 0a133f5f8..a3792ecd3 100644 --- a/scripts/cleanEnvironmentHelper.ps1 +++ b/scripts/cleanEnvironmentHelper.ps1 @@ -17,7 +17,7 @@ foreach ($name in $nameSet) } # PATH needs to be concatenated as it has values in both machine and user environment. Any other values should be set. - if ($name -match 'path') + if ($name -eq 'path') { $pathValuePartial = @() # Machine values before user values diff --git a/scripts/cmake/vcpkg_extract_source_archive.cmake b/scripts/cmake/vcpkg_extract_source_archive.cmake index 3aafd4ca4..da0ac611a 100644 --- a/scripts/cmake/vcpkg_extract_source_archive.cmake +++ b/scripts/cmake/vcpkg_extract_source_archive.cmake @@ -29,25 +29,19 @@ ## * [msgpack](https://github.com/Microsoft/vcpkg/blob/master/ports/msgpack/portfile.cmake) include(vcpkg_execute_required_process) -function(vcpkg_extract_source_archive_ex) - cmake_parse_arguments(_vesae "" "ARCHIVE;WORKING_DIRECTORY" "" ${ARGN}) - - if(NOT _vesae_ARCHIVE) - message(FATAL_ERROR "Must specify ARCHIVE parameter to vcpkg_extract_source_archive_ex()") - endif() - - if(DEFINED _vesae_WORKING_DIRECTORY) - set(WORKING_DIRECTORY ${_vesae_WORKING_DIRECTORY}) +function(vcpkg_extract_source_archive ARCHIVE) + if(NOT ARGC EQUAL 2) + set(WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src") else() - set(WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src) + set(WORKING_DIRECTORY ${ARGV1}) endif() - get_filename_component(ARCHIVE_FILENAME ${_vesae_ARCHIVE} NAME) + get_filename_component(ARCHIVE_FILENAME "${ARCHIVE}" NAME) if(NOT EXISTS ${WORKING_DIRECTORY}/${ARCHIVE_FILENAME}.extracted) - message(STATUS "Extracting source ${_vesae_ARCHIVE}") + message(STATUS "Extracting source ${ARCHIVE}") file(MAKE_DIRECTORY ${WORKING_DIRECTORY}) vcpkg_execute_required_process( - COMMAND ${CMAKE_COMMAND} -E tar xjf ${_vesae_ARCHIVE} + COMMAND ${CMAKE_COMMAND} -E tar xjf ${ARCHIVE} WORKING_DIRECTORY ${WORKING_DIRECTORY} LOGNAME extract ) @@ -55,13 +49,81 @@ function(vcpkg_extract_source_archive_ex) endif() endfunction() -function(vcpkg_extract_source_archive ARCHIVE) - if(NOT ARGC EQUAL 2) - vcpkg_extract_source_archive_ex(ARCHIVE ${ARCHIVE}) - else() - vcpkg_extract_source_archive_ex( - ARCHIVE ${ARCHIVE} - WORKING_DIRECTORY ${ARGV1} - ) +function(vcpkg_extract_source_archive_ex) + cmake_parse_arguments(_vesae "NO_REMOVE_ONE_LEVEL" "OUT_SOURCE_PATH;ARCHIVE;REF;WORKING_DIRECTORY" "PATCHES" ${ARGN}) + + if(NOT _vesae_ARCHIVE) + message(FATAL_ERROR "Must specify ARCHIVE parameter to vcpkg_extract_source_archive_ex()") endif() -endfunction() \ No newline at end of file + + if(NOT DEFINED _vesae_OUT_SOURCE_PATH) + message(FATAL_ERROR "Must specify OUT_SOURCE_PATH parameter to vcpkg_extract_source_archive_ex()") + endif() + + if(NOT DEFINED _vesae_WORKING_DIRECTORY) + set(_vesae_WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src) + endif() + + if(NOT DEFINED _vesae_REF) + get_filename_component(_vesae_REF ${_vesae_ARCHIVE} NAME_WE) + endif() + + string(REPLACE "/" "-" SANITIZED_REF "${_vesae_REF}") + + # Take the last 10 chars of the REF + set(REF_MAX_LENGTH 10) + string(LENGTH ${SANITIZED_REF} REF_LENGTH) + math(EXPR FROM_REF ${REF_LENGTH}-${REF_MAX_LENGTH}) + if(FROM_REF LESS 0) + set(FROM_REF 0) + endif() + string(SUBSTRING ${SANITIZED_REF} ${FROM_REF} ${REF_LENGTH} SHORTENED_SANITIZED_REF) + + # Hash the archive hash along with the patches. Take the first 10 chars of the hash + file(SHA512 ${_vesae_ARCHIVE} PATCHSET_HASH) + foreach(PATCH IN LISTS _vesae_PATCHES) + get_filename_component(ABSOLUTE_PATCH "${PATCH}" ABSOLUTE BASE_DIR "${CURRENT_PORT_DIR}") + file(SHA512 ${ABSOLUTE_PATCH} CURRENT_HASH) + string(APPEND PATCHSET_HASH ${CURRENT_HASH}) + endforeach() + + string(SHA512 PATCHSET_HASH ${PATCHSET_HASH}) + string(SUBSTRING ${PATCHSET_HASH} 0 10 PATCHSET_HASH) + set(SOURCE_PATH "${_vesae_WORKING_DIRECTORY}/${SHORTENED_SANITIZED_REF}-${PATCHSET_HASH}") + + if(NOT EXISTS ${SOURCE_PATH}) + set(TEMP_DIR "${_vesae_WORKING_DIRECTORY}/TEMP") + file(REMOVE_RECURSE ${TEMP_DIR}) + vcpkg_extract_source_archive("${_vesae_ARCHIVE}" "${TEMP_DIR}") + + if(_vesae_NO_REMOVE_ONE_LEVEL) + set(TEMP_SOURCE_PATH ${TEMP_DIR}) + else() + file(GLOB _ARCHIVE_FILES "${TEMP_DIR}/*") + list(LENGTH _ARCHIVE_FILES _NUM_ARCHIVE_FILES) + set(TEMP_SOURCE_PATH) + foreach(dir IN LISTS _ARCHIVE_FILES) + if (IS_DIRECTORY ${dir}) + set(TEMP_SOURCE_PATH "${dir}") + break() + endif() + endforeach() + + if(NOT _NUM_ARCHIVE_FILES EQUAL 2 OR NOT TEMP_SOURCE_PATH) + message(FATAL_ERROR "Could not unwrap top level directory from archive. Pass NO_REMOVE_ONE_LEVEL to disable this.") + endif() + endif() + + vcpkg_apply_patches( + SOURCE_PATH ${TEMP_SOURCE_PATH} + PATCHES ${_vesae_PATCHES} + ) + + file(RENAME ${TEMP_SOURCE_PATH} ${SOURCE_PATH}) + file(REMOVE_RECURSE ${TEMP_DIR}) + endif() + + set(${_vesae_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) + message(STATUS "Using source at ${SOURCE_PATH}") + return() +endfunction() diff --git a/scripts/cmake/vcpkg_from_bitbucket.cmake b/scripts/cmake/vcpkg_from_bitbucket.cmake index 7eaf550bb..5f23714ea 100644 --- a/scripts/cmake/vcpkg_from_bitbucket.cmake +++ b/scripts/cmake/vcpkg_from_bitbucket.cmake @@ -11,6 +11,7 @@ ## [REF ] ## [SHA512 <45d0d7f8cc350...>] ## [HEAD_REF ] +## [PATCHES ...] ## ) ## ``` ## @@ -40,6 +41,11 @@ ## ## For most projects, this should be `master`. The chosen branch should be one that is expected to be always buildable on all supported platforms. ## +## ### PATCHES +## A list of patches to be applied to the extracted sources. +## +## Relative paths are based on the port directory. +## ## ## Notes: ## At least one of `REF` and `HEAD_REF` must be specified, however it is preferable for both to be present. ## @@ -50,7 +56,7 @@ ## * [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) + set(multipleValuesArgs PATCHES) cmake_parse_arguments(_vdud "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN}) if(NOT _vdud_OUT_SOURCE_PATH) @@ -123,8 +129,14 @@ function(vcpkg_from_bitbucket) 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}) + + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${ARCHIVE}" + REF "${_vdud_REF}" + PATCHES ${_vdud_PATCHES} + ) + set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) return() endif() @@ -164,11 +176,6 @@ function(vcpkg_from_bitbucket) ) endif() - vcpkg_extract_source_archive_ex( - ARCHIVE "${ARCHIVE}" - 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 "${ARCHIVE_VERSION}" _contents) @@ -179,5 +186,12 @@ function(vcpkg_from_bitbucket) # 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}) + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${downloaded_file_path}" + REF "${_vdud_HEAD_REF}" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/head" + PATCHES ${_vdud_PATCHES} + ) + set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) endfunction() diff --git a/scripts/cmake/vcpkg_from_github.cmake b/scripts/cmake/vcpkg_from_github.cmake index 33de8354d..48bfd828a 100644 --- a/scripts/cmake/vcpkg_from_github.cmake +++ b/scripts/cmake/vcpkg_from_github.cmake @@ -80,16 +80,16 @@ function(vcpkg_from_github) string(REGEX REPLACE "/.*" "" ORG_NAME ${_vdud_REPO}) macro(set_TEMP_SOURCE_PATH BASE BASEREF) - set(TEMP_SOURCE_PATH "${BASE}/${REPO_NAME}-${BASEREF}") - if(NOT EXISTS ${TEMP_SOURCE_PATH}) - # Sometimes GitHub strips a leading 'v' off the REF. - string(REGEX REPLACE "^v" "" REF ${BASEREF}) - string(REPLACE "/" "-" REF ${REF}) - set(TEMP_SOURCE_PATH "${BASE}/${REPO_NAME}-${REF}") + set(TEMP_SOURCE_PATH "${BASE}/${REPO_NAME}-${BASEREF}") if(NOT EXISTS ${TEMP_SOURCE_PATH}) - message(FATAL_ERROR "Could not determine source path: '${BASE}/${REPO_NAME}-${BASEREF}' does not exist") + # Sometimes GitHub strips a leading 'v' off the REF. + string(REGEX REPLACE "^v" "" REF ${BASEREF}) + string(REPLACE "/" "-" REF ${REF}) + set(TEMP_SOURCE_PATH "${BASE}/${REPO_NAME}-${REF}") + if(NOT EXISTS ${TEMP_SOURCE_PATH}) + message(FATAL_ERROR "Could not determine source path: '${BASE}/${REPO_NAME}-${BASEREF}' does not exist") + endif() endif() - endif() endmacro() if(VCPKG_USE_HEAD_VERSION AND NOT DEFINED _vdud_HEAD_REF) @@ -111,44 +111,14 @@ function(vcpkg_from_github) FILENAME "${ORG_NAME}-${REPO_NAME}-${SANITIZED_REF}.tar.gz" ) - # Take the last 10 chars of the REF - set(REF_MAX_LENGTH 10) - string(LENGTH ${SANITIZED_REF} REF_LENGTH) - math(EXPR FROM_REF ${REF_LENGTH}-${REF_MAX_LENGTH}) - if(FROM_REF LESS 0) - set(FROM_REF 0) - endif() - string(SUBSTRING ${SANITIZED_REF} ${FROM_REF} ${REF_LENGTH} SHORTENED_SANITIZED_REF) - - # Hash the archive hash along with the patches. Take the first 10 chars of the hash - set(PATCHSET_HASH "${_vdud_SHA512}") - foreach(PATCH IN LISTS _vdud_PATCHES) - get_filename_component(ABSOLUTE_PATCH "${PATCH}" ABSOLUTE BASE_DIR "${CURRENT_PORT_DIR}") - file(SHA512 ${ABSOLUTE_PATCH} CURRENT_HASH) - string(APPEND PATCHSET_HASH ${CURRENT_HASH}) - endforeach() - - string(SHA512 PATCHSET_HASH ${PATCHSET_HASH}) - string(SUBSTRING ${PATCHSET_HASH} 0 10 PATCHSET_HASH) - set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/${SHORTENED_SANITIZED_REF}-${PATCHSET_HASH}") - - if(NOT EXISTS ${SOURCE_PATH}) - set(TEMP_DIR "${CURRENT_BUILDTREES_DIR}/src/TEMP") - file(REMOVE_RECURSE ${TEMP_DIR}) - vcpkg_extract_source_archive_ex(ARCHIVE "${ARCHIVE}" WORKING_DIRECTORY ${TEMP_DIR}) - set_TEMP_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/TEMP ${SANITIZED_REF}) - - vcpkg_apply_patches( - SOURCE_PATH ${TEMP_SOURCE_PATH} - PATCHES ${_vdud_PATCHES} - ) - - file(RENAME ${TEMP_SOURCE_PATH} ${SOURCE_PATH}) - file(REMOVE_RECURSE ${TEMP_DIR}) - endif() + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${ARCHIVE}" + REF "${SANITIZED_REF}" + PATCHES ${_vdud_PATCHES} + ) set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) - message(STATUS "Using source at ${SOURCE_PATH}") return() endif() @@ -189,11 +159,6 @@ function(vcpkg_from_github) ) endif() - vcpkg_extract_source_archive_ex( - ARCHIVE "${ARCHIVE}" - 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 "${ARCHIVE_VERSION}" _contents) @@ -206,11 +171,12 @@ function(vcpkg_from_github) set(VCPKG_HEAD_VERSION ${_version} PARENT_SCOPE) endif() - set_TEMP_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/head ${SANITIZED_HEAD_REF}) - vcpkg_apply_patches( - SOURCE_PATH ${TEMP_SOURCE_PATH} + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${downloaded_file_path}" + REF "${SANITIZED_HEAD_REF}" + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src/head PATCHES ${_vdud_PATCHES} ) - set(${_vdud_OUT_SOURCE_PATH} "${TEMP_SOURCE_PATH}" PARENT_SCOPE) - message(STATUS "Using source at ${TEMP_SOURCE_PATH}") + set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) endfunction() diff --git a/scripts/cmake/vcpkg_from_gitlab.cmake b/scripts/cmake/vcpkg_from_gitlab.cmake index 2f2198fd6..f13bc054c 100644 --- a/scripts/cmake/vcpkg_from_gitlab.cmake +++ b/scripts/cmake/vcpkg_from_gitlab.cmake @@ -11,6 +11,7 @@ ## [REF ] ## [SHA512 <45d0d7f8cc350...>] ## [HEAD_REF ] +## [PATCHES ...] ## ) ## ``` ## @@ -45,6 +46,11 @@ ## ## For most projects, this should be `master`. The chosen branch should be one that is expected to be always buildable on all supported platforms. ## +## ### PATCHES +## A list of patches to be applied to the extracted sources. +## +## Relative paths are based on the port directory. +## ## ## Notes: ## At least one of `REF` and `HEAD_REF` must be specified, however it is preferable for both to be present. ## @@ -76,28 +82,14 @@ function(vcpkg_from_gitlab) 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_TEMP_SOURCE_PATH BASE) - file(GLOB _ARCHIVE_FILES "${BASE}/${REPO_NAME}*") - foreach(dir ${_ARCHIVE_FILES}) - if (IS_DIRECTORY ${dir}) - list(APPEND _ARCHIVE_DIRS "${dir}") - endif() - endforeach() - list(LENGTH _ARCHIVE_DIRS _NUM_ARCHIVE_DIRS) - if(NOT 1 EQUAL ${_NUM_ARCHIVE_DIRS}) - message(FATAL_ERROR "Could not determine source path: There were ${_NUM_ARCHIVE_DIRS} directories extracted from the archive that start with the repo name.") - endif() - list(GET _ARCHIVE_DIRS 0 TEMP_SOURCE_PATH) - endmacro() - if(VCPKG_USE_HEAD_VERSION AND NOT DEFINED _vdud_HEAD_REF) message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.") set(VCPKG_USE_HEAD_VERSION OFF) endif() + string(REGEX REPLACE ".*/" "" REPO_NAME ${_vdud_REPO}) + string(REGEX REPLACE "/.*" "" ORG_NAME ${_vdud_REPO}) + # Handle --no-head scenarios if(NOT VCPKG_USE_HEAD_VERSION) if(NOT _vdud_REF) @@ -112,43 +104,14 @@ function(vcpkg_from_gitlab) FILENAME "${ORG_NAME}-${REPO_NAME}-${SANITIZED_REF}.tar.gz" ) - # Take the last 10 chars of the REF - set(REF_MAX_LENGTH 10) - string(LENGTH ${SANITIZED_REF} REF_LENGTH) - math(EXPR FROM_REF ${REF_LENGTH}-${REF_MAX_LENGTH}) - if(FROM_REF LESS 0) - set(FROM_REF 0) - endif() - string(SUBSTRING ${SANITIZED_REF} ${FROM_REF} ${REF_LENGTH} SHORTENED_SANITIZED_REF) - - # Hash the archive hash along with the patches. Take the first 10 chars of the hash - set(PATCHSET_HASH "${_vdud_SHA512}") - foreach(PATCH IN LISTS _vdud_PATCHES) - file(SHA512 ${PATCH} CURRENT_HASH) - string(APPEND PATCHSET_HASH ${CURRENT_HASH}) - endforeach() - - string(SHA512 PATCHSET_HASH ${PATCHSET_HASH}) - string(SUBSTRING ${PATCHSET_HASH} 0 10 PATCHSET_HASH) - set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/${SHORTENED_SANITIZED_REF}-${PATCHSET_HASH}") - - if(NOT EXISTS ${SOURCE_PATH}) - set(TEMP_DIR "${CURRENT_BUILDTREES_DIR}/src/TEMP") - file(REMOVE_RECURSE ${TEMP_DIR}) - vcpkg_extract_source_archive_ex(ARCHIVE "${ARCHIVE}" WORKING_DIRECTORY ${TEMP_DIR}) - set_TEMP_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/TEMP ${SANITIZED_REF}) - - vcpkg_apply_patches( - SOURCE_PATH ${TEMP_SOURCE_PATH} - PATCHES ${_vdud_PATCHES} - ) - - file(RENAME ${TEMP_SOURCE_PATH} ${SOURCE_PATH}) - file(REMOVE_RECURSE ${TEMP_DIR}) - endif() + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${ARCHIVE}" + REF "${SANITIZED_REF}" + PATCHES ${_vdud_PATCHES} + ) set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) - return() endif() @@ -182,10 +145,6 @@ function(vcpkg_from_gitlab) ) endif() - vcpkg_extract_source_archive_ex( - ARCHIVE "${ARCHIVE}" - WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/head" - ) # There are issues with the Gitlab API project paths being URL-escaped, so we use git here to get the head revision execute_process(COMMAND ${GIT} ls-remote "${_vdud_GITLAB_URL}/${ORG_NAME}/${REPO_NAME}.git" "${_vdud_HEAD_REF}" @@ -199,10 +158,12 @@ function(vcpkg_from_gitlab) set(VCPKG_HEAD_VERSION ${_version} PARENT_SCOPE) endif() - set_TEMP_SOURCE_PATH(${CURRENT_BUILDTREES_DIR}/src/head ${SANITIZED_HEAD_REF}) - vcpkg_apply_patches( - SOURCE_PATH ${TEMP_SOURCE_PATH} + vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${downloaded_file_path}" + REF "${SANITIZED_HEAD_REF}" + WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/src/head PATCHES ${_vdud_PATCHES} ) - set(${_vdud_OUT_SOURCE_PATH} "${TEMP_SOURCE_PATH}" PARENT_SCOPE) + set(${_vdud_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) endfunction() diff --git a/scripts/toolchains/osx.cmake b/scripts/toolchains/osx.cmake index b8f261d09..9c4fdb12e 100644 --- a/scripts/toolchains/osx.cmake +++ b/scripts/toolchains/osx.cmake @@ -1,5 +1,11 @@ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "") + + set(CMAKE_SYSTEM_VERSION "${CMAKE_HOST_SYSTEM_VERSION}" CACHE STRING "") + set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}" CACHE STRING "") +else() + set(CMAKE_SYSTEM_VERSION "17.0.0" CACHE STRING "") + set(CMAKE_SYSTEM_PROCESSOR "x86_64" CACHE STRING "") endif() set(CMAKE_SYSTEM_NAME Darwin CACHE STRING "") diff --git a/scripts/vcpkgTools.xml b/scripts/vcpkgTools.xml index 320e86275..c2045433d 100644 --- a/scripts/vcpkgTools.xml +++ b/scripts/vcpkgTools.xml @@ -73,6 +73,13 @@ 2456176ba3d506a07cf0cc4f61f080e1ff8cb4106426d66f354c5bb67a9a8720b5ddb26904275e61b1f623c932355f7dcde4cd17556cc895f11293c23c3a9bf3 aria2-1.33.1-win-32bit-build1.zip + + 1.8.2 + ninja.exe + https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-win.zip + 9b9ce248240665fcd6404b989f3b3c27ed9682838225e6dc9b67b551774f251e4ff8a207504f941e7c811e7a8be1945e7bcb94472a335ef15e23a0200a32e6d5 + ninja-win.zip + 1.8.2 ninja diff --git a/toolsrc/include/vcpkg/base/chrono.h b/toolsrc/include/vcpkg/base/chrono.h index aa764a597..6f6e2b317 100644 --- a/toolsrc/include/vcpkg/base/chrono.h +++ b/toolsrc/include/vcpkg/base/chrono.h @@ -52,8 +52,10 @@ namespace vcpkg::Chrono static Optional get_current_date_time(); static Optional parse(CStringView str); - constexpr CTime() noexcept : m_tm{0} {} - explicit constexpr CTime(tm t) noexcept : m_tm{t} {} + constexpr CTime() noexcept : m_tm {0} {} + explicit constexpr CTime(tm t) noexcept : m_tm {t} {} + + CTime add_hours(const int hours) const; std::string to_string() const; @@ -62,4 +64,6 @@ namespace vcpkg::Chrono private: mutable tm m_tm; }; + + tm get_current_date_time_local(); } diff --git a/toolsrc/include/vcpkg/base/files.h b/toolsrc/include/vcpkg/base/files.h index eee910841..b07ff25b3 100644 --- a/toolsrc/include/vcpkg/base/files.h +++ b/toolsrc/include/vcpkg/base/files.h @@ -20,7 +20,7 @@ namespace fs inline bool is_regular_file(file_status s) { return stdfs::is_regular_file(s); } inline bool is_directory(file_status s) { return stdfs::is_directory(s); } - inline bool status_known(file_status s) { return stdfs::status_known(s); } + inline bool is_symlink(file_status s) { return stdfs::is_symlink(s); } } namespace vcpkg::Files @@ -55,7 +55,9 @@ namespace vcpkg::Files const fs::path& newpath, fs::copy_options opts, std::error_code& ec) = 0; + virtual void copy_symlink(const fs::path& oldpath, const fs::path& newpath, std::error_code& ec) = 0; virtual fs::file_status status(const fs::path& path, std::error_code& ec) const = 0; + virtual fs::file_status symlink_status(const fs::path& path, std::error_code& ec) const = 0; virtual std::vector find_from_PATH(const std::string& name) const = 0; diff --git a/toolsrc/include/vcpkg/base/system.h b/toolsrc/include/vcpkg/base/system.h index 3c4326ade..af56e45c1 100644 --- a/toolsrc/include/vcpkg/base/system.h +++ b/toolsrc/include/vcpkg/base/system.h @@ -8,8 +8,6 @@ namespace vcpkg::System { - tm get_current_date_time(); - fs::path get_exe_path_of_current_process(); struct CMakeVariable @@ -32,15 +30,15 @@ namespace vcpkg::System }; int cmd_execute_clean(const CStringView cmd_line, - const std::unordered_map& extra_env = {}); + const std::unordered_map& extra_env = {}) noexcept; - int cmd_execute(const CStringView cmd_line); + int cmd_execute(const CStringView cmd_line) noexcept; #if defined(_WIN32) - void cmd_execute_no_wait(const CStringView cmd_line); + void cmd_execute_no_wait(const CStringView cmd_line) noexcept; #endif - ExitCodeAndOutput cmd_execute_and_capture_output(const CStringView cmd_line); + ExitCodeAndOutput cmd_execute_and_capture_output(const CStringView cmd_line) noexcept; enum class Color { diff --git a/toolsrc/include/vcpkg/commands.h b/toolsrc/include/vcpkg/commands.h index 1858a320f..fd7d832b3 100644 --- a/toolsrc/include/vcpkg/commands.h +++ b/toolsrc/include/vcpkg/commands.h @@ -119,6 +119,12 @@ namespace vcpkg::Commands void perform_and_exit(const VcpkgCmdArguments& args); } + namespace X_VSInstances + { + extern const CommandStructure COMMAND_STRUCTURE; + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths); + } + namespace Hash { void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths); diff --git a/toolsrc/include/vcpkg/globalstate.h b/toolsrc/include/vcpkg/globalstate.h index bc28e3ff8..ae66ca355 100644 --- a/toolsrc/include/vcpkg/globalstate.h +++ b/toolsrc/include/vcpkg/globalstate.h @@ -18,5 +18,27 @@ namespace vcpkg static std::atomic g_init_console_cp; static std::atomic g_init_console_output_cp; + static std::atomic g_init_console_initialized; + + struct CtrlCStateMachine + { + CtrlCStateMachine(); + + void transition_to_spawn_process() noexcept; + void transition_from_spawn_process() noexcept; + void transition_handle_ctrl_c() noexcept; + + private: + enum class CtrlCState + { + normal, + blocked_on_child, + exit_requested, + }; + + std::atomic m_state; + }; + + static CtrlCStateMachine g_ctrl_c_state; }; } diff --git a/toolsrc/include/vcpkg/visualstudio.h b/toolsrc/include/vcpkg/visualstudio.h index b93b145d9..cd99db352 100644 --- a/toolsrc/include/vcpkg/visualstudio.h +++ b/toolsrc/include/vcpkg/visualstudio.h @@ -6,6 +6,8 @@ namespace vcpkg::VisualStudio { + std::vector get_visual_studio_instances(const VcpkgPaths& paths); + std::vector find_toolset_instances_preferred_first(const VcpkgPaths& paths); } diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp index 6f10c503d..3589881a7 100644 --- a/toolsrc/src/vcpkg.cpp +++ b/toolsrc/src/vcpkg.cpp @@ -33,6 +33,12 @@ using namespace vcpkg; +// 24 hours/day * 30 days/month * 6 months +static constexpr int SURVEY_INTERVAL_IN_HOURS = 24 * 30 * 6; + +// Initial survey appears after 10 days. Therefore, subtract 24 hours/day * 10 days +static constexpr int SURVEY_INITIAL_OFFSET_IN_HOURS = SURVEY_INTERVAL_IN_HOURS - 24 * 10; + void invalid_command(const std::string& cmd) { System::println(System::Color::error, "invalid command: %s", cmd); @@ -113,19 +119,19 @@ static void inner(const VcpkgCmdArguments& args) #endif Checks::check_exit(VCPKG_LINE_INFO, exit_code == 0, "Changing the working dir failed"); - if (args.command != "autocomplete") + if (args.command == "install" || args.command == "remove" || args.command == "export" || args.command == "update") { Commands::Version::warn_if_vcpkg_version_mismatch(paths); std::string surveydate = *GlobalState::g_surveydate.lock(); auto maybe_surveydate = Chrono::CTime::parse(surveydate); if (auto p_surveydate = maybe_surveydate.get()) { - auto delta = std::chrono::system_clock::now() - p_surveydate->to_time_point(); - // 24 hours/day * 30 days/month - if (std::chrono::duration_cast(delta).count() > 24 * 30) + const auto now = Chrono::CTime::get_current_date_time().value_or_exit(VCPKG_LINE_INFO); + const auto delta = now.to_time_point() - p_surveydate->to_time_point(); + if (std::chrono::duration_cast(delta).count() > SURVEY_INTERVAL_IN_HOURS) { std::default_random_engine generator( - static_cast(std::chrono::system_clock::now().time_since_epoch().count())); + static_cast(now.to_time_point().time_since_epoch().count())); std::uniform_int_distribution distribution(1, 4); if (distribution(generator) == 1) @@ -214,7 +220,9 @@ static void load_config() if (config.last_completed_survey.empty()) { - config.last_completed_survey = config.user_time; + const auto now = Chrono::CTime::parse(config.user_time).value_or_exit(VCPKG_LINE_INFO); + const Chrono::CTime offset = now.add_hours(-SURVEY_INITIAL_OFFSET_IN_HOURS); + config.last_completed_survey = offset.to_string(); } GlobalState::g_surveydate.lock()->assign(config.last_completed_survey); @@ -261,6 +269,7 @@ int main(const int argc, const char* const* const argv) #if defined(_WIN32) GlobalState::g_init_console_cp = GetConsoleCP(); GlobalState::g_init_console_output_cp = GetConsoleOutputCP(); + GlobalState::g_init_console_initialized = true; SetConsoleCP(CP_UTF8); SetConsoleOutputCP(CP_UTF8); @@ -275,6 +284,9 @@ int main(const int argc, const char* const* const argv) locked_metrics->track_property("cmdline", trimmed_command_line); #endif } + + Checks::register_console_ctrl_handler(); + load_config(); const auto vcpkg_feature_flags_env = System::get_environment_variable("VCPKG_FEATURE_FLAGS"); @@ -293,8 +305,6 @@ int main(const int argc, const char* const* const argv) if (const auto p = args.sendmetrics.get()) Metrics::g_metrics.lock()->set_send_metrics(*p); if (const auto p = args.debug.get()) GlobalState::debugging = *p; - Checks::register_console_ctrl_handler(); - if (GlobalState::debugging) { inner(args); diff --git a/toolsrc/src/vcpkg/base/checks.cpp b/toolsrc/src/vcpkg/base/checks.cpp index 72176e58c..cc439adfe 100644 --- a/toolsrc/src/vcpkg/base/checks.cpp +++ b/toolsrc/src/vcpkg/base/checks.cpp @@ -24,8 +24,11 @@ namespace vcpkg::Checks metrics->flush(); #if defined(_WIN32) - SetConsoleCP(GlobalState::g_init_console_cp); - SetConsoleOutputCP(GlobalState::g_init_console_output_cp); + if (GlobalState::g_init_console_initialized) + { + SetConsoleCP(GlobalState::g_init_console_cp); + SetConsoleOutputCP(GlobalState::g_init_console_output_cp); + } #endif auto elapsed_us = GlobalState::timer.lock()->microseconds(); @@ -46,12 +49,11 @@ namespace vcpkg::Checks #if defined(_WIN32) static BOOL ctrl_handler(DWORD fdw_ctrl_type) { + switch (fdw_ctrl_type) { - auto locked_metrics = Metrics::g_metrics.lock(); - locked_metrics->track_property("CtrlHandler", std::to_string(fdw_ctrl_type)); - locked_metrics->track_property("error", "CtrlHandler was fired."); + case CTRL_C_EVENT: GlobalState::g_ctrl_c_state.transition_handle_ctrl_c(); return TRUE; + default: return FALSE; } - cleanup_and_exit(EXIT_FAILURE); } void register_console_ctrl_handler() diff --git a/toolsrc/src/vcpkg/base/chrono.cpp b/toolsrc/src/vcpkg/base/chrono.cpp index 2a76f5df0..405e76605 100644 --- a/toolsrc/src/vcpkg/base/chrono.cpp +++ b/toolsrc/src/vcpkg/base/chrono.cpp @@ -5,6 +5,61 @@ namespace vcpkg::Chrono { + static std::time_t get_current_time_as_time_since_epoch() + { + using std::chrono::system_clock; + return system_clock::to_time_t(system_clock::now()); + } + + static std::time_t utc_mktime(tm* time_ptr) + { +#if defined(_WIN32) + return _mkgmtime(time_ptr); +#else + return timegm(time_ptr); +#endif + } + + static tm to_local_time(const std::time_t& t) + { + tm parts {}; +#if defined(_WIN32) + localtime_s(&parts, &t); +#else + parts = *localtime(&t); +#endif + return parts; + } + + static Optional to_utc_time(const std::time_t& t) + { + tm parts {}; +#if defined(_WIN32) + const errno_t err = gmtime_s(&parts, &t); + if (err) + { + return nullopt; + } +#else + auto null_if_failed = gmtime_r(&t, &parts); + if (null_if_failed == nullptr) + { + return nullopt; + } +#endif + return parts; + } + + static tm date_plus_hours(tm* date, const int hours) + { + using namespace std::chrono_literals; + static constexpr std::chrono::seconds SECONDS_IN_ONE_HOUR = + std::chrono::duration_cast(1h); + + const std::time_t date_in_seconds = utc_mktime(date) + (hours * SECONDS_IN_ONE_HOUR.count()); + return to_utc_time(date_in_seconds).value_or_exit(VCPKG_LINE_INFO); + } + static std::string format_time_userfriendly(const std::chrono::nanoseconds& nanos) { using std::chrono::duration_cast; @@ -63,30 +118,14 @@ namespace vcpkg::Chrono Optional CTime::get_current_date_time() { - CTime ret; - -#if defined(_WIN32) - struct _timeb timebuffer; - - _ftime_s(&timebuffer); - - const errno_t err = gmtime_s(&ret.m_tm, &timebuffer.time); - - if (err) + const std::time_t ct = get_current_time_as_time_since_epoch(); + const Optional opt = to_utc_time(ct); + if (auto p_tm = opt.get()) { - return nullopt; + return CTime {*p_tm}; } -#else - time_t now = {0}; - time(&now); - auto null_if_failed = gmtime_r(&now, &ret.m_tm); - if (null_if_failed == nullptr) - { - return nullopt; - } -#endif - return ret; + return nullopt; } Optional CTime::parse(CStringView str) @@ -111,19 +150,28 @@ namespace vcpkg::Chrono ret.m_tm.tm_year -= 1900; if (ret.m_tm.tm_mon < 1) return nullopt; ret.m_tm.tm_mon -= 1; - mktime(&ret.m_tm); + utc_mktime(&ret.m_tm); + return ret; } + CTime CTime::add_hours(const int hours) const { return CTime {date_plus_hours(&this->m_tm, hours)}; } + std::string CTime::to_string() const { - std::array date{}; + std::array date {}; strftime(&date[0], date.size(), "%Y-%m-%dT%H:%M:%S.0Z", &m_tm); return &date[0]; } std::chrono::system_clock::time_point CTime::to_time_point() const { - const time_t t = mktime(&m_tm); + const time_t t = utc_mktime(&m_tm); return std::chrono::system_clock::from_time_t(t); } + + tm get_current_date_time_local() + { + const std::time_t now_time = get_current_time_as_time_since_epoch(); + return Chrono::to_local_time(now_time); + } } diff --git a/toolsrc/src/vcpkg/base/files.cpp b/toolsrc/src/vcpkg/base/files.cpp index 4ff0912d1..f9bce8631 100644 --- a/toolsrc/src/vcpkg/base/files.cpp +++ b/toolsrc/src/vcpkg/base/files.cpp @@ -216,11 +216,19 @@ namespace vcpkg::Files { return fs::stdfs::copy_file(oldpath, newpath, opts, ec); } + virtual void copy_symlink(const fs::path& oldpath, const fs::path& newpath, std::error_code& ec) + { + return fs::stdfs::copy_symlink(oldpath, newpath, ec); + } virtual fs::file_status status(const fs::path& path, std::error_code& ec) const override { return fs::stdfs::status(path, ec); } + virtual fs::file_status symlink_status(const fs::path& path, std::error_code& ec) const override + { + return fs::stdfs::symlink_status(path, ec); + } virtual void write_contents(const fs::path& file_path, const std::string& data, std::error_code& ec) override { ec.clear(); diff --git a/toolsrc/src/vcpkg/base/system.cpp b/toolsrc/src/vcpkg/base/system.cpp index d968c6dac..d95752bba 100644 --- a/toolsrc/src/vcpkg/base/system.cpp +++ b/toolsrc/src/vcpkg/base/system.cpp @@ -19,19 +19,6 @@ namespace vcpkg::System { - tm get_current_date_time() - { - using std::chrono::system_clock; - std::time_t now_time = system_clock::to_time_t(system_clock::now()); - tm parts{}; -#if defined(_WIN32) - localtime_s(&parts, &now_time); -#else - parts = *localtime(&now_time); -#endif - return parts; - } - fs::path get_exe_path_of_current_process() { #if defined(_WIN32) @@ -133,7 +120,7 @@ namespace vcpkg::System static void windows_create_clean_process(const CStringView cmd_line, const std::unordered_map& extra_env, PROCESS_INFORMATION& process_info, - DWORD dwCreationFlags) + DWORD dwCreationFlags) noexcept { static const std::string SYSTEM_ROOT = get_environment_variable("SystemRoot").value_or_exit(VCPKG_LINE_INFO); static const std::string SYSTEM_32 = SYSTEM_ROOT + R"(\system32)"; @@ -223,7 +210,7 @@ namespace vcpkg::System memset(&startup_info, 0, sizeof(STARTUPINFOW)); startup_info.cb = sizeof(STARTUPINFOW); - // Basically we are wrapping it in quotes + // Wrapping the command in a single set of quotes causes cmd.exe to correctly execute const std::string actual_cmd_line = Strings::format(R"###(cmd.exe /c "%s")###", cmd_line); Debug::println("CreateProcessW(%s)", actual_cmd_line); bool succeeded = TRUE == CreateProcessW(nullptr, @@ -242,7 +229,7 @@ namespace vcpkg::System #endif #if defined(_WIN32) - void cmd_execute_no_wait(const CStringView cmd_line) + void cmd_execute_no_wait(const CStringView cmd_line) noexcept { auto timer = Chrono::ElapsedTimer::create_started(); @@ -258,7 +245,8 @@ namespace vcpkg::System } #endif - int cmd_execute_clean(const CStringView cmd_line, const std::unordered_map& extra_env) + int cmd_execute_clean(const CStringView cmd_line, + const std::unordered_map& extra_env) noexcept { auto timer = Chrono::ElapsedTimer::create_started(); #if defined(_WIN32) @@ -266,11 +254,13 @@ namespace vcpkg::System PROCESS_INFORMATION process_info; memset(&process_info, 0, sizeof(PROCESS_INFORMATION)); + GlobalState::g_ctrl_c_state.transition_to_spawn_process(); windows_create_clean_process(cmd_line, extra_env, process_info, NULL); CloseHandle(process_info.hThread); const DWORD result = WaitForSingleObject(process_info.hProcess, INFINITE); + GlobalState::g_ctrl_c_state.transition_from_spawn_process(); Checks::check_exit(VCPKG_LINE_INFO, result != WAIT_FAILED, "WaitForSingleObject failed"); DWORD exit_code = 0; @@ -279,6 +269,7 @@ namespace vcpkg::System CloseHandle(process_info.hProcess); Debug::println("CreateProcessW() returned %lu after %d us", exit_code, static_cast(timer.microseconds())); + return static_cast(exit_code); #else Debug::println("system(%s)", cmd_line.c_str()); @@ -289,16 +280,18 @@ namespace vcpkg::System #endif } - int cmd_execute(const CStringView cmd_line) + int cmd_execute(const CStringView cmd_line) noexcept { // Flush stdout before launching external process fflush(nullptr); - // Basically we are wrapping it in quotes #if defined(_WIN32) + // We are wrap the command line in quotes to cause cmd.exe to correctly process it const std::string& actual_cmd_line = Strings::format(R"###("%s")###", cmd_line); Debug::println("_wsystem(%s)", actual_cmd_line); + GlobalState::g_ctrl_c_state.transition_to_spawn_process(); const int exit_code = _wsystem(Strings::to_utf16(actual_cmd_line).c_str()); + GlobalState::g_ctrl_c_state.transition_from_spawn_process(); Debug::println("_wsystem() returned %d", exit_code); #else Debug::println("_system(%s)", cmd_line); @@ -308,11 +301,8 @@ namespace vcpkg::System return exit_code; } - ExitCodeAndOutput cmd_execute_and_capture_output(const CStringView cmd_line) + ExitCodeAndOutput cmd_execute_and_capture_output(const CStringView cmd_line) noexcept { - // Flush stdout before launching external process - fflush(stdout); - auto timer = Chrono::ElapsedTimer::create_started(); #if defined(_WIN32) @@ -321,9 +311,13 @@ namespace vcpkg::System Debug::println("_wpopen(%s)", actual_cmd_line); std::wstring output; wchar_t buf[1024]; + GlobalState::g_ctrl_c_state.transition_to_spawn_process(); + // Flush stdout before launching external process + fflush(stdout); const auto pipe = _wpopen(Strings::to_utf16(actual_cmd_line).c_str(), L"r"); if (pipe == nullptr) { + GlobalState::g_ctrl_c_state.transition_from_spawn_process(); return {1, Strings::to_utf8(output.c_str())}; } while (fgetws(buf, 1024, pipe)) @@ -332,10 +326,12 @@ namespace vcpkg::System } if (!feof(pipe)) { + GlobalState::g_ctrl_c_state.transition_from_spawn_process(); return {1, Strings::to_utf8(output.c_str())}; } const auto ec = _pclose(pipe); + GlobalState::g_ctrl_c_state.transition_from_spawn_process(); // On Win7, output from powershell calls contain a utf-8 byte order mark in the utf-16 stream, so we strip it // out if it is present. 0xEF,0xBB,0xBF is the UTF-8 byte-order mark @@ -354,6 +350,8 @@ namespace vcpkg::System Debug::println("popen(%s)", actual_cmd_line); std::string output; char buf[1024]; + // Flush stdout before launching external process + fflush(stdout); const auto pipe = popen(actual_cmd_line.c_str(), "r"); if (pipe == nullptr) { @@ -391,7 +389,7 @@ namespace vcpkg::System #if defined(_WIN32) const HANDLE console_handle = GetStdHandle(STD_OUTPUT_HANDLE); - CONSOLE_SCREEN_BUFFER_INFO console_screen_buffer_info{}; + CONSOLE_SCREEN_BUFFER_INFO console_screen_buffer_info {}; GetConsoleScreenBufferInfo(console_handle, &console_screen_buffer_info); const auto original_color = console_screen_buffer_info.wAttributes; diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 8e87fe7fe..7569f340f 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -63,7 +63,7 @@ namespace vcpkg::Build::Command spec.name()); const StatusParagraphs status_db = database_load_check(paths); - const Build::BuildPackageOptions build_package_options{ + const Build::BuildPackageOptions build_package_options { Build::UseHeadVersion::NO, Build::AllowDownloads::YES, Build::CleanBuildtrees::NO, @@ -76,8 +76,8 @@ namespace vcpkg::Build::Command std::set features_as_set(full_spec.features.begin(), full_spec.features.end()); features_as_set.emplace("core"); - const Build::BuildPackageConfig build_config{ - *scf, spec.triplet(), fs::path{port_dir}, build_package_options, features_as_set}; + const Build::BuildPackageConfig build_config { + *scf, spec.triplet(), fs::path {port_dir}, build_package_options, features_as_set}; const auto build_timer = Chrono::ElapsedTimer::create_started(); const auto result = Build::build_package(paths, build_config, status_db); @@ -245,7 +245,7 @@ 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::format(R"("%s" %s %s %s %s 2>&1)", + return Strings::format(R"("%s" %s %s %s %s 2>&1 abi_tag_entries; - abi_tag_entries.emplace_back(AbiEntry{"cmake", paths.get_tool_version(Tools::CMAKE)}); + abi_tag_entries.emplace_back(AbiEntry {"cmake", paths.get_tool_version(Tools::CMAKE)}); abi_tag_entries.insert(abi_tag_entries.end(), dependency_abis.begin(), dependency_abis.end()); abi_tag_entries.emplace_back( - AbiEntry{"portfile", vcpkg::Hash::get_file_hash(fs, config.port_dir / "portfile.cmake", "SHA1")}); + AbiEntry {"portfile", vcpkg::Hash::get_file_hash(fs, config.port_dir / "portfile.cmake", "SHA1")}); abi_tag_entries.emplace_back( - AbiEntry{"control", vcpkg::Hash::get_file_hash(fs, config.port_dir / "CONTROL", "SHA1")}); + AbiEntry {"control", vcpkg::Hash::get_file_hash(fs, config.port_dir / "CONTROL", "SHA1")}); - abi_tag_entries.emplace_back(AbiEntry{"triplet", pre_build_info.triplet_abi_tag}); + abi_tag_entries.emplace_back(AbiEntry {"triplet", pre_build_info.triplet_abi_tag}); const std::string features = Strings::join(";", config.feature_list); - abi_tag_entries.emplace_back(AbiEntry{"features", features}); + abi_tag_entries.emplace_back(AbiEntry {"features", features}); if (config.build_package_options.use_head_version == UseHeadVersion::YES) - abi_tag_entries.emplace_back(AbiEntry{"head", ""}); + abi_tag_entries.emplace_back(AbiEntry {"head", ""}); Util::sort(abi_tag_entries); @@ -506,7 +512,7 @@ namespace vcpkg::Build const auto abi_file_path = paths.buildtrees / name / (triplet.canonical_name() + ".vcpkg_abi_info.txt"); fs.write_contents(abi_file_path, full_abi_info); - return AbiTagAndFile{Hash::get_file_hash(fs, abi_file_path, "SHA1"), abi_file_path}; + return AbiTagAndFile {Hash::get_file_hash(fs, abi_file_path, "SHA1"), abi_file_path}; } System::println( @@ -596,7 +602,7 @@ namespace vcpkg::Build const auto status_it = status_db.find_installed(pspec); Checks::check_exit(VCPKG_LINE_INFO, status_it != status_db.end()); dependency_abis.emplace_back( - AbiEntry{status_it->get()->package.spec.name(), status_it->get()->package.abi}); + AbiEntry {status_it->get()->package.spec.name(), status_it->get()->package.abi}); } const auto pre_build_info = PreBuildInfo::from_triplet_file(paths, triplet); @@ -642,7 +648,7 @@ namespace vcpkg::Build System::println("Could not locate cached archive: %s", archive_path.u8string()); ExtendedBuildResult result = do_build_package_and_clean_buildtrees( - paths, pre_build_info, spec, maybe_abi_tag_and_file.value_or(AbiTagAndFile{}).tag, config); + paths, pre_build_info, spec, maybe_abi_tag_and_file.value_or(AbiTagAndFile {}).tag, config); std::error_code ec; fs.create_directories(paths.package_dir(spec) / "share" / spec.name(), ec); @@ -679,7 +685,7 @@ namespace vcpkg::Build } return do_build_package_and_clean_buildtrees( - paths, pre_build_info, spec, maybe_abi_tag_and_file.value_or(AbiTagAndFile{}).tag, config); + paths, pre_build_info, spec, maybe_abi_tag_and_file.value_or(AbiTagAndFile {}).tag, config); } const std::string& to_string(const BuildResult build_result) @@ -844,21 +850,21 @@ namespace vcpkg::Build if (variable_name == "VCPKG_PLATFORM_TOOLSET") { pre_build_info.platform_toolset = - variable_value.empty() ? nullopt : Optional{variable_value}; + variable_value.empty() ? nullopt : Optional {variable_value}; continue; } if (variable_name == "VCPKG_VISUAL_STUDIO_PATH") { pre_build_info.visual_studio_path = - variable_value.empty() ? nullopt : Optional{variable_value}; + variable_value.empty() ? nullopt : Optional {variable_value}; continue; } if (variable_name == "VCPKG_CHAINLOAD_TOOLCHAIN_FILE") { pre_build_info.external_toolchain_file = - variable_value.empty() ? nullopt : Optional{variable_value}; + variable_value.empty() ? nullopt : Optional {variable_value}; continue; } diff --git a/toolsrc/src/vcpkg/commands.cpp b/toolsrc/src/vcpkg/commands.cpp index 7204b6e78..db265514f 100644 --- a/toolsrc/src/vcpkg/commands.cpp +++ b/toolsrc/src/vcpkg/commands.cpp @@ -46,6 +46,7 @@ namespace vcpkg::Commands {"autocomplete", &Autocomplete::perform_and_exit}, {"hash", &Hash::perform_and_exit}, {"fetch", &Fetch::perform_and_exit}, + {"x-vsinstances", &X_VSInstances::perform_and_exit}, }; return t; } diff --git a/toolsrc/src/vcpkg/commands.edit.cpp b/toolsrc/src/vcpkg/commands.edit.cpp index 2569c2cea..237feebdd 100644 --- a/toolsrc/src/vcpkg/commands.edit.cpp +++ b/toolsrc/src/vcpkg/commands.edit.cpp @@ -92,8 +92,8 @@ namespace vcpkg::Commands::Edit void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - 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"; + 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(); @@ -128,6 +128,14 @@ namespace vcpkg::Commands::Edit candidate_paths.push_back(*pf / VS_CODE); } + const auto& app_data = System::get_environment_variable("APPDATA"); + if (const auto* ad = app_data.get()) + { + const fs::path default_base = fs::path {*ad}.parent_path() / "Local" / "Programs"; + candidate_paths.push_back(default_base / VS_CODE_INSIDERS); + candidate_paths.push_back(default_base / VS_CODE); + } + const std::vector from_registry = find_from_registry(); candidate_paths.insert(candidate_paths.end(), from_registry.cbegin(), from_registry.cend()); @@ -147,6 +155,16 @@ namespace vcpkg::Commands::Edit const std::vector arguments = create_editor_arguments(paths, options, ports); const auto args_as_string = Strings::join(" ", arguments); const auto cmd_line = Strings::format(R"("%s" %s -n)", env_editor.u8string(), args_as_string); + + auto editor_exe = env_editor.filename().u8string(); + +#ifdef _WIN32 + if (editor_exe == "Code.exe" || editor_exe == "Code - Insiders.exe") + { + System::cmd_execute_no_wait(cmd_line + " --triplet x64-windows"), 0, + 1, {SWITCHES, {}}, nullptr, }; @@ -64,11 +64,12 @@ namespace vcpkg::Commands::Env if (add_python) extra_env.emplace("PYTHONPATH", (paths.installed / triplet.to_string() / "python").u8string()); if (path_vars.size() > 0) extra_env.emplace("PATH", Strings::join(";", path_vars)); - if (env_cmd.empty()) - System::cmd_execute_clean("cmd", extra_env); - else - System::cmd_execute_clean(env_cmd + " && cmd", extra_env); + std::string env_cmd_prefix = env_cmd.empty() ? "" : Strings::format("%s && ", env_cmd); + std::string env_cmd_suffix = + args.command_arguments.empty() ? "cmd" : Strings::format("cmd /c %s", args.command_arguments.at(0)); + const std::string cmd = Strings::format("%s%s", env_cmd_prefix, env_cmd_suffix); + System::cmd_execute_clean(cmd, extra_env); Checks::exit_success(VCPKG_LINE_INFO); } } diff --git a/toolsrc/src/vcpkg/commands.exportifw.cpp b/toolsrc/src/vcpkg/commands.exportifw.cpp index ae106196a..62725a90a 100644 --- a/toolsrc/src/vcpkg/commands.exportifw.cpp +++ b/toolsrc/src/vcpkg/commands.exportifw.cpp @@ -13,7 +13,7 @@ namespace vcpkg::Export::IFW static std::string create_release_date() { - const tm date_time = System::get_current_date_time(); + const tm date_time = Chrono::get_current_date_time_local(); // Format is: YYYY-mm-dd // 10 characters + 1 null terminating character will be written for a total of 11 chars diff --git a/toolsrc/src/vcpkg/commands.xvsinstances.cpp b/toolsrc/src/vcpkg/commands.xvsinstances.cpp new file mode 100644 index 000000000..d748b6b2f --- /dev/null +++ b/toolsrc/src/vcpkg/commands.xvsinstances.cpp @@ -0,0 +1,33 @@ +#include "pch.h" + +#include +#include +#include + +namespace vcpkg::Commands::X_VSInstances +{ + const CommandStructure COMMAND_STRUCTURE = { + Help::create_example_string("x-vsinstances"), + 0, + 0, + {{}, {}}, + nullptr, + }; + + void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) + { +#if defined(_WIN32) + const ParsedArguments parsed_args = args.parse_arguments(COMMAND_STRUCTURE); + + const auto instances = vcpkg::VisualStudio::get_visual_studio_instances(paths); + for (const std::string& instance : instances) + { + System::println(instance); + } + + Checks::exit_success(VCPKG_LINE_INFO); +#else + Checks::exit_with_message(VCPKG_LINE_INFO, "This command is not supported on non-windows platforms."); +#endif + } +} diff --git a/toolsrc/src/vcpkg/export.cpp b/toolsrc/src/vcpkg/export.cpp index 8161c0a62..eec9a39f2 100644 --- a/toolsrc/src/vcpkg/export.cpp +++ b/toolsrc/src/vcpkg/export.cpp @@ -108,7 +108,7 @@ namespace vcpkg::Export static std::string create_export_id() { - const tm date_time = System::get_current_date_time(); + const tm date_time = Chrono::get_current_date_time_local(); // Format is: YYYYmmdd-HHMMSS // 15 characters + 1 null terminating character will be written for a total of 16 chars @@ -227,10 +227,10 @@ namespace vcpkg::Export { const std::vector integration_files_relative_to_root = { {".vcpkg-root"}, - {fs::path{"scripts"} / "buildsystems" / "msbuild" / "applocal.ps1"}, - {fs::path{"scripts"} / "buildsystems" / "msbuild" / "vcpkg.targets"}, - {fs::path{"scripts"} / "buildsystems" / "vcpkg.cmake"}, - {fs::path{"scripts"} / "cmake" / "vcpkg_get_windows_sdk.cmake"}, + {fs::path {"scripts"} / "buildsystems" / "msbuild" / "applocal.ps1"}, + {fs::path {"scripts"} / "buildsystems" / "msbuild" / "vcpkg.targets"}, + {fs::path {"scripts"} / "buildsystems" / "vcpkg.cmake"}, + {fs::path {"scripts"} / "cmake" / "vcpkg_get_windows_sdk.cmake"}, }; for (const fs::path& file : integration_files_relative_to_root) diff --git a/toolsrc/src/vcpkg/globalstate.cpp b/toolsrc/src/vcpkg/globalstate.cpp index a4100acf7..a54c596fb 100644 --- a/toolsrc/src/vcpkg/globalstate.cpp +++ b/toolsrc/src/vcpkg/globalstate.cpp @@ -13,4 +13,48 @@ namespace vcpkg std::atomic GlobalState::g_init_console_cp(0); std::atomic GlobalState::g_init_console_output_cp(0); + std::atomic GlobalState::g_init_console_initialized(false); + + GlobalState::CtrlCStateMachine GlobalState::g_ctrl_c_state; + + GlobalState::CtrlCStateMachine::CtrlCStateMachine() : m_state(CtrlCState::normal) {} + + void GlobalState::CtrlCStateMachine::transition_to_spawn_process() noexcept + { + auto expected = CtrlCState::normal; + auto transitioned = m_state.compare_exchange_strong(expected, CtrlCState::blocked_on_child); + if (!transitioned) + { + // Ctrl-C was hit and is asynchronously executing on another thread + Checks::exit_fail(VCPKG_LINE_INFO); + } + } + void GlobalState::CtrlCStateMachine::transition_from_spawn_process() noexcept + { + auto expected = CtrlCState::blocked_on_child; + auto transitioned = m_state.compare_exchange_strong(expected, CtrlCState::normal); + if (!transitioned) + { + // Ctrl-C was hit while blocked on the child process + Checks::exit_fail(VCPKG_LINE_INFO); + } + } + void GlobalState::CtrlCStateMachine::transition_handle_ctrl_c() noexcept + { + auto prev_state = m_state.exchange(CtrlCState::exit_requested); + + if (prev_state == CtrlCState::normal) + { + // Not currently blocked on a child process and Ctrl-C has not been hit. + Checks::exit_fail(VCPKG_LINE_INFO); + } + else if (prev_state == CtrlCState::exit_requested) + { + // Ctrl-C was hit previously + } + else + { + // This is the case where we are currently blocked on a child process + } + } } diff --git a/toolsrc/src/vcpkg/help.cpp b/toolsrc/src/vcpkg/help.cpp index 743619937..2b409373d 100644 --- a/toolsrc/src/vcpkg/help.cpp +++ b/toolsrc/src/vcpkg/help.cpp @@ -7,6 +7,13 @@ #include #include +// Write environment variable names as %VARIABLE% on Windows and $VARIABLE in *nix +#ifdef _WIN32 +#define ENVVAR(VARNAME) "%%" #VARNAME "%%" +#else +#define ENVVAR(VARNAME) "$" #VARNAME +#endif + namespace vcpkg::Help { struct Topic @@ -93,7 +100,7 @@ namespace vcpkg::Help "%s" // Integration help "\n" " vcpkg export ... [opt]... Exports a package\n" - " vcpkg edit Open up a port for editing (uses %%EDITOR%%, default 'code')\n" + " vcpkg edit Open up a port for editing (uses " ENVVAR(EDITOR) ", default 'code')\n" " vcpkg import Import a pre-built library\n" " vcpkg create \n" " [archivename] Create a new package\n" @@ -104,10 +111,10 @@ namespace vcpkg::Help "\n" "Options:\n" " --triplet Specify the target architecture triplet.\n" - " (default: %%VCPKG_DEFAULT_TRIPLET%%, see 'vcpkg help triplet')\n" + " (default: " ENVVAR(VCPKG_DEFAULT_TRIPLET) ", see 'vcpkg help triplet')\n" "\n" " --vcpkg-root Specify the vcpkg root directory\n" - " (default: %%VCPKG_ROOT%%)\n" + " (default: " ENVVAR(VCPKG_ROOT) ")\n" "\n" "For more help (including examples) see the accompanying README.md.", Commands::Integrate::INTEGRATE_COMMAND_HELPSTRING); diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp index 4bb84831e..1cfa2bf71 100644 --- a/toolsrc/src/vcpkg/install.cpp +++ b/toolsrc/src/vcpkg/install.cpp @@ -62,7 +62,7 @@ namespace vcpkg::Install auto files = fs.get_files_recursive(source_dir); for (auto&& file : files) { - const auto status = fs.status(file, ec); + const auto status = fs.symlink_status(file, ec); if (ec) { System::println(System::Color::error, "failed: %s: %s", file.u8string(), ec.message()); @@ -111,6 +111,23 @@ namespace vcpkg::Install output.push_back(Strings::format(R"(%s/%s)", destination_subdirectory, suffix)); break; } + case fs::file_type::symlink: + { + if (fs.exists(target)) + { + System::println(System::Color::warning, + "File %s was already present and will be overwritten", + target.u8string(), + ec.message()); + } + fs.copy_symlink(file, target, ec); + if (ec) + { + System::println(System::Color::error, "failed: %s: %s", target.u8string(), ec.message()); + } + output.push_back(Strings::format(R"(%s/%s)", destination_subdirectory, suffix)); + break; + } default: System::println(System::Color::error, "failed: %s: cannot handle file type", file.u8string()); break; diff --git a/toolsrc/src/vcpkg/postbuildlint.cpp b/toolsrc/src/vcpkg/postbuildlint.cpp index 6fe11951f..90dcb7d64 100644 --- a/toolsrc/src/vcpkg/postbuildlint.cpp +++ b/toolsrc/src/vcpkg/postbuildlint.cpp @@ -617,7 +617,11 @@ namespace vcpkg::PostBuildLint const std::string cmd_line = Strings::format(R"("%s" /directives "%s")", dumpbin_exe.u8string(), lib.u8string()); System::ExitCodeAndOutput ec_data = System::cmd_execute_and_capture_output(cmd_line); - Checks::check_exit(VCPKG_LINE_INFO, ec_data.exit_code == 0, "Running command:\n %s\n failed", cmd_line); + Checks::check_exit(VCPKG_LINE_INFO, + ec_data.exit_code == 0, + "Running command:\n %s\n failed with message:\n%s", + cmd_line, + ec_data.output); for (const BuildType& bad_build_type : bad_build_types) { diff --git a/toolsrc/src/vcpkg/remove.cpp b/toolsrc/src/vcpkg/remove.cpp index 13cc9325e..921a04c23 100644 --- a/toolsrc/src/vcpkg/remove.cpp +++ b/toolsrc/src/vcpkg/remove.cpp @@ -55,7 +55,7 @@ namespace vcpkg::Remove auto target = paths.installed / suffix; - const auto status = fs.status(target, ec); + const auto status = fs.symlink_status(target, ec); if (ec) { System::println(System::Color::error, "failed: status(%s): %s", target.u8string(), ec.message()); @@ -66,7 +66,7 @@ namespace vcpkg::Remove { dirs_touched.push_back(target); } - else if (fs::is_regular_file(status)) + else if (fs::is_regular_file(status) || fs::is_symlink(status)) { fs.remove(target, ec); if (ec) diff --git a/toolsrc/src/vcpkg/visualstudio.cpp b/toolsrc/src/vcpkg/visualstudio.cpp index 9480a11bf..e3656a7d2 100644 --- a/toolsrc/src/vcpkg/visualstudio.cpp +++ b/toolsrc/src/vcpkg/visualstudio.cpp @@ -22,6 +22,17 @@ namespace vcpkg::VisualStudio LEGACY }; + static std::string release_type_to_string(const ReleaseType& release_type) + { + switch (release_type) + { + case ReleaseType::STABLE: return "STABLE"; + case ReleaseType::PRERELEASE: return "PRERELEASE"; + case ReleaseType::LEGACY: return "LEGACY"; + default: Checks::unreachable(VCPKG_LINE_INFO); + } + } + static bool preferred_first_comparator(const VisualStudioInstance& left, const VisualStudioInstance& right) { const auto get_preference_weight = [](const ReleaseType& type) -> int { @@ -51,10 +62,15 @@ namespace vcpkg::VisualStudio std::string version; ReleaseType release_type; + std::string to_string() const + { + return Strings::format("%s, %s, %s", root_path.u8string(), version, release_type_to_string(release_type)); + } + std::string major_version() const { return version.substr(0, 2); } }; - static std::vector get_visual_studio_instances(const VcpkgPaths& paths) + static std::vector get_visual_studio_instances_internal(const VcpkgPaths& paths) { const auto& fs = paths.get_filesystem(); std::vector instances; @@ -66,7 +82,7 @@ namespace vcpkg::VisualStudio if (fs.exists(vswhere_exe)) { const auto code_and_output = System::cmd_execute_and_capture_output( - Strings::format(R"("%s" -prerelease -legacy -products * -format xml)", vswhere_exe.u8string())); + Strings::format(R"("%s" -all -prerelease -legacy -products * -format xml)", vswhere_exe.u8string())); Checks::check_exit(VCPKG_LINE_INFO, code_and_output.exit_code == 0, "Running vswhere.exe failed with message:\n%s", @@ -114,9 +130,9 @@ namespace vcpkg::VisualStudio { // We want lexically_normal(), but it is not available // Correct root path might be 2 or 3 levels up, depending on if the path has trailing backslash. Try both. - auto common7_tools = fs::path{*path_as_string}; - append_if_has_cl(fs::path{*path_as_string}.parent_path().parent_path()); - append_if_has_cl(fs::path{*path_as_string}.parent_path().parent_path().parent_path()); + auto common7_tools = fs::path {*path_as_string}; + append_if_has_cl(fs::path {*path_as_string}.parent_path().parent_path()); + append_if_has_cl(fs::path {*path_as_string}.parent_path().parent_path().parent_path()); } // VS2015 instance from Program Files @@ -125,6 +141,13 @@ namespace vcpkg::VisualStudio return instances; } + std::vector get_visual_studio_instances(const VcpkgPaths& paths) + { + std::vector sorted {get_visual_studio_instances_internal(paths)}; + std::sort(sorted.begin(), sorted.end(), VisualStudioInstance::preferred_first_comparator); + return Util::fmap(sorted, [](const VisualStudioInstance& instance) { return instance.to_string(); }); + } + std::vector find_toolset_instances_preferred_first(const VcpkgPaths& paths) { using CPU = System::CPUArchitecture; @@ -137,8 +160,8 @@ namespace vcpkg::VisualStudio std::vector found_toolsets; std::vector excluded_toolsets; - const SortedVector sorted{get_visual_studio_instances(paths), - VisualStudioInstance::preferred_first_comparator}; + const SortedVector sorted {get_visual_studio_instances_internal(paths), + VisualStudioInstance::preferred_first_comparator}; const bool v140_is_available = Util::find_if(sorted, [&](const VisualStudioInstance& vs_instance) { return vs_instance.major_version() == "14"; @@ -194,7 +217,7 @@ namespace vcpkg::VisualStudio paths_examined.push_back(dumpbin_path); if (fs.exists(dumpbin_path)) { - const Toolset v141_toolset{ + const Toolset v141_toolset { vs_instance.root_path, dumpbin_path, vcvarsall_bat, {}, V_141, supported_architectures}; const auto english_language_pack = dumpbin_path.parent_path() / "1033"; @@ -209,12 +232,12 @@ namespace vcpkg::VisualStudio if (v140_is_available) { - const Toolset v140_toolset{vs_instance.root_path, - dumpbin_path, - vcvarsall_bat, - {"-vcvars_ver=14.0"}, - V_140, - supported_architectures}; + const Toolset v140_toolset {vs_instance.root_path, + dumpbin_path, + vcvarsall_bat, + {"-vcvars_ver=14.0"}, + V_140, + supported_architectures}; found_toolsets.push_back(v140_toolset); } diff --git a/toolsrc/vcpkglib/vcpkglib.vcxproj b/toolsrc/vcpkglib/vcpkglib.vcxproj index abfe8a242..315c48174 100644 --- a/toolsrc/vcpkglib/vcpkglib.vcxproj +++ b/toolsrc/vcpkglib/vcpkglib.vcxproj @@ -233,6 +233,7 @@ + diff --git a/toolsrc/vcpkglib/vcpkglib.vcxproj.filters b/toolsrc/vcpkglib/vcpkglib.vcxproj.filters index 42493d623..3e0ccd885 100644 --- a/toolsrc/vcpkglib/vcpkglib.vcxproj.filters +++ b/toolsrc/vcpkglib/vcpkglib.vcxproj.filters @@ -213,6 +213,9 @@ Source Files\vcpkg\base + + Source Files\vcpkg +